STU 3 Ballot

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

11.2 Resource MedicationOrder - Content

Pharmacy Work GroupMaturity Level: 1Compartments: 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.

11.2.1 Scope and Usage

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.

11.2.2 Boundaries and Relationships

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

11.2.3 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationOrder DomainResourcePrescription of medication to for patient
... identifier 0..*IdentifierExternal identifier
... status ?!Σ0..1codeactive | on-hold | completed | entered-in-error | stopped | draft
MedicationOrderStatus (Required)
... medication[x] Σ1..1Medication to be taken
SNOMED CT Medication Codes (Example)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(Medication)
... patient Σ0..1Reference(Patient)Who prescription is for
... encounter 0..1Reference(Encounter)Created during encounter/admission/stay
... dateWritten Σ0..1dateTimeWhen prescription was initially authorized
... prescriber Σ0..1Reference(Practitioner)Who ordered the initial medication(s)
... reasonCode 0..*CodeableConceptReason 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..*AnnotationInformation about the prescription
... category 0..1codeType of medication usage
MedicationOrderCategory (Example)
... dosageInstruction 0..*BackboneElementHow medication should be taken
.... text 0..1stringFree text dosage instructions e.g. SIG
.... additionalInstructions 0..*CodeableConceptSupplemental instructions - e.g. "with meals"
SNOMED CT Additional Dosage Instructions (Example)
.... timing 0..1TimingWhen medication should be administered
.... asNeeded[x] 0..1Take "as needed" (for x)
SNOMED CT Medication As Needed Reason Codes (Example)
..... asNeededBooleanboolean
..... asNeededCodeableConceptCodeableConcept
.... site[x] 0..1Body site to administer to
SNOMED CT Anatomical Structure for Administration Site Codes (Example)
..... siteCodeableConceptCodeableConcept
..... siteReferenceReference(BodySite)
.... route 0..1CodeableConceptHow drug should enter body
SNOMED CT Route Codes (Example)
.... method 0..1CodeableConceptTechnique for administering medication
SNOMED CT Administration Method Codes (Example)
.... dose[x] 0..1Amount of medication per dose
..... doseRangeRange
..... doseQuantitySimpleQuantity
.... maxDosePerPeriod 0..1RatioUpper limit on medication per unit of time
.... maxDosePerAdministration 0..1SimpleQuantityUpper limit on medication per administration
.... maxDosePerLifetime 0..1SimpleQuantityUpper limit on medication per lifetime of the patient
.... rate[x] 0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantitySimpleQuantity
... dispenseRequest 0..1BackboneElementMedication supply authorization
.... validityPeriod 0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed 0..1positiveIntNumber of refills authorized
.... quantity 0..1SimpleQuantityAmount of medication to supply per dispense
.... expectedSupplyDuration 0..1DurationNumber of days supply per dispense
... substitution 0..1BackboneElementAny restrictions on medication substitution
.... allowed 1..1booleanWhether substitution is allowed or not
.... reason 0..1CodeableConceptWhy should (not) substitution be made
SubstanceAdminSubstitutionReason (Example)
... priorPrescription 0..1Reference(MedicationOrder)An order/prescription that this supersedes
... eventHistory 0..*BackboneElementA list of events of interest in the lifecycle
.... status 1..1codeactive | on-hold | completed | entered-in-error | stopped | draft
MedicationOrderStatus (Required)
.... action 0..1CodeableConceptAction taken (e.g. verify, discontinue)
.... dateTime 1..1dateTimeThe date at which the event happened
.... actor 0..1Reference(Practitioner)Who took the action
.... reason 0..1CodeableConceptReason the action was taken

doco Documentation for this format

UML Diagram (Legend)

MedicationOrder (DomainResource)External identifier - one that would be used by another non-FHIR system - for example a re-imbursement system might issue its own id for each prescription that is created. This is particularly important where FHIR only provides part of an entire workflow process where records have to be tracked through an entire systemidentifier : Identifier [0..*]A code specifying the state of the order. Generally this will be active or completed state (this element modifies the meaning of other elements)status : code [0..1] « A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. (Strength=Required)MedicationOrderStatus! »Identifies the medication being administered. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medicationsmedication[x] : Type [1..1] « CodeableConcept|Reference(Medication); A coded concept identifying substance or product that can be ordered. (Strength=Example) SNOMED CT Medication ?? »A link to a resource representing the person to whom the medication will be givenpatient : Reference [0..1] « Patient »A link to a resource that identifies the particular occurrence of contact between patient and health care providerencounter : Reference [0..1] « Encounter »The date (and perhaps time) when the prescription was initially writtendateWritten : dateTime [0..1]The healthcare professional responsible for authorizing the initial prescriptionprescriber : Reference [0..1] « Practitioner »Can be the reason or the indication for writing the prescriptionreasonCode : CodeableConcept [0..*] « A coded concept indicating why the medication was ordered. (Strength=Example)Condition/Problem/Diagnosis ?? »Condition that supports why the prescription is being writtenreasonReference : Reference [0..*] « Condition »Extra information about the prescription that could not be conveyed by the other attributesnote : Annotation [0..*]Indicates where type of medication order and where the medication is expected to be consumed or administeredcategory : code [0..1] « A coded concept identifying where the medication ordered is expected to be consumed or administered (Strength=Example)MedicationOrderCategory?? »A link to a resource representing an earlier order related order or prescriptionpriorPrescription : Reference [0..1] « MedicationOrder »DosageInstructionFree text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timingtext : string [0..1]Additional instructions such as "Swallow with plenty of water" which may or may not be codedadditionalInstructions : CodeableConcept [0..*] « A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". (Strength=Example)SNOMED CT Additional Dosage I...?? »The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions. For example: "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time periodtiming : Timing [0..1]Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept)asNeeded[x] : Type [0..1] « boolean|CodeableConcept; 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. (Strength=Example)SNOMED CT Medication As Neede...?? »A coded specification of the anatomic site where the medication first enters the bodysite[x] : Type [0..1] « CodeableConcept|Reference(BodySite); A coded concept describing the site location the medicine enters into or onto the body. (Strength=Example)SNOMED CT Anatomical Structur...?? »A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's bodyroute : CodeableConcept [0..1] « A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. (Strength=Example)SNOMED CT Route ?? »A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. For examples, Slow Push; Deep IVmethod : CodeableConcept [0..1] « A coded concept describing the technique by which the medicine is administered. (Strength=Example)SNOMED CT Administration Meth...?? »The amount of therapeutic or other substance given at one administration eventdose[x] : Type [0..1] « Range|Quantity(SimpleQuantity) »The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hoursmaxDosePerPeriod : Ratio [0..1]The maximum total quantity of a therapeutic substance that may be administered to a subject per administrationmaxDosePerAdministration : Quantity(SimpleQuantity) [0..1]The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subjectmaxDosePerLifetime : Quantity(SimpleQuantity) [0..1]Identifies the speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time periodrate[x] : Type [0..1] « Ratio|Range|Quantity(SimpleQuantity) »DispenseRequestThis indicates the validity period of a prescription (stale dating the Prescription)validityPeriod : Period [0..1]An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does NOT include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tabletsnumberOfRepeatsAllowed : positiveInt [0..1]The amount that is to be dispensed for one fillquantity : Quantity(SimpleQuantity) [0..1]Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to lastexpectedSupplyDuration : Duration [0..1]SubstitutionTrue if the prescriber allows a different drug to be dispensed from what was prescribedallowed : boolean [1..1]Indicates the reason for the substitution, or why substitution must or must not be performedreason : CodeableConcept [0..1] « A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. (Strength=Example)SubstanceAdminSubstitutionRea...?? »EventHistoryThe status for the eventstatus : code [1..1] « A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. (Strength=Required)MedicationOrderStatus! »The action that was taken (e.g. verify, discontinue)action : CodeableConcept [0..1]The date/time at which the event occurreddateTime : dateTime [1..1]The person responsible for taking the actionactor : Reference [0..1] « Practitioner »The reason why the action was takenreason : CodeableConcept [0..1]Indicates how the medication is to be used by the patientdosageInstruction[0..*]Indicates the specific details for the dispense or medication supply part of a medication order (also known as a Medication Prescription). Note that this information is NOT always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy departmentdispenseRequest[0..1]Indicates whether or not substitution can or should be part of the dispense. In some cases substitution must happen, in other cases substitution must not happen, and in others it does not matter. This block explains the prescriber's intent. If nothing is specified substitution may be donesubstitution[0..1]A summary of the events of interest that have occurred as the request is processed; e.g. when the order was verified or when it was completedeventHistory[0..*]

XML Template

<MedicationOrder xmlns="http://hl7.org/fhir"> doco
 <!-- 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

{doco
  "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/> .doco


[ 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

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationOrder DomainResourcePrescription of medication to for patient
... identifier 0..*IdentifierExternal identifier
... status ?!Σ0..1codeactive | on-hold | completed | entered-in-error | stopped | draft
MedicationOrderStatus (Required)
... medication[x] Σ1..1Medication to be taken
SNOMED CT Medication Codes (Example)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(Medication)
... patient Σ0..1Reference(Patient)Who prescription is for
... encounter 0..1Reference(Encounter)Created during encounter/admission/stay
... dateWritten Σ0..1dateTimeWhen prescription was initially authorized
... prescriber Σ0..1Reference(Practitioner)Who ordered the initial medication(s)
... reasonCode 0..*CodeableConceptReason 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..*AnnotationInformation about the prescription
... category 0..1codeType of medication usage
MedicationOrderCategory (Example)
... dosageInstruction 0..*BackboneElementHow medication should be taken
.... text 0..1stringFree text dosage instructions e.g. SIG
.... additionalInstructions 0..*CodeableConceptSupplemental instructions - e.g. "with meals"
SNOMED CT Additional Dosage Instructions (Example)
.... timing 0..1TimingWhen medication should be administered
.... asNeeded[x] 0..1Take "as needed" (for x)
SNOMED CT Medication As Needed Reason Codes (Example)
..... asNeededBooleanboolean
..... asNeededCodeableConceptCodeableConcept
.... site[x] 0..1Body site to administer to
SNOMED CT Anatomical Structure for Administration Site Codes (Example)
..... siteCodeableConceptCodeableConcept
..... siteReferenceReference(BodySite)
.... route 0..1CodeableConceptHow drug should enter body
SNOMED CT Route Codes (Example)
.... method 0..1CodeableConceptTechnique for administering medication
SNOMED CT Administration Method Codes (Example)
.... dose[x] 0..1Amount of medication per dose
..... doseRangeRange
..... doseQuantitySimpleQuantity
.... maxDosePerPeriod 0..1RatioUpper limit on medication per unit of time
.... maxDosePerAdministration 0..1SimpleQuantityUpper limit on medication per administration
.... maxDosePerLifetime 0..1SimpleQuantityUpper limit on medication per lifetime of the patient
.... rate[x] 0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
..... rateQuantitySimpleQuantity
... dispenseRequest 0..1BackboneElementMedication supply authorization
.... validityPeriod 0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed 0..1positiveIntNumber of refills authorized
.... quantity 0..1SimpleQuantityAmount of medication to supply per dispense
.... expectedSupplyDuration 0..1DurationNumber of days supply per dispense
... substitution 0..1BackboneElementAny restrictions on medication substitution
.... allowed 1..1booleanWhether substitution is allowed or not
.... reason 0..1CodeableConceptWhy should (not) substitution be made
SubstanceAdminSubstitutionReason (Example)
... priorPrescription 0..1Reference(MedicationOrder)An order/prescription that this supersedes
... eventHistory 0..*BackboneElementA list of events of interest in the lifecycle
.... status 1..1codeactive | on-hold | completed | entered-in-error | stopped | draft
MedicationOrderStatus (Required)
.... action 0..1CodeableConceptAction taken (e.g. verify, discontinue)
.... dateTime 1..1dateTimeThe date at which the event happened
.... actor 0..1Reference(Practitioner)Who took the action
.... reason 0..1CodeableConceptReason the action was taken

doco Documentation for this format

UML Diagram (Legend)

MedicationOrder (DomainResource)External identifier - one that would be used by another non-FHIR system - for example a re-imbursement system might issue its own id for each prescription that is created. This is particularly important where FHIR only provides part of an entire workflow process where records have to be tracked through an entire systemidentifier : Identifier [0..*]A code specifying the state of the order. Generally this will be active or completed state (this element modifies the meaning of other elements)status : code [0..1] « A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. (Strength=Required)MedicationOrderStatus! »Identifies the medication being administered. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medicationsmedication[x] : Type [1..1] « CodeableConcept|Reference(Medication); A coded concept identifying substance or product that can be ordered. (Strength=Example) SNOMED CT Medication ?? »A link to a resource representing the person to whom the medication will be givenpatient : Reference [0..1] « Patient »A link to a resource that identifies the particular occurrence of contact between patient and health care providerencounter : Reference [0..1] « Encounter »The date (and perhaps time) when the prescription was initially writtendateWritten : dateTime [0..1]The healthcare professional responsible for authorizing the initial prescriptionprescriber : Reference [0..1] « Practitioner »Can be the reason or the indication for writing the prescriptionreasonCode : CodeableConcept [0..*] « A coded concept indicating why the medication was ordered. (Strength=Example)Condition/Problem/Diagnosis ?? »Condition that supports why the prescription is being writtenreasonReference : Reference [0..*] « Condition »Extra information about the prescription that could not be conveyed by the other attributesnote : Annotation [0..*]Indicates where type of medication order and where the medication is expected to be consumed or administeredcategory : code [0..1] « A coded concept identifying where the medication ordered is expected to be consumed or administered (Strength=Example)MedicationOrderCategory?? »A link to a resource representing an earlier order related order or prescriptionpriorPrescription : Reference [0..1] « MedicationOrder »DosageInstructionFree text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timingtext : string [0..1]Additional instructions such as "Swallow with plenty of water" which may or may not be codedadditionalInstructions : CodeableConcept [0..*] « A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery". (Strength=Example)SNOMED CT Additional Dosage I...?? »The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions. For example: "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time periodtiming : Timing [0..1]Indicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept)asNeeded[x] : Type [0..1] « boolean|CodeableConcept; 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. (Strength=Example)SNOMED CT Medication As Neede...?? »A coded specification of the anatomic site where the medication first enters the bodysite[x] : Type [0..1] « CodeableConcept|Reference(BodySite); A coded concept describing the site location the medicine enters into or onto the body. (Strength=Example)SNOMED CT Anatomical Structur...?? »A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's bodyroute : CodeableConcept [0..1] « A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. (Strength=Example)SNOMED CT Route ?? »A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. For examples, Slow Push; Deep IVmethod : CodeableConcept [0..1] « A coded concept describing the technique by which the medicine is administered. (Strength=Example)SNOMED CT Administration Meth...?? »The amount of therapeutic or other substance given at one administration eventdose[x] : Type [0..1] « Range|Quantity(SimpleQuantity) »The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hoursmaxDosePerPeriod : Ratio [0..1]The maximum total quantity of a therapeutic substance that may be administered to a subject per administrationmaxDosePerAdministration : Quantity(SimpleQuantity) [0..1]The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subjectmaxDosePerLifetime : Quantity(SimpleQuantity) [0..1]Identifies the speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time periodrate[x] : Type [0..1] « Ratio|Range|Quantity(SimpleQuantity) »DispenseRequestThis indicates the validity period of a prescription (stale dating the Prescription)validityPeriod : Period [0..1]An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does NOT include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tabletsnumberOfRepeatsAllowed : positiveInt [0..1]The amount that is to be dispensed for one fillquantity : Quantity(SimpleQuantity) [0..1]Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to lastexpectedSupplyDuration : Duration [0..1]SubstitutionTrue if the prescriber allows a different drug to be dispensed from what was prescribedallowed : boolean [1..1]Indicates the reason for the substitution, or why substitution must or must not be performedreason : CodeableConcept [0..1] « A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. (Strength=Example)SubstanceAdminSubstitutionRea...?? »EventHistoryThe status for the eventstatus : code [1..1] « A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription. (Strength=Required)MedicationOrderStatus! »The action that was taken (e.g. verify, discontinue)action : CodeableConcept [0..1]The date/time at which the event occurreddateTime : dateTime [1..1]The person responsible for taking the actionactor : Reference [0..1] « Practitioner »The reason why the action was takenreason : CodeableConcept [0..1]Indicates how the medication is to be used by the patientdosageInstruction[0..*]Indicates the specific details for the dispense or medication supply part of a medication order (also known as a Medication Prescription). Note that this information is NOT always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy departmentdispenseRequest[0..1]Indicates whether or not substitution can or should be part of the dispense. In some cases substitution must happen, in other cases substitution must not happen, and in others it does not matter. This block explains the prescriber's intent. If nothing is specified substitution may be donesubstitution[0..1]A summary of the events of interest that have occurred as the request is processed; e.g. when the order was verified or when it was completedeventHistory[0..*]

XML Template

<MedicationOrder xmlns="http://hl7.org/fhir"> doco
 <!-- 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

{doco
  "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/> .doco


[ 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)

11.2.3.1 Terminology Bindings

PathDefinitionTypeReference
MedicationOrder.status
MedicationOrder.eventHistory.status
A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.RequiredMedicationOrderStatus
MedicationOrder.medication[x] A coded concept identifying substance or product that can be ordered.ExampleSNOMED CT Medication Codes
MedicationOrder.reasonCode A coded concept indicating why the medication was ordered.ExampleCondition/Problem/Diagnosis Codes
MedicationOrder.category A coded concept identifying where the medication ordered is expected to be consumed or administeredExampleMedicationOrderCategory
MedicationOrder.dosageInstruction.additionalInstructions A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".ExampleSNOMED 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.ExampleSNOMED 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.ExampleSNOMED 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.ExampleSNOMED CT Route Codes
MedicationOrder.dosageInstruction.method A coded concept describing the technique by which the medicine is administered.ExampleSNOMED 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.ExampleSubstanceAdminSubstitutionReason
MedicationOrder.eventHistory.action A coded concept describing an action taken on a medication order.UnknownNo details provided yet
MedicationOrder.eventHistory.reason A coded concept describing the reason for an action taken on a medication order.UnknownNo details provided yet

11.2.4 Search Parameters

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPaths
codetokenReturn prescriptions of this medication codeMedicationOrder.medicationCodeableConcept
datewrittendateReturn prescriptions written on this dateMedicationOrder.dateWritten
encounterreferenceReturn prescriptions with this encounter identifierMedicationOrder.encounter
(Encounter)
identifiertokenReturn prescriptions with this external identifierMedicationOrder.identifier
medicationreferenceReturn prescriptions of this medication referenceMedicationOrder.medicationReference
(Medication)
patientreferenceThe identity of a patient to list orders forMedicationOrder.patient
(Patient)
prescriberreferenceReturns prescriptions prescribed by this prescriberMedicationOrder.prescriber
(Practitioner)
statustokenStatus of the prescriptionMedicationOrder.status