Documentation Index
Fetch the complete documentation index at: https://docs.medlistiq.com/llms.txt
Use this file to discover all available pages before exploring further.
This catalog documents enrichments produced by
/v1/medications/infer
(the FHIR endpoint). The PDF endpoint
(/v1/med-lists/from-documents) runs many of the same enrichments
— route codes, dose form, ingredient details — but folds them
directly into the response fields instead of surfacing a separate
enrichments[] list. See Med lists from PDFs
for the PDF response shape.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 canonical RxNorm coding and stamp every medication with it — so downstream systems can rely on a single consistent code per drug regardless of where the data originated.- System:
http://www.nlm.nih.gov/research/umls/rxnorm
Deduplication
The same drug can appear as aMedicationRequest from the EHR, a
MedicationDispense from the pharmacy, and a MedicationStatement reported by
the patient — sometimes with different display strings, different codings, or
no code at all. We reconcile them into one InferredMedication per drug, the
way a pharmacist would read across the sources and consolidate.
Dose form inference
Tablet, capsule, patch, solution, suspension — inferred from the canonical drug record 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: