This page is part of the FHIR Specification (v1.6.0: STU 3 Ballot 4). 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 medicationOrder resource is a "request" resource from a FHIR workflow perspective - see Workflow Request.
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 SNOMED CT Medication Codes (Example) | |
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 initially authorized |
prescriber | Σ | 0..1 | Reference(Practitioner) | Who ordered the initial 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 | |
note | 0..* | Annotation | Information about the prescription | |
category | 0..1 | code | Type of medication usage MedicationOrderCategory (Example) | |
dosageInstruction | 0..* | BackboneElement | How medication should be taken | |
text | 0..1 | string | Free text dosage instructions e.g. SIG | |
additionalInstructions | 0..* | CodeableConcept | Supplemental instructions - e.g. "with meals" SNOMED CT Additional Dosage Instructions (Example) | |
timing | 0..1 | Timing | When medication should be administered | |
asNeeded[x] | 0..1 | Take "as needed" (for x) SNOMED CT Medication As Needed Reason Codes (Example) | ||
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 SNOMED CT Administration Method Codes (Example) | |
dose[x] | 0..1 | Amount of medication per dose | ||
doseRange | Range | |||
doseQuantity | SimpleQuantity | |||
maxDosePerPeriod | 0..1 | Ratio | Upper limit on medication per unit of time | |
maxDosePerAdministration | 0..1 | SimpleQuantity | Upper limit on medication per administration | |
maxDosePerLifetime | 0..1 | SimpleQuantity | Upper limit on medication per lifetime of the patient | |
rate[x] | 0..1 | Amount of medication per unit of time | ||
rateRatio | Ratio | |||
rateRange | Range | |||
rateQuantity | SimpleQuantity | |||
dispenseRequest | 0..1 | BackboneElement | Medication supply authorization | |
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 | |
allowed | 1..1 | boolean | Whether substitution is allowed or not | |
reason | 0..1 | CodeableConcept | Why should (not) substitution be made SubstanceAdminSubstitutionReason (Example) | |
priorPrescription | 0..1 | Reference(MedicationOrder) | An order/prescription that this supersedes | |
eventHistory | 0..* | BackboneElement | A list of events of interest in the lifecycle | |
status | 1..1 | code | active | on-hold | completed | entered-in-error | stopped | draft MedicationOrderStatus (Required) | |
action | 0..1 | CodeableConcept | Action taken (e.g. verify, discontinue) | |
dateTime | 1..1 | dateTime | The date at which the event happened | |
actor | 0..1 | Reference(Practitioner) | Who took the action | |
reason | 0..1 | CodeableConcept | Reason the action was taken | |
Documentation for this format |
UML Diagram (Legend)
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 initially authorized --> <prescriber><!-- 0..1 Reference(Practitioner) Who ordered the initial 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> <note><!-- 0..* Annotation Information about the prescription --></note> <category value="[code]"/><!-- 0..1 Type of medication usage --> <dosageInstruction> <!-- 0..* How medication should be taken --> <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG --> <additionalInstructions><!-- 0..* 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]> <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod> <maxDosePerAdministration><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per administration --></maxDosePerAdministration> <maxDosePerLifetime><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per lifetime of the patient --></maxDosePerLifetime> <rate[x]><!-- 0..1 Ratio|Range|Quantity(SimpleQuantity) Amount of medication per unit of time --></rate[x]> </dosageInstruction> <dispenseRequest> <!-- 0..1 Medication supply authorization --> <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 Duration Number of days supply per dispense --></expectedSupplyDuration> </dispenseRequest> <substitution> <!-- 0..1 Any restrictions on medication substitution --> <allowed value="[boolean]"/><!-- 1..1 Whether substitution is allowed or not --> <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason> </substitution> <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription> <eventHistory> <!-- 0..* A list of events of interest in the lifecycle --> <status value="[code]"/><!-- 1..1 active | on-hold | completed | entered-in-error | stopped | draft --> <action><!-- 0..1 CodeableConcept Action taken (e.g. verify, discontinue) --></action> <dateTime value="[dateTime]"/><!-- 1..1 The date at which the event happened --> <actor><!-- 0..1 Reference(Practitioner) Who took the action --></actor> <reason><!-- 0..1 CodeableConcept Reason the action was taken --></reason> </eventHistory> </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 initially authorized "prescriber" : { Reference(Practitioner) }, // Who ordered the initial medication(s) "reasonCode" : [{ CodeableConcept }], // Reason or indication for writing the prescription "reasonReference" : [{ Reference(Condition) }], // Condition that supports why the prescription is being written "note" : [{ Annotation }], // Information about the prescription "category" : "<code>", // Type of medication usage "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) }, "maxDosePerPeriod" : { Ratio }, // Upper limit on medication per unit of time "maxDosePerAdministration" : { Quantity(SimpleQuantity) }, // Upper limit on medication per administration "maxDosePerLifetime" : { Quantity(SimpleQuantity) }, // Upper limit on medication per lifetime of the patient // rate[x]: Amount of medication per unit of time. One of these 3: "rateRatio" : { Ratio } "rateRange" : { Range } "rateQuantity" : { Quantity(SimpleQuantity) } }], "dispenseRequest" : { // Medication supply authorization "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" : { Duration } // Number of days supply per dispense }, "substitution" : { // Any restrictions on medication substitution "allowed" : <boolean>, // R! Whether substitution is allowed or not "reason" : { CodeableConcept } // Why should (not) substitution be made }, "priorPrescription" : { Reference(MedicationOrder) }, // An order/prescription that this supersedes "eventHistory" : [{ // A list of events of interest in the lifecycle "status" : "<code>", // R! active | on-hold | completed | entered-in-error | stopped | draft "action" : { CodeableConcept }, // Action taken (e.g. verify, discontinue) "dateTime" : "<dateTime>", // R! The date at which the event happened "actor" : { Reference(Practitioner) }, // Who took the action "reason" : { CodeableConcept } // Reason the action was taken }] }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:MedicationOrder; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:MedicationOrder.identifier [ Identifier ], ... ; # 0..* External identifier fhir:MedicationOrder.status [ code ]; # 0..1 active | on-hold | completed | entered-in-error | stopped | draft # MedicationOrder.medication[x] : 1..1 Medication to be taken. One of these 2 fhir:MedicationOrder.medicationCodeableConcept [ CodeableConcept ] fhir:MedicationOrder.medicationReference [ Reference(Medication) ] fhir:MedicationOrder.patient [ Reference(Patient) ]; # 0..1 Who prescription is for fhir:MedicationOrder.encounter [ Reference(Encounter) ]; # 0..1 Created during encounter/admission/stay fhir:MedicationOrder.dateWritten [ dateTime ]; # 0..1 When prescription was initially authorized fhir:MedicationOrder.prescriber [ Reference(Practitioner) ]; # 0..1 Who ordered the initial medication(s) fhir:MedicationOrder.reasonCode [ CodeableConcept ], ... ; # 0..* Reason or indication for writing the prescription fhir:MedicationOrder.reasonReference [ Reference(Condition) ], ... ; # 0..* Condition that supports why the prescription is being written fhir:MedicationOrder.note [ Annotation ], ... ; # 0..* Information about the prescription fhir:MedicationOrder.category [ code ]; # 0..1 Type of medication usage fhir:MedicationOrder.dosageInstruction [ # 0..* How medication should be taken fhir:MedicationOrder.dosageInstruction.text [ string ]; # 0..1 Free text dosage instructions e.g. SIG fhir:MedicationOrder.dosageInstruction.additionalInstructions [ CodeableConcept ], ... ; # 0..* Supplemental instructions - e.g. "with meals" fhir:MedicationOrder.dosageInstruction.timing [ Timing ]; # 0..1 When medication should be administered # MedicationOrder.dosageInstruction.asNeeded[x] : 0..1 Take "as needed" (for x). One of these 2 fhir:MedicationOrder.dosageInstruction.asNeededBoolean [ boolean ] fhir:MedicationOrder.dosageInstruction.asNeededCodeableConcept [ CodeableConcept ] # MedicationOrder.dosageInstruction.site[x] : 0..1 Body site to administer to. One of these 2 fhir:MedicationOrder.dosageInstruction.siteCodeableConcept [ CodeableConcept ] fhir:MedicationOrder.dosageInstruction.siteReference [ Reference(BodySite) ] fhir:MedicationOrder.dosageInstruction.route [ CodeableConcept ]; # 0..1 How drug should enter body fhir:MedicationOrder.dosageInstruction.method [ CodeableConcept ]; # 0..1 Technique for administering medication # MedicationOrder.dosageInstruction.dose[x] : 0..1 Amount of medication per dose. One of these 2 fhir:MedicationOrder.dosageInstruction.doseRange [ Range ] fhir:MedicationOrder.dosageInstruction.doseSimpleQuantity [ Quantity(SimpleQuantity) ] fhir:MedicationOrder.dosageInstruction.maxDosePerPeriod [ Ratio ]; # 0..1 Upper limit on medication per unit of time fhir:MedicationOrder.dosageInstruction.maxDosePerAdministration [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per administration fhir:MedicationOrder.dosageInstruction.maxDosePerLifetime [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per lifetime of the patient # MedicationOrder.dosageInstruction.rate[x] : 0..1 Amount of medication per unit of time. One of these 3 fhir:MedicationOrder.dosageInstruction.rateRatio [ Ratio ] fhir:MedicationOrder.dosageInstruction.rateRange [ Range ] fhir:MedicationOrder.dosageInstruction.rateSimpleQuantity [ Quantity(SimpleQuantity) ] ], ...; fhir:MedicationOrder.dispenseRequest [ # 0..1 Medication supply authorization fhir:MedicationOrder.dispenseRequest.validityPeriod [ Period ]; # 0..1 Time period supply is authorized for fhir:MedicationOrder.dispenseRequest.numberOfRepeatsAllowed [ positiveInt ]; # 0..1 Number of refills authorized fhir:MedicationOrder.dispenseRequest.quantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication to supply per dispense fhir:MedicationOrder.dispenseRequest.expectedSupplyDuration [ Duration ]; # 0..1 Number of days supply per dispense ]; fhir:MedicationOrder.substitution [ # 0..1 Any restrictions on medication substitution fhir:MedicationOrder.substitution.allowed [ boolean ]; # 1..1 Whether substitution is allowed or not fhir:MedicationOrder.substitution.reason [ CodeableConcept ]; # 0..1 Why should (not) substitution be made ]; fhir:MedicationOrder.priorPrescription [ Reference(MedicationOrder) ]; # 0..1 An order/prescription that this supersedes fhir:MedicationOrder.eventHistory [ # 0..* A list of events of interest in the lifecycle fhir:MedicationOrder.eventHistory.status [ code ]; # 1..1 active | on-hold | completed | entered-in-error | stopped | draft fhir:MedicationOrder.eventHistory.action [ CodeableConcept ]; # 0..1 Action taken (e.g. verify, discontinue) fhir:MedicationOrder.eventHistory.dateTime [ dateTime ]; # 1..1 The date at which the event happened fhir:MedicationOrder.eventHistory.actor [ Reference(Practitioner) ]; # 0..1 Who took the action fhir:MedicationOrder.eventHistory.reason [ CodeableConcept ]; # 0..1 Reason the action was taken ], ...; ]
Changes since DSTU2
MedicationOrder | |
MedicationOrder.reasonCode | added |
MedicationOrder.reasonReference | added |
MedicationOrder.note |
Max Cardinality changed from 1 to * Type changed from string to Annotation |
MedicationOrder.category | added |
MedicationOrder.dosageInstruction.additionalInstructions | Max Cardinality changed from 1 to * |
MedicationOrder.dosageInstruction.maxDosePerAdministration | added |
MedicationOrder.dosageInstruction.maxDosePerLifetime | added |
MedicationOrder.dosageInstruction.rate[x] | Add Quantity{http://hl7.org/fhir/StructureDefinition/SimpleQuantity} |
MedicationOrder.dispenseRequest.expectedSupplyDuration | Type changed from Quantity{http://hl7.org/fhir/StructureDefinition/Duration} to Duration |
MedicationOrder.substitution.allowed | added |
MedicationOrder.eventHistory | added |
MedicationOrder.eventHistory.status | added |
MedicationOrder.eventHistory.action | added |
MedicationOrder.eventHistory.dateTime | added |
MedicationOrder.eventHistory.actor | added |
MedicationOrder.eventHistory.reason | added |
MedicationOrder.dateEnded | deleted |
MedicationOrder.reasonEnded | deleted |
MedicationOrder.reason[x] | deleted |
MedicationOrder.dispenseRequest.medication[x] | deleted |
MedicationOrder.substitution.type | deleted |
See the Full Difference for further information
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 SNOMED CT Medication Codes (Example) | |
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 initially authorized |
prescriber | Σ | 0..1 | Reference(Practitioner) | Who ordered the initial 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 | |
note | 0..* | Annotation | Information about the prescription | |
category | 0..1 | code | Type of medication usage MedicationOrderCategory (Example) | |
dosageInstruction | 0..* | BackboneElement | How medication should be taken | |
text | 0..1 | string | Free text dosage instructions e.g. SIG | |
additionalInstructions | 0..* | CodeableConcept | Supplemental instructions - e.g. "with meals" SNOMED CT Additional Dosage Instructions (Example) | |
timing | 0..1 | Timing | When medication should be administered | |
asNeeded[x] | 0..1 | Take "as needed" (for x) SNOMED CT Medication As Needed Reason Codes (Example) | ||
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 SNOMED CT Administration Method Codes (Example) | |
dose[x] | 0..1 | Amount of medication per dose | ||
doseRange | Range | |||
doseQuantity | SimpleQuantity | |||
maxDosePerPeriod | 0..1 | Ratio | Upper limit on medication per unit of time | |
maxDosePerAdministration | 0..1 | SimpleQuantity | Upper limit on medication per administration | |
maxDosePerLifetime | 0..1 | SimpleQuantity | Upper limit on medication per lifetime of the patient | |
rate[x] | 0..1 | Amount of medication per unit of time | ||
rateRatio | Ratio | |||
rateRange | Range | |||
rateQuantity | SimpleQuantity | |||
dispenseRequest | 0..1 | BackboneElement | Medication supply authorization | |
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 | |
allowed | 1..1 | boolean | Whether substitution is allowed or not | |
reason | 0..1 | CodeableConcept | Why should (not) substitution be made SubstanceAdminSubstitutionReason (Example) | |
priorPrescription | 0..1 | Reference(MedicationOrder) | An order/prescription that this supersedes | |
eventHistory | 0..* | BackboneElement | A list of events of interest in the lifecycle | |
status | 1..1 | code | active | on-hold | completed | entered-in-error | stopped | draft MedicationOrderStatus (Required) | |
action | 0..1 | CodeableConcept | Action taken (e.g. verify, discontinue) | |
dateTime | 1..1 | dateTime | The date at which the event happened | |
actor | 0..1 | Reference(Practitioner) | Who took the action | |
reason | 0..1 | CodeableConcept | Reason the action was taken | |
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 initially authorized --> <prescriber><!-- 0..1 Reference(Practitioner) Who ordered the initial 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> <note><!-- 0..* Annotation Information about the prescription --></note> <category value="[code]"/><!-- 0..1 Type of medication usage --> <dosageInstruction> <!-- 0..* How medication should be taken --> <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG --> <additionalInstructions><!-- 0..* 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]> <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod> <maxDosePerAdministration><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per administration --></maxDosePerAdministration> <maxDosePerLifetime><!-- 0..1 Quantity(SimpleQuantity) Upper limit on medication per lifetime of the patient --></maxDosePerLifetime> <rate[x]><!-- 0..1 Ratio|Range|Quantity(SimpleQuantity) Amount of medication per unit of time --></rate[x]> </dosageInstruction> <dispenseRequest> <!-- 0..1 Medication supply authorization --> <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 Duration Number of days supply per dispense --></expectedSupplyDuration> </dispenseRequest> <substitution> <!-- 0..1 Any restrictions on medication substitution --> <allowed value="[boolean]"/><!-- 1..1 Whether substitution is allowed or not --> <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason> </substitution> <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription> <eventHistory> <!-- 0..* A list of events of interest in the lifecycle --> <status value="[code]"/><!-- 1..1 active | on-hold | completed | entered-in-error | stopped | draft --> <action><!-- 0..1 CodeableConcept Action taken (e.g. verify, discontinue) --></action> <dateTime value="[dateTime]"/><!-- 1..1 The date at which the event happened --> <actor><!-- 0..1 Reference(Practitioner) Who took the action --></actor> <reason><!-- 0..1 CodeableConcept Reason the action was taken --></reason> </eventHistory> </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 initially authorized "prescriber" : { Reference(Practitioner) }, // Who ordered the initial medication(s) "reasonCode" : [{ CodeableConcept }], // Reason or indication for writing the prescription "reasonReference" : [{ Reference(Condition) }], // Condition that supports why the prescription is being written "note" : [{ Annotation }], // Information about the prescription "category" : "<code>", // Type of medication usage "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) }, "maxDosePerPeriod" : { Ratio }, // Upper limit on medication per unit of time "maxDosePerAdministration" : { Quantity(SimpleQuantity) }, // Upper limit on medication per administration "maxDosePerLifetime" : { Quantity(SimpleQuantity) }, // Upper limit on medication per lifetime of the patient // rate[x]: Amount of medication per unit of time. One of these 3: "rateRatio" : { Ratio } "rateRange" : { Range } "rateQuantity" : { Quantity(SimpleQuantity) } }], "dispenseRequest" : { // Medication supply authorization "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" : { Duration } // Number of days supply per dispense }, "substitution" : { // Any restrictions on medication substitution "allowed" : <boolean>, // R! Whether substitution is allowed or not "reason" : { CodeableConcept } // Why should (not) substitution be made }, "priorPrescription" : { Reference(MedicationOrder) }, // An order/prescription that this supersedes "eventHistory" : [{ // A list of events of interest in the lifecycle "status" : "<code>", // R! active | on-hold | completed | entered-in-error | stopped | draft "action" : { CodeableConcept }, // Action taken (e.g. verify, discontinue) "dateTime" : "<dateTime>", // R! The date at which the event happened "actor" : { Reference(Practitioner) }, // Who took the action "reason" : { CodeableConcept } // Reason the action was taken }] }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:MedicationOrder; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:MedicationOrder.identifier [ Identifier ], ... ; # 0..* External identifier fhir:MedicationOrder.status [ code ]; # 0..1 active | on-hold | completed | entered-in-error | stopped | draft # MedicationOrder.medication[x] : 1..1 Medication to be taken. One of these 2 fhir:MedicationOrder.medicationCodeableConcept [ CodeableConcept ] fhir:MedicationOrder.medicationReference [ Reference(Medication) ] fhir:MedicationOrder.patient [ Reference(Patient) ]; # 0..1 Who prescription is for fhir:MedicationOrder.encounter [ Reference(Encounter) ]; # 0..1 Created during encounter/admission/stay fhir:MedicationOrder.dateWritten [ dateTime ]; # 0..1 When prescription was initially authorized fhir:MedicationOrder.prescriber [ Reference(Practitioner) ]; # 0..1 Who ordered the initial medication(s) fhir:MedicationOrder.reasonCode [ CodeableConcept ], ... ; # 0..* Reason or indication for writing the prescription fhir:MedicationOrder.reasonReference [ Reference(Condition) ], ... ; # 0..* Condition that supports why the prescription is being written fhir:MedicationOrder.note [ Annotation ], ... ; # 0..* Information about the prescription fhir:MedicationOrder.category [ code ]; # 0..1 Type of medication usage fhir:MedicationOrder.dosageInstruction [ # 0..* How medication should be taken fhir:MedicationOrder.dosageInstruction.text [ string ]; # 0..1 Free text dosage instructions e.g. SIG fhir:MedicationOrder.dosageInstruction.additionalInstructions [ CodeableConcept ], ... ; # 0..* Supplemental instructions - e.g. "with meals" fhir:MedicationOrder.dosageInstruction.timing [ Timing ]; # 0..1 When medication should be administered # MedicationOrder.dosageInstruction.asNeeded[x] : 0..1 Take "as needed" (for x). One of these 2 fhir:MedicationOrder.dosageInstruction.asNeededBoolean [ boolean ] fhir:MedicationOrder.dosageInstruction.asNeededCodeableConcept [ CodeableConcept ] # MedicationOrder.dosageInstruction.site[x] : 0..1 Body site to administer to. One of these 2 fhir:MedicationOrder.dosageInstruction.siteCodeableConcept [ CodeableConcept ] fhir:MedicationOrder.dosageInstruction.siteReference [ Reference(BodySite) ] fhir:MedicationOrder.dosageInstruction.route [ CodeableConcept ]; # 0..1 How drug should enter body fhir:MedicationOrder.dosageInstruction.method [ CodeableConcept ]; # 0..1 Technique for administering medication # MedicationOrder.dosageInstruction.dose[x] : 0..1 Amount of medication per dose. One of these 2 fhir:MedicationOrder.dosageInstruction.doseRange [ Range ] fhir:MedicationOrder.dosageInstruction.doseSimpleQuantity [ Quantity(SimpleQuantity) ] fhir:MedicationOrder.dosageInstruction.maxDosePerPeriod [ Ratio ]; # 0..1 Upper limit on medication per unit of time fhir:MedicationOrder.dosageInstruction.maxDosePerAdministration [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per administration fhir:MedicationOrder.dosageInstruction.maxDosePerLifetime [ Quantity(SimpleQuantity) ]; # 0..1 Upper limit on medication per lifetime of the patient # MedicationOrder.dosageInstruction.rate[x] : 0..1 Amount of medication per unit of time. One of these 3 fhir:MedicationOrder.dosageInstruction.rateRatio [ Ratio ] fhir:MedicationOrder.dosageInstruction.rateRange [ Range ] fhir:MedicationOrder.dosageInstruction.rateSimpleQuantity [ Quantity(SimpleQuantity) ] ], ...; fhir:MedicationOrder.dispenseRequest [ # 0..1 Medication supply authorization fhir:MedicationOrder.dispenseRequest.validityPeriod [ Period ]; # 0..1 Time period supply is authorized for fhir:MedicationOrder.dispenseRequest.numberOfRepeatsAllowed [ positiveInt ]; # 0..1 Number of refills authorized fhir:MedicationOrder.dispenseRequest.quantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication to supply per dispense fhir:MedicationOrder.dispenseRequest.expectedSupplyDuration [ Duration ]; # 0..1 Number of days supply per dispense ]; fhir:MedicationOrder.substitution [ # 0..1 Any restrictions on medication substitution fhir:MedicationOrder.substitution.allowed [ boolean ]; # 1..1 Whether substitution is allowed or not fhir:MedicationOrder.substitution.reason [ CodeableConcept ]; # 0..1 Why should (not) substitution be made ]; fhir:MedicationOrder.priorPrescription [ Reference(MedicationOrder) ]; # 0..1 An order/prescription that this supersedes fhir:MedicationOrder.eventHistory [ # 0..* A list of events of interest in the lifecycle fhir:MedicationOrder.eventHistory.status [ code ]; # 1..1 active | on-hold | completed | entered-in-error | stopped | draft fhir:MedicationOrder.eventHistory.action [ CodeableConcept ]; # 0..1 Action taken (e.g. verify, discontinue) fhir:MedicationOrder.eventHistory.dateTime [ dateTime ]; # 1..1 The date at which the event happened fhir:MedicationOrder.eventHistory.actor [ Reference(Practitioner) ]; # 0..1 Who took the action fhir:MedicationOrder.eventHistory.reason [ CodeableConcept ]; # 0..1 Reason the action was taken ], ...; ]
Changes since DSTU2
MedicationOrder | |
MedicationOrder.reasonCode | added |
MedicationOrder.reasonReference | added |
MedicationOrder.note |
Max Cardinality changed from 1 to * Type changed from string to Annotation |
MedicationOrder.category | added |
MedicationOrder.dosageInstruction.additionalInstructions | Max Cardinality changed from 1 to * |
MedicationOrder.dosageInstruction.maxDosePerAdministration | added |
MedicationOrder.dosageInstruction.maxDosePerLifetime | added |
MedicationOrder.dosageInstruction.rate[x] | Add Quantity{http://hl7.org/fhir/StructureDefinition/SimpleQuantity} |
MedicationOrder.dispenseRequest.expectedSupplyDuration | Type changed from Quantity{http://hl7.org/fhir/StructureDefinition/Duration} to Duration |
MedicationOrder.substitution.allowed | added |
MedicationOrder.eventHistory | added |
MedicationOrder.eventHistory.status | added |
MedicationOrder.eventHistory.action | added |
MedicationOrder.eventHistory.dateTime | added |
MedicationOrder.eventHistory.actor | added |
MedicationOrder.eventHistory.reason | added |
MedicationOrder.dateEnded | deleted |
MedicationOrder.reasonEnded | deleted |
MedicationOrder.reason[x] | deleted |
MedicationOrder.dispenseRequest.medication[x] | deleted |
MedicationOrder.substitution.type | deleted |
See the Full Difference for further information
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)
Path | Definition | Type | Reference |
---|---|---|---|
MedicationOrder.status MedicationOrder.eventHistory.status | A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. | Required | MedicationOrderStatus |
MedicationOrder.medication[x] | A coded concept identifying substance or product that can be ordered. | Example | SNOMED CT Medication Codes |
MedicationOrder.reasonCode | A coded concept indicating why the medication was ordered. | Example | Condition/Problem/Diagnosis Codes |
MedicationOrder.category | A coded concept identifying where the medication ordered is expected to be consumed or administered | Example | MedicationOrderCategory |
MedicationOrder.dosageInstruction.additionalInstructions | A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". | Example | SNOMED CT Additional Dosage Instructions |
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. | Example | SNOMED CT Medication As Needed Reason Codes |
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. | Example | SNOMED CT Administration Method Codes |
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 |
MedicationOrder.eventHistory.action | A coded concept describing an action taken on a medication order. | Unknown | No details provided yet |
MedicationOrder.eventHistory.reason | A coded concept describing the reason for an action taken on a medication order. | Unknown | No details provided yet |
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 prescriptions 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 prescriptions of this medication reference | MedicationOrder.medicationReference (Medication) |
patient | reference | The identity of a patient to list orders for | MedicationOrder.patient (Patient) |
prescriber | reference | Returns prescriptions prescribed by this prescriber | MedicationOrder.prescriber (Practitioner) |
status | token | Status of the prescription | MedicationOrder.status |