FHIR MedicationRequest Resource (R5)
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 R5.
- FHIR MedicationRequest Resource (R5) — 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.basedOn | Reference | 0..* | A plan or request that is fulfilled in whole or in part by this medication request |
| MedicationRequest.priorPrescription | Reference | 0..1 | Reference to an order/prescription that is being replaced by this MedicationRequest |
| MedicationRequest.groupIdentifier | Identifier | 0..1 | Composite request this is part of |
| MedicationRequest.status | code | 1..1 | active | on-hold | ended | stopped | completed | cancelled | entered-in-error | draft | unknown |
| MedicationRequest.statusReason | CodeableConcept | 0..1 | Reason for current status |
| MedicationRequest.statusChanged | dateTime | 0..1 | When the status was changed |
| MedicationRequest.intent | code | 1..1 | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option |
| MedicationRequest.category | CodeableConcept | 0..* | Grouping or category of medication request |
| MedicationRequest.priority | code | 0..1 | routine | urgent | asap | stat |
| MedicationRequest.doNotPerform | boolean | 0..1 | True if patient is to stop taking or not to start taking the medication |
| MedicationRequest.medication | CodeableReference | 1..1 | Medication to be taken |
| MedicationRequest.subject | Reference | 1..1 | Individual or group for whom the medication has been requested |
| MedicationRequest.informationSource | Reference | 0..* | The person or organization who provided the information about this request, if the source is someone other than the requestor |
| MedicationRequest.encounter | Reference | 0..1 | Encounter created as part of encounter/admission/stay |
| MedicationRequest.supportingInformation | Reference | 0..* | Information to support fulfilling of the medication |
| MedicationRequest.authoredOn | dateTime | 0..1 | When request was initially authored |
| MedicationRequest.requester | Reference | 0..1 | Who/What requested the Request |
| MedicationRequest.reported | boolean | 0..1 | Reported rather than primary record |
| MedicationRequest.performerType | CodeableConcept | 0..1 | Desired kind of performer of the medication administration |
| MedicationRequest.performer | Reference | 0..* | Intended performer of administration |
| MedicationRequest.device | CodeableReference | 0..* | Intended type of device for the administration |
| MedicationRequest.recorder | Reference | 0..1 | Person who entered the request |
| MedicationRequest.reason | CodeableReference | 0..* | Reason or indication for ordering or not ordering the medication |
| 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.renderedDosageInstruction | markdown | 0..1 | Full representation of the dosage instructions |
| MedicationRequest.effectiveDosePeriod | Period | 0..1 | Period over which the medication is to be taken |
| MedicationRequest.dosageInstruction | Dosage | 0..* | Specific instructions for 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.dispenser | Reference | 0..1 | Intended performer of dispense |
| MedicationRequest.dispenseRequest.dispenserInstruction | Annotation | 0..* | Additional information for the dispenser |
| MedicationRequest.dispenseRequest.doseAdministrationAid | CodeableConcept | 0..1 | Type of adherence packaging to use for the dispense |
| 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.eventHistory | Reference | 0..* | A list of events of interest in the lifecycle |
Example JSON (R5)
{
"resourceType": "MedicationRequest",
"id": "example",
"status": "active",
"intent": "order",
"medication": {
"concept": {
"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.