Connectathon 11 Snapshot

This page is part of the FHIR Specification (v1.2.0: STU 3 Draft). 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.21 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.

4.21.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.21.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

4.21.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
Condition/Problem/Diagnosis Codes (Example)
.... 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..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
.... type Σ1..1CodeableConceptgeneric | formulary +
ActSubstanceAdminSubstitutionCode (Example)
.... reason Σ0..1CodeableConceptWhy should (not) substitution 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 entire 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); Codes indicating why the medication was ordered. (Strength=Example) Condition/Problem/Diagnosis ?? »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"timing : 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 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]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. For example, 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) »This indicates the validity period of a prescription (stale dating the Prescription)validityPeriod : 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 lastexpectedSupplyDuration : 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 Number of refills authorized -->
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Quantity(Duration) Number of days supply per dispense --></expectedSupplyDuration>
 </dispenseRequest>
 <substitution>  <!-- 0..1 Any restrictions on medication substitution -->
  <type><!-- 1..1 CodeableConcept generic | formulary + --></type>
  <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason>
 </substitution>
 <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription>
</MedicationOrder>

JSON Template

{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>", // Number of refills authorized
    "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Quantity(Duration) } // Number of days supply per dispense
  },
  "substitution" : { // Any restrictions on medication substitution
    "type" : { CodeableConcept }, // R!  generic | formulary +
    "reason" : { CodeableConcept } // Why should (not) substitution be made
  },
  "priorPrescription" : { Reference(MedicationOrder) } // An order/prescription that this supersedes
}

Structure

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
Condition/Problem/Diagnosis Codes (Example)
.... 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..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
.... type Σ1..1CodeableConceptgeneric | formulary +
ActSubstanceAdminSubstitutionCode (Example)
.... reason Σ0..1CodeableConceptWhy should (not) substitution 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 entire 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); Codes indicating why the medication was ordered. (Strength=Example) Condition/Problem/Diagnosis ?? »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"timing : 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 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]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. For example, 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) »This indicates the validity period of a prescription (stale dating the Prescription)validityPeriod : 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 lastexpectedSupplyDuration : 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 Number of refills authorized -->
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Quantity(Duration) Number of days supply per dispense --></expectedSupplyDuration>
 </dispenseRequest>
 <substitution>  <!-- 0..1 Any restrictions on medication substitution -->
  <type><!-- 1..1 CodeableConcept generic | formulary + --></type>
  <reason><!-- 0..1 CodeableConcept Why should (not) substitution be made --></reason>
 </substitution>
 <priorPrescription><!-- 0..1 Reference(MedicationOrder) An order/prescription that this supersedes --></priorPrescription>
</MedicationOrder>

JSON Template

{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>", // Number of refills authorized
    "quantity" : { Quantity(SimpleQuantity) }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Quantity(Duration) } // Number of days supply per dispense
  },
  "substitution" : { // Any restrictions on medication substitution
    "type" : { CodeableConcept }, // R!  generic | formulary +
    "reason" : { CodeableConcept } // Why should (not) substitution be made
  },
  "priorPrescription" : { Reference(MedicationOrder) } // An order/prescription that this supersedes
}

 

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

4.21.3.1 Terminology Bindings

PathDefinitionTypeReference
MedicationOrder.status A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.RequiredMedicationOrderStatus
MedicationOrder.reasonEnded Codes indicating why the medication was terminated; e.g. Adverse reaction, medication change, issue resolved, etc.UnknownNo details provided yet
MedicationOrder.reason[x] Codes indicating why the medication was ordered.ExampleCondition/Problem/Diagnosis Codes
MedicationOrder.dosageInstruction.additionalInstructions Codes identifying additional instructions such as "take with water" or "avoid operating heavy machinery".UnknownNo details provided yet
MedicationOrder.dosageInstruction.asNeeded[x] A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.UnknownNo details provided yet
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.UnknownNo details provided yet
MedicationOrder.substitution.type A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription.ExampleActSubstanceAdminSubstitutionCode
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.21.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 identifierMedicationOrder.encounter
(Encounter)
identifiertokenReturn prescriptions with this external identifierMedicationOrder.identifier
medicationreferenceReturn administrations of this medication referenceMedicationOrder.medicationReference
(Medication)
patientreferenceThe identity of a patient to list orders forMedicationOrder.patient
(Patient)
prescriberreferenceWho ordered the medication(s)MedicationOrder.prescriber
(Practitioner)
statustokenStatus of the prescriptionMedicationOrder.status