MedicationRequest — Medication prescription
The medication prescription in FHIR. Covers outpatient e-prescriptions, hospital orders, named prescriptions, and refills.
Purpose
MedicationRequest represents an order, request or recommendation for medication for a patient. The FHIR counterpart of OrderMessage for medications. Covers:
- outpatient e-prescriptions sent to a pharmacist;
- inpatient orders dispensed by the hospital pharmacy;
- named individual prescriptions;
- refills for chronic treatments;
- clinical decision support recommendations (intent
plan,proposal).
For the actual dispense event, see MedicationDispense. For observed administration, see MedicationAdministration (hospital). For the patient's known regimen without an identifiable prescription, see MedicationStatement.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers (prescription number). |
status | code | 1..1 | active, on-hold, ended, stopped, completed, cancelled, entered-in-error, draft, unknown. |
statusReason | CodeableConcept | 0..1 | Status reason (stopped on side effect, allergy…). |
intent | code | 1..1 | proposal, plan, order, original-order, reflex-order, filler-order, instance-order, option. |
category | CodeableConcept[] | 0..* | Administration location (inpatient, outpatient, community, discharge…). |
priority | code | 0..1 | routine, urgent, asap, stat. |
doNotPerform | boolean | 0..1 | Explicit contra-indication — do NOT prescribe. |
medication | CodeableReference(Medication) | 1..1 | Medication — RxNorm, ATC, local code, or Medication resource. |
subject | Reference(Patient | Group) | 1..1 | Patient. |
encounter | Reference(Encounter) | 0..1 | Prescription encounter. |
authoredOn | dateTime | 0..1 | Prescription date. |
requester | Reference | 0..1 | Prescriber (Practitioner, PractitionerRole, Organization, Patient…). |
reason | CodeableReference(Condition | Observation)[] | 0..* | Reason (clinical indication). |
courseOfTherapyType | CodeableConcept | 0..1 | Course type (acute, continuous, seasonal). |
insurance | Reference(Coverage | ClaimResponse)[] | 0..* | Associated coverage. |
note | Annotation[] | 0..* | Prescriber notes. |
dosageInstruction | Dosage[] | 0..* | Dosage (see dedicated section). |
dispenseRequest | BackboneElement | 0..1 | Dispense conditions (quantity, refills, validity, expected dispenser). |
substitution | BackboneElement | 0..1 | Generic substitution allowed or not. |
priorPrescription | Reference(MedicationRequest) | 0..1 | Previous prescription (refill chain). |
dosageInstruction
Central sub-element that structures dosage. Main fields:
text— human-readable free-text ("1 capsule 3 times daily for 7 days").timing.repeat.frequency+timing.repeat.period+timing.repeat.periodUnit— frequency.timing.repeat.boundsDurationorboundsPeriod— total duration.route— route of administration (SNOMED CT).method— method (slow infusion, sublingual…).doseAndRate[].doseQuantityordoseRange— unit dose.doseAndRate[].rateQuantity— flow rate (infusions).maxDosePerPeriod— maximum dose per period.asNeededFor— PRN medication with indication.
JSON example
Amoxicillin 500 mg PO, 3×/day, 7 days, indication otitis media:
{
"resourceType": "MedicationRequest",
"id": "example",
"status": "active",
"intent": "order",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/medicationrequest-admin-location",
"code": "inpatient",
"display": "Inpatient"
}]
}],
"priority": "routine",
"medication": {
"concept": {
"coding": [{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "197361",
"display": "Amoxicillin 500 MG Oral Capsule"
}, {
"system": "http://snomed.info/sct",
"code": "323510009",
"display": "Amoxicillin 500mg capsule"
}],
"text": "Amoxicillin 500 mg oral capsule"
}
},
"subject": { "reference": "Patient/example" },
"encounter": { "reference": "Encounter/example" },
"authoredOn": "2026-05-14T11:00:00+01:00",
"requester": { "reference": "Practitioner/example" },
"reason": [{
"concept": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "65363002",
"display": "Otitis media"
}]
}
}],
"dosageInstruction": [{
"sequence": 1,
"text": "1 capsule by mouth, 3 times daily, for 7 days.",
"timing": {
"repeat": {
"frequency": 3,
"period": 1,
"periodUnit": "d",
"boundsDuration": { "value": 7, "unit": "d", "system": "http://unitsofmeasure.org", "code": "d" }
}
},
"route": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "26643006",
"display": "Oral route"
}]
},
"doseAndRate": [{
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/dose-rate-type",
"code": "ordered",
"display": "Ordered"
}]
},
"doseQuantity": {
"value": 1,
"unit": "capsule",
"system": "http://unitsofmeasure.org",
"code": "{capsule}"
}
}]
}],
"dispenseRequest": {
"validityPeriod": {
"start": "2026-05-14",
"end": "2026-05-21"
},
"numberOfRepeatsAllowed": 0,
"quantity": {
"value": 21,
"unit": "capsule",
"system": "http://unitsofmeasure.org",
"code": "{capsule}"
}
},
"substitution": {
"allowedBoolean": true
}
} medicationdual-coded — RxNorm197361+ SNOMED323510009.dosageInstructionwith structuredtiming: 3 times per 1 day, bounds 7 days.route= oral (SNOMED26643006).dispenseRequest.quantity= 21 capsules — consistent with 3 × 7.substitution.allowedBoolean= true — generic substitution allowed.
REST API
GET /MedicationRequest/example— direct fetch.GET /MedicationRequest?patient=example&status=active— active treatments.GET /MedicationRequest?patient=example&authoredon=ge2026-01-01— recent prescriptions.GET /MedicationRequest?patient=example&medication.code=http://www.nlm.nih.gov/research/umls/rxnorm|197361— history of amoxicillin.$lookupon an RxNorm code to retrieve drug details.
Profiles
| Profile | Regulator | Restrictions |
|---|---|---|
| US Core MedicationRequest | HL7 US Realm | Must carry status, intent, medication (RxNorm), subject, authoredOn, requester. |
| IPS MedicationRequest | HL7 + CEN/TC 251 | Cross-border. medication coded SNOMED and/or ATC. |
| FR Core MedicationRequest | ANS | French profile — CIP / UCD for the drug, ICD-10 for reason. |
Common pitfalls
status=active+intent=plan: inconsistent. A plan is not an active prescription. For execution,intent=order.medication.conceptwithout RxNorm/ATC coding: free-text-only prescriptions are not interoperable. Always code.dispenseRequest.quantity≠dosageInstruction× duration: an order of 3 tab/day for 7 days but 50 tablets dispensed is suspicious (and illegal in several jurisdictions).- Mixing
doseQuantityanddoseRange: only one at a time perdoseAndRate. - Refill without
priorPrescription: breaks chronic treatment traceability. - Malformed UCUM:
mgis valid UCUM,milligramis not.{capsule}(with braces) for enumerable units.
Related resources
- Patient — subject.
- Encounter — context.
- Practitioner — prescriber.
- Medication — drug detail (form, composition, manufacturer).
- MedicationDispense — pharmacy dispense.
- MedicationAdministration — observed administration (hospital).
- MedicationStatement — known regimen (anamnesis).
- Condition — referenced via
reason(indication). - HL7 v2 equivalent — ORM^O01 segments RXO / RXE / RXR.