Text classification problem using Python or R
Take a supervised approach:

For each group "Blood test", "Stool test" etc,


Take a subset of your rows as a training set, say 200 rows.
Create a new numeric or logical column, "IsBloodTest" or similar for this new subset of your dataset


For each row in these 200


Classify them manually: if it is a blood test, assign 1, if not assign 0 to "IsBloodTest" 
Split the "Description" column into word vectors. This creates a Document-Term matrix with only 1 or 0 values in the cells (Word is present/not present)
Classify the rows of the sparse new matrix (omitting your own newly manually created attribute) with the Multinomial NaiveBayes algorithm. This assigns another column with "0/1" prediction, say "PredictedBloodTest"  to  your training set. 
With these 0/1 values in the two new columns you can build a confusion matrix.


Perform Cross validation experiments to check your confusion matrix, or use an extra validation set. Label more rows manually if necessary.

If the classification result is good enough, use it for the remaining 1000s of rows from your data set.

This procedure is simple, but it might get you results faster than learning more sophisticated approaches first.