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.

MedicationDispense — Pharmacy dispensation

The moment the pharmacist hands the medication to the patient: quantity, days supply, optional substitution, pharmacist counsel. The resource for community and hospital pharmacy alike.

Purpose

MedicationDispense captures the pharmacy dispensation: the pharmacist hands the medication to the patient (community) or to the care unit (hospital). It tracks quantity, days supply, whether a substitution occurred (generic for brand), the counsel given, preparation and hand-over times.

Key fields

FieldTypeCardinalityRole
statuscode1..1Mandatory. preparation, in-progress, cancelled, on-hold, completed, entered-in-error, stopped, declined, unknown.
categoryCodeableConcept0..1inpatient, outpatient, community, discharge.
medicationCodeableReference(Medication)1..1Mandatory. Medication dispensed.
subjectReference(Patient | Group)1..1Mandatory. Beneficiary.
encounterReference(Encounter)0..1Context.
authorizingPrescriptionReference(MedicationRequest)[]0..*Prescription authorizing dispensation.
typeCodeableConcept0..1Dispensation type (first fill, refill…).
quantityQuantity0..1Total quantity dispensed.
daysSupplyQuantity0..1Days supply.
whenPrepareddateTime0..1Preparation date.
whenHandedOverdateTime0..1Patient hand-over date.
destinationReference(Location)0..1Hand-over location.
performerBackboneElement[]0..*Pharmacists.
locationReference(Location)0..1Dispensing pharmacy.
dosageInstructionDosage[]0..*Prescribed posology.
substitutionBackboneElement0..1Substitution: wasSubstituted, type, reason, responsibleParty.

JSON example

Dispensation of 30 paracetamol 1g tablets, 7 days:

json medicationdispense-paracetamol.json
{
  "resourceType": "MedicationDispense",
  "id": "md-paracetamol-001",
  "status": "completed",
  "category": {
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/medicationdispense-category",
      "code": "outpatient"
    }]
  },
  "medication": {
    "reference": { "reference": "Medication/med-paracetamol-1g-tab" }
  },
  "subject": { "reference": "Patient/doe-john" },
  "encounter": { "reference": "Encounter/enc-outpatient-2026-05-15" },
  "authorizingPrescription": [
    { "reference": "MedicationRequest/mr-paracetamol-001" }
  ],
  "performer": [{
    "function": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/medicationdispense-performer-function",
        "code": "dataenterer"
      }]
    },
    "actor": { "reference": "Practitioner/pharmacist-leroy" }
  }],
  "location": { "reference": "Location/pharmacy-central" },
  "quantity": {
    "value": 30,
    "unit": "tablets",
    "system": "http://unitsofmeasure.org",
    "code": "{tablet}"
  },
  "daysSupply": {
    "value": 7,
    "unit": "days",
    "system": "http://unitsofmeasure.org",
    "code": "d"
  },
  "recorded": "2026-05-15T11:00:00+02:00",
  "whenPrepared": "2026-05-15T10:55:00+02:00",
  "whenHandedOver": "2026-05-15T11:05:00+02:00",
  "dosageInstruction": [{
    "text": "1 tablet up to 4 times daily, not exceeding 4g/24h",
    "timing": { "repeat": { "frequency": 4, "period": 24, "periodUnit": "h" } },
    "route": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "26643006",
        "display": "Oral route"
      }]
    }
  }],
  "substitution": {
    "wasSubstituted": false
  }
}

Common pitfalls

  • Confusing with MedicationRequest — Request = prescription, Dispense = actual dispensation.
  • No authorizingPrescription — a dispensation without prescription is non-auditable (except OTC, to be documented).
  • Substitution not tracked — a generic dispensed instead of brand must have substitution.wasSubstituted=true with reason.
  • Missing daysSupply — without days supply, adherence scoring is impossible.
  • Confusing whenPrepared and whenHandedOver — preparation and hand-over are two distinct pharmacy-workflow steps.