MedicationDispense
Introduction
Scope and Usage
This resource covers the supply of medications to a patient. Examples include dispensing and pick-up from an outpatient or community pharmacy, dispensing patient-specific medications from inpatient pharmacy to ward, as well as issuing a single dose from ward stock to a patient for consumption. The medication dispense can be the result of a pharmacy system responding to a medication order.
MedicationDispense is an event resource from a FHIR workflow perspective - see Workflow Event
Boundaries and Relationships
The Medication domain includes a number of related resources
| MedicationRequest | 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 the medication is otherwise administered to them |
| MedicationStatement | This is a record of a medication being taken by a patient or that a 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.
Background and Context
The supply and the associated administration instructions might 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.
StructureDefinition
Elements (Simplified)
- MedicationDispense [0..*]: - Dispensing a medication to a named patient
- MedicationDispense.identifier [0..*]: Identifier External identifier
- MedicationDispense.basedOn [0..*]: Reference(CarePlan) Plan that is fulfilled by this dispense
- MedicationDispense.partOf [0..*]: [Reference(Procedure](/Reference(Procedure), MedicationAdministration)) Event that dispense is part of
- MedicationDispense.status [1..1]: code required:medicationdispense-status preparation | in-progress | cancelled | on-hold | completed | entered-in-error | unfulfilled | declined | unknown
- MedicationDispense.notPerformedReason [0..1]: CodeableReference example:medicationdispense-status-reason Why a dispense was not performed
- MedicationDispense.statusChanged [0..1]: dateTime When the status changed
- MedicationDispense.category [0..*]: CodeableConcept example:medicationdispense-category Type of medication dispense
- MedicationDispense.medication [1..1]: CodeableReference example:medication-codes What medication was (or was intended to be) supplied
- MedicationDispense.subject [1..1]: [Reference(Patient](/Reference(Patient), Group)) Who the dispense is for
- MedicationDispense.encounter [0..1]: Reference(Encounter) Encounter associated with event
- MedicationDispense.supportingInformation [0..*]: Reference(Resource) Information that supports the dispensing of the medication
- MedicationDispense.performer [0..*]: BackboneElement Who performed event
- MedicationDispense.performer.function [0..1]: CodeableConcept example:medicationdispense-performer-function Who performed the dispense and what they did
- MedicationDispense.performer.actor [1..1]: [Reference(Practitioner](/Reference(Practitioner), PractitionerRole, Organization, Patient, Device, RelatedPerson, CareTeam, Group)) Individual who was performing
- MedicationDispense.location [0..1]: Reference(Location) Where the dispense occurred
- MedicationDispense.authorizingPrescription [0..*]: Reference(MedicationRequest) Medication order that authorizes the dispense
- MedicationDispense.type [0..1]: CodeableConcept example:v3-ActPharmacySupplyType Trial fill, partial fill, emergency fill, etc
- MedicationDispense.quantity [0..1]: Quantity(SimpleQuantity) Amount of medication
- MedicationDispense.daysSupply [0..1]: Quantity(SimpleQuantity) Amount of medication expressed as a timing amount
- MedicationDispense.fillNumber [0..1]: positiveInt A number that represents the known fill this dispense represents
- MedicationDispense.recorded [0..1]: dateTime When the recording of the dispense started
- MedicationDispense.whenPrepared [0..1]: dateTime When product was packaged and reviewed
- MedicationDispense.whenHandedOver [0..1]: dateTime When product was given out
- MedicationDispense.destination [0..1]: Reference(Location) Where the medication was/will be sent
- MedicationDispense.receiver [0..*]: [Reference(Patient](/Reference(Patient), Practitioner, RelatedPerson, Location, PractitionerRole, Organization, Group)) Who collected the medication or where the medication was delivered
- MedicationDispense.note [0..*]: Annotation Information about the dispense
- MedicationDispense.dosageInstruction [0..1]: DosageDetails How the medication is to be used by the patient or administered by the caregiver
- MedicationDispense.doseAdministrationAid [0..1]: CodeableConcept example:medication-dose-aid Type of adherence packaging to use for the dispense
- MedicationDispense.substitution [0..1]: BackboneElement Whether a substitution was performed on the dispense
- MedicationDispense.substitution.wasSubstituted [1..1]: boolean Whether a substitution was or was not performed on the dispense
- MedicationDispense.substitution.type [0..1]: CodeableConcept example:v3-ActSubstanceAdminSubstitutionCode Code signifying whether a different drug was dispensed from what was prescribed
- MedicationDispense.substitution.reason [0..*]: CodeableConcept example:v3-SubstanceAdminSubstitutionReason Why was substitution made
- MedicationDispense.substitution.responsibleParty [0..1]: [Reference(Practitioner](/Reference(Practitioner), PractitionerRole, Organization)) Who is responsible for the substitution
- MedicationDispense.eventHistory [0..*]: Reference(Provenance) A list of relevant lifecycle events
Mappings
- MedicationDispense Mappings — 75 mapping entries
Implementation Guide
implementationguide-MedicationDispense-core.xml
<?xml version="1.0" encoding="UTF-8"?>
<ImplementationGuide xmlns="http://hl7.org/fhir">
<id value="MedicationDispense-core"/>
<version value="0.1"/>
<name value="MedicationDispenseHL7Extensions"/>
<title value="Medication Dispense H L7 Extensions"/>
<status value="draft"/>
<date value="2019-03-23T00:00:00.000"/>
<publisher value="Health Level Seven, Inc. - FHIR WG"/>
<description value="Defines common extensions used with or related to the MedicationDispense resource"/>
</ImplementationGuide>
Resource Packs
list-MedicationDispense-packs.xml
<?xml version="1.0" encoding="UTF-8"?>
<List xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../publish/List.xsd">
<id value="MedicationDispense-packs"/>
<status value="current"/>
<mode value="working"/>
<entry>
<item>
<reference value="ImplementationGuide/MedicationDispense-core"/>
</item>
</entry>
</List>
Search Parameters
- code — token — Returns dispenses of this medicine code —
MedicationDispense.medication.concept - destination — reference — Returns dispenses that should be sent to a specific destination —
MedicationDispense.destination - encounter — reference — Returns dispenses with a specific encounter —
MedicationDispense.encounter - identifier — token — Returns dispenses with this external identifier —
MedicationDispense.identifier - medication — reference — Returns dispenses of this medicine resource —
MedicationDispense.medication.reference - patient — reference — The identity of a patient to list dispenses for —
MedicationDispense.subject.where(resolve() is Patient) - performer — reference — Returns dispenses performed by a specific individual —
MedicationDispense.performer.actor - prescription — reference — The identity of a prescription to list dispenses from —
MedicationDispense.authorizingPrescription - receiver — reference — The identity of a receiver to list dispenses for —
MedicationDispense.receiver - responsibleparty — reference — Returns dispenses with the specified responsible party —
MedicationDispense.substitution.responsibleParty - status — token — Returns dispenses with a specified dispense status —
MedicationDispense.status - subject — reference — The identity of a patient for whom to list dispenses —
MedicationDispense.subject - type — token — Returns dispenses of a specific type —
MedicationDispense.type - whenhandedover — date — Returns dispenses handed over on this date —
MedicationDispense.whenHandedOver - whenprepared — date — Returns dispenses prepared on this date —
MedicationDispense.whenPrepared - recorded — date — Returns dispenses where dispensing activity began on this date —
MedicationDispense.recorded - location — reference — Returns dispense for a given location —
MedicationDispense.location
Examples
- meddisp008 — medicationdispenseexample8 — Dispense for Oral Chemotherapy - Capecitabine (RxNorm code)
- meddisp0301 — medicationdispense0301 — Dispense for IV Antibiotic - in progress - Vancomycin IV (NDC Code) - in-progress
- meddisp0302 — medicationdispense0302 — Dispense for Subcutaneous injection with multiple dosage lines - Insulin - Novolog (NDC Code) - active - includes Destination, Receiver, note. Dosage includes additionalInstructions as text
- meddisp0303 — medicationdispense0303 — Dispense for Oxycodone (RxNorm code) - PRN dose with dose range, coded additional instructions and PRN coded pre-condition
- meddisp0304 — medicationdispense0304 — Dispense for Intravenous Antibiotic with a Dosage Rate - Piperacillin (NDC code) - completed with a coded site and route of administration and a rate expressed as a ratio
- meddisp0305 — medicationdispense0305 — Dispense for Prednisone (RxNorm code) Tapering Dose - entered-in-error with multiple Dosage lines that include coded additionalInstructions and multiple EventHistory elements
- meddisp0306 — medicationdispense0306 — Dispense for Intravenous Chemotherapy (inpatient order) - Alemtuzumab (RxNorm Code) - completed with multiple dosageInstruction lines
- meddisp0307 — medicationdispense0307 — Dispense for Busulfan (Myleran) - completed
- meddisp0308 — medicationdispense0308 — Dispense for Timoptic Opthalmic Drops - (NDC code) - completed
- meddisp0309 — medicationdispense0309 — Dispense for Nystatin drops (Snomed Code) - entered-in-error
- meddisp0310 — medicationdispense0310 — Dispense for Percocet (NDC Code) - in-progress with additionalInstructions, and as needed dosage with condition
- meddisp0311 — medicationdispense0311 — Dispense for Paracetamol Suppositories - completed
- meddisp0312 — medicationdispense0312 — Dispense for Over the Counter medication - Tylenol PM (NDC code) - on hold with as needed dosage with a condition, a dose Range and an Event History
- meddisp0313 — medicationdispense0313 — Dispense for Potassium Chloride Admixture - stopped - with eventHistory and rate range for dosage
- meddisp0314 — medicationdispense0314 — Dispense for Lorazepam (Rx norm code) - completed with rate range
- meddisp0315 — medicationdispense0315 — Dispense for Alprazolam (Rx Norm code) - in progress
- meddisp0316 — medicationdispense0316 — Dispense for Insulin (Lantus) (NDC code) - in-progress with SC dosage
- meddisp0317 — medicationdispense0317 — Dispense for Brentuximab Vedotin (NDC code) - IV Chemo - stopped
- meddisp0318 — medicationdispense0318 — Dispense for Levothyroxine (NDC code) in-progress with authorizing prescription
- meddisp0319 — medicationdispense0319 — Dispense for Azithromycin (NDC code) - completed with multiple dosage lines
- meddisp0320 — medicationdispense0320 — Dispense for a TPN solution - completed
- meddisp0321 — medicationdispense0321 — Dispense for Vicodin - in progress - PRN with pre-condition
- meddisp0322 — medicationdispense0322 — Dispense for Dilantin Oral Suspension (NDC code) - completed
- meddisp0324 — medicationdispense0324 — Dispense for Nystatin Topical Ointment (RxNorm code) - completed
- meddisp0325 — medicationdispense0325 — Dispense for Fentanyl Patch (NDC code) - in progress
- meddisp0326 — medicationdispense0326 — Dispense for Azithromycin (RxNorm Code) - in-progress with coded additionalInstructions
- meddisp0327 — medicationdispense0327 — Dispense for Proventil (RxNorm Code) - completed - with additionalInstructions as text
- meddisp0328 — medicationdispense0328 — Dispense for Nasonex Inhaler (RxNorm Code) - in progress with additionalInstructions as text
- meddisp0329 — medicationdispense0329 — Dispense for compounded ointment - completed with additionalInstructions as text and a coded site in dosageInstructions
- meddisp0330 — medicationdispense0330 — Dispense for Warfarin 5mg (NDC Code) where the product is dispensed as multiple strengths based on prescribe dosage
- meddisp0331 — medicationdispense0331 — Dispense for Warfarin 2mg (NDC Code) where the product is dispensed as multiple strengths based on prescribe dosage
- meddisp0332 — medicationdispense0332 — Dispense with future dated event and bounds period
- meddisp0334 — medicationdispense0334 — Declined Dispense - out of stock
- meddisp0335 — medicationdispense0335 — Declined Dispense - not picked up
- medicationdispense-example — medicationdispense-example
- medicationdispense-examples-header — medicationdispense-examples-header
Mapping Exceptions
medicationdispense-event-mapping-exceptions.xml
Divergent Elements
- Event.identifier → MedicationDispense.identifier
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Business identifier for medication dispense | resource=External identifier
- definitionUnmatched | reason=Unknown | pattern=Business identifiers assigned to this medication dispense by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server. | resource=Identifiers associated with this Medication Dispense that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.
- commentsUnmatched | reason=Unknown | pattern=Note: This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number. | resource=This is a business identifier, not a resource identifier.
- requirementsUnmatched | reason=Unknown | pattern=Allows identification of the medication dispense as it is known by various participating systems and in a way that remains consistent across servers.
- Event.basedOn → MedicationDispense.authorizingPrescription
- missingTypes | reason=Unknown | pattern=Reference(Request)
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Fulfills plan, proposal or order | resource=Medication order that authorizes the dispense
- definitionUnmatched | reason=Unknown | pattern=A plan, proposal or order that is fulfilled in whole or in part by this medication dispense. | resource=Indicates the medication order that is being dispensed against.
- requirementsUnmatched | reason=Unknown | pattern=Allows tracing of authorization for the medication dispense and tracking whether proposals/recommendations were acted upon.
- Event.partOf → MedicationDispense.partOf
- missingTypes | reason=Unknown | pattern=Reference(Event)
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Part of referenced event | resource=Event that dispense is part of
- definitionUnmatched | reason=Unknown | pattern=A larger event of which this particular medication dispense is a component or step. | resource=The procedure or medication administration that triggered the dispense.
- commentsUnmatched | reason=Unknown | pattern=Not to be used to link an medication dispense to an Encounter - use 'context' for that. | resource=While both a procedure and a medication administration may have triggered the dispense, but it is not expected that multiple procedures and/or multiple medication administrations would be triggers.
- Event.status → MedicationDispense.status
- shortUnmatched | reason=Unknown | pattern=preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown | resource=preparation | in-progress | cancelled | on-hold | completed | entered-in-error | unfulfilled | declined | unknown
- definitionUnmatched | reason=Unknown | pattern=The current state of the medication dispense. | resource=A code specifying the state of the set of dispense events.
- commentsUnmatched | reason=Unknown | pattern=A nominal state-transition diagram can be found in the (Event pattern documentation
Unknown does not represent "other" - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. | resource=This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.
- Event.code → MedicationDispense.medication
- missingTypes | reason=Unknown | pattern=CodeableConcept
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=What service was done | resource=What medication was (or was intended to be) supplied
- definitionUnmatched | reason=Unknown | pattern=A code that identifies the specific service or action that was or is being performed. | resource=Identifies the medication supplied (or intended to be supplied). 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 medications.
- Event.subject → MedicationDispense.subject
- shortUnmatched | reason=Unknown | pattern=Individual service was done for/to | resource=Who the dispense is for
- definitionUnmatched | reason=Unknown | pattern=The individual or set of individuals the action is being or was performed on. | resource=A link to a resource representing the person or the group to whom the medication will be given.
- requirementsUnmatched | reason=Unknown | pattern=Links the medication dispense to the Patient context. May also affect access control.
- Event.encounter → MedicationDispense.encounter
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Encounter the medication dispense is part of | resource=Encounter associated with event
- definitionUnmatched | reason=Unknown | pattern=The Encounter during which this medication dispense was created or to which the creation of this record is tightly associated. | resource=The encounter that establishes the context for this event.
- commentsUnmatched | reason=Unknown | pattern=This will typically be the encounter the medication dispense was created during, but some medication dispenses may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests).
- requirementsUnmatched | reason=Unknown | pattern=Links the medication dispense to the Encounter context. May also affect access control.
- Event.occurrence[x] → MedicationDispense.whenHandedOver
- missingTypes | reason=Unknown | pattern=Period, Timing
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=When medication dispense occurred/is occurring | resource=When product was given out
- definitionUnmatched | reason=Unknown | pattern=The date, period or timing when the medication dispense did occur or is occurring. | resource=The time the dispensed product was provided to the patient or their representative.
- commentsUnmatched | reason=Unknown | pattern=This indicates when the activity actually occurred or is occurring, not when it was asked/requested/ordered to occur. For the latter, look at the occurence element of the Request this {{event}} is "basedOn". The status code allows differentiation of whether the timing reflects a historic event or an ongoing event. Ongoing events should not include an upper bound in the Period or Timing.bounds. .
- Event.performer → MedicationDispense.performer
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Who performed medication dispense and what they did | resource=Who performed event
- definitionUnmatched | reason=Unknown | pattern=Indicates who or what performed the medication dispense and how they were involved. | resource=Indicates who or what performed the event.
- Event.performer.actor → MedicationDispense.performer.actor
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Who performed medication dispense | resource=Individual who was performing
- definitionUnmatched | reason=Unknown | pattern=Indicates who or what performed the medication dispense. | resource=The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication.
- Event.note → MedicationDispense.note
- shortUnmatched | reason=Unknown | pattern=Comments made about the event | resource=Information about the dispense
- definitionUnmatched | reason=Unknown | pattern=Comments made about the medication dispense by the performer, subject or other participants. | resource=Extra information about the dispense that could not be conveyed in the other attributes.
Unmapped Elements
- Event.reported — Unknown
- Event.reason — Unknown
- Event.relevantHistory — Unknown
- Event.statusReason — Unknown
- Event.performer.function — Unknown
- Event.category — Unknown
- Event.recorded — Unknown
- Event.product — Unknown
medicationdispense-fivews-mapping-exceptions.xml
Divergent Elements
- FiveWs.context → MedicationDispense.supportingInformation
Unmapped Elements
- FiveWs.recorded — Unknown
- FiveWs.author — Unknown
- FiveWs.actor — Unknown
- FiveWs.cause — Unknown
- FiveWs.version — Unknown
- FiveWs.witness — Unknown
- FiveWs.class — Unknown
- FiveWs.where — Unknown
- FiveWs.init — Unknown
- FiveWs.why — Unknown
- FiveWs.source — Unknown
- FiveWs.who — Unknown
- FiveWs.grade — Unknown
- FiveWs.planned — Unknown
- FiveWs.done — Unknown