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
| Field | Type | Cardinality | Role |
|---|---|---|---|
status | code | 1..1 | Mandatory. preparation, in-progress, cancelled, on-hold, completed, entered-in-error, stopped, declined, unknown. |
category | CodeableConcept | 0..1 | inpatient, outpatient, community, discharge. |
medication | CodeableReference(Medication) | 1..1 | Mandatory. Medication dispensed. |
subject | Reference(Patient | Group) | 1..1 | Mandatory. Beneficiary. |
encounter | Reference(Encounter) | 0..1 | Context. |
authorizingPrescription | Reference(MedicationRequest)[] | 0..* | Prescription authorizing dispensation. |
type | CodeableConcept | 0..1 | Dispensation type (first fill, refill…). |
quantity | Quantity | 0..1 | Total quantity dispensed. |
daysSupply | Quantity | 0..1 | Days supply. |
whenPrepared | dateTime | 0..1 | Preparation date. |
whenHandedOver | dateTime | 0..1 | Patient hand-over date. |
destination | Reference(Location) | 0..1 | Hand-over location. |
performer | BackboneElement[] | 0..* | Pharmacists. |
location | Reference(Location) | 0..1 | Dispensing pharmacy. |
dosageInstruction | Dosage[] | 0..* | Prescribed posology. |
substitution | BackboneElement | 0..1 | Substitution: wasSubstituted, type, reason, responsibleParty. |
JSON example
Dispensation of 30 paracetamol 1g tablets, 7 days:
{
"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=truewithreason. - Missing
daysSupply— without days supply, adherence scoring is impossible. - Confusing
whenPreparedandwhenHandedOver— preparation and hand-over are two distinct pharmacy-workflow steps.
Related resources
- Medication — product.
- MedicationRequest — prescription.
- MedicationAdministration — administration.
- MedicationStatement — patient declaration.
- Location — pharmacy.