A Medication Request is an order or request for both supply of medication and instructions for administration of the medication to a patient. At its core, it represents the prescriber's intent for a medication to be supplied and/or administered to a patient.
Version 1
{
"identifier": "<uuid4>", // Unique identifier for this medication request
"status": "option", // active will be the default, other options are active | on-hold | ended | stopped | completed | cancelled | entered-in-error | draft | unknown
"statusReason": "text" // Example discontinued reason
"intent": "option", // order will be the default, other options are proposal|plan|order|original-order|reflex-order|filler-order|instance-order
"priority": "option", // routine|urgent|asap|stat
"doNotPerform": "boolean", // True if medication is NOT to be given
"category": "option", // inpatient | outpatient | community | discharge
"medication": { "system": "str", "code": "str", "display": "str" } // Medication requested, use SNOWMED CT
"subject": "patient_id" // Patient Id
"encounter": "encounter_id" // Encounter during which request was created
"authoredOn": "dateTime", // When request was initially authored
"dosageInstruction": [
{
"text": "string", // Free text dosage instructions e.g. SIG
"additionalInstruction": [
{ // Supplemental instruction or warnings to the patient
"system": "str", "code": "str", "display": "str"
} // <http://hl7.org/fhir/ValueSet/additional-instruction-codes>
],
"patientInstruction": "string", // Patient or consumer oriented instructions
"timing": { // Maps to Prescription.frequency
"repeat": {
"frequency": "positiveInt", // Indicates the number of repetitions that should occur within a period.
"period": 1, // The duration to which the frequency applies. I.e. Event occurs frequency times per period
"periodUnit": "option", // s | min | h | d | wk | mo | a - unit of time (UCUM)
"boundsDuration": { // Number of days
"value": "positiveInt",
"unit": "option", // days
}
},
"code": {
// C | BID | TID | QID | AM | PM | QD | QOD | +
"system": "str", "code": "str", "display": "str"
} // <https://hl7.org/fhir/valueset-timing-abbreviation.html>
},
"asNeededBoolean": "bool", // True PRN prescriptions
"asNeededFor": "text": "string" // Maps to Prescription.indicator for PRN
"route": { // Maps to Prescription.route
"system": "str", "code": "str", "display": "str"
} // <https://hl7.org/fhir/valueset-route-codes.html>
},
"doseAndRate": [
{
"type": "option" // Ordered | Calculated
"doseRange": { // For titrated doses
"low": { "value": "number", "unit": "option" }, // start dosage
"high": { "value": "number", "unit": "option" }, // Target dosage
},
"doseQuantity": { "value": "number", "unit": "option" } // For regular doses
} // One of doseRange or doseQuantity should exisit at any point in time.
],
"maxDosePerPeriod": { // Upper limit on medication per unit of time
"numerator": { "value": "number", "unit": "option" }, // start dosage
"denominator": { "value": "number", "unit": "option" }, // start dosage
} // Maps to max_dosage and min_hours_between_doses
}],
"note": "string"
}
Below is a sequence diagram showing a typical medication request workflow:
sequenceDiagram
participant P as Doctor
participant MR as MedicationRequest
participant Ph as Pharmacy
participant MA as MedicationAdministration
P->>MR: Creates prescription
Note over MR: Status: draft
P->>MR: Signs prescription
Note over MR: Status: active
MR->>Ph: Sent for fulfillment
Ph->>MR: Processes request
Ph->>MA: Dispenses medication
MA->>MR: Records administration
Note over MR: Status: completed