This page is part of the FHIR Specification (v0.4.0: DSTU 2 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 . Page versions: R5 R4B R4 R3 R2
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.
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.
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.
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]
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationDispense | I | DomainResource | Dispensing a medication to a named patient whenHandedOver cannot be before whenPrepared | |
identifier | M | 0..1 | Identifier | External identifier |
status | M | 0..1 | code | in-progress | on-hold | completed | entered-in-error | stopped MedicationDispenseStatus (Required) |
patient | 0..1 | Patient | Who the dispense is for | |
dispenser | 0..1 | Practitioner | Practitioner responsible for dispensing medication | |
authorizingPrescription | 0..* | MedicationPrescription | Medication order that authorizes the dispense | |
type | 0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. MedicationDispenseType (Example) | |
quantity | 0..1 | Quantity | Amount dispensed | |
daysSupply | 0..1 | Quantity | Days Supply | |
medication | 0..1 | Medication | What medication was supplied | |
whenPrepared | 0..1 | dateTime | Dispense processing time | |
whenHandedOver | 0..1 | dateTime | Handover time | |
destination | 0..1 | Location | Where the medication was sent | |
receiver | 0..* | Patient | Practitioner | Who collected the medication | |
note | 0..1 | string | Information about the dispense | |
dosageInstruction | 0..* | Element | Medicine administration instructions to the patient/carer | |
additionalInstructions | 0..1 | CodeableConcept | E.g. "Take with food" | |
schedule[x] | When medication should be administered | |||
scheduleDateTime | 0..1 | dateTime | ||
schedulePeriod | 0..1 | Period | ||
scheduleTiming | 0..1 | Timing | ||
asNeeded[x] | Take "as needed" f(or x) | |||
asNeededBoolean | 0..1 | boolean | ||
asNeededCodeableConcept | 0..1 | CodeableConcept | ||
site | 0..1 | CodeableConcept | Body site to administer to MedicationAdministrationSite (Example) | |
route | 0..1 | CodeableConcept | How drug should enter body RouteOfAdministration (Example) | |
method | 0..1 | CodeableConcept | Technique for administering medication MedicationAdministrationMethod (Example) | |
dose[x] | Amount of medication per dose | |||
doseRange | 0..1 | Range | ||
doseQuantity | 0..1 | Quantity | ||
rate | 0..1 | Ratio | Amount of medication per unit of time | |
maxDosePerPeriod | 0..1 | Ratio | Upper limit on medication per unit of time | |
substitution | 0..1 | Element | Deals with substitution of one medicine for another | |
type | 1..1 | CodeableConcept | Type of substitiution MedicationIntendedSubstitutionType (Example) | |
reason | 0..* | CodeableConcept | Why was substitution made MedicationIntendedSubstitutionReason (Example) | |
responsibleParty | 0..* | Practitioner | Who is responsible for the substitution |
UML Diagram
XML Template
<MedicationDispense xmlns="http://hl7.org/fhir"> <!-- 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><!-- 0..1 Reference(Medication) What medication was supplied --></medication> <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 --> <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
{ "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" : { Reference(Medication) }, // What medication was supplied "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 "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
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationDispense | I | DomainResource | Dispensing a medication to a named patient whenHandedOver cannot be before whenPrepared | |
identifier | M | 0..1 | Identifier | External identifier |
status | M | 0..1 | code | in-progress | on-hold | completed | entered-in-error | stopped MedicationDispenseStatus (Required) |
patient | 0..1 | Patient | Who the dispense is for | |
dispenser | 0..1 | Practitioner | Practitioner responsible for dispensing medication | |
authorizingPrescription | 0..* | MedicationPrescription | Medication order that authorizes the dispense | |
type | 0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. MedicationDispenseType (Example) | |
quantity | 0..1 | Quantity | Amount dispensed | |
daysSupply | 0..1 | Quantity | Days Supply | |
medication | 0..1 | Medication | What medication was supplied | |
whenPrepared | 0..1 | dateTime | Dispense processing time | |
whenHandedOver | 0..1 | dateTime | Handover time | |
destination | 0..1 | Location | Where the medication was sent | |
receiver | 0..* | Patient | Practitioner | Who collected the medication | |
note | 0..1 | string | Information about the dispense | |
dosageInstruction | 0..* | Element | Medicine administration instructions to the patient/carer | |
additionalInstructions | 0..1 | CodeableConcept | E.g. "Take with food" | |
schedule[x] | When medication should be administered | |||
scheduleDateTime | 0..1 | dateTime | ||
schedulePeriod | 0..1 | Period | ||
scheduleTiming | 0..1 | Timing | ||
asNeeded[x] | Take "as needed" f(or x) | |||
asNeededBoolean | 0..1 | boolean | ||
asNeededCodeableConcept | 0..1 | CodeableConcept | ||
site | 0..1 | CodeableConcept | Body site to administer to MedicationAdministrationSite (Example) | |
route | 0..1 | CodeableConcept | How drug should enter body RouteOfAdministration (Example) | |
method | 0..1 | CodeableConcept | Technique for administering medication MedicationAdministrationMethod (Example) | |
dose[x] | Amount of medication per dose | |||
doseRange | 0..1 | Range | ||
doseQuantity | 0..1 | Quantity | ||
rate | 0..1 | Ratio | Amount of medication per unit of time | |
maxDosePerPeriod | 0..1 | Ratio | Upper limit on medication per unit of time | |
substitution | 0..1 | Element | Deals with substitution of one medicine for another | |
type | 1..1 | CodeableConcept | Type of substitiution MedicationIntendedSubstitutionType (Example) | |
reason | 0..* | CodeableConcept | Why was substitution made MedicationIntendedSubstitutionReason (Example) | |
responsibleParty | 0..* | Practitioner | Who is responsible for the substitution |
XML Template
<MedicationDispense xmlns="http://hl7.org/fhir"> <!-- 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><!-- 0..1 Reference(Medication) What medication was supplied --></medication> <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 --> <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
{ "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" : { Reference(Medication) }, // What medication was supplied "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 "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), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
MedicationDispense.status | A code specifying the state of the dispense event. | Fixed | http://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. | Example | http://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", etc. | Unknown | No details provided yet |
MedicationDispense.dosageInstruction.site | A coded concept describing the site location the medicine enters into or onto the body | Example | http://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 subject. | Example | http://hl7.org/fhir/vs/route-codes |
MedicationDispense.dosageInstruction.method | A coded concept describing the technique by which the medicine is administered | Example | http://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 prescription | Example | http://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 prescribed. | Example | http://hl7.org/fhir/v3/vs/SubstanceAdminSubstitutionReason |
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
destination | reference | Return dispenses that should be sent to a secific destination | MedicationDispense.destination (Location) |
dispenser | reference | Return all dispenses performed by a specific indiividual | MedicationDispense.dispenser (Practitioner) |
identifier | token | Return dispenses with this external identity | MedicationDispense.identifier |
medication | reference | Returns dispenses of this medicine | MedicationDispense.medication (Medication) |
patient | reference | The identity of a patient to list dispenses for | MedicationDispense.patient (Patient) |
prescription | reference | The identity of a prescription to list dispenses from | MedicationDispense.authorizingPrescription (MedicationPrescription) |
responsibleparty | reference | Return all dispenses with the specified responsible party | MedicationDispense.substitution.responsibleParty (Practitioner) |
status | token | Status of the dispense | MedicationDispense.status |
type | token | Return all dispenses of a specific type | MedicationDispense.type |
whenhandedover | date | Date when medication handed over to patient (outpatient setting), or supplied to ward or clinic (inpatient setting) | MedicationDispense.whenHandedOver |
whenprepared | date | Date when medication prepared | MedicationDispense.whenPrepared |