MedicationAdministration — Actual administration
The medication was taken: by whom, when, under what conditions, why. The executable trace of the medication circuit.
Purpose
MedicationAdministration records an effective or not administration: a nurse gives 1g of paracetamol to a patient, or the dose is refused, or the patient declines. The resource traces the full event: who (performer), what (medication), when (occurrenceDateTime or Period), where (encounter, location), how (route, dose), why (reason). With links to the originating MedicationRequest.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
status | code | 1..1 | Mandatory. in-progress, not-done, on-hold, completed, entered-in-error, stopped, unknown. |
statusReason | CodeableConcept[] | 0..* | Status reason (refusal, contraindication). |
category | CodeableConcept[] | 0..* | inpatient, outpatient, community. |
medication | CodeableReference(Medication) | 1..1 | Mandatory. Medication administered. |
subject | Reference(Patient | Group) | 1..1 | Mandatory. Beneficiary. |
encounter | Reference(Encounter) | 0..1 | Context. |
occurence[x] | dateTime | Period | Timing | 1..1 | Mandatory. When. |
recorded | dateTime | 0..1 | Entry date. |
isSubPotent | boolean | 0..1 | Sub-potent dose (vaccines). |
performer | BackboneElement[] | 0..* | Performers. |
reason | CodeableReference[] | 0..* | Administration reason. |
request | Reference(MedicationRequest) | 0..1 | Originating prescription. |
device | CodeableReference[] | 0..* | Devices used. |
note | Annotation[] | 0..* | Notes. |
dosage | BackboneElement | 0..1 | Actual posology (text, route, method, dose, rate). |
JSON example
Paracetamol 1g PO administered post-op:
{
"resourceType": "MedicationAdministration",
"id": "ma-paracetamol-001",
"status": "completed",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/medication-admin-category",
"code": "inpatient"
}]
}],
"medication": {
"reference": { "reference": "Medication/med-paracetamol-1g-tab" }
},
"subject": { "reference": "Patient/doe-john" },
"encounter": { "reference": "Encounter/enc-postop-001" },
"occurenceDateTime": "2026-05-15T08:30:00+02:00",
"request": { "reference": "MedicationRequest/mr-paracetamol-001" },
"performer": [{
"function": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/med-admin-perform-function",
"code": "performer"
}]
},
"actor": {
"reference": { "reference": "Practitioner/nurse-marie" }
}
}],
"reason": [{
"concept": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "22253000",
"display": "Pain"
}]
}
}],
"dosage": {
"text": "1 tablet PO",
"route": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "26643006",
"display": "Oral route"
}]
},
"dose": {
"value": 1,
"unit": "g",
"system": "http://unitsofmeasure.org",
"code": "g"
}
}
} Common pitfalls
- Confusing with MedicationRequest — Request = the prescription, Administration = the actual act.
- No
request— administration without a prescription = non-auditable. Must always be linked (except emergencies, to be documented viareason). - Missing
dosage— administration without actual dose is unusable for cumulative calculation. not-donestatus withoutstatusReason— a refusal without a reason is non-auditable.- Confusing
isSubPotent— reserved for partially administered vaccines; do not use for normally reduced doses.
Related resources
- Medication — administered product.
- MedicationRequest — originating prescription.
- MedicationDispense — dispensation.
- MedicationStatement — declarative version.
- Encounter — administration context.