This page is part of the FHIR Specification (v1.4.0: STU 3 Ballot 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions
Pharmacy Work Group | Maturity Level: 1 | Compartments: Encounter, Patient, Practitioner |
An order for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationOrder" rather than "MedicationPrescription" to generalize the use across inpatient and outpatient settings as well as for care plans, etc.
This resource covers all orders for medications for a patient. This includes in-patient medication orders as well as community orders (whether filled by the prescriber or by a pharmacy). It also includes orders for over-the-counter medications (e.g. Aspirin), total parenteral nutrition and diet/ vitamin supplements. It may be used to support the order of medication-related devices. It is not intended for use in prescribing particular diets, or for ordering non-medication-related items (eye-glasses, supplies, etc.)
The Medication domain includes a number of related resources
MedicationOrder | An order for both supply of the medication and the instructions for administration of the medicine to a patient. |
MedicationDispense | Provision of a supply of a medication with the intention that it is subsequently consumed by a patient (usually in response to a prescription). |
MedicationAdministration | When a patient actually consumes a medicine, or it is otherwise administered to them |
MedicationStatement | This is a record of medication being taken by a patient, or that the medication has been given to a patient where the record is the result of a report from the patient, or another clinician. A medication statement is not a part of the prescribe->dispense->administer sequence but is a report that such a sequence (or at least a part of it) did take place resulting in a belief that the patient has received a particular medication. |
This resource is referenced by CarePlan, Claim, ClinicalImpression, ExplanationOfBenefit, MedicationAdministration and MedicationDispense
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationOrder | Σ | DomainResource | Prescription of medication to for patient | |
identifier | Σ | 0..* | Identifier | External identifier |
status | ?! Σ | 0..1 | code | active | on-hold | completed | entered-in-error | stopped | draft MedicationOrderStatus (Required) |
medication[x] | Σ | 1..1 | Medication to be taken | |
medicationCodeableConcept | CodeableConcept | |||
medicationReference | Reference(Medication) | |||
patient | Σ | 0..1 | Reference(Patient) | Who prescription is for |
encounter | Σ | 0..1 | Reference(Encounter) | Created during encounter/admission/stay |
dateWritten | Σ | 0..1 | dateTime | When prescription was authorized |
prescriber | Σ | 0..1 | Reference(Practitioner) | Who ordered the medication(s) |
reasonCode | Σ | 0..* | CodeableConcept | Reason or indication for writing the prescription Condition/Problem/Diagnosis Codes (Example) |
reasonReference | Σ | 0..* | Reference(Condition) | Condition that supports why the prescription is being written |
dateEnded | Σ | 0..1 | dateTime | When prescription was stopped |
reasonEnded | Σ | 0..1 | CodeableConcept | Why prescription was stopped |
note | Σ | 0..* | Annotation | Information about the prescription |
dosageInstruction | Σ | 0..* | BackboneElement | How medication should be taken |
text | Σ | 0..1 | string | Free text dosage instructions e.g. SIG |
additionalInstructions | Σ | 0..1 | CodeableConcept | Supplemental instructions - e.g. "with meals" |
timing | Σ | 0..1 | Timing | When medication should be administered |
asNeeded[x] | Σ | 0..1 | Take "as needed" (for x) | |
asNeededBoolean | boolean | |||
asNeededCodeableConcept | CodeableConcept | |||
site[x] | Σ | 0..1 | Body site to administer to SNOMED CT Anatomical Structure for Administration Site Codes (Example) | |
siteCodeableConcept | CodeableConcept | |||
siteReference | Reference(BodySite) | |||
route | Σ | 0..1 | CodeableConcept | How drug should enter body SNOMED CT Route Codes (Example) |
method | Σ | 0..1 | CodeableConcept | Technique for administering medication |
dose[x] | Σ | 0..1 | Amount of medication per dose | |
doseRange | Range | |||
doseQuantity | SimpleQuantity | |||
rate[x] | Σ | 0..1 | Amount of medication per unit of time | |
rateRatio | Ratio | |||
rateRange | Range | |||
rateQuantity | SimpleQuantity | |||
maxDosePerPeriod | Σ | 0..1 | Ratio | Upper limit on medication per unit of time |
dispenseRequest | Σ | 0..1 | BackboneElement | Medication supply authorization |
medication[x] | Σ | 0..1 | Product to be supplied | |
medicationCodeableConcept | CodeableConcept | |||
medicationReference | Reference(Medication) | |||
validityPeriod | Σ | 0..1 | Period | Time period supply is authorized for |
numberOfRepeatsAllowed | Σ | 0..1 | positiveInt | Number of refills authorized |
quantity | Σ | 0..1 | SimpleQuantity | Amount of medication to supply per dispense |
expectedSupplyDuration | Σ | 0..1 | Duration | Number of days supply per dispense |
substitution | Σ | 0..1 | BackboneElement | Any restrictions on medication substitution |
type | Σ | 1..1 | CodeableConcept | generic | formulary + ActSubstanceAdminSubstitutionCode (Example) |
reason | Σ | 0..1 | CodeableConcept | Why should (not) substitution be made SubstanceAdminSubstitutionReason (Example) |
priorPrescription | Σ | 0..1 | Reference(MedicationOrder) | An order/prescription that this supersedes |
Documentation for this format |
UML Diagram
XML Template
<MedicationOrder xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier External identifier --></identifier> <status value="[code]"/><!-- 0..1 active | on-hold | completed | entered-in-error | stopped | draft --> <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) Medication to be taken --></medication[x]> <patient><!-- 0..1 Reference(Patient) Who prescription is for --></patient> <encounter><!-- 0..1 Reference(Encounter) Created during encounter/admission/stay --></encounter> <dateWritten value="[dateTime]"/><!-- 0..1 When prescription was authorized --> <prescriber><!-- 0..1 Reference(Practitioner) Who ordered the medication(s) --></prescriber> <reasonCode><!-- 0..* CodeableConcept Reason or indication for writing the prescription --></reasonCode> <reasonReference><!-- 0..* Reference(Condition) Condition that supports why the prescription is being written --></reasonReference> <dateEnded value="[dateTime]"/><!-- 0..1 When prescription was stopped --> <reasonEnded><!-- 0..1 CodeableConcept Why prescription was stopped --></reasonEnded> <note><!-- 0..* Annotation Information about the prescription --></note> <dosageInstruction> <!-- 0..* How medication should be taken --> <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG --> <additionalInstructions><!-- 0..1 CodeableConcept Supplemental instructions - e.g. "with meals" --></additionalInstructions> <timing><!-- 0..1 Timing When medication should be administered --></timing> <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" (for x) --></asNeeded[x]> <site[x]><!-- 0..1 CodeableConcept|Reference(BodySite) Body site to administer to --></site[x]> <route><!-- 0..1 CodeableConcept How drug should enter body --></route> <method><!-- 0..1 CodeableConcept Technique for administering medication --></method> <dose[x]><!-- 0..1 Range|Quantity(SimpleQuantity) Amount of medication per dose --></dose[x]> <rate[x]><!-- 0..1 Ratio|Range|Quantity(SimpleQuantity) Amount of medication per unit of time --></rate[x]> <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod> </dosageInstruction> <dispenseRequest> <!-- 0..1 Medication supply authorization --> <medication[x]><!-- 0..1 CodeableConcept|Reference(Medication) Product to be supplied --></medication[x]> <validityPeriod><!-- 0..1 Period Time period supply is authorized for --></validityPeriod> <numberOfRepeatsAllowed value="[positiveInt]"/><!-- 0..1 Number of refills authorized --> <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity> <expectedSupplyDuration><!-- 0..1 Quantity(Duration) Number of days supply per dispense --></expectedSupplyDuration> </dispenseRequest> <substitution> <!-- 0..1 Any restrictions on medication substitution --> <type><!-- 1..1 CodeableConcept generic | formulary + --></type> <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason> </substitution> <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription> </MedicationOrder>
JSON Template
{ "resourceType" : "MedicationOrder", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // External identifier "status" : "<code>", // active | on-hold | completed | entered-in-error | stopped | draft // medication[x]: Medication to be taken. One of these 2: "medicationCodeableConcept" : { CodeableConcept }, "medicationReference" : { Reference(Medication) }, "patient" : { Reference(Patient) }, // Who prescription is for "encounter" : { Reference(Encounter) }, // Created during encounter/admission/stay "dateWritten" : "<dateTime>", // When prescription was authorized "prescriber" : { Reference(Practitioner) }, // Who ordered the medication(s) "reasonCode" : [{ CodeableConcept }], // Reason or indication for writing the prescription "reasonReference" : [{ Reference(Condition) }], // Condition that supports why the prescription is being written "dateEnded" : "<dateTime>", // When prescription was stopped "reasonEnded" : { CodeableConcept }, // Why prescription was stopped "note" : [{ Annotation }], // Information about the prescription "dosageInstruction" : [{ // How medication should be taken "text" : "<string>", // Free text dosage instructions e.g. SIG "additionalInstructions" : { CodeableConcept }, // Supplemental instructions - e.g. "with meals" "timing" : { Timing }, // When medication should be administered // asNeeded[x]: Take "as needed" (for x). One of these 2: "asNeededBoolean" : <boolean>, "asNeededCodeableConcept" : { CodeableConcept }, // site[x]: Body site to administer to. One of these 2: "siteCodeableConcept" : { CodeableConcept }, "siteReference" : { Reference(BodySite) }, "route" : { CodeableConcept }, // How drug should enter body "method" : { CodeableConcept }, // Technique for administering medication // dose[x]: Amount of medication per dose. One of these 2: "doseRange" : { Range }, "doseQuantity" : { Quantity(SimpleQuantity) }, // rate[x]: Amount of medication per unit of time. One of these 3: "rateRatio" : { Ratio }, "rateRange" : { Range }, "rateQuantity" : { Quantity(SimpleQuantity) }, "maxDosePerPeriod" : { Ratio } // Upper limit on medication per unit of time }], "dispenseRequest" : { // Medication supply authorization // medication[x]: Product to be supplied. One of these 2: "medicationCodeableConcept" : { CodeableConcept }, "medicationReference" : { Reference(Medication) }, "validityPeriod" : { Period }, // Time period supply is authorized for "numberOfRepeatsAllowed" : "<positiveInt>", // Number of refills authorized "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense "expectedSupplyDuration" : { Quantity(Duration) } // Number of days supply per dispense }, "substitution" : { // Any restrictions on medication substitution "type" : { CodeableConcept }, // R! generic | formulary + "reason" : { CodeableConcept } // Why should (not) substitution be made }, "priorPrescription" : { Reference(MedicationOrder) } // An order/prescription that this supersedes }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationOrder | Σ | DomainResource | Prescription of medication to for patient | |
identifier | Σ | 0..* | Identifier | External identifier |
status | ?! Σ | 0..1 | code | active | on-hold | completed | entered-in-error | stopped | draft MedicationOrderStatus (Required) |
medication[x] | Σ | 1..1 | Medication to be taken | |
medicationCodeableConcept | CodeableConcept | |||
medicationReference | Reference(Medication) | |||
patient | Σ | 0..1 | Reference(Patient) | Who prescription is for |
encounter | Σ | 0..1 | Reference(Encounter) | Created during encounter/admission/stay |
dateWritten | Σ | 0..1 | dateTime | When prescription was authorized |
prescriber | Σ | 0..1 | Reference(Practitioner) | Who ordered the medication(s) |
reasonCode | Σ | 0..* | CodeableConcept | Reason or indication for writing the prescription Condition/Problem/Diagnosis Codes (Example) |
reasonReference | Σ | 0..* | Reference(Condition) | Condition that supports why the prescription is being written |
dateEnded | Σ | 0..1 | dateTime | When prescription was stopped |
reasonEnded | Σ | 0..1 | CodeableConcept | Why prescription was stopped |
note | Σ | 0..* | Annotation | Information about the prescription |
dosageInstruction | Σ | 0..* | BackboneElement | How medication should be taken |
text | Σ | 0..1 | string | Free text dosage instructions e.g. SIG |
additionalInstructions | Σ | 0..1 | CodeableConcept | Supplemental instructions - e.g. "with meals" |
timing | Σ | 0..1 | Timing | When medication should be administered |
asNeeded[x] | Σ | 0..1 | Take "as needed" (for x) | |
asNeededBoolean | boolean | |||
asNeededCodeableConcept | CodeableConcept | |||
site[x] | Σ | 0..1 | Body site to administer to SNOMED CT Anatomical Structure for Administration Site Codes (Example) | |
siteCodeableConcept | CodeableConcept | |||
siteReference | Reference(BodySite) | |||
route | Σ | 0..1 | CodeableConcept | How drug should enter body SNOMED CT Route Codes (Example) |
method | Σ | 0..1 | CodeableConcept | Technique for administering medication |
dose[x] | Σ | 0..1 | Amount of medication per dose | |
doseRange | Range | |||
doseQuantity | SimpleQuantity | |||
rate[x] | Σ | 0..1 | Amount of medication per unit of time | |
rateRatio | Ratio | |||
rateRange | Range | |||
rateQuantity | SimpleQuantity | |||
maxDosePerPeriod | Σ | 0..1 | Ratio | Upper limit on medication per unit of time |
dispenseRequest | Σ | 0..1 | BackboneElement | Medication supply authorization |
medication[x] | Σ | 0..1 | Product to be supplied | |
medicationCodeableConcept | CodeableConcept | |||
medicationReference | Reference(Medication) | |||
validityPeriod | Σ | 0..1 | Period | Time period supply is authorized for |
numberOfRepeatsAllowed | Σ | 0..1 | positiveInt | Number of refills authorized |
quantity | Σ | 0..1 | SimpleQuantity | Amount of medication to supply per dispense |
expectedSupplyDuration | Σ | 0..1 | Duration | Number of days supply per dispense |
substitution | Σ | 0..1 | BackboneElement | Any restrictions on medication substitution |
type | Σ | 1..1 | CodeableConcept | generic | formulary + ActSubstanceAdminSubstitutionCode (Example) |
reason | Σ | 0..1 | CodeableConcept | Why should (not) substitution be made SubstanceAdminSubstitutionReason (Example) |
priorPrescription | Σ | 0..1 | Reference(MedicationOrder) | An order/prescription that this supersedes |
Documentation for this format |
XML Template
<MedicationOrder xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier External identifier --></identifier> <status value="[code]"/><!-- 0..1 active | on-hold | completed | entered-in-error | stopped | draft --> <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) Medication to be taken --></medication[x]> <patient><!-- 0..1 Reference(Patient) Who prescription is for --></patient> <encounter><!-- 0..1 Reference(Encounter) Created during encounter/admission/stay --></encounter> <dateWritten value="[dateTime]"/><!-- 0..1 When prescription was authorized --> <prescriber><!-- 0..1 Reference(Practitioner) Who ordered the medication(s) --></prescriber> <reasonCode><!-- 0..* CodeableConcept Reason or indication for writing the prescription --></reasonCode> <reasonReference><!-- 0..* Reference(Condition) Condition that supports why the prescription is being written --></reasonReference> <dateEnded value="[dateTime]"/><!-- 0..1 When prescription was stopped --> <reasonEnded><!-- 0..1 CodeableConcept Why prescription was stopped --></reasonEnded> <note><!-- 0..* Annotation Information about the prescription --></note> <dosageInstruction> <!-- 0..* How medication should be taken --> <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG --> <additionalInstructions><!-- 0..1 CodeableConcept Supplemental instructions - e.g. "with meals" --></additionalInstructions> <timing><!-- 0..1 Timing When medication should be administered --></timing> <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" (for x) --></asNeeded[x]> <site[x]><!-- 0..1 CodeableConcept|Reference(BodySite) Body site to administer to --></site[x]> <route><!-- 0..1 CodeableConcept How drug should enter body --></route> <method><!-- 0..1 CodeableConcept Technique for administering medication --></method> <dose[x]><!-- 0..1 Range|Quantity(SimpleQuantity) Amount of medication per dose --></dose[x]> <rate[x]><!-- 0..1 Ratio|Range|Quantity(SimpleQuantity) Amount of medication per unit of time --></rate[x]> <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod> </dosageInstruction> <dispenseRequest> <!-- 0..1 Medication supply authorization --> <medication[x]><!-- 0..1 CodeableConcept|Reference(Medication) Product to be supplied --></medication[x]> <validityPeriod><!-- 0..1 Period Time period supply is authorized for --></validityPeriod> <numberOfRepeatsAllowed value="[positiveInt]"/><!-- 0..1 Number of refills authorized --> <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity> <expectedSupplyDuration><!-- 0..1 Quantity(Duration) Number of days supply per dispense --></expectedSupplyDuration> </dispenseRequest> <substitution> <!-- 0..1 Any restrictions on medication substitution --> <type><!-- 1..1 CodeableConcept generic | formulary + --></type> <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason> </substitution> <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription> </MedicationOrder>
JSON Template
{ "resourceType" : "MedicationOrder", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // External identifier "status" : "<code>", // active | on-hold | completed | entered-in-error | stopped | draft // medication[x]: Medication to be taken. One of these 2: "medicationCodeableConcept" : { CodeableConcept }, "medicationReference" : { Reference(Medication) }, "patient" : { Reference(Patient) }, // Who prescription is for "encounter" : { Reference(Encounter) }, // Created during encounter/admission/stay "dateWritten" : "<dateTime>", // When prescription was authorized "prescriber" : { Reference(Practitioner) }, // Who ordered the medication(s) "reasonCode" : [{ CodeableConcept }], // Reason or indication for writing the prescription "reasonReference" : [{ Reference(Condition) }], // Condition that supports why the prescription is being written "dateEnded" : "<dateTime>", // When prescription was stopped "reasonEnded" : { CodeableConcept }, // Why prescription was stopped "note" : [{ Annotation }], // Information about the prescription "dosageInstruction" : [{ // How medication should be taken "text" : "<string>", // Free text dosage instructions e.g. SIG "additionalInstructions" : { CodeableConcept }, // Supplemental instructions - e.g. "with meals" "timing" : { Timing }, // When medication should be administered // asNeeded[x]: Take "as needed" (for x). One of these 2: "asNeededBoolean" : <boolean>, "asNeededCodeableConcept" : { CodeableConcept }, // site[x]: Body site to administer to. One of these 2: "siteCodeableConcept" : { CodeableConcept }, "siteReference" : { Reference(BodySite) }, "route" : { CodeableConcept }, // How drug should enter body "method" : { CodeableConcept }, // Technique for administering medication // dose[x]: Amount of medication per dose. One of these 2: "doseRange" : { Range }, "doseQuantity" : { Quantity(SimpleQuantity) }, // rate[x]: Amount of medication per unit of time. One of these 3: "rateRatio" : { Ratio }, "rateRange" : { Range }, "rateQuantity" : { Quantity(SimpleQuantity) }, "maxDosePerPeriod" : { Ratio } // Upper limit on medication per unit of time }], "dispenseRequest" : { // Medication supply authorization // medication[x]: Product to be supplied. One of these 2: "medicationCodeableConcept" : { CodeableConcept }, "medicationReference" : { Reference(Medication) }, "validityPeriod" : { Period }, // Time period supply is authorized for "numberOfRepeatsAllowed" : "<positiveInt>", // Number of refills authorized "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense "expectedSupplyDuration" : { Quantity(Duration) } // Number of days supply per dispense }, "substitution" : { // Any restrictions on medication substitution "type" : { CodeableConcept }, // R! generic | formulary + "reason" : { CodeableConcept } // Why should (not) substitution be made }, "priorPrescription" : { Reference(MedicationOrder) } // An order/prescription that this supersedes }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
MedicationOrder.status | A code specifying the state of the prescribing event. Describes the lifecycle of the prescription. | Required | MedicationOrderStatus |
MedicationOrder.reasonCode | Codes indicating why the medication was ordered. | Example | Condition/Problem/Diagnosis Codes |
MedicationOrder.reasonEnded | Codes indicating why the medication was terminated; e.g. Adverse reaction, medication change, issue resolved, etc. | Unknown | No details provided yet |
MedicationOrder.dosageInstruction.additionalInstructions | Codes identifying additional instructions such as "take with water" or "avoid operating heavy machinery". | Unknown | No details provided yet |
MedicationOrder.dosageInstruction.asNeeded[x] | A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc. | Unknown | No details provided yet |
MedicationOrder.dosageInstruction.site[x] | A coded concept describing the site location the medicine enters into or onto the body. | Example | SNOMED CT Anatomical Structure for Administration Site Codes |
MedicationOrder.dosageInstruction.route | A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. | Example | SNOMED CT Route Codes |
MedicationOrder.dosageInstruction.method | A coded concept describing the technique by which the medicine is administered. | Unknown | No details provided yet |
MedicationOrder.substitution.type | A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. | Example | ActSubstanceAdminSubstitutionCode |
MedicationOrder.substitution.reason | A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. | Example | SubstanceAdminSubstitutionReason |
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
code | token | Return administrations of this medication code | MedicationOrder.medicationCodeableConcept |
datewritten | date | Return prescriptions written on this date | MedicationOrder.dateWritten |
encounter | reference | Return prescriptions with this encounter identifier | MedicationOrder.encounter (Encounter) |
identifier | token | Return prescriptions with this external identifier | MedicationOrder.identifier |
medication | reference | Return administrations of this medication reference | MedicationOrder.medicationReference (Medication) |
patient | reference | The identity of a patient to list orders for | MedicationOrder.patient (Patient) |
prescriber | reference | Who ordered the medication(s) | MedicationOrder.prescriber (Practitioner) |
status | token | Status of the prescription | MedicationOrder.status |