medlistIQ
FHIR-native · rule-based · clinically vetted · deterministic

Clean medication lists
from messy data.

Your patient's meds are scattered across EHR orders, pharmacy dispenses, and self-reports. MedListIQ reconciles them into a deduplicated, clinically-classified list with a full provenance trail.

Many resources in. One clean med list out.

Reconcile across orders, dispenses, administrations, and patient-reported history using semantic matching — not just code equality. We handle the full terminology landscape (RxNorm, NDC, ATC, UMLS, free text) and derive status from auditable rules. Every medication ships with a provenance trail: inputs consumed, rules fired, fields enriched.

Input
MedicationRequest·mr-1
status: active
authoredOn: 2026-03-05
medicationReference: Medication/rx-1
MedicationDispense·md-1
status: completed
whenHandedOver: 2026-04-09
medicationReference: Medication/rx-1
MedicationStatement·ms-1
status: active
dateAsserted: 2026-02-15
text: atorvastatin 40mg daily
Medication·rx-1
code.coding.rxnorm: 617312
code.display: Atorvastatin 40 MG Oral Tablet
form: Tablet
MedicationRequest·mr-2
status: active
authoredOn: 2024-05-01
effectivePeriod.end: 2024-08-15
medicationCodeableConcept.text: Lisinopril 10mg
MedicationDispense·md-2
status: completed
whenHandedOver: 2024-05-03
medicationCodeableConcept.text: Lisinopril 10mg
MedicationDispense·md-3
status: completed
whenHandedOver: 2024-07-10
medicationCodeableConcept.text: Lisinopril 10mg
Output — deduplicated medication list
Atorvastatin 40 MG Oral Tablet
RxNorm 617312 · Tablet · Oral
active
confidence 0.95sig Take 1 tablet by mouth daily
Provenance
ruleset 2026-04-15.v5
sources
MedicationRequest/mr-1
MedicationDispense/md-1
MedicationStatement/ms-1
Medication/rx-1
evidence
active_orderrecent_dispenseself_reported_active
enrichments
+ route.snomed_code: 26643006
+ dose_form: Tablet (from SCD)
Lisinopril 10 MG Oral Tablet
RxNorm 314076 · Tablet · Oral
completed
confidence 0.90sig Take 1 tablet by mouth daily
Provenance
ruleset 2026-04-15.v5
sources
MedicationRequest/mr-2
MedicationDispense/md-2
MedicationDispense/md-3
evidence
course_completedprescription_expired
enrichments
+ rxnorm: 314076 (canonicalized from text)
+ route.snomed_code: 26643006
+ dose_form: Tablet

Many PDFs in. Same clean med list out.

Submit a referral packet, an H&P, a discharge summary, or progress notes. The same reconciliation engine runs across the document text — collapsing brand and generic mentions, surfacing conflicts when sources disagree, and preserving the page, section, and exact text-snippet evidence for every match.

Input — clinical PDFs
h_and_p.pdf
History & Physical
Medications
· Pen-Vee K 250 mg Oral Tablet
· Lipitor 20 mg PO daily
· Acetaminophen 325 mg PO PRN
discharge_summary.pdf
Discharge Summary
Discharge Medications
· Penicillin V Potassium 500 mg Oral Tablet
· Atorvastatin 20 mg Oral Tablet
· Acetaminophen 325 mg PRN
referral_note.pdf
Referral Note
Current Medications
· STOPPED: Penicillin V Potassium 250 mg Oral Tablet
· Acetaminophen 325 mg PO PRN
Output — deduplicated medication list
Atorvastatin
RxNorm 617312 · Atorvastatin 20 mg PO daily
active
Sources — 2 mentions
ruleset 2026-04-15.v5
h_and_p.pdf · p.1 · Medications
Lipitor 20 mg PO daily
discharge_summary.pdf · p.1 · Discharge Medications
Atorvastatin 20 mg Oral Tablet
Acetaminophen
RxNorm 161 · Acetaminophen 325 mg PO PRN
active
Sources — 3 mentions
ruleset 2026-04-15.v5
h_and_p.pdf · p.1 · Medications
Acetaminophen 325 mg PO PRN
discharge_summary.pdf · p.1 · Discharge Medications
Acetaminophen 325 mg PRN
referral_note.pdf · p.1 · Current Medications
Acetaminophen 325 mg PO PRN
Penicillin V Potassium
RxNorm 203195 · Penicillin V Potassium 250 mg PO
active⚠ status conflict
Sources — 3 mentions
ruleset 2026-04-15.v5
h_and_p.pdf · p.1 · Medications
Pen-Vee K 250 mg Oral Tablet
discharge_summary.pdf · p.1 · Discharge Medications
Penicillin V Potassium 500 mg Oral Tablet
referral_note.pdf · p.1 · Current Medications
STOPPED: Penicillin V Potassium 250 mg Oral Tablet

Four phases of our pipeline

We designed our pipeline to handle the complexity of real-world medication data. Every phase was designed to be flexible to a wide variety of inputs and use cases, and native to modern healthcare and interoperability standards.

1

Extract

Find every medication in your data. Doesn't matter if it's structured records, scanned PDFs, or free-text notes.

Any source, any shape
example
messy inputs → structured meds
2

Normalize

Map every extracted medication to standardized healthcare codes.

Standards-based
example
free-text drug → coded drug
3

Reconcile

Deduplicate drugs across all sources, sort out conflicts, and keep the evidence trail intact.

Pharmacist-based logic
example
duplicate meds → one med
4

Enrich

Expand every field with defacto standards across healthcare to promote semantic interoperability.

Accommodates multiple uses
example
canonical code → ready to use
Grounded in public standards:RxNormSNOMED CTNCI ThesaurusICD-10-CMUCUMFHIR

Typically three hires. One API.

Production medication reconciliation sits at the intersection of three specialties. Get the equivalent of three specialist hires as one API call — at a fraction of the cost:

Clinical pharmacy

What 'active' actually means when a stopped order and a recent dispense both exist. When to trust patient-reported meds. How to weight conflicting signals.

Health informatics

RxNorm TTY ranking (SCD > IN). SNOMED + NCIT enrichment for routes and methods. ICD-10 / SNOMED indications. Free-text to discrete.

FHIR integration

MedicationRequest / Dispense / Statement dedup. Inline codeableConcept vs. external medicationReference. US Core alignment. Bundle vs. flat-array.

Built for production use.

Every decision is auditable

Every inferred medication ships with its sources (which FHIR resources contributed), evidence (which rules fired), and enrichments (what we derived from the input). No black boxes.

Pick your payload

Three verbosity levels. `minimal` for a med-list UI alert. `standard` for EHR integration with RxNorm codes and dosage. `full` for clinical decision support with the complete provenance trail.

Normalized to the right codes

RxNorm SCD-preferred TTY ranking. SNOMED + NCIT mapping for routes and methods. ICD-10 / SNOMED for indications. Discrete data you can feed to downstream systems — or render human-readable.

Deterministic + versioned

Every response carries a ruleset_version (YYYY-MM-DD.vN). Pin to a version for stable integrations. No ML drift, no hallucinations, no unexpected behavior changes.

Stateless by design — no PHI persisted

Your FHIR payloads are processed in memory and discarded with the response. We never write patient data to disk. Only request metadata (timestamps, counts, status codes) is retained — for billing and observability, never the payload.

Who's building with this.

Care coordination

Platforms stitching records across multiple providers. MedListIQ dedups across EHR + pharmacy + patient input.

EHR integrations

Apps pulling meds from Epic, Cerner, Athena. MedListIQ normalizes the per-vendor quirks into one shape.

Telehealth + virtual care

Quick med-list ingest from a patient's uploaded records or HIE bundle. Ready for clinical review in seconds.

Clinical decision support

Rule engines need a clean active-medication input. Feed our output in; skip the reconciliation step.

“A medication inference engine built on substantive knowledge of prescriptions by an actual pharmacist — with zero introduced error from AI? That’s the dream.”

— Senior Clinical Research Scientist

“Wow. This is something we’d probably want to use.”

— Product leader, medication management platform

Try it in 60 seconds.

Sign up, mint a key, interact with our preset scenarios in the playground or integrate with your own application.