FHIR MedicationRequest Resource (R4)
MedicationRequest is an order or request for a medication: what, for whom, how much, and by whom. Element table, search parameters, example JSON and FHIRPath for FHIR R4.
- FHIR MedicationRequest Resource (R4) — part of the free FHIR Toolbox library.
- Runs entirely in your browser: your FHIR data is never uploaded to a server.
Overview
MedicationRequest is an order or request for a medication: what, for whom, how much, and by whom. It is the prescribing side of the medication workflow, with MedicationDispense and MedicationAdministration recording what happened next. The medication itself was reworked in R5 to a CodeableReference.
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
| MedicationRequest.identifier | Identifier | 0..* | External ids for this request |
| MedicationRequest.status | code | 1..1 | active | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown |
| MedicationRequest.statusReason | CodeableConcept | 0..1 | Reason for current status |
| MedicationRequest.intent | code | 1..1 | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option |
| MedicationRequest.category | CodeableConcept | 0..* | Type of medication usage |
| MedicationRequest.priority | code | 0..1 | routine | urgent | asap | stat |
| MedicationRequest.doNotPerform | boolean | 0..1 | True if request is prohibiting action |
| MedicationRequest.reported[x] | boolean | Reference | 0..1 | Reported rather than primary record |
| MedicationRequest.medication[x] | CodeableConcept | Reference | 1..1 | Medication to be taken |
| MedicationRequest.subject | Reference | 1..1 | Who or group medication request is for |
| MedicationRequest.encounter | Reference | 0..1 | Encounter created as part of encounter/admission/stay |
| MedicationRequest.supportingInformation | Reference | 0..* | Information to support ordering of the medication |
| MedicationRequest.authoredOn | dateTime | 0..1 | When request was initially authored |
| MedicationRequest.requester | Reference | 0..1 | Who/What requested the Request |
| MedicationRequest.performer | Reference | 0..1 | Intended performer of administration |
| MedicationRequest.performerType | CodeableConcept | 0..1 | Desired kind of performer of the medication administration |
| MedicationRequest.recorder | Reference | 0..1 | Person who entered the request |
| MedicationRequest.reasonCode | CodeableConcept | 0..* | Reason or indication for ordering or not ordering the medication |
| MedicationRequest.reasonReference | Reference | 0..* | Condition or observation that supports why the prescription is being written |
| MedicationRequest.instantiatesCanonical | canonical | 0..* | Instantiates FHIR protocol or definition |
| MedicationRequest.instantiatesUri | uri | 0..* | Instantiates external protocol or definition |
| MedicationRequest.basedOn | Reference | 0..* | What request fulfills |
| MedicationRequest.groupIdentifier | Identifier | 0..1 | Composite request this is part of |
| MedicationRequest.courseOfTherapyType | CodeableConcept | 0..1 | Overall pattern of medication administration |
| MedicationRequest.insurance | Reference | 0..* | Associated insurance coverage |
| MedicationRequest.note | Annotation | 0..* | Information about the prescription |
| MedicationRequest.dosageInstruction | Dosage | 0..* | How the medication should be taken |
| MedicationRequest.dispenseRequest | BackboneElement | 0..1 | Medication supply authorization |
| MedicationRequest.dispenseRequest.id | String | 0..1 | Unique id for inter-element referencing |
| MedicationRequest.dispenseRequest.extension | Extension | 0..* | Additional content defined by implementations |
| MedicationRequest.dispenseRequest.modifierExtension | Extension | 0..* | Extensions that cannot be ignored even if unrecognized |
| MedicationRequest.dispenseRequest.initialFill | BackboneElement | 0..1 | First fill details |
| MedicationRequest.dispenseRequest.initialFill.id | String | 0..1 | Unique id for inter-element referencing |
| MedicationRequest.dispenseRequest.initialFill.extension | Extension | 0..* | Additional content defined by implementations |
| MedicationRequest.dispenseRequest.initialFill.modifierExtension | Extension | 0..* | Extensions that cannot be ignored even if unrecognized |
| MedicationRequest.dispenseRequest.initialFill.quantity | Quantity | 0..1 | First fill quantity |
| MedicationRequest.dispenseRequest.initialFill.duration | Duration | 0..1 | First fill duration |
| MedicationRequest.dispenseRequest.dispenseInterval | Duration | 0..1 | Minimum period of time between dispenses |
| MedicationRequest.dispenseRequest.validityPeriod | Period | 0..1 | Time period supply is authorized for |
| MedicationRequest.dispenseRequest.numberOfRepeatsAllowed | unsignedInt | 0..1 | Number of refills authorized |
| MedicationRequest.dispenseRequest.quantity | Quantity | 0..1 | Amount of medication to supply per dispense |
| MedicationRequest.dispenseRequest.expectedSupplyDuration | Duration | 0..1 | Number of days supply per dispense |
| MedicationRequest.dispenseRequest.performer | Reference | 0..1 | Intended dispenser |
| MedicationRequest.substitution | BackboneElement | 0..1 | Any restrictions on medication substitution |
| MedicationRequest.substitution.id | String | 0..1 | Unique id for inter-element referencing |
| MedicationRequest.substitution.extension | Extension | 0..* | Additional content defined by implementations |
| MedicationRequest.substitution.modifierExtension | Extension | 0..* | Extensions that cannot be ignored even if unrecognized |
| MedicationRequest.substitution.allowed[x] | boolean | CodeableConcept | 1..1 | Whether substitution is allowed or not |
| MedicationRequest.substitution.reason | CodeableConcept | 0..1 | Why should (not) substitution be made |
| MedicationRequest.priorPrescription | Reference | 0..1 | An order/prescription that is being replaced |
| MedicationRequest.detectedIssue | Reference | 0..* | Clinical Issue with action |
| MedicationRequest.eventHistory | Reference | 0..* | A list of events of interest in the lifecycle |
Example JSON (R4)
{
"resourceType": "MedicationRequest",
"id": "example",
"status": "active",
"intent": "order",
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "197361",
"display": "Amlodipine 5 MG Oral Tablet"
}
]
},
"subject": {
"reference": "Patient/example"
},
"authoredOn": "2024-05-01",
"dosageInstruction": [
{
"text": "1 tablet by mouth once daily"
}
]
}
FHIRPath
MedicationRequest.medication— The medication (R4 choice element; R5 CodeableReference)MedicationRequest.dosageInstruction.text— Dosage instructions as textMedicationRequest.subject.reference— Patient reference
Common validation errors
- Using medicationCodeableConcept in R5. R5 uses medication with concept or reference inside.
- Omitting intent. Both status and intent are required; intent is usually order.
- Putting dose instructions only in a note. Use dosageInstruction (text and/or structured timing and doseAndRate).
- Referencing a Patient by name instead of a Reference. subject needs { "reference": "Patient/id" }.
FHIR Toolbox is a free, privacy-first collection of HL7 FHIR utilities by Omindra Labs. Every tool performs zero-server processing — your health data never leaves your device.