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.

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

FieldTypeCardinalityRole
statuscode1..1Mandatory. in-progress, not-done, on-hold, completed, entered-in-error, stopped, unknown.
statusReasonCodeableConcept[]0..*Status reason (refusal, contraindication).
categoryCodeableConcept[]0..*inpatient, outpatient, community.
medicationCodeableReference(Medication)1..1Mandatory. Medication administered.
subjectReference(Patient | Group)1..1Mandatory. Beneficiary.
encounterReference(Encounter)0..1Context.
occurence[x]dateTime | Period | Timing1..1Mandatory. When.
recordeddateTime0..1Entry date.
isSubPotentboolean0..1Sub-potent dose (vaccines).
performerBackboneElement[]0..*Performers.
reasonCodeableReference[]0..*Administration reason.
requestReference(MedicationRequest)0..1Originating prescription.
deviceCodeableReference[]0..*Devices used.
noteAnnotation[]0..*Notes.
dosageBackboneElement0..1Actual posology (text, route, method, dose, rate).

JSON example

Paracetamol 1g PO administered post-op:

json medicationadministration-paracetamol.json
{
  "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 via reason).
  • Missing dosage — administration without actual dose is unusable for cumulative calculation.
  • not-done status without statusReason — a refusal without a reason is non-auditable.
  • Confusing isSubPotent — reserved for partially administered vaccines; do not use for normally reduced doses.