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

ElementTypeCardinalityDescription
MedicationRequest.identifierIdentifier0..*External ids for this request
MedicationRequest.basedOnReference0..*A plan or request that is fulfilled in whole or in part by this medication request
MedicationRequest.priorPrescriptionReference0..1Reference to an order/prescription that is being replaced by this MedicationRequest
MedicationRequest.groupIdentifierIdentifier0..1Composite request this is part of
MedicationRequest.statuscode1..1active | on-hold | ended | stopped | completed | cancelled | entered-in-error | draft | unknown
MedicationRequest.statusReasonCodeableConcept0..1Reason for current status
MedicationRequest.statusChangeddateTime0..1When the status was changed
MedicationRequest.intentcode1..1proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
MedicationRequest.categoryCodeableConcept0..*Grouping or category of medication request
MedicationRequest.prioritycode0..1routine | urgent | asap | stat
MedicationRequest.doNotPerformboolean0..1True if patient is to stop taking or not to start taking the medication
MedicationRequest.medicationCodeableReference1..1Medication to be taken
MedicationRequest.subjectReference1..1Individual or group for whom the medication has been requested
MedicationRequest.informationSourceReference0..*The person or organization who provided the information about this request, if the source is someone other than the requestor
MedicationRequest.encounterReference0..1Encounter created as part of encounter/admission/stay
MedicationRequest.supportingInformationReference0..*Information to support fulfilling of the medication
MedicationRequest.authoredOndateTime0..1When request was initially authored
MedicationRequest.requesterReference0..1Who/What requested the Request
MedicationRequest.reportedboolean0..1Reported rather than primary record
MedicationRequest.performerTypeCodeableConcept0..1Desired kind of performer of the medication administration
MedicationRequest.performerReference0..*Intended performer of administration
MedicationRequest.deviceCodeableReference0..*Intended type of device for the administration
MedicationRequest.recorderReference0..1Person who entered the request
MedicationRequest.reasonCodeableReference0..*Reason or indication for ordering or not ordering the medication
MedicationRequest.courseOfTherapyTypeCodeableConcept0..1Overall pattern of medication administration
MedicationRequest.insuranceReference0..*Associated insurance coverage
MedicationRequest.noteAnnotation0..*Information about the prescription
MedicationRequest.renderedDosageInstructionmarkdown0..1Full representation of the dosage instructions
MedicationRequest.effectiveDosePeriodPeriod0..1Period over which the medication is to be taken
MedicationRequest.dosageInstructionDosage0..*Specific instructions for how the medication should be taken
MedicationRequest.dispenseRequestBackboneElement0..1Medication supply authorization
MedicationRequest.dispenseRequest.idString0..1Unique id for inter-element referencing
MedicationRequest.dispenseRequest.extensionExtension0..*Additional content defined by implementations
MedicationRequest.dispenseRequest.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
MedicationRequest.dispenseRequest.initialFillBackboneElement0..1First fill details
MedicationRequest.dispenseRequest.initialFill.idString0..1Unique id for inter-element referencing
MedicationRequest.dispenseRequest.initialFill.extensionExtension0..*Additional content defined by implementations
MedicationRequest.dispenseRequest.initialFill.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
MedicationRequest.dispenseRequest.initialFill.quantityQuantity0..1First fill quantity
MedicationRequest.dispenseRequest.initialFill.durationDuration0..1First fill duration
MedicationRequest.dispenseRequest.dispenseIntervalDuration0..1Minimum period of time between dispenses
MedicationRequest.dispenseRequest.validityPeriodPeriod0..1Time period supply is authorized for
MedicationRequest.dispenseRequest.numberOfRepeatsAllowedunsignedInt0..1Number of refills authorized
MedicationRequest.dispenseRequest.quantityQuantity0..1Amount of medication to supply per dispense
MedicationRequest.dispenseRequest.expectedSupplyDurationDuration0..1Number of days supply per dispense
MedicationRequest.dispenseRequest.dispenserReference0..1Intended performer of dispense
MedicationRequest.dispenseRequest.dispenserInstructionAnnotation0..*Additional information for the dispenser
MedicationRequest.dispenseRequest.doseAdministrationAidCodeableConcept0..1Type of adherence packaging to use for the dispense
MedicationRequest.substitutionBackboneElement0..1Any restrictions on medication substitution
MedicationRequest.substitution.idString0..1Unique id for inter-element referencing
MedicationRequest.substitution.extensionExtension0..*Additional content defined by implementations
MedicationRequest.substitution.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
MedicationRequest.substitution.allowed[x]boolean | CodeableConcept1..1Whether substitution is allowed or not
MedicationRequest.substitution.reasonCodeableConcept0..1Why should (not) substitution be made
MedicationRequest.eventHistoryReference0..*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 text
  • MedicationRequest.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.