Purpose of MedicationAdministration

MedicationAdministration documents that a medication was administered to a patient. This is crucial for:

  • Hospital medication tracking
  • Verifying order compliance
  • Billing and reimbursement
  • Clinical documentation

Creating an Administration Record

curl -X POST https://api.esus.health/fhir/MedicationAdministration \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/fhir+json" \
  -d '{
    "status": "completed",
    "medicationCodeableConcept": {
      "coding": [{
        "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
        "code": "308182",
        "display": "Ibuprofen 400mg"
      }]
    },
    "subjectId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "requestId": "c1a2e3d4-5b6f-7890-abcd-ef1234567890",
    "effectiveDateTime": "2026-04-21T14:30:00Z",
    "performer": [{
      "actor": {
        "reference": "Practitioner/a7b1c2d3-e4f5-6789-abcd-ef0123456789"
      }
    }],
    "dosage": {
      "text": "400mg by mouth once",
      "dose": { "value": 400, "unit": "mg" }
    }
  }'

Notes:

  • subjectId is flat; requestId links back to the originating MedicationRequest (flat UUID).
  • performer keeps the standard FHIR reference shape because it is an array of typed references.
  • dosage.dose is used in ESUS (not doseQuantity).
  • MedicationAdministration has no intent field.

Key Fields

FieldDescription
statusUse in-progress or completed
effectiveDateTimeWhen the medication was administered
performer[]Who administered the medication
requestIdLink back to the original order (UUID)

Searching Administrations

Find all administrations for a patient:

curl "https://api.esus.health/fhir/MedicationAdministration?patient=3fa85f64-5717-4562-b3fc-2c963f66afa6&date=ge2026-01-01" \
  -H "Authorization: Bearer YOUR_TOKEN"

Not Administered vs Refused

If a medication was not administered, use different status + reason combinations:

ScenarioStatus
Successfully administeredcompleted
Patient refusednot-done with statusReason
Medication unavailablenot-done with statusReason
Order cancelledcancelled