Medication — The medicinal product
Paracetamol 1g tablet, batch BATCH-2026-A47, expires 2028-12-31. The ID card of a medicinal product in the FHIR hospital circuit.
Purpose
Medication describes a medicinal product as an object: name, code, dose form, ingredients (active substances, excipients), marketing authorization holder, batch, expiration. A Medication is referenced by MedicationRequest (prescription), MedicationDispense (dispensation), MedicationAdministration (administration) and MedicationStatement (patient-declared usage).
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers (CIP, NDC, GTIN). |
code | CodeableConcept | 0..1 | Medication code (ATC, SNOMED CT, RxNorm). |
status | code | 0..1 | active, inactive, entered-in-error. |
marketingAuthorizationHolder | Reference(Organization) | 0..1 | MA holder. |
doseForm | CodeableConcept | 0..1 | Dose form (tablet, capsule, IV injection…). |
totalVolume | Quantity | 0..1 | Total volume of the container. |
ingredient | BackboneElement[] | 0..* | Ingredients with concentration ratio. |
batch | BackboneElement | 0..1 | Batch: lotNumber + expirationDate. |
definition | Reference(MedicationKnowledge) | 0..1 | Catalog definition. |
Common codings
- ATC (WHO) — Anatomical-Therapeutic-Chemical classification. Universal.
- RxNorm (US NLM) — US-normalized, strong NDC linkage.
- SNOMED CT — Pharmaceutical/biologic product hierarchy.
- CIP (FR) — French presentation identifier code.
- NDC (US) — National Drug Code.
- SNOMED dm+d (UK) — Dictionary of medicines and devices.
JSON example
Paracetamol 1g tablet:
{
"resourceType": "Medication",
"id": "med-paracetamol-1g-tab",
"identifier": [{
"system": "http://www.ansm.sante.fr/cip",
"value": "3400938153317"
}],
"code": {
"coding": [{
"system": "http://www.whocc.no/atc",
"code": "N02BE01",
"display": "Paracetamol"
}, {
"system": "http://snomed.info/sct",
"code": "387517004",
"display": "Paracetamol (substance)"
}, {
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "313782"
}]
},
"status": "active",
"marketingAuthorizationHolder": { "reference": "Organization/sandoz" },
"doseForm": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "385055001",
"display": "Tablet"
}]
},
"totalVolume": {
"value": 1,
"unit": "tablet"
},
"ingredient": [{
"item": {
"concept": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "387517004",
"display": "Paracetamol"
}]
}
},
"isActive": true,
"strengthRatio": {
"numerator": { "value": 1, "unit": "g", "system": "http://unitsofmeasure.org", "code": "g" },
"denominator": { "value": 1, "unit": "tablet" }
}
}],
"batch": {
"lotNumber": "BATCH-2026-A47",
"expirationDate": "2028-12-31"
}
} Common pitfalls
- Missing
code— an uncoded medication is unusable for pharmacovigilance, drug-drug interactions, billing. - Single coding choice — ATC alone doesn't discriminate generic vs brand. Combine ATC + RxNorm/CIP/NDC.
- Missing
ingredient.strengthRatio— mg/tablet is essential: 500 mg vs 1 g changes dosing and risk. - Batch without
expirationDate— a hospital-circuit medication must have expiry to avoid administering expired product. - Confusing
MedicationwithMedicationKnowledge— Medication = an administrable product, MedicationKnowledge = general pharmaceutical catalog.
Related resources
- MedicationRequest — prescription.
- MedicationAdministration — administration.
- MedicationDispense — dispensation.
- MedicationStatement — patient-declared usage.
- MedicationKnowledge — pharmaceutical catalog.