Medication Extraction
Medication Extraction is the clinical NLP task of automatically identifying all medication entities and their associated attributes — drug name, dosage, route, frequency, duration, and indication — from clinical notes, discharge summaries, and patient records — forming the foundation of medication reconciliation systems, drug safety monitoring, and clinical decision support tools that depend on a complete and accurate medication list.
What Is Medication Extraction?
- Core Task: Named entity recognition targeting medication-related entities in clinical text.
- Entity Types: Drug Name (trade/generic), Dosage (amount + unit), Route (PO/IV/IM/SC/topical), Frequency (QD/BID/TID/QID/PRN), Duration, Reason/Indication.
- Key Benchmarks: i2b2/n2c2 2009 Medication Challenge, n2c2 2018 Track 2 (ADE and medication extraction), MTSamples dataset, SemEval-2020 Task 8.
- Normalization Target: Map extracted drug names to RxNorm, NDF-RT, or DrugBank identifiers for interoperability.
The i2b2 2009 Medication Challenge Format
The landmark benchmark. Input clinical note excerpt:
"Patient was started on metformin 500mg PO BID with meals for newly diagnosed type 2 diabetes. Lisinopril 10mg daily was continued for hypertension. Patient reports taking ibuprofen 400mg PRN for joint pain."
Expected extractions:
| Drug | Dose | Route | Frequency | Reason |
|------|------|-------|-----------|--------|
| metformin | 500mg | PO | BID | type 2 diabetes |
| lisinopril | 10mg | PO | daily | hypertension |
| ibuprofen | 400mg | PO | PRN | joint pain |
Why Medication Extraction Is Hard
Non-standard Abbreviations: Clinical shorthand varies by institution, specialty, and individual clinician:
- "1 tab PO QHS" = 1 tablet by mouth at bedtime.
- "0.5mg/kg/day div q6h" = weight-based divided dosing — requires parsing mathematical expressions.
- "hold if SBP<90" = conditional dosing — medication held under hemodynamic condition.
Implicit Medications: "Continue home regimen" or "as previously prescribed" reference medications not explicitly named.
Negated Medications: "No anticoagulants" or "patient refuses insulin" — drug mention without active prescription.
Medication Changes: "Increased lisinopril to 20mg" vs. "decreased to 5mg" — dose change detection requires temporal comparison.
Polypharmacy Scale: Complex patients may have 15-30 medications across multiple specialty providers — extraction must be comprehensive with no omissions.
Performance Results
| Model | Drug Name F1 | Full Medication F1 | Normalization F1 |
|---|---|---|---|
| CRF baseline | 86.2% | 71.4% | 62.3% |
| BioBERT (i2b2 2009) | 93.1% | 81.7% | 74.8% |
| ClinicalBERT | 94.2% | 83.4% | 76.1% |
| BioLinkBERT | 95.0% | 85.1% | 78.3% |
| GPT-4 (few-shot) | 91.3% | 78.9% | 70.2% |
Clinical Applications
Medication Reconciliation:
- At transitions of care (ED to admission, admission to discharge), compile a complete medication list from all available notes.
- Prevents the ~40% medication discrepancy rate at hospital transitions that causes adverse events.
Drug Safety Alerts:
- Extract current medications as prerequisite for DDI screening.
- Alert prescribers when extracted medications interact with newly ordered drugs.
Polypharmacy Management:
- Population-level extraction identifies patients on high-risk medication combinations (≥5 medications, Beers Criteria drugs in elderly patients).
Research Data Extraction:
- Extract medication history for pharmacoepidemiology studies — which drugs were patients taking before their cancer diagnosis, cardiac event, or adverse outcome.
Medication Extraction is the medication safety foundation of clinical NLP — automatically compiling the complete, structured medication record from the free text of clinical documentation, enabling every downstream drug safety, interaction, and compliance application to operate on accurate, comprehensive medication data.