ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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

FieldTypeCardinalityRole
identifierIdentifier[]0..*External identifiers (CIP, NDC, GTIN).
codeCodeableConcept0..1Medication code (ATC, SNOMED CT, RxNorm).
statuscode0..1active, inactive, entered-in-error.
marketingAuthorizationHolderReference(Organization)0..1MA holder.
doseFormCodeableConcept0..1Dose form (tablet, capsule, IV injection…).
totalVolumeQuantity0..1Total volume of the container.
ingredientBackboneElement[]0..*Ingredients with concentration ratio.
batchBackboneElement0..1Batch: lotNumber + expirationDate.
definitionReference(MedicationKnowledge)0..1Catalog definition.

Common codings

  • ATC (WHO) — Anatomical-Therapeutic-Chemical classification. Universal.
  • RxNorm (US NLM) — US-normalized, strong NDC linkage.
  • SNOMED CTPharmaceutical/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:

json medication-paracetamol.json
{
  "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 Medication with MedicationKnowledge — Medication = an administrable product, MedicationKnowledge = general pharmaceutical catalog.