RxNorm
RxNorm
One-sentence definition: RxNorm is a normalized clinical drug nomenclature produced by the U.S. National Library of Medicine that provides standard names and identifiers for medications — including ingredient, strength, and dose form — enabling interoperable exchange of medication information across disparate pharmacy, EHR, and clinical systems.
Full Definition
RxNorm is a medication coding standard that assigns stable, unique identifiers (RxCUI — RxNorm Concept Unique Identifiers) to clinical drugs and drug concepts. Unlike proprietary drug databases that vary by vendor, RxNorm provides a single, publicly available namespace that any system can reference to unambiguously identify a drug, its ingredients, its strength, and its dose form.
Produced by the U.S. National Library of Medicine (NLM) and freely available, RxNorm sits at the center of the US medication data interoperability stack. It provides normalized names that aggregate the many different names a drug may have across drug databases, pharmacy systems, formularies, and EHRs. When a system receives RxCUI 197361 it knows this is metformin hydrochloride 500 mg oral tablet — regardless of whether the sending system calls it “Metformin HCl 500mg Tab” or “metformin 500 mg tablet” or uses a proprietary code.
RxNorm is part of the Unified Medical Language System (UMLS) but is distributed separately and does not require a UMLS license — it is free to download and use in commercial products.
For how RxNorm is used in medication mapping, how it relates to NDC and other drug identifiers, and practical considerations for medication data exchange, see Healthcare Data Semantics.
Context and Usage
Where This Term Appears
RxNorm appears throughout medication workflows in health data exchange:
- FHIR resources:
MedicationRequest.medication,MedicationDispense.medication,MedicationStatement.medication,Medication.code - E-prescribing: RxNorm is the preferred standard for electronic prescriptions transmitted via NCPDP SCRIPT
- Clinical decision support: drug interaction checks, allergy cross-reactivity checks, and formulary rules use RxNorm as the drug identifier
- USCDI requirements: RxNorm is the required coding system for medications in USCDI v1+ and US Core profiles
- CDS Hooks: medication-related hooks use RxNorm codes to identify the drug being ordered
- Pharmacy benefit management: claims adjudication systems and formulary engines reference RxNorm for drug identification
Common Usage Examples
In conversation: “Our pharmacy system uses NDC codes but the EHR needs RxNorm — we maintain a mapping table and convert at the interface layer.”
In documentation: “The MedicationRequest.medicationCodeableConcept must include an RxNorm code to pass US Core validation.”
In technical contexts:
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "197361",
"display": "Metformin Hydrochloride 500 MG Oral Tablet"
}
]
}
Why RxNorm Exists
Medication data in healthcare has historically been fragmented. Each pharmacy system, drug database vendor (First Databank, Multum, Micromedex), and EHR used its own drug identifiers and name normalizations. Exchanging medication lists between systems required custom mapping for every integration — and mappings frequently degraded as databases updated independently.
The NLM created RxNorm to provide a neutral, openly available normalization layer. By mapping each proprietary drug database’s entries to RxNorm, any two systems that map to RxNorm can exchange medication data without a direct bilateral mapping. RxNorm acts as the hub in a hub-and-spoke mapping architecture for drug identifiers.
Key Characteristics
Normalized names
RxNorm normalizes drug names into a consistent format: ingredient + strength + dose form. “Metformin Hydrochloride 500 MG Oral Tablet” is the RxNorm normalized name regardless of how any vendor spells or abbreviates it. This normalization is what enables comparison across systems — two systems with different display names for the same drug will have the same RxCUI.
Semantic Clinical Drug model
RxNorm uses a formal model with distinct concept types at different levels of abstraction:
- Ingredient (IN): the active chemical substance (e.g., “metformin”)
- Clinical Drug Component (CDC): ingredient + strength (e.g., “metformin 500 mg”)
- Clinical Drug Form (CDF): ingredient + dose form (e.g., “metformin oral tablet”)
- Clinical Drug (SCD): ingredient + strength + dose form — the most common level for prescribing (e.g., “Metformin Hydrochloride 500 MG Oral Tablet”)
- Branded Drug (SBD): clinical drug + brand name (e.g., “Glucophage 500 MG Oral Tablet”)
- Pack (BPCK/GPCK): multi-item packaging
Most clinical applications work at the Clinical Drug (SCD) level for prescribing and the Ingredient (IN) level for allergy and interaction checking.
Ingredient, strength, and form
The SCD concept type carries the three attributes that define a prescribable drug unit:
- Ingredient: the therapeutic substance
- Strength: dose quantity with unit (e.g., “500 MG”, “10 MG/ML”)
- Dose form: how it is administered (oral tablet, injection, patch, etc.)
This decomposition lets clinical decision support operate at the right level of abstraction: interaction checking at the ingredient level, formulary matching at the clinical drug level, dispensing at the branded drug or NDC level.
Practical Examples
Prescription ordering
When a clinician orders lisinopril 10 mg daily, the EHR encodes the order with the RxNorm SCD code:
{
"resourceType": "MedicationRequest",
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "314076",
"display": "lisinopril 10 MG Oral Tablet"
}
]
}
}
The RxCUI 314076 can be resolved to ingredient (lisinopril), strength (10 MG), and form (oral tablet) — enabling drug interaction checks, formulary lookups, and downstream dispensing, all from one code.
Medication reconciliation
When a patient arrives from another facility, the receiving system needs to compare the transferred medication list against its own active medications. If both systems use RxNorm at the SCD level, the reconciliation can be automated: matching RxCUIs are the same drug. Mismatches can be escalated for human review.
Without a shared coding system, reconciliation requires probabilistic name matching — far more error-prone.
Technical Considerations
NLM distribution
RxNorm is freely available from the NLM. A free UMLS license agreement is required for download, but commercial use in products is permitted. The full RxNorm release is distributed as a set of RRRF (Rich Release Format) flat files — RxConcept, RxRel, RxSAT, and others — that require loading into a local database or using an NLM-provided API.
The NLM RxNorm API provides REST endpoints for code lookup, concept navigation, and approximate name matching. FHIR terminology servers that support $lookup operations against http://www.nlm.nih.gov/research/umls/rxnorm provide an alternative.
Monthly updates
RxNorm releases monthly updates. New drugs are added when approved by the FDA; existing concepts are updated as needed. RxCUIs are permanent and never reused — a retired concept remains in the database with a status of “obsolete” and a remapped successor.
For clinical systems, monthly updates mean medication coding sets need regular refresh. Decision support rules tied to specific RxCUIs remain valid as long as the CUI is active; rules should check CUI status when evaluating data against older medication records.
Relationship to Other Terms
Related Terms
- FHIR — the exchange standard whose medication resources use RxNorm as the primary coding system
- LOINC — observation coding system; the LOINC counterpart for lab results, RxNorm for medications
- SNOMED CT — clinical terminology; SNOMED CT includes drug concepts but RxNorm is the primary system for prescribable drugs in US implementations
Contrasting Terms
-
RxNorm vs NDC: National Drug Codes (NDC) identify a specific packaged product from a specific manufacturer — the physical bottle on the pharmacy shelf. RxNorm identifies the clinical drug concept, independent of manufacturer, package size, or package configuration. One RxNorm SCD code maps to many NDC codes (all the different manufacturers and package sizes of that drug). NDC is used at dispensing; RxNorm is used at prescribing and clinical data exchange.
-
RxNorm vs proprietary drug databases: Vendor drug databases (First Databank, Multum) provide richer clinical content (dosing, interactions, monographs) but use proprietary identifiers. RxNorm provides neutral, openly available identifiers that serve as a mapping hub between vendor databases and enable cross-system exchange without vendor lock-in.
Common Misconceptions
Misconception 1: RxNorm includes drug pricing
- Incorrect belief: RxNorm codes can be used to look up drug prices or formulary status.
- Reality: RxNorm provides drug identity and naming only — no pricing, formulary, or reimbursement data. Drug pricing requires separate data sources (AWP databases, PBM formulary files). RxNorm codes are the key used to look up pricing in those systems, but pricing is not part of RxNorm itself.
- Why it matters: Systems expecting pricing from an RxNorm lookup will find none. The integration pattern is: use RxNorm for drug identity, use a separate formulary/pricing system for benefit data, linked by RxCUI.
Misconception 2: RxNorm is only relevant for US implementations
- Incorrect belief: Because RxNorm is a US NLM product, it is only useful for US healthcare FHIR implementations.
- Reality: RxNorm is used in FHIR implementations globally because it provides the most comprehensive freely available drug normalization. International FHIR IGs frequently reference RxNorm alongside local drug codes. FHIR’s
Medicationresource supports multiple codings in a CodeableConcept, so an international system can include both a local drug code and an RxNorm code. - Why it matters: Non-US implementers building systems that need to interoperate with US payers or EHRs should include RxNorm codes even if local codes are also present.
Cross-References
Related Glossary Terms
- FHIR — the data exchange standard that uses RxNorm in medication resources
- LOINC — the observation coding counterpart for lab and vital sign data
Last reviewed: February 12, 2026 Definition authority: National Library of Medicine Content status: Canonical reference