PATIENT ADMINISTRTAION (PA) Workgroup Development Draft

4.13 Resource MedicationPrescription - Content

This resource maintained by the Pharmacy Work Group

An order for both supply of the medication and the instructions for administration of the medicine to a patient.

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) and dietary 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

MedicationPrescription 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, MedicationDispense and Procedure

4.13.3 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationPrescription 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 | superceded | draft
MedicationPrescriptionStatus (Required)
... patient 0..1PatientWho prescription is for
... prescriber 0..1PractitionerWho ordered the medication(s)
... encounter 0..1EncounterCreated during encounter / admission / stay
... reason[x] Reason or indication for writing the prescription
.... reasonCodeableConcept0..1CodeableConcept
.... reasonReference0..1Condition
... note 0..1stringInformation about the prescription
... medication[x] Medication to be taken
.... medicationCodeableConcept1..1CodeableConcept
.... medicationReference1..1Medication
... dosageInstruction 0..*ElementHow medication should be taken
.... text 0..1stringDosage instructions expressed as text
.... additionalInstructions 0..1CodeableConceptSupplemental instructions - e.g. "with meals"
.... scheduled[x] When medication should be administered
..... scheduledDateTime0..1dateTime
..... scheduledPeriod0..1Period
..... scheduledTiming0..1Timing
.... asNeeded[x] Take "as needed" f(or x)
..... asNeededBoolean0..1boolean
..... asNeededCodeableConcept0..1CodeableConcept
.... site 0..1CodeableConceptBody site to administer to
SNOMED CT Anatomical Structure for Administration Site Codes (Example)
.... route 0..1CodeableConceptHow drug should enter body
SNOMED CT Route Codes (Example)
.... method 0..1CodeableConceptTechnique for administering medication
SNOMED CT Introduction (procedure) for Administration Method Codes (Example)
.... dose[x] Amount of medication per dose
..... doseRange0..1Range
..... doseQuantity0..1Quantity
.... rate 0..1RatioAmount of medication per unit of time
.... maxDosePerPeriod 0..1RatioUpper limit on medication per unit of time
... dispense 0..1ElementMedication supply authorization
.... medication[x] Product to be supplied
..... medicationCodeableConcept0..1CodeableConcept
..... medicationReference0..1Medication
.... validityPeriod 0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed 0..1positiveInt# of refills authorized
.... quantity 0..1QuantityAmount of medication to supply per dispense
.... expectedSupplyDuration 0..1DurationDays supply per dispense
... substitution 0..1ElementAny restrictions on medication substitution?
.... type 1..1CodeableConceptgeneric | formulary +
ActSubstanceAdminSubstitutionCode (Example)
.... reason 0..1CodeableConceptWhy should substitution (not) be made
SubstanceAdminSubstitutionReason (Example)

UML Diagram

MedicationPrescription (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..1A 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.MedicationPrescriptionStatus »A link to a resource representing the person to whom the medication will be givenpatient : Reference(Patient) 0..1The healthcare professional responsible for authorizing the prescriptionprescriber : Reference(Practitioner) 0..1A link to a resource that identifies the particular occurrence of contact between patient and health care providerencounter : Reference(Encounter) 0..1Can be the reason or the indication for writing the prescriptionreason[x] : CodeableConcept|Reference(Condition) 0..1Extra information about the prescription that could not be conveyed by the other attributesnote : string 0..1Identifies 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] : CodeableConcept|Reference(Medication) 1..1DosageInstructionFree text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medicationtext : string 0..1Additional instructions such as "Swallow with plenty of water" which may or may not be codedadditionalInstructions : CodeableConcept 0..1The 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"scheduled[x] : dateTime|Period|Timing 0..1If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the MedicationasNeeded[x] : boolean|CodeableConcept 0..1A coded specification of the anatomic site where the medication first enters the bodysite : CodeableConcept 0..1 « (A coded concept describing the site location the medicine enters into or onto the bodySNOMED CT Anatomical Structure for Administration Site Codes) »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.SNOMED CT Route Codes) »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 « (A coded concept describing the technique by which the medicine is administeredSNOMED CT Introduction (procedure) for Administration Method Codes) »The amount of therapeutic or other substance given at one administration eventdose[x] : Range|Quantity 0..1Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hoursrate : Ratio 0..1The 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..1DispenseIdentifies 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] : CodeableConcept|Reference(Medication) 0..1Design 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..1An integer indicating the number of repeats of the Dispense. UsageNotes: For example, the number of times the prescribed quantity is to be supplied including the initial standard fillnumberOfRepeatsAllowed : positiveInt 0..1The amount that is to be dispensed for one fillquantity : Quantity 0..1Identifies 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 : Duration 0..1SubstitutionA 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 prescriptionActSubstanceAdminSubstitutionCode) »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.SubstanceAdminSubstitutionReason) »Indicates how the medication is to be used by the patientdosageInstruction0..*Deals with details of the dispense part of the orderdispense0..1Indicates 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 donesubstitution0..1

XML Template

<MedicationPrescription 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 | superceded | draft -->
 <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>
  <scheduled[x]><!-- 0..1 dateTime|Period|Timing When medication should be administered --></scheduled[x]>
  <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" f(or x) --></asNeeded[x]>
  <site><!-- 0..1 CodeableConcept Body site to administer to --></site>
  <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 Amount of medication per dose --></dose[x]>
  <rate><!-- 0..1 Ratio Amount of medication per unit of time --></rate>
  <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod>
 </dosageInstruction>
 <dispense>  <!-- 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 Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Duration Days supply per dispense --></expectedSupplyDuration>
 </dispense>
 <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>
</MedicationPrescription>

JSON Template

{doco
  "resourceType" : "MedicationPrescription",
  // 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 | superceded | draft
  "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"
    // scheduled[x]: When medication should be administered. One of these 3:
    "scheduledDateTime" : "<dateTime>",
    "scheduledPeriod" : { Period },
    "scheduledTiming" : { Timing },
    // asNeeded[x]: Take "as needed" f(or x). One of these 2:
    "asNeededBoolean" : <boolean>,
    "asNeededCodeableConcept" : { CodeableConcept },
    "site" : { CodeableConcept }, // Body site to administer to
    "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 },
    "rate" : { Ratio }, // Amount of medication per unit of time
    "maxDosePerPeriod" : { Ratio } // Upper limit on medication per unit of time
  }],
  "dispense" : { // 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 }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Duration } // Days supply per dispense
  },
  "substitution" : { // Any restrictions on medication substitution?
    "type" : { CodeableConcept }, // R!  generic | formulary +
    "reason" : { CodeableConcept } // Why should substitution (not) be made
  }
}

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationPrescription 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 | superceded | draft
MedicationPrescriptionStatus (Required)
... patient 0..1PatientWho prescription is for
... prescriber 0..1PractitionerWho ordered the medication(s)
... encounter 0..1EncounterCreated during encounter / admission / stay
... reason[x] Reason or indication for writing the prescription
.... reasonCodeableConcept0..1CodeableConcept
.... reasonReference0..1Condition
... note 0..1stringInformation about the prescription
... medication[x] Medication to be taken
.... medicationCodeableConcept1..1CodeableConcept
.... medicationReference1..1Medication
... dosageInstruction 0..*ElementHow medication should be taken
.... text 0..1stringDosage instructions expressed as text
.... additionalInstructions 0..1CodeableConceptSupplemental instructions - e.g. "with meals"
.... scheduled[x] When medication should be administered
..... scheduledDateTime0..1dateTime
..... scheduledPeriod0..1Period
..... scheduledTiming0..1Timing
.... asNeeded[x] Take "as needed" f(or x)
..... asNeededBoolean0..1boolean
..... asNeededCodeableConcept0..1CodeableConcept
.... site 0..1CodeableConceptBody site to administer to
SNOMED CT Anatomical Structure for Administration Site Codes (Example)
.... route 0..1CodeableConceptHow drug should enter body
SNOMED CT Route Codes (Example)
.... method 0..1CodeableConceptTechnique for administering medication
SNOMED CT Introduction (procedure) for Administration Method Codes (Example)
.... dose[x] Amount of medication per dose
..... doseRange0..1Range
..... doseQuantity0..1Quantity
.... rate 0..1RatioAmount of medication per unit of time
.... maxDosePerPeriod 0..1RatioUpper limit on medication per unit of time
... dispense 0..1ElementMedication supply authorization
.... medication[x] Product to be supplied
..... medicationCodeableConcept0..1CodeableConcept
..... medicationReference0..1Medication
.... validityPeriod 0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed 0..1positiveInt# of refills authorized
.... quantity 0..1QuantityAmount of medication to supply per dispense
.... expectedSupplyDuration 0..1DurationDays supply per dispense
... substitution 0..1ElementAny restrictions on medication substitution?
.... type 1..1CodeableConceptgeneric | formulary +
ActSubstanceAdminSubstitutionCode (Example)
.... reason 0..1CodeableConceptWhy should substitution (not) be made
SubstanceAdminSubstitutionReason (Example)

UML Diagram

MedicationPrescription (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..1A 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.MedicationPrescriptionStatus »A link to a resource representing the person to whom the medication will be givenpatient : Reference(Patient) 0..1The healthcare professional responsible for authorizing the prescriptionprescriber : Reference(Practitioner) 0..1A link to a resource that identifies the particular occurrence of contact between patient and health care providerencounter : Reference(Encounter) 0..1Can be the reason or the indication for writing the prescriptionreason[x] : CodeableConcept|Reference(Condition) 0..1Extra information about the prescription that could not be conveyed by the other attributesnote : string 0..1Identifies 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] : CodeableConcept|Reference(Medication) 1..1DosageInstructionFree text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medicationtext : string 0..1Additional instructions such as "Swallow with plenty of water" which may or may not be codedadditionalInstructions : CodeableConcept 0..1The 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"scheduled[x] : dateTime|Period|Timing 0..1If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the MedicationasNeeded[x] : boolean|CodeableConcept 0..1A coded specification of the anatomic site where the medication first enters the bodysite : CodeableConcept 0..1 « (A coded concept describing the site location the medicine enters into or onto the bodySNOMED CT Anatomical Structure for Administration Site Codes) »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.SNOMED CT Route Codes) »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 « (A coded concept describing the technique by which the medicine is administeredSNOMED CT Introduction (procedure) for Administration Method Codes) »The amount of therapeutic or other substance given at one administration eventdose[x] : Range|Quantity 0..1Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hoursrate : Ratio 0..1The 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..1DispenseIdentifies 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] : CodeableConcept|Reference(Medication) 0..1Design 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..1An integer indicating the number of repeats of the Dispense. UsageNotes: For example, the number of times the prescribed quantity is to be supplied including the initial standard fillnumberOfRepeatsAllowed : positiveInt 0..1The amount that is to be dispensed for one fillquantity : Quantity 0..1Identifies 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 : Duration 0..1SubstitutionA 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 prescriptionActSubstanceAdminSubstitutionCode) »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.SubstanceAdminSubstitutionReason) »Indicates how the medication is to be used by the patientdosageInstruction0..*Deals with details of the dispense part of the orderdispense0..1Indicates 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 donesubstitution0..1

XML Template

<MedicationPrescription 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 | superceded | draft -->
 <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>
  <scheduled[x]><!-- 0..1 dateTime|Period|Timing When medication should be administered --></scheduled[x]>
  <asNeeded[x]><!-- 0..1 boolean|CodeableConcept Take "as needed" f(or x) --></asNeeded[x]>
  <site><!-- 0..1 CodeableConcept Body site to administer to --></site>
  <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 Amount of medication per dose --></dose[x]>
  <rate><!-- 0..1 Ratio Amount of medication per unit of time --></rate>
  <maxDosePerPeriod><!-- 0..1 Ratio Upper limit on medication per unit of time --></maxDosePerPeriod>
 </dosageInstruction>
 <dispense>  <!-- 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 Amount of medication to supply per dispense --></quantity>
  <expectedSupplyDuration><!-- 0..1 Duration Days supply per dispense --></expectedSupplyDuration>
 </dispense>
 <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>
</MedicationPrescription>

JSON Template

{doco
  "resourceType" : "MedicationPrescription",
  // 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 | superceded | draft
  "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"
    // scheduled[x]: When medication should be administered. One of these 3:
    "scheduledDateTime" : "<dateTime>",
    "scheduledPeriod" : { Period },
    "scheduledTiming" : { Timing },
    // asNeeded[x]: Take "as needed" f(or x). One of these 2:
    "asNeededBoolean" : <boolean>,
    "asNeededCodeableConcept" : { CodeableConcept },
    "site" : { CodeableConcept }, // Body site to administer to
    "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 },
    "rate" : { Ratio }, // Amount of medication per unit of time
    "maxDosePerPeriod" : { Ratio } // Upper limit on medication per unit of time
  }],
  "dispense" : { // 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 }, // Amount of medication to supply per dispense
    "expectedSupplyDuration" : { Duration } // Days supply per dispense
  },
  "substitution" : { // Any restrictions on medication substitution?
    "type" : { CodeableConcept }, // R!  generic | formulary +
    "reason" : { CodeableConcept } // Why should substitution (not) be made
  }
}

 

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

4.13.3.1 Terminology Bindings

PathDefinitionTypeReference
MedicationPrescription.status A code specifying the state of the prescribing event. Describes the lifecycle of the prescription.Requiredhttp://hl7.org/fhir/medication-prescription-status
MedicationPrescription.dosageInstruction.asNeeded[x] A coded concept identifying the pre-condition that should hold prior to consuming a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up", etc.UnknownNo details provided yet
MedicationPrescription.dosageInstruction.site A coded concept describing the site location the medicine enters into or onto the bodyExamplehttp://hl7.org/fhir/vs/approach-site-codes
MedicationPrescription.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.Examplehttp://hl7.org/fhir/vs/route-codes
MedicationPrescription.dosageInstruction.method A coded concept describing the technique by which the medicine is administeredExamplehttp://hl7.org/fhir/vs/administration-method-codes
MedicationPrescription.substitution.type A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescriptionExamplehttp://hl7.org/fhir/v3/vs/ActSubstanceAdminSubstitutionCode
MedicationPrescription.substitution.reason A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.Examplehttp://hl7.org/fhir/v3/vs/SubstanceAdminSubstitutionReason

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
datewrittendateReturn prescriptions written on this dateMedicationPrescription.dateWritten
encounterreferenceReturn prescriptions with this encounter identityMedicationPrescription.encounter
(Encounter)
identifiertokenReturn prescriptions with this external identityMedicationPrescription.identifier
medicationreferenceCode for medicine or text in medicine nameMedicationPrescription.medicationReference
(Medication)
patientreferenceThe identity of a patient to list dispenses forMedicationPrescription.patient
(Patient)
prescriberreferenceWho ordered the medication(s)MedicationPrescription.prescriber
(Practitioner)
statustokenStatus of the prescriptionMedicationPrescription.status