provenance[med_id].enrichments
when you request verbosity="full".
Medication identity
RxNorm canonicalization
Raw input often contains free-text drug names, NDC codes, branded names, or locally-coded medications. We map them to a single preferred RxNorm coding and stamp every medication with it.- System:
http://www.nlm.nih.gov/research/umls/rxnorm - TTY preference: SCD (Semantic Clinical Drug) preferred over IN (Ingredient). When both are present, we pick the most specific.
- Source: NIH RxNav API
Deduplication
The same drug can appear as aMedicationRequest from the EHR, a
MedicationDispense from the pharmacy, and a MedicationStatement reported by
the patient. We collapse all three into one InferredMedication keyed by its
RxNorm identity.
Dose form inference
Tablet, capsule, patch, solution, suspension — inferred from the RxNorm SCD name when the input didn’t carry a discreteform field.
Display name cleanup
SNOMED display strings ship with semantic tags like"Oral route (qualifier value)". We strip the parenthetical tags so UIs can render clean labels
("Oral route") without post-processing.
Dosage semantics
Routes
Free-text routes like"oral", "by mouth", or "PO" get mapped to both
SNOMED CT and NCI Thesaurus codings.
- SNOMED:
http://snomed.info/sct— e.g.,26643006(Oral route) - NCIT:
http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl— e.g.,C38288(Oral)
Administration methods
Method text ("inject", "infuse", "apply topically") gets mapped to
SNOMED CT + NCIT.
- SNOMED: method concepts under
129445006(Administration — action) - NCIT: procedure concepts
Frequency
Prescription-style frequency abbreviations and natural-language phrases are mapped into standard code systems:- FHIR v3 GTSAbbreviation:
http://terminology.hl7.org/CodeSystem/v3-GTSAbbreviation—QD,BID,TID,QID,QHS,PRN, etc. - NCIT: matching frequency concepts for interop with NCI-coded systems
Timing events
Textual timing anchors like"at bedtime", "in the morning", "with meals"
are mapped to FHIR’s event-timing and v3 TimingEvent vocabularies:
- FHIR event-timing:
http://hl7.org/fhir/event-timing—MORN,AFT,EVE,NIGHT - v3 TimingEvent:
http://terminology.hl7.org/CodeSystem/v3-TimingEvent—HS(bedtime),AC(before meals),PC(after meals)
Duration extraction
Duration phrases in free-text sig strings ("for 7 days", "x 10 days") are
parsed out and surfaced as structured duration objects with UCUM units.
- UCUM:
http://unitsofmeasure.org—d(day),wk(week),mo(month)
Dose quantity + range
Numeric dose fields are surfaced with explicit UCUM units. Ranges like"1-2 tablets" are preserved as structured low/high rather than flattened.
Clinical context
Indications
reasonCode free-text and partial codings are enriched with both SNOMED CT
and ICD-10-CM where mappings are available.
- SNOMED:
http://snomed.info/sct - ICD-10-CM:
http://hl7.org/fhir/sid/icd-10-cm
Prescription-label sig
A human-readablesig string is composed from the structured dosage fields —
the kind of string a pharmacist or patient would see on a prescription label.
Example:
"Take 1 tablet by mouth twice daily with meals for 10 days"
This is built from the enriched dosage components — route, frequency, timing
events, duration — not from the original free-text patientInstruction. If
the input was fully structured with no sig text, we still produce one.
Status + confidence
Each medication is stamped with astatus (active, completed, stopped,
cancelled, unknown) and a confidence score. This is inference, not
enrichment of source fields — see the Understanding the output
guide for the signal logic and confidence math.
What gets reported
When you requestverbosity="full", every enrichment we applied appears in
the provenance block: