DSTU2 QA Preview

This page is part of the FHIR Specification (v1.0.0: DSTU 2 Ballot 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

4.13 Resource MedicationOrder - Content

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

4.13.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.)

4.13.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, MedicationAdministration and MedicationDispense

4.13.3 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationOrder ΣDomainResourcePrescription of medication to for patient
... identifier Σ0..*IdentifierExternal identifier
... dateWritten Σ0..1dateTimeWhen prescription was authorized
... status ?! Σ0..1codeactive | on-hold | completed | entered-in-error | stopped | draft
MedicationOrderStatus (Required)
... dateEnded Σ0..1dateTimeWhen prescription was stopped
... reasonEnded Σ0..1CodeableConceptWhy prescription was stopped
... patient Σ0..1Reference(Patient)Who prescription is for
... prescriber Σ0..1Reference(Practitioner)Who ordered the medication(s)
... encounter Σ0..1Reference(Encounter)Created during encounter / admission / stay
... reason[x] Σ0..1Reason or indication for writing the prescription
.... reasonCodeableConceptCodeableConcept
.... reasonReferenceReference(Condition)
... note Σ0..1stringInformation about the prescription
... medication[x] Σ1..1Medication to be taken
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(Medication)
... dosageInstruction Σ0..*BackboneElementHow medication should be taken
.... text Σ0..1stringDosage instructions expressed as text
.... additionalInstructions Σ0..1CodeableConceptSupplemental instructions - e.g. "with meals"
.... timing Σ0..1TimingWhen medication should be administered
.... asNeeded[x] Σ0..1Take "as needed" (for x)
..... 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
.... dose[x] Σ0..1Amount of medication per dose
..... doseRangeRange
..... doseQuantitySimpleQuantity
.... rate[x] Σ0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
.... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
... dispenseRequest Σ0..1BackboneElementMedication supply authorization
.... medication[x] Σ0..1Product to be supplied
..... medicationCodeableConceptCodeableConcept
..... medicationReferenceReference(Medication)
.... validityPeriod Σ0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed Σ0..1positiveInt# of refills authorized
.... quantity Σ0..1SimpleQuantityAmount of medication to supply per dispense
.... expectedSupplyDuration Σ0..1DurationDays supply per dispense
... substitution Σ0..1BackboneElementAny restrictions on medication substitution?
.... type Σ1..1CodeableConceptgeneric | formulary +
ActSubstanceAdminSubstitutionCode (Example)
.... reason Σ0..1CodeableConceptWhy should substitution (not) be made
SubstanceAdminSubstitutionReason (Example)
... priorPrescription Σ0..1Reference(MedicationOrder)An order/prescription that this supersedes

doco Documentation for this format

UML Diagram

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 erntire workflow process where records have to be tracked through an entire systemidentifier : Identifier [0..*]The date (and perhaps time) when the prescription was writtendateWritten : dateTime [0..1]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 code specifying the state of the prescribing event. Describes the lifecycle of the prescription. (Strength=Required)MedicationOrderStatus! »The date (and perhaps time) when the prescription was stoppeddateEnded : dateTime [0..1]The reason why the prescription was stopped, if it wasreasonEnded : CodeableConcept [0..1]A link to a resource representing the person to whom the medication will be givenpatient : Reference [0..1] « Patient »The healthcare professional responsible for authorizing the prescriptionprescriber : Reference [0..1] « Practitioner »A link to a resource that identifies the particular occurrence of contact between patient and health care providerencounter : Reference [0..1] « Encounter »Can be the reason or the indication for writing the prescriptionreason[x] : Type [0..1] « CodeableConcept|Reference(Condition) »Extra information about the prescription that could not be conveyed by the other attributesnote : string [0..1]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 link to a resource representing an earlier order or prescription that this order supersedespriorPrescription : 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..1]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". This attribute may not always be populated while the DosageInstruction.text is expected to be populated. If both are populated, then the DosageInstruction.text should reflect the content of the Dosage.timingtiming : 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). Specifically if 'boolean' datatype is selected, then the following logic applies: If set to True, this indicates that the medication is only taken when needed, within the specified scheduleasNeeded[x] : Type [0..1] « boolean|CodeableConcept »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 patientroute : 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. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administrationmethod : CodeableConcept [0..1]The amount of therapeutic or other substance given at one administration eventdose[x] : Type [0..1] « Range|Quantity(SimpleQuantity) »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. Currently we do not specify a default of '1' in the denominator, but this is being discussed. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hoursrate[x] : Type [0..1] « Ratio|Range »The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hoursmaxDosePerPeriod : Ratio [0..1]DispenseRequestIdentifies 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 [0..1] « CodeableConcept|Reference(Medication) »Design Comments: This indicates the validity period of a prescription (stale dating the Prescription) It reflects the prescriber perspective for the validity of the prescription. Dispenses must not be made against the prescription outside of this period. The lower-bound of the Dispensing Window signifies the earliest date that the prescription can be filled for the first time. If an upper-bound is not specified then the Prescription is open-ended or will default to a stale-date based on regulations. Rationale: Indicates when the Prescription becomes valid, and when it ceases to be a dispensable PrescriptionvalidityPeriod : Period [0..1]An integer indicating the number of additional times (aka refills or repeats) 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 last. In some situations, this attribute may be used instead of quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued, e.g. 90 days supply of medication (based on an ordered dosage) When possible, it is always better to specify quantity, as this tends to be more precise. expectedSupplyDuration will always be an estimate that can be influenced by external factorsexpectedSupplyDuration : Quantity(Duration) [0..1]SubstitutionA code signifying whether a different drug should be dispensed from what was prescribedtype : CodeableConcept [1..1] « A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription (Strength=Example)ActSubstanceAdminSubstitution...?? »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...?? »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]

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>
 <dateWritten value="[dateTime]"/><!-- 0..1 When prescription was authorized -->
 <status value="[code]"/><!-- 0..1 active | on-hold | completed | entered-in-error | stopped | draft -->
 <dateEnded value="[dateTime]"/><!-- 0..1 When prescription was stopped -->
 <reasonEnded><!-- 0..1 CodeableConcept Why prescription was stopped --></reasonEnded>
 <patient><!-- 0..1 Reference(Patient) Who prescription is for --></patient>
 <prescriber><!-- 0..1 Reference(Practitioner) Who ordered the medication(s) --></prescriber>
 <encounter><!-- 0..1 Reference(Encounter) Created during encounter / admission / stay --></encounter>
 <reason[x]><!-- 0..1 CodeableConcept|Reference(Condition) Reason or indication for writing the prescription --></reason[x]>
 <note value="[string]"/><!-- 0..1 Information about the prescription -->
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) Medication to be taken --></medication[x]>
 <dosageInstruction>  <!-- 0..* How medication should be taken -->
  <text value="[string]"/><!-- 0..1 Dosage instructions expressed as text -->
  <additionalInstructions><!-- 0..1 CodeableConcept Supplemental instructions - e.g. "with meals" --></additionalInstructions>
  <timing><!-- 0..1 Timing When medication should be administered --></timing>
  <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" (for x) --></asNeeded[x]>
  <site[x]><!-- 0..1 CodeableConcept|Reference(BodySite) Body site to administer to --></site[x]>
  <route><!-- 0..1 CodeableConcept How drug should enter body --></route>
  <method><!-- 0..1 CodeableConcept Technique for administering medication --></method>
  <dose[x]><!-- 0..1 Range|Quantity(SimpleQuantity) Amount of medication per dose --></dose[x]>
  <rate[x]><!-- 0..1 Ratio|Range Amount of medication per unit of time --></rate[x]>
  <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod>
 </dosageInstruction>
 <dispenseRequest>  <!-- 0..1 Medication supply authorization -->
  <medication[x]><!-- 0..1 CodeableConcept|Reference(Medication) Product to be supplied --></medication[x]>
  <validityPeriod><!-- 0..1 Period Time period supply is authorized for --></validityPeriod>
  <numberOfRepeatsAllowed value="[positiveInt]"/><!-- 0..1 # of refills authorized -->
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Quantity(Duration) Days supply per dispense --></expectedSupplyDuration>
 </dispenseRequest>
 <substitution>  <!-- 0..1 Any restrictions on medication substitution? -->
  <type><!-- 1..1 CodeableConcept generic | formulary + --></type>
  <reason><!-- 0..1 CodeableConcept Why should substitution (not) be made --></reason>
 </substitution>
 <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription>
</MedicationOrder>

JSON Template

{doco
  "resourceType" : "MedicationOrder",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifier
  "dateWritten" : "<dateTime>", // When prescription was authorized
  "status" : "<code>", // active | on-hold | completed | entered-in-error | stopped | draft
  "dateEnded" : "<dateTime>", // When prescription was stopped
  "reasonEnded" : { CodeableConcept }, // Why prescription was stopped
  "patient" : { Reference(Patient) }, // Who prescription is for
  "prescriber" : { Reference(Practitioner) }, // Who ordered the medication(s)
  "encounter" : { Reference(Encounter) }, // Created during encounter / admission / stay
  // reason[x]: Reason or indication for writing the prescription. One of these 2:
  "reasonCodeableConcept" : { CodeableConcept },
  "reasonReference" : { Reference(Condition) },
  "note" : "<string>", // Information about the prescription
  // medication[x]: Medication to be taken. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "dosageInstruction" : [{ // How medication should be taken
    "text" : "<string>", // Dosage instructions expressed as text
    "additionalInstructions" : { CodeableConcept }, // Supplemental instructions - e.g. "with meals"
    "timing" : { Timing }, // When medication should be administered
    // asNeeded[x]: Take "as needed" (for x). One of these 2:
    "asNeededBoolean" : <boolean>,
    "asNeededCodeableConcept" : { CodeableConcept },
    // site[x]: Body site to administer to. One of these 2:
    "siteCodeableConcept" : { CodeableConcept },
    "siteReference" : { Reference(BodySite) },
    "route" : { CodeableConcept }, // How drug should enter body
    "method" : { CodeableConcept }, // Technique for administering medication
    // dose[x]: Amount of medication per dose. One of these 2:
    "doseRange" : { Range },
    "doseQuantity" : { Quantity(SimpleQuantity) },
    // rate[x]: Amount of medication per unit of time. One of these 2:
    "rateRatio" : { Ratio },
    "rateRange" : { Range },
    "maxDosePerPeriod" : { Ratio } // Upper limit on medication per unit of time
  }],
  "dispenseRequest" : { // Medication supply authorization
    // medication[x]: Product to be supplied. One of these 2:
    "medicationCodeableConcept" : { CodeableConcept },
    "medicationReference" : { Reference(Medication) },
    "validityPeriod" : { Period }, // Time period supply is authorized for
    "numberOfRepeatsAllowed" : "<positiveInt>", // # of refills authorized
    "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Quantity(Duration) } // Days supply per dispense
  },
  "substitution" : { // Any restrictions on medication substitution?
    "type" : { CodeableConcept }, // R!  generic | formulary +
    "reason" : { CodeableConcept } // Why should substitution (not) be made
  },
  "priorPrescription" : { Reference(MedicationOrder) } // An order/prescription that this supersedes
}

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationOrder ΣDomainResourcePrescription of medication to for patient
... identifier Σ0..*IdentifierExternal identifier
... dateWritten Σ0..1dateTimeWhen prescription was authorized
... status ?! Σ0..1codeactive | on-hold | completed | entered-in-error | stopped | draft
MedicationOrderStatus (Required)
... dateEnded Σ0..1dateTimeWhen prescription was stopped
... reasonEnded Σ0..1CodeableConceptWhy prescription was stopped
... patient Σ0..1Reference(Patient)Who prescription is for
... prescriber Σ0..1Reference(Practitioner)Who ordered the medication(s)
... encounter Σ0..1Reference(Encounter)Created during encounter / admission / stay
... reason[x] Σ0..1Reason or indication for writing the prescription
.... reasonCodeableConceptCodeableConcept
.... reasonReferenceReference(Condition)
... note Σ0..1stringInformation about the prescription
... medication[x] Σ1..1Medication to be taken
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(Medication)
... dosageInstruction Σ0..*BackboneElementHow medication should be taken
.... text Σ0..1stringDosage instructions expressed as text
.... additionalInstructions Σ0..1CodeableConceptSupplemental instructions - e.g. "with meals"
.... timing Σ0..1TimingWhen medication should be administered
.... asNeeded[x] Σ0..1Take "as needed" (for x)
..... 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
.... dose[x] Σ0..1Amount of medication per dose
..... doseRangeRange
..... doseQuantitySimpleQuantity
.... rate[x] Σ0..1Amount of medication per unit of time
..... rateRatioRatio
..... rateRangeRange
.... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
... dispenseRequest Σ0..1BackboneElementMedication supply authorization
.... medication[x] Σ0..1Product to be supplied
..... medicationCodeableConceptCodeableConcept
..... medicationReferenceReference(Medication)
.... validityPeriod Σ0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed Σ0..1positiveInt# of refills authorized
.... quantity Σ0..1SimpleQuantityAmount of medication to supply per dispense
.... expectedSupplyDuration Σ0..1DurationDays supply per dispense
... substitution Σ0..1BackboneElementAny restrictions on medication substitution?
.... type Σ1..1CodeableConceptgeneric | formulary +
ActSubstanceAdminSubstitutionCode (Example)
.... reason Σ0..1CodeableConceptWhy should substitution (not) be made
SubstanceAdminSubstitutionReason (Example)
... priorPrescription Σ0..1Reference(MedicationOrder)An order/prescription that this supersedes

doco Documentation for this format

UML Diagram

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 erntire workflow process where records have to be tracked through an entire systemidentifier : Identifier [0..*]The date (and perhaps time) when the prescription was writtendateWritten : dateTime [0..1]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 code specifying the state of the prescribing event. Describes the lifecycle of the prescription. (Strength=Required)MedicationOrderStatus! »The date (and perhaps time) when the prescription was stoppeddateEnded : dateTime [0..1]The reason why the prescription was stopped, if it wasreasonEnded : CodeableConcept [0..1]A link to a resource representing the person to whom the medication will be givenpatient : Reference [0..1] « Patient »The healthcare professional responsible for authorizing the prescriptionprescriber : Reference [0..1] « Practitioner »A link to a resource that identifies the particular occurrence of contact between patient and health care providerencounter : Reference [0..1] « Encounter »Can be the reason or the indication for writing the prescriptionreason[x] : Type [0..1] « CodeableConcept|Reference(Condition) »Extra information about the prescription that could not be conveyed by the other attributesnote : string [0..1]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 link to a resource representing an earlier order or prescription that this order supersedespriorPrescription : 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..1]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". This attribute may not always be populated while the DosageInstruction.text is expected to be populated. If both are populated, then the DosageInstruction.text should reflect the content of the Dosage.timingtiming : 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). Specifically if 'boolean' datatype is selected, then the following logic applies: If set to True, this indicates that the medication is only taken when needed, within the specified scheduleasNeeded[x] : Type [0..1] « boolean|CodeableConcept »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 patientroute : 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. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administrationmethod : CodeableConcept [0..1]The amount of therapeutic or other substance given at one administration eventdose[x] : Type [0..1] « Range|Quantity(SimpleQuantity) »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. Currently we do not specify a default of '1' in the denominator, but this is being discussed. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hoursrate[x] : Type [0..1] « Ratio|Range »The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hoursmaxDosePerPeriod : Ratio [0..1]DispenseRequestIdentifies 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 [0..1] « CodeableConcept|Reference(Medication) »Design Comments: This indicates the validity period of a prescription (stale dating the Prescription) It reflects the prescriber perspective for the validity of the prescription. Dispenses must not be made against the prescription outside of this period. The lower-bound of the Dispensing Window signifies the earliest date that the prescription can be filled for the first time. If an upper-bound is not specified then the Prescription is open-ended or will default to a stale-date based on regulations. Rationale: Indicates when the Prescription becomes valid, and when it ceases to be a dispensable PrescriptionvalidityPeriod : Period [0..1]An integer indicating the number of additional times (aka refills or repeats) 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 last. In some situations, this attribute may be used instead of quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued, e.g. 90 days supply of medication (based on an ordered dosage) When possible, it is always better to specify quantity, as this tends to be more precise. expectedSupplyDuration will always be an estimate that can be influenced by external factorsexpectedSupplyDuration : Quantity(Duration) [0..1]SubstitutionA code signifying whether a different drug should be dispensed from what was prescribedtype : CodeableConcept [1..1] « A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription (Strength=Example)ActSubstanceAdminSubstitution...?? »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...?? »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]

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>
 <dateWritten value="[dateTime]"/><!-- 0..1 When prescription was authorized -->
 <status value="[code]"/><!-- 0..1 active | on-hold | completed | entered-in-error | stopped | draft -->
 <dateEnded value="[dateTime]"/><!-- 0..1 When prescription was stopped -->
 <reasonEnded><!-- 0..1 CodeableConcept Why prescription was stopped --></reasonEnded>
 <patient><!-- 0..1 Reference(Patient) Who prescription is for --></patient>
 <prescriber><!-- 0..1 Reference(Practitioner) Who ordered the medication(s) --></prescriber>
 <encounter><!-- 0..1 Reference(Encounter) Created during encounter / admission / stay --></encounter>
 <reason[x]><!-- 0..1 CodeableConcept|Reference(Condition) Reason or indication for writing the prescription --></reason[x]>
 <note value="[string]"/><!-- 0..1 Information about the prescription -->
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) Medication to be taken --></medication[x]>
 <dosageInstruction>  <!-- 0..* How medication should be taken -->
  <text value="[string]"/><!-- 0..1 Dosage instructions expressed as text -->
  <additionalInstructions><!-- 0..1 CodeableConcept Supplemental instructions - e.g. "with meals" --></additionalInstructions>
  <timing><!-- 0..1 Timing When medication should be administered --></timing>
  <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" (for x) --></asNeeded[x]>
  <site[x]><!-- 0..1 CodeableConcept|Reference(BodySite) Body site to administer to --></site[x]>
  <route><!-- 0..1 CodeableConcept How drug should enter body --></route>
  <method><!-- 0..1 CodeableConcept Technique for administering medication --></method>
  <dose[x]><!-- 0..1 Range|Quantity(SimpleQuantity) Amount of medication per dose --></dose[x]>
  <rate[x]><!-- 0..1 Ratio|Range Amount of medication per unit of time --></rate[x]>
  <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod>
 </dosageInstruction>
 <dispenseRequest>  <!-- 0..1 Medication supply authorization -->
  <medication[x]><!-- 0..1 CodeableConcept|Reference(Medication) Product to be supplied --></medication[x]>
  <validityPeriod><!-- 0..1 Period Time period supply is authorized for --></validityPeriod>
  <numberOfRepeatsAllowed value="[positiveInt]"/><!-- 0..1 # of refills authorized -->
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Quantity(Duration) Days supply per dispense --></expectedSupplyDuration>
 </dispenseRequest>
 <substitution>  <!-- 0..1 Any restrictions on medication substitution? -->
  <type><!-- 1..1 CodeableConcept generic | formulary + --></type>
  <reason><!-- 0..1 CodeableConcept Why should substitution (not) be made --></reason>
 </substitution>
 <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription>
</MedicationOrder>

JSON Template

{doco
  "resourceType" : "MedicationOrder",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifier
  "dateWritten" : "<dateTime>", // When prescription was authorized
  "status" : "<code>", // active | on-hold | completed | entered-in-error | stopped | draft
  "dateEnded" : "<dateTime>", // When prescription was stopped
  "reasonEnded" : { CodeableConcept }, // Why prescription was stopped
  "patient" : { Reference(Patient) }, // Who prescription is for
  "prescriber" : { Reference(Practitioner) }, // Who ordered the medication(s)
  "encounter" : { Reference(Encounter) }, // Created during encounter / admission / stay
  // reason[x]: Reason or indication for writing the prescription. One of these 2:
  "reasonCodeableConcept" : { CodeableConcept },
  "reasonReference" : { Reference(Condition) },
  "note" : "<string>", // Information about the prescription
  // medication[x]: Medication to be taken. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "dosageInstruction" : [{ // How medication should be taken
    "text" : "<string>", // Dosage instructions expressed as text
    "additionalInstructions" : { CodeableConcept }, // Supplemental instructions - e.g. "with meals"
    "timing" : { Timing }, // When medication should be administered
    // asNeeded[x]: Take "as needed" (for x). One of these 2:
    "asNeededBoolean" : <boolean>,
    "asNeededCodeableConcept" : { CodeableConcept },
    // site[x]: Body site to administer to. One of these 2:
    "siteCodeableConcept" : { CodeableConcept },
    "siteReference" : { Reference(BodySite) },
    "route" : { CodeableConcept }, // How drug should enter body
    "method" : { CodeableConcept }, // Technique for administering medication
    // dose[x]: Amount of medication per dose. One of these 2:
    "doseRange" : { Range },
    "doseQuantity" : { Quantity(SimpleQuantity) },
    // rate[x]: Amount of medication per unit of time. One of these 2:
    "rateRatio" : { Ratio },
    "rateRange" : { Range },
    "maxDosePerPeriod" : { Ratio } // Upper limit on medication per unit of time
  }],
  "dispenseRequest" : { // Medication supply authorization
    // medication[x]: Product to be supplied. One of these 2:
    "medicationCodeableConcept" : { CodeableConcept },
    "medicationReference" : { Reference(Medication) },
    "validityPeriod" : { Period }, // Time period supply is authorized for
    "numberOfRepeatsAllowed" : "<positiveInt>", // # of refills authorized
    "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Quantity(Duration) } // Days supply per dispense
  },
  "substitution" : { // Any restrictions on medication substitution?
    "type" : { CodeableConcept }, // R!  generic | formulary +
    "reason" : { CodeableConcept } // Why should substitution (not) be made
  },
  "priorPrescription" : { Reference(MedicationOrder) } // An order/prescription that this supersedes
}

 

Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire

4.13.3.1 Terminology Bindings

PathDefinitionTypeReference
MedicationOrder.status A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.RequiredMedicationOrderStatus
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.UnknownNo details provided yet
MedicationOrder.dosageInstruction.site[x] A coded concept describing the site location the medicine enters into or onto the bodyExampleSNOMED 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 administeredUnknownNo details provided yet
MedicationOrder.substitution.type A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescriptionExampleActSubstanceAdminSubstitutionCode
MedicationOrder.substitution.reason A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.ExampleSubstanceAdminSubstitutionReason

4.13.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 administrations of this medication codeMedicationOrder.medicationCodeableConcept
datewrittendateReturn prescriptions written on this dateMedicationOrder.dateWritten
encounterreferenceReturn prescriptions with this encounter identityMedicationOrder.encounter
(Encounter)
identifiertokenReturn prescriptions with this external identityMedicationOrder.identifier
medicationreferenceReturn administrations of this medication referenceMedicationOrder.medicationReference
(Medication)
patientreferenceThe identity of a patient to list dispenses forMedicationOrder.patient
(Patient)
prescriberreferenceWho ordered the medication(s)MedicationOrder.prescriber
(Practitioner)
statustokenStatus of the prescriptionMedicationOrder.status