PATIENT ADMINISTRTAION (PA) Workgroup Development Draft

4.15 Resource MedicationDispense - Content

This resource maintained by the Pharmacy Work Group

Dispensing a medication to a named patient. This includes a description of the supply provided and the instructions for administering the medication.

4.15.1 Scope and Usage

This resource covers the supply of all medications to a patient. Examples include dispensing and pick-up from an out-patient pharmacy, dispensing patient-specific medications from in-patient pharmacy to ward as well as issuing a single dose from ward stock to a patient for consumption.

4.15.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 does not deal with the supply or transfer of non-medication related items to a patient.

4.15.3 Background and Context

The supply and the associated administration instructions may not exactly follow the original order (prescription) either because some details were left for completion at this point in the process, or because the dispenser exercised their clinical judgment to make some appropriate modification.

This resource is referenced by [Procedure]

4.15.4 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense IDomainResourceDispensing a medication to a named patient
whenHandedOver cannot be before whenPrepared
... identifier 0..1IdentifierExternal identifier
... status ?!0..1codein-progress | on-hold | completed | entered-in-error | stopped
MedicationDispenseStatus (Required)
... patient 0..1PatientWho the dispense is for
... dispenser 0..1PractitionerPractitioner responsible for dispensing medication
... authorizingPrescription 0..*MedicationPrescriptionMedication order that authorizes the dispense
... type 0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
ActPharmacySupplyType (Example)
... quantity 0..1QuantityAmount dispensed
... daysSupply 0..1QuantityDays Supply
... medication[x] What medication was supplied
.... medicationCodeableConcept1..1CodeableConcept
.... medicationReference1..1Medication
... whenPrepared 0..1dateTimeDispense processing time
... whenHandedOver 0..1dateTimeHandover time
... destination 0..1LocationWhere the medication was sent
... receiver 0..*Patient | PractitionerWho collected the medication
... note 0..1stringInformation about the dispense
... dosageInstruction 0..*ElementMedicine administration instructions to the patient/carer
.... text 0..1stringDosage Instructions
.... additionalInstructions 0..1CodeableConceptE.g. "Take with food"
.... schedule[x] When medication should be administered
..... scheduleDateTime0..1dateTime
..... schedulePeriod0..1Period
..... scheduleTiming0..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
... substitution 0..1ElementDeals with substitution of one medicine for another
.... type 1..1CodeableConceptType of substitiution
ActSubstanceAdminSubstitutionCode (Example)
.... reason 0..*CodeableConceptWhy was substitution made
SubstanceAdminSubstitutionReason (Example)
.... responsibleParty 0..*PractitionerWho is responsible for the substitution

UML Diagram

MedicationDispense (DomainResource)Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIRidentifier : Identifier 0..1A code specifying the state of the set of dispense events (this element modifies the meaning of other elements)status : code 0..1 « A code specifying the state of the dispense event.MedicationDispenseStatus »A link to a resource representing the person to whom the medication will be givenpatient : Reference(Patient) 0..1The individual responsible for dispensing the medicationdispenser : Reference(Practitioner) 0..1Indicates the medication order that is being dispensed againstauthorizingPrescription : Reference(MedicationPrescription) 0..*Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etctype : CodeableConcept 0..1 « (Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.ActPharmacySupplyType) »The amount of medication that has been dispensed. Includes unit of measurequantity : Quantity 0..1The amount of medication expressed as a timing amountdaysSupply : Quantity 0..1Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medicationsmedication[x] : CodeableConcept|Reference(Medication) 1..1The time when the dispensed product was packaged and reviewedwhenPrepared : dateTime 0..1The time the dispensed product was provided to the patient or their representativewhenHandedOver : dateTime 0..1Identification of the facility/location where the medication was shipped to, as part of the dispense eventdestination : Reference(Location) 0..1Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professionalreceiver : Reference(Patient|Practitioner) 0..*Extra information about the dispense that could not be conveyed in the other attributesnote : string 0..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"schedule[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 subjectroute : 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 subjectSNOMED 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..1SubstitutionA code signifying whether a different drug was 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 of (or lack of substitution) from what was prescribedreason : CodeableConcept 0..* « (A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribedSubstanceAdminSubstitutionReason) »The person or organization that has primary responsibility for the substitutionresponsibleParty : Reference(Practitioner) 0..*Indicates how the medication is to be used by the patientdosageInstruction0..*Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and whysubstitution0..1

XML Template

<MedicationDispense xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..1 Identifier External identifier --></identifier>
 <status value="[code]"/><!-- 0..1 in-progress | on-hold | completed | entered-in-error | stopped -->
 <patient><!-- 0..1 Reference(Patient) Who the dispense is for --></patient>
 <dispenser><!-- 0..1 Reference(Practitioner) Practitioner responsible for dispensing medication --></dispenser>
 <authorizingPrescription><!-- 0..* Reference(MedicationPrescription) Medication order that authorizes the dispense --></authorizingPrescription>
 <type><!-- 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc. --></type>
 <quantity><!-- 0..1 Quantity Amount dispensed --></quantity>
 <daysSupply><!-- 0..1 Quantity Days Supply --></daysSupply>
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) What medication was supplied --></medication[x]>
 <whenPrepared value="[dateTime]"/><!-- 0..1 Dispense processing time -->
 <whenHandedOver value="[dateTime]"/><!-- 0..1 Handover time -->
 <destination><!-- 0..1 Reference(Location) Where the medication was sent --></destination>
 <receiver><!-- 0..* Reference(Patient|Practitioner) Who collected the medication --></receiver>
 <note value="[string]"/><!-- 0..1 Information about the dispense -->
 <dosageInstruction>  <!-- 0..* Medicine administration instructions to the patient/carer -->
  <text value="[string]"/><!-- 0..1 Dosage Instructions -->
  <additionalInstructions><!-- 0..1 CodeableConcept E.g. "Take with food" --></additionalInstructions>
  <schedule[x]><!-- 0..1 dateTime|Period|Timing When medication should be administered --></schedule[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>
 <substitution>  <!-- 0..1 Deals with substitution of one medicine for another -->
  <type><!-- 1..1 CodeableConcept Type of substitiution --></type>
  <reason><!-- 0..* CodeableConcept Why was substitution made --></reason>
  <responsibleParty><!-- 0..* Reference(Practitioner) Who is responsible for the substitution --></responsibleParty>
 </substitution>
</MedicationDispense>

JSON Template

{doco
  "resourceType" : "MedicationDispense",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : { Identifier }, // External identifier
  "status" : "<code>", // in-progress | on-hold | completed | entered-in-error | stopped
  "patient" : { Reference(Patient) }, // Who the dispense is for
  "dispenser" : { Reference(Practitioner) }, // Practitioner responsible for dispensing medication
  "authorizingPrescription" : [{ Reference(MedicationPrescription) }], // Medication order that authorizes the dispense
  "type" : { CodeableConcept }, // Trial fill, partial fill, emergency fill, etc.
  "quantity" : { Quantity }, // Amount dispensed
  "daysSupply" : { Quantity }, // Days Supply
  // medication[x]: What medication was supplied. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "whenPrepared" : "<dateTime>", // Dispense processing time
  "whenHandedOver" : "<dateTime>", // Handover time
  "destination" : { Reference(Location) }, // Where the medication was sent
  "receiver" : [{ Reference(Patient|Practitioner) }], // Who collected the medication
  "note" : "<string>", // Information about the dispense
  "dosageInstruction" : [{ // Medicine administration instructions to the patient/carer
    "text" : "<string>", // Dosage Instructions
    "additionalInstructions" : { CodeableConcept }, // E.g. "Take with food"
    // schedule[x]: When medication should be administered. One of these 3:
    "scheduleDateTime" : "<dateTime>",
    "schedulePeriod" : { Period },
    "scheduleTiming" : { 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
  }],
  "substitution" : { // Deals with substitution of one medicine for another
    "type" : { CodeableConcept }, // R!  Type of substitiution
    "reason" : [{ CodeableConcept }], // Why was substitution made
    "responsibleParty" : [{ Reference(Practitioner) }] // Who is responsible for the substitution
  }
}

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense IDomainResourceDispensing a medication to a named patient
whenHandedOver cannot be before whenPrepared
... identifier 0..1IdentifierExternal identifier
... status ?!0..1codein-progress | on-hold | completed | entered-in-error | stopped
MedicationDispenseStatus (Required)
... patient 0..1PatientWho the dispense is for
... dispenser 0..1PractitionerPractitioner responsible for dispensing medication
... authorizingPrescription 0..*MedicationPrescriptionMedication order that authorizes the dispense
... type 0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
ActPharmacySupplyType (Example)
... quantity 0..1QuantityAmount dispensed
... daysSupply 0..1QuantityDays Supply
... medication[x] What medication was supplied
.... medicationCodeableConcept1..1CodeableConcept
.... medicationReference1..1Medication
... whenPrepared 0..1dateTimeDispense processing time
... whenHandedOver 0..1dateTimeHandover time
... destination 0..1LocationWhere the medication was sent
... receiver 0..*Patient | PractitionerWho collected the medication
... note 0..1stringInformation about the dispense
... dosageInstruction 0..*ElementMedicine administration instructions to the patient/carer
.... text 0..1stringDosage Instructions
.... additionalInstructions 0..1CodeableConceptE.g. "Take with food"
.... schedule[x] When medication should be administered
..... scheduleDateTime0..1dateTime
..... schedulePeriod0..1Period
..... scheduleTiming0..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
... substitution 0..1ElementDeals with substitution of one medicine for another
.... type 1..1CodeableConceptType of substitiution
ActSubstanceAdminSubstitutionCode (Example)
.... reason 0..*CodeableConceptWhy was substitution made
SubstanceAdminSubstitutionReason (Example)
.... responsibleParty 0..*PractitionerWho is responsible for the substitution

UML Diagram

MedicationDispense (DomainResource)Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIRidentifier : Identifier 0..1A code specifying the state of the set of dispense events (this element modifies the meaning of other elements)status : code 0..1 « A code specifying the state of the dispense event.MedicationDispenseStatus »A link to a resource representing the person to whom the medication will be givenpatient : Reference(Patient) 0..1The individual responsible for dispensing the medicationdispenser : Reference(Practitioner) 0..1Indicates the medication order that is being dispensed againstauthorizingPrescription : Reference(MedicationPrescription) 0..*Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etctype : CodeableConcept 0..1 « (Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.ActPharmacySupplyType) »The amount of medication that has been dispensed. Includes unit of measurequantity : Quantity 0..1The amount of medication expressed as a timing amountdaysSupply : Quantity 0..1Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medicationsmedication[x] : CodeableConcept|Reference(Medication) 1..1The time when the dispensed product was packaged and reviewedwhenPrepared : dateTime 0..1The time the dispensed product was provided to the patient or their representativewhenHandedOver : dateTime 0..1Identification of the facility/location where the medication was shipped to, as part of the dispense eventdestination : Reference(Location) 0..1Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professionalreceiver : Reference(Patient|Practitioner) 0..*Extra information about the dispense that could not be conveyed in the other attributesnote : string 0..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"schedule[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 subjectroute : 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 subjectSNOMED 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..1SubstitutionA code signifying whether a different drug was 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 of (or lack of substitution) from what was prescribedreason : CodeableConcept 0..* « (A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribedSubstanceAdminSubstitutionReason) »The person or organization that has primary responsibility for the substitutionresponsibleParty : Reference(Practitioner) 0..*Indicates how the medication is to be used by the patientdosageInstruction0..*Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and whysubstitution0..1

XML Template

<MedicationDispense xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..1 Identifier External identifier --></identifier>
 <status value="[code]"/><!-- 0..1 in-progress | on-hold | completed | entered-in-error | stopped -->
 <patient><!-- 0..1 Reference(Patient) Who the dispense is for --></patient>
 <dispenser><!-- 0..1 Reference(Practitioner) Practitioner responsible for dispensing medication --></dispenser>
 <authorizingPrescription><!-- 0..* Reference(MedicationPrescription) Medication order that authorizes the dispense --></authorizingPrescription>
 <type><!-- 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc. --></type>
 <quantity><!-- 0..1 Quantity Amount dispensed --></quantity>
 <daysSupply><!-- 0..1 Quantity Days Supply --></daysSupply>
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) What medication was supplied --></medication[x]>
 <whenPrepared value="[dateTime]"/><!-- 0..1 Dispense processing time -->
 <whenHandedOver value="[dateTime]"/><!-- 0..1 Handover time -->
 <destination><!-- 0..1 Reference(Location) Where the medication was sent --></destination>
 <receiver><!-- 0..* Reference(Patient|Practitioner) Who collected the medication --></receiver>
 <note value="[string]"/><!-- 0..1 Information about the dispense -->
 <dosageInstruction>  <!-- 0..* Medicine administration instructions to the patient/carer -->
  <text value="[string]"/><!-- 0..1 Dosage Instructions -->
  <additionalInstructions><!-- 0..1 CodeableConcept E.g. "Take with food" --></additionalInstructions>
  <schedule[x]><!-- 0..1 dateTime|Period|Timing When medication should be administered --></schedule[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>
 <substitution>  <!-- 0..1 Deals with substitution of one medicine for another -->
  <type><!-- 1..1 CodeableConcept Type of substitiution --></type>
  <reason><!-- 0..* CodeableConcept Why was substitution made --></reason>
  <responsibleParty><!-- 0..* Reference(Practitioner) Who is responsible for the substitution --></responsibleParty>
 </substitution>
</MedicationDispense>

JSON Template

{doco
  "resourceType" : "MedicationDispense",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : { Identifier }, // External identifier
  "status" : "<code>", // in-progress | on-hold | completed | entered-in-error | stopped
  "patient" : { Reference(Patient) }, // Who the dispense is for
  "dispenser" : { Reference(Practitioner) }, // Practitioner responsible for dispensing medication
  "authorizingPrescription" : [{ Reference(MedicationPrescription) }], // Medication order that authorizes the dispense
  "type" : { CodeableConcept }, // Trial fill, partial fill, emergency fill, etc.
  "quantity" : { Quantity }, // Amount dispensed
  "daysSupply" : { Quantity }, // Days Supply
  // medication[x]: What medication was supplied. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "whenPrepared" : "<dateTime>", // Dispense processing time
  "whenHandedOver" : "<dateTime>", // Handover time
  "destination" : { Reference(Location) }, // Where the medication was sent
  "receiver" : [{ Reference(Patient|Practitioner) }], // Who collected the medication
  "note" : "<string>", // Information about the dispense
  "dosageInstruction" : [{ // Medicine administration instructions to the patient/carer
    "text" : "<string>", // Dosage Instructions
    "additionalInstructions" : { CodeableConcept }, // E.g. "Take with food"
    // schedule[x]: When medication should be administered. One of these 3:
    "scheduleDateTime" : "<dateTime>",
    "schedulePeriod" : { Period },
    "scheduleTiming" : { 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
  }],
  "substitution" : { // Deals with substitution of one medicine for another
    "type" : { CodeableConcept }, // R!  Type of substitiution
    "reason" : [{ CodeableConcept }], // Why was substitution made
    "responsibleParty" : [{ Reference(Practitioner) }] // Who is responsible for the substitution
  }
}

 

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

4.15.4.1 Terminology Bindings

PathDefinitionTypeReference
MedicationDispense.status A code specifying the state of the dispense event.Requiredhttp://hl7.org/fhir/medication-dispense-status
MedicationDispense.type Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.Examplehttp://hl7.org/fhir/v3/vs/ActPharmacySupplyType
MedicationDispense.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", etcUnknownNo details provided yet
MedicationDispense.dosageInstruction.site A coded concept describing the site location the medicine enters into or onto the bodyExamplehttp://hl7.org/fhir/vs/approach-site-codes
MedicationDispense.dosageInstruction.route A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subjectExamplehttp://hl7.org/fhir/vs/route-codes
MedicationDispense.dosageInstruction.method A coded concept describing the technique by which the medicine is administeredExamplehttp://hl7.org/fhir/vs/administration-method-codes
MedicationDispense.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
MedicationDispense.substitution.reason A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribedExamplehttp://hl7.org/fhir/v3/vs/SubstanceAdminSubstitutionReason

4.15.4.2 Constraints

  • mdd-1: whenHandedOver cannot be before whenPrepared (xpath: not(exists(f:whenHandedOver/@value)) or not(exists(f:whenPrepared/@value)) or ( f:whenHandedOver/@value >= f:whenPrepared/@value))

4.15.5 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
destinationreferenceReturn dispenses that should be sent to a secific destinationMedicationDispense.destination
(Location)
dispenserreferenceReturn all dispenses performed by a specific indiividualMedicationDispense.dispenser
(Practitioner)
identifiertokenReturn dispenses with this external identityMedicationDispense.identifier
medicationreferenceReturns dispenses of this medicineMedicationDispense.medicationReference
(Medication)
patientreferenceThe identity of a patient to list dispenses forMedicationDispense.patient
(Patient)
prescriptionreferenceThe identity of a prescription to list dispenses fromMedicationDispense.authorizingPrescription
(MedicationPrescription)
receiverreferenceWho collected the medicationMedicationDispense.receiver
(Practitioner, Patient)
responsiblepartyreferenceReturn all dispenses with the specified responsible partyMedicationDispense.substitution.responsibleParty
(Practitioner)
statustokenStatus of the dispenseMedicationDispense.status
typetokenReturn all dispenses of a specific typeMedicationDispense.type
whenhandedoverdateDate when medication handed over to patient (outpatient setting), or supplied to ward or clinic (inpatient setting)MedicationDispense.whenHandedOver
whenprepareddateDate when medication preparedMedicationDispense.whenPrepared