Description
A pipeline for detecting posology entities with the ner_posology_large
NER model, assigning their assertion status with assertion_jsl
model, and extracting relations between posology-related terminology with posology_re
relation extraction model.
How to use
from sparknlp.pretrained import PretrainedPipeline
pipeline = PretrainedPipeline("explain_clinical_doc_medication", "en", "clinical/models")
text = '''The patient is a 30-year-old female with a long history of insulin dependent diabetes, type 2. She received a course of Bactrim for 14 days for UTI. She was prescribed 5000 units of Fragmin subcutaneously daily, and along with Lantus 40 units subcutaneously at bedtime.'''
result = pipeline.fullAnnotate(text)
import com.johnsnowlabs.nlp.pretrained.PretrainedPipeline
val pipeline = new PretrainedPipeline("explain_clinical_doc_medication", "en", "clinical/models")
val text = "The patient is a 30-year-old female with a long history of insulin dependent diabetes, type 2. She received a course of Bactrim for 14 days for UTI. She was prescribed 5000 units of Fragmin subcutaneously daily, and along with Lantus 40 units subcutaneously at bedtime."
val result = pipeline.fullAnnotate(text)
import nlu
nlu.load("en.explain_dco.clinical_medication.pipeline").predict("""The patient is a 30-year-old female with a long history of insulin dependent diabetes, type 2. She received a course of Bactrim for 14 days for UTI. She was prescribed 5000 units of Fragmin subcutaneously daily, and along with Lantus 40 units subcutaneously at bedtime.""")
Results
+----+----------------+------------+
| | chunks | entities |
|---:|:---------------|:-----------|
| 0 | insulin | DRUG |
| 1 | Bactrim | DRUG |
| 2 | for 14 days | DURATION |
| 3 | 5000 units | DOSAGE |
| 4 | Fragmin | DRUG |
| 5 | subcutaneously | ROUTE |
| 6 | daily | FREQUENCY |
| 7 | Lantus | DRUG |
| 8 | 40 units | DOSAGE |
| 9 | subcutaneously | ROUTE |
| 10 | at bedtime | FREQUENCY |
+----+----------------+------------+
+----+----------+------------+-------------+
| | chunks | entities | assertion |
|---:|:---------|:-----------|:------------|
| 0 | insulin | DRUG | Present |
| 1 | Bactrim | DRUG | Past |
| 2 | Fragmin | DRUG | Planned |
| 3 | Lantus | DRUG | Planned |
+----+----------+------------+-------------+
+----------------+-----------+------------+-----------+----------------+
| relation | entity1 | chunk1 | entity2 | chunk2 |
|:---------------|:----------|:-----------|:----------|:---------------|
| DRUG-DURATION | DRUG | Bactrim | DURATION | for 14 days |
| DOSAGE-DRUG | DOSAGE | 5000 units | DRUG | Fragmin |
| DRUG-ROUTE | DRUG | Fragmin | ROUTE | subcutaneously |
| DRUG-FREQUENCY | DRUG | Fragmin | FREQUENCY | daily |
| DRUG-DOSAGE | DRUG | Lantus | DOSAGE | 40 units |
| DRUG-ROUTE | DRUG | Lantus | ROUTE | subcutaneously |
| DRUG-FREQUENCY | DRUG | Lantus | FREQUENCY | at bedtime |
+----------------+-----------+------------+-----------+----------------+
Model Information
Model Name: | explain_clinical_doc_medication |
Type: | pipeline |
Compatibility: | Healthcare NLP 4.3.0+ |
License: | Licensed |
Edition: | Official |
Language: | en |
Size: | 1.7 GB |
Included Models
- DocumentAssembler
- SentenceDetectorDLModel
- TokenizerModel
- WordEmbeddingsModel
- MedicalNerModel
- NerConverterInternalModel
- NerConverterInternalModel
- AssertionDLModel
- PerceptronModel
- DependencyParserModel
- PosologyREModel