[go: up one dir, main page]

Release 4B

This page is part of the FHIR Specification (v4.3.0: R4B - STU). 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

11.3 Resource MedicationDispense - Content

Pharmacy Work GroupMaturity Level: 2 Trial UseSecurity Category: Patient Compartments: Patient, Practitioner

Indicates that a medication product is to be or has been dispensed for a named person/patient. This includes a description of the medication product (supply) provided and the instructions for administering the medication. The medication dispense is the result of a pharmacy system responding to a medication order.

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 is the result of a pharmacy system responding to a medication order.

MedicationDispense is an event resource from a FHIR workflow perspective - see Workflow Event

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.

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.

This resource is referenced by ChargeItem, MedicationStatement and Observation.

This resource implements the Event pattern.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense TUDomainResourceDispensing a medication to a named patient
+ Rule: whenHandedOver cannot be before whenPrepared
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier 0..*IdentifierExternal identifier
... partOf 0..*Reference(Procedure)Event that dispense is part of
... status ?!Σ1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
MedicationDispense Status Codes (Required)
.... statusReasonCodeableConceptCodeableConcept
.... statusReasonReferenceReference(DetectedIssue)
... category 0..1CodeableConceptType of medication dispense
MedicationDispense Category Codes (Preferred)
... medication[x] Σ1..1What medication was supplied
SNOMED CT Medication Codes (Example)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(Medication)
... subject Σ0..1Reference(Patient | Group)Who the dispense is for
... context 0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with event
... supportingInformation 0..*Reference(Any)Information that supports the dispensing of the medication
... performer 0..*BackboneElementWho performed event
.... function 0..1CodeableConceptWho performed the dispense and what they did
MedicationDispense Performer Function Codes (Example)
.... actor 1..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson)Individual who was performing
... location 0..1Reference(Location)Where the dispense occurred
... authorizingPrescription 0..*Reference(MedicationRequest)Medication order that authorizes the dispense
... type 0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
ActPharmacySupplyType (Example)
... quantity 0..1SimpleQuantityAmount dispensed
... daysSupply 0..1SimpleQuantityAmount of medication expressed as a timing amount
... whenPrepared Σ0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver 0..1dateTimeWhen product was given out
... destination 0..1Reference(Location)Where the medication was sent
... receiver 0..*Reference(Patient | Practitioner)Who collected the medication
... note 0..*AnnotationInformation about the dispense
... dosageInstruction 0..*DosageHow the medication is to be used by the patient or administered by the caregiver
... substitution 0..1BackboneElementWhether a substitution was performed on the dispense
.... wasSubstituted 1..1booleanWhether a substitution was or was not performed on the dispense
.... type 0..1CodeableConceptCode signifying whether a different drug was dispensed from what was prescribed
ActSubstanceAdminSubstitutionCode (Example)
.... reason 0..*CodeableConceptWhy was substitution made
SubstanceAdminSubstitutionReason (Example)
.... responsibleParty 0..*Reference(Practitioner | PractitionerRole)Who is responsible for the substitution
... detectedIssue 0..*Reference(DetectedIssue)Clinical issue with action
... eventHistory 0..*Reference(Provenance)A list of relevant lifecycle events

doco Documentation for this format

UML Diagram (Legend)

MedicationDispense (DomainResource)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 serveridentifier : Identifier [0..*]The procedure that trigger the dispensepartOf : Reference [0..*] « Procedure »A code specifying the state of the set of dispense events (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)MedicationDispense Status ! »Indicates the reason why a dispense was not performedstatusReason[x] : Element [0..1] « CodeableConcept|Reference( DetectedIssue); null (Strength=Example)MedicationDispense Status Rea...?? »Indicates the type of medication dispense (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient))category : CodeableConcept [0..1] « null (Strength=Preferred)MedicationDispense Category ? »Identifies 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] : Element [1..1] « CodeableConcept|Reference( Medication); null (Strength=Example)SNOMEDCTMedicationCodes?? »A link to a resource representing the person or the group to whom the medication will be givensubject : Reference [0..1] « Patient|Group »The encounter or episode of care that establishes the context for this eventcontext : Reference [0..1] « Encounter|EpisodeOfCare »Additional information that supports the medication being dispensedsupportingInformation : Reference [0..*] « Any »The principal physical location where the dispense was performedlocation : Reference [0..1] « Location »Indicates the medication order that is being dispensed againstauthorizingPrescription : Reference [0..*] « MedicationRequest »Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etctype : CodeableConcept [0..1] « null (Strength=Example)ActPharmacySupplyType?? »The amount of medication that has been dispensed. Includes unit of measurequantity : Quantity(SimpleQuantity) [0..1]The amount of medication expressed as a timing amountdaysSupply : Quantity(SimpleQuantity) [0..1]The time when the dispensed product was packaged and reviewedwhenPrepared : dateTime [0..1]The time the dispensed product was provided to the patient or their representativewhenHandedOver : dateTime [0..1]Identification of the facility/location where the medication was shipped to, as part of the dispense eventdestination : Reference [0..1] « Location »Identifies the person who picked up the medication. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professionalreceiver : Reference [0..*] « Patient|Practitioner »Extra information about the dispense that could not be conveyed in the other attributesnote : Annotation [0..*]Indicates how the medication is to be used by the patientdosageInstruction : Dosage [0..*]Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. drug-drug interaction, duplicate therapy, dosage alert etcdetectedIssue : Reference [0..*] « DetectedIssue »A summary of the events of interest that have occurred, such as when the dispense was verifiedeventHistory : Reference [0..*] « Provenance »PerformerDistinguishes the type of performer in the dispense. For example, date enterer, packager, final checkerfunction : CodeableConcept [0..1] « null (Strength=Example)MedicationDispense Performer ...?? »The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medicationactor : Reference [1..1] « Practitioner|PractitionerRole| Organization|Patient|Device|RelatedPerson »SubstitutionTrue if the dispenser dispensed a different drug or product from what was prescribedwasSubstituted : boolean [1..1]A code signifying whether a different drug was dispensed from what was prescribedtype : CodeableConcept [0..1] « null (Strength=Example)ActSubstanceAdminSubstitution...?? »Indicates the reason for the substitution (or lack of substitution) from what was prescribedreason : CodeableConcept [0..*] « null (Strength=Example)SubstanceAdminSubstitutionRea...?? »The person or organization that has primary responsibility for the substitutionresponsibleParty : Reference [0..*] « Practitioner|PractitionerRole »Indicates who or what performed the eventperformer[0..*]Indicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not donesubstitution[0..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..* Identifier External identifier --></identifier>
 <partOf><!-- 0..* Reference(Procedure) Event that dispense is part of --></partOf>
 <status value="[code]"/><!-- 1..1 preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown -->
 <statusReason[x]><!-- 0..1 CodeableConcept|Reference(DetectedIssue) Why a dispense was not performed --></statusReason[x]>
 <category><!-- 0..1 CodeableConcept Type of medication dispense --></category>
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) What medication was supplied --></medication[x]>
 <subject><!-- 0..1 Reference(Group|Patient) Who the dispense is for --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Encounter / Episode associated with event --></context>
 <supportingInformation><!-- 0..* Reference(Any) Information that supports the dispensing of the medication --></supportingInformation>
 <performer>  <!-- 0..* Who performed event -->
  <function><!-- 0..1 CodeableConcept Who performed the dispense and what they did --></function>
  <actor><!-- 1..1 Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Individual who was performing --></actor>
 </performer>
 <location><!-- 0..1 Reference(Location) Where the dispense occurred --></location>
 <authorizingPrescription><!-- 0..* Reference(MedicationRequest) Medication order that authorizes the dispense --></authorizingPrescription>
 <type><!-- 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc.  --></type>
 <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount dispensed --></quantity>
 <daysSupply><!-- 0..1 Quantity(SimpleQuantity) Amount of medication expressed as a timing amount --></daysSupply>
 <whenPrepared value="[dateTime]"/><!-- 0..1 When product was packaged and reviewed -->
 <whenHandedOver value="[dateTime]"/><!-- 0..1 When product was given out -->
 <destination><!-- 0..1 Reference(Location) Where the medication was sent --></destination>
 <receiver><!-- 0..* Reference(Patient|Practitioner) Who collected the medication --></receiver>
 <note><!-- 0..* Annotation Information about the dispense --></note>
 <dosageInstruction><!-- 0..* Dosage How the medication is to be used by the patient or administered by the caregiver --></dosageInstruction>
 <substitution>  <!-- 0..1 Whether a substitution was performed on the dispense -->
  <wasSubstituted value="[boolean]"/><!-- 1..1 Whether a substitution was or was not performed on the dispense -->
  <type><!-- 0..1 CodeableConcept Code signifying whether a different drug was dispensed from what was prescribed  --></type>
  <reason><!-- 0..* CodeableConcept Why was substitution made  --></reason>
  <responsibleParty><!-- 0..* Reference(Practitioner|PractitionerRole) Who is responsible for the substitution --></responsibleParty>
 </substitution>
 <detectedIssue><!-- 0..* Reference(DetectedIssue) Clinical issue with action --></detectedIssue>
 <eventHistory><!-- 0..* Reference(Provenance) A list of relevant lifecycle events --></eventHistory>
</MedicationDispense>

JSON Template

{doco
  "resourceType" : "MedicationDispense",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifier
  "partOf" : [{ Reference(Procedure) }], // Event that dispense is part of
  "status" : "<code>", // R!  preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  // statusReason[x]: Why a dispense was not performed. One of these 2:
  "statusReasonCodeableConcept" : { CodeableConcept },
  "statusReasonReference" : { Reference(DetectedIssue) },
  "category" : { CodeableConcept }, // Type of medication dispense
  // medication[x]: What medication was supplied. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "subject" : { Reference(Group|Patient) }, // Who the dispense is for
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter / Episode associated with event
  "supportingInformation" : [{ Reference(Any) }], // Information that supports the dispensing of the medication
  "performer" : [{ // Who performed event
    "function" : { CodeableConcept }, // Who performed the dispense and what they did
    "actor" : { Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) } // R!  Individual who was performing
  }],
  "location" : { Reference(Location) }, // Where the dispense occurred
  "authorizingPrescription" : [{ Reference(MedicationRequest) }], // Medication order that authorizes the dispense
  "type" : { CodeableConcept }, // Trial fill, partial fill, emergency fill, etc. 
  "quantity" : { Quantity(SimpleQuantity) }, // Amount dispensed
  "daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount
  "whenPrepared" : "<dateTime>", // When product was packaged and reviewed
  "whenHandedOver" : "<dateTime>", // When product was given out
  "destination" : { Reference(Location) }, // Where the medication was sent
  "receiver" : [{ Reference(Patient|Practitioner) }], // Who collected the medication
  "note" : [{ Annotation }], // Information about the dispense
  "dosageInstruction" : [{ Dosage }], // How the medication is to be used by the patient or administered by the caregiver
  "substitution" : { // Whether a substitution was performed on the dispense
    "wasSubstituted" : <boolean>, // R!  Whether a substitution was or was not performed on the dispense
    "type" : { CodeableConcept }, // Code signifying whether a different drug was dispensed from what was prescribed 
    "reason" : [{ CodeableConcept }], // Why was substitution made 
    "responsibleParty" : [{ Reference(Practitioner|PractitionerRole) }] // Who is responsible for the substitution
  },
  "detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical issue with action
  "eventHistory" : [{ Reference(Provenance) }] // A list of relevant lifecycle events
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MedicationDispense;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:MedicationDispense.identifier [ Identifier ], ... ; # 0..* External identifier
  fhir:MedicationDispense.partOf [ Reference(Procedure) ], ... ; # 0..* Event that dispense is part of
  fhir:MedicationDispense.status [ code ]; # 1..1 preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  # MedicationDispense.statusReason[x] : 0..1 Why a dispense was not performed. One of these 2
    fhir:MedicationDispense.statusReasonCodeableConcept [ CodeableConcept ]
    fhir:MedicationDispense.statusReasonReference [ Reference(DetectedIssue) ]
  fhir:MedicationDispense.category [ CodeableConcept ]; # 0..1 Type of medication dispense
  # MedicationDispense.medication[x] : 1..1 What medication was supplied. One of these 2
    fhir:MedicationDispense.medicationCodeableConcept [ CodeableConcept ]
    fhir:MedicationDispense.medicationReference [ Reference(Medication) ]
  fhir:MedicationDispense.subject [ Reference(Group|Patient) ]; # 0..1 Who the dispense is for
  fhir:MedicationDispense.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Encounter / Episode associated with event
  fhir:MedicationDispense.supportingInformation [ Reference(Any) ], ... ; # 0..* Information that supports the dispensing of the medication
  fhir:MedicationDispense.performer [ # 0..* Who performed event
    fhir:MedicationDispense.performer.function [ CodeableConcept ]; # 0..1 Who performed the dispense and what they did
    fhir:MedicationDispense.performer.actor [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 1..1 Individual who was performing
  ], ...;
  fhir:MedicationDispense.location [ Reference(Location) ]; # 0..1 Where the dispense occurred
  fhir:MedicationDispense.authorizingPrescription [ Reference(MedicationRequest) ], ... ; # 0..* Medication order that authorizes the dispense
  fhir:MedicationDispense.type [ CodeableConcept ]; # 0..1 Trial fill, partial fill, emergency fill, etc.
  fhir:MedicationDispense.quantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount dispensed
  fhir:MedicationDispense.daysSupply [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication expressed as a timing amount
  fhir:MedicationDispense.whenPrepared [ dateTime ]; # 0..1 When product was packaged and reviewed
  fhir:MedicationDispense.whenHandedOver [ dateTime ]; # 0..1 When product was given out
  fhir:MedicationDispense.destination [ Reference(Location) ]; # 0..1 Where the medication was sent
  fhir:MedicationDispense.receiver [ Reference(Patient|Practitioner) ], ... ; # 0..* Who collected the medication
  fhir:MedicationDispense.note [ Annotation ], ... ; # 0..* Information about the dispense
  fhir:MedicationDispense.dosageInstruction [ Dosage ], ... ; # 0..* How the medication is to be used by the patient or administered by the caregiver
  fhir:MedicationDispense.substitution [ # 0..1 Whether a substitution was performed on the dispense
    fhir:MedicationDispense.substitution.wasSubstituted [ boolean ]; # 1..1 Whether a substitution was or was not performed on the dispense
    fhir:MedicationDispense.substitution.type [ CodeableConcept ]; # 0..1 Code signifying whether a different drug was dispensed from what was prescribed
    fhir:MedicationDispense.substitution.reason [ CodeableConcept ], ... ; # 0..* Why was substitution made
    fhir:MedicationDispense.substitution.responsibleParty [ Reference(Practitioner|PractitionerRole) ], ... ; # 0..* Who is responsible for the substitution
  ];
  fhir:MedicationDispense.detectedIssue [ Reference(DetectedIssue) ], ... ; # 0..* Clinical issue with action
  fhir:MedicationDispense.eventHistory [ Reference(Provenance) ], ... ; # 0..* A list of relevant lifecycle events
]

Changes since R4

MedicationDispense
  • No Changes

See the Full Difference for further information

This analysis is available as XML or JSON.

Conversions between R3 and R4

See R3 <--> R4 Conversion Maps (status = 31 tests that all execute ok. 6 fail round-trip testing and 31 r3 resources are invalid (0 errors).)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense TUDomainResourceDispensing a medication to a named patient
+ Rule: whenHandedOver cannot be before whenPrepared
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier 0..*IdentifierExternal identifier
... partOf 0..*Reference(Procedure)Event that dispense is part of
... status ?!Σ1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
MedicationDispense Status Codes (Required)
.... statusReasonCodeableConceptCodeableConcept
.... statusReasonReferenceReference(DetectedIssue)
... category 0..1CodeableConceptType of medication dispense
MedicationDispense Category Codes (Preferred)
... medication[x] Σ1..1What medication was supplied
SNOMED CT Medication Codes (Example)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(Medication)
... subject Σ0..1Reference(Patient | Group)Who the dispense is for
... context 0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with event
... supportingInformation 0..*Reference(Any)Information that supports the dispensing of the medication
... performer 0..*BackboneElementWho performed event
.... function 0..1CodeableConceptWho performed the dispense and what they did
MedicationDispense Performer Function Codes (Example)
.... actor 1..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson)Individual who was performing
... location 0..1Reference(Location)Where the dispense occurred
... authorizingPrescription 0..*Reference(MedicationRequest)Medication order that authorizes the dispense
... type 0..1CodeableConceptTrial fill, partial fill, emergency fill, etc.
ActPharmacySupplyType (Example)
... quantity 0..1SimpleQuantityAmount dispensed
... daysSupply 0..1SimpleQuantityAmount of medication expressed as a timing amount
... whenPrepared Σ0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver 0..1dateTimeWhen product was given out
... destination 0..1Reference(Location)Where the medication was sent
... receiver 0..*Reference(Patient | Practitioner)Who collected the medication
... note 0..*AnnotationInformation about the dispense
... dosageInstruction 0..*DosageHow the medication is to be used by the patient or administered by the caregiver
... substitution 0..1BackboneElementWhether a substitution was performed on the dispense
.... wasSubstituted 1..1booleanWhether a substitution was or was not performed on the dispense
.... type 0..1CodeableConceptCode signifying whether a different drug was dispensed from what was prescribed
ActSubstanceAdminSubstitutionCode (Example)
.... reason 0..*CodeableConceptWhy was substitution made
SubstanceAdminSubstitutionReason (Example)
.... responsibleParty 0..*Reference(Practitioner | PractitionerRole)Who is responsible for the substitution
... detectedIssue 0..*Reference(DetectedIssue)Clinical issue with action
... eventHistory 0..*Reference(Provenance)A list of relevant lifecycle events

doco Documentation for this format

UML Diagram (Legend)

MedicationDispense (DomainResource)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 serveridentifier : Identifier [0..*]The procedure that trigger the dispensepartOf : Reference [0..*] « Procedure »A code specifying the state of the set of dispense events (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)MedicationDispense Status ! »Indicates the reason why a dispense was not performedstatusReason[x] : Element [0..1] « CodeableConcept|Reference( DetectedIssue); null (Strength=Example)MedicationDispense Status Rea...?? »Indicates the type of medication dispense (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient))category : CodeableConcept [0..1] « null (Strength=Preferred)MedicationDispense Category ? »Identifies 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] : Element [1..1] « CodeableConcept|Reference( Medication); null (Strength=Example)SNOMEDCTMedicationCodes?? »A link to a resource representing the person or the group to whom the medication will be givensubject : Reference [0..1] « Patient|Group »The encounter or episode of care that establishes the context for this eventcontext : Reference [0..1] « Encounter|EpisodeOfCare »Additional information that supports the medication being dispensedsupportingInformation : Reference [0..*] « Any »The principal physical location where the dispense was performedlocation : Reference [0..1] « Location »Indicates the medication order that is being dispensed againstauthorizingPrescription : Reference [0..*] « MedicationRequest »Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etctype : CodeableConcept [0..1] « null (Strength=Example)ActPharmacySupplyType?? »The amount of medication that has been dispensed. Includes unit of measurequantity : Quantity(SimpleQuantity) [0..1]The amount of medication expressed as a timing amountdaysSupply : Quantity(SimpleQuantity) [0..1]The time when the dispensed product was packaged and reviewedwhenPrepared : dateTime [0..1]The time the dispensed product was provided to the patient or their representativewhenHandedOver : dateTime [0..1]Identification of the facility/location where the medication was shipped to, as part of the dispense eventdestination : Reference [0..1] « Location »Identifies the person who picked up the medication. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professionalreceiver : Reference [0..*] « Patient|Practitioner »Extra information about the dispense that could not be conveyed in the other attributesnote : Annotation [0..*]Indicates how the medication is to be used by the patientdosageInstruction : Dosage [0..*]Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. drug-drug interaction, duplicate therapy, dosage alert etcdetectedIssue : Reference [0..*] « DetectedIssue »A summary of the events of interest that have occurred, such as when the dispense was verifiedeventHistory : Reference [0..*] « Provenance »PerformerDistinguishes the type of performer in the dispense. For example, date enterer, packager, final checkerfunction : CodeableConcept [0..1] « null (Strength=Example)MedicationDispense Performer ...?? »The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medicationactor : Reference [1..1] « Practitioner|PractitionerRole| Organization|Patient|Device|RelatedPerson »SubstitutionTrue if the dispenser dispensed a different drug or product from what was prescribedwasSubstituted : boolean [1..1]A code signifying whether a different drug was dispensed from what was prescribedtype : CodeableConcept [0..1] « null (Strength=Example)ActSubstanceAdminSubstitution...?? »Indicates the reason for the substitution (or lack of substitution) from what was prescribedreason : CodeableConcept [0..*] « null (Strength=Example)SubstanceAdminSubstitutionRea...?? »The person or organization that has primary responsibility for the substitutionresponsibleParty : Reference [0..*] « Practitioner|PractitionerRole »Indicates who or what performed the eventperformer[0..*]Indicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not donesubstitution[0..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..* Identifier External identifier --></identifier>
 <partOf><!-- 0..* Reference(Procedure) Event that dispense is part of --></partOf>
 <status value="[code]"/><!-- 1..1 preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown -->
 <statusReason[x]><!-- 0..1 CodeableConcept|Reference(DetectedIssue) Why a dispense was not performed --></statusReason[x]>
 <category><!-- 0..1 CodeableConcept Type of medication dispense --></category>
 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) What medication was supplied --></medication[x]>
 <subject><!-- 0..1 Reference(Group|Patient) Who the dispense is for --></subject>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Encounter / Episode associated with event --></context>
 <supportingInformation><!-- 0..* Reference(Any) Information that supports the dispensing of the medication --></supportingInformation>
 <performer>  <!-- 0..* Who performed event -->
  <function><!-- 0..1 CodeableConcept Who performed the dispense and what they did --></function>
  <actor><!-- 1..1 Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Individual who was performing --></actor>
 </performer>
 <location><!-- 0..1 Reference(Location) Where the dispense occurred --></location>
 <authorizingPrescription><!-- 0..* Reference(MedicationRequest) Medication order that authorizes the dispense --></authorizingPrescription>
 <type><!-- 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc.  --></type>
 <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount dispensed --></quantity>
 <daysSupply><!-- 0..1 Quantity(SimpleQuantity) Amount of medication expressed as a timing amount --></daysSupply>
 <whenPrepared value="[dateTime]"/><!-- 0..1 When product was packaged and reviewed -->
 <whenHandedOver value="[dateTime]"/><!-- 0..1 When product was given out -->
 <destination><!-- 0..1 Reference(Location) Where the medication was sent --></destination>
 <receiver><!-- 0..* Reference(Patient|Practitioner) Who collected the medication --></receiver>
 <note><!-- 0..* Annotation Information about the dispense --></note>
 <dosageInstruction><!-- 0..* Dosage How the medication is to be used by the patient or administered by the caregiver --></dosageInstruction>
 <substitution>  <!-- 0..1 Whether a substitution was performed on the dispense -->
  <wasSubstituted value="[boolean]"/><!-- 1..1 Whether a substitution was or was not performed on the dispense -->
  <type><!-- 0..1 CodeableConcept Code signifying whether a different drug was dispensed from what was prescribed  --></type>
  <reason><!-- 0..* CodeableConcept Why was substitution made  --></reason>
  <responsibleParty><!-- 0..* Reference(Practitioner|PractitionerRole) Who is responsible for the substitution --></responsibleParty>
 </substitution>
 <detectedIssue><!-- 0..* Reference(DetectedIssue) Clinical issue with action --></detectedIssue>
 <eventHistory><!-- 0..* Reference(Provenance) A list of relevant lifecycle events --></eventHistory>
</MedicationDispense>

JSON Template

{doco
  "resourceType" : "MedicationDispense",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifier
  "partOf" : [{ Reference(Procedure) }], // Event that dispense is part of
  "status" : "<code>", // R!  preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  // statusReason[x]: Why a dispense was not performed. One of these 2:
  "statusReasonCodeableConcept" : { CodeableConcept },
  "statusReasonReference" : { Reference(DetectedIssue) },
  "category" : { CodeableConcept }, // Type of medication dispense
  // medication[x]: What medication was supplied. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "subject" : { Reference(Group|Patient) }, // Who the dispense is for
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Encounter / Episode associated with event
  "supportingInformation" : [{ Reference(Any) }], // Information that supports the dispensing of the medication
  "performer" : [{ // Who performed event
    "function" : { CodeableConcept }, // Who performed the dispense and what they did
    "actor" : { Reference(Device|Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) } // R!  Individual who was performing
  }],
  "location" : { Reference(Location) }, // Where the dispense occurred
  "authorizingPrescription" : [{ Reference(MedicationRequest) }], // Medication order that authorizes the dispense
  "type" : { CodeableConcept }, // Trial fill, partial fill, emergency fill, etc. 
  "quantity" : { Quantity(SimpleQuantity) }, // Amount dispensed
  "daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount
  "whenPrepared" : "<dateTime>", // When product was packaged and reviewed
  "whenHandedOver" : "<dateTime>", // When product was given out
  "destination" : { Reference(Location) }, // Where the medication was sent
  "receiver" : [{ Reference(Patient|Practitioner) }], // Who collected the medication
  "note" : [{ Annotation }], // Information about the dispense
  "dosageInstruction" : [{ Dosage }], // How the medication is to be used by the patient or administered by the caregiver
  "substitution" : { // Whether a substitution was performed on the dispense
    "wasSubstituted" : <boolean>, // R!  Whether a substitution was or was not performed on the dispense
    "type" : { CodeableConcept }, // Code signifying whether a different drug was dispensed from what was prescribed 
    "reason" : [{ CodeableConcept }], // Why was substitution made 
    "responsibleParty" : [{ Reference(Practitioner|PractitionerRole) }] // Who is responsible for the substitution
  },
  "detectedIssue" : [{ Reference(DetectedIssue) }], // Clinical issue with action
  "eventHistory" : [{ Reference(Provenance) }] // A list of relevant lifecycle events
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MedicationDispense;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:MedicationDispense.identifier [ Identifier ], ... ; # 0..* External identifier
  fhir:MedicationDispense.partOf [ Reference(Procedure) ], ... ; # 0..* Event that dispense is part of
  fhir:MedicationDispense.status [ code ]; # 1..1 preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  # MedicationDispense.statusReason[x] : 0..1 Why a dispense was not performed. One of these 2
    fhir:MedicationDispense.statusReasonCodeableConcept [ CodeableConcept ]
    fhir:MedicationDispense.statusReasonReference [ Reference(DetectedIssue) ]
  fhir:MedicationDispense.category [ CodeableConcept ]; # 0..1 Type of medication dispense
  # MedicationDispense.medication[x] : 1..1 What medication was supplied. One of these 2
    fhir:MedicationDispense.medicationCodeableConcept [ CodeableConcept ]
    fhir:MedicationDispense.medicationReference [ Reference(Medication) ]
  fhir:MedicationDispense.subject [ Reference(Group|Patient) ]; # 0..1 Who the dispense is for
  fhir:MedicationDispense.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Encounter / Episode associated with event
  fhir:MedicationDispense.supportingInformation [ Reference(Any) ], ... ; # 0..* Information that supports the dispensing of the medication
  fhir:MedicationDispense.performer [ # 0..* Who performed event
    fhir:MedicationDispense.performer.function [ CodeableConcept ]; # 0..1 Who performed the dispense and what they did
    fhir:MedicationDispense.performer.actor [ Reference(Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 1..1 Individual who was performing
  ], ...;
  fhir:MedicationDispense.location [ Reference(Location) ]; # 0..1 Where the dispense occurred
  fhir:MedicationDispense.authorizingPrescription [ Reference(MedicationRequest) ], ... ; # 0..* Medication order that authorizes the dispense
  fhir:MedicationDispense.type [ CodeableConcept ]; # 0..1 Trial fill, partial fill, emergency fill, etc.
  fhir:MedicationDispense.quantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount dispensed
  fhir:MedicationDispense.daysSupply [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication expressed as a timing amount
  fhir:MedicationDispense.whenPrepared [ dateTime ]; # 0..1 When product was packaged and reviewed
  fhir:MedicationDispense.whenHandedOver [ dateTime ]; # 0..1 When product was given out
  fhir:MedicationDispense.destination [ Reference(Location) ]; # 0..1 Where the medication was sent
  fhir:MedicationDispense.receiver [ Reference(Patient|Practitioner) ], ... ; # 0..* Who collected the medication
  fhir:MedicationDispense.note [ Annotation ], ... ; # 0..* Information about the dispense
  fhir:MedicationDispense.dosageInstruction [ Dosage ], ... ; # 0..* How the medication is to be used by the patient or administered by the caregiver
  fhir:MedicationDispense.substitution [ # 0..1 Whether a substitution was performed on the dispense
    fhir:MedicationDispense.substitution.wasSubstituted [ boolean ]; # 1..1 Whether a substitution was or was not performed on the dispense
    fhir:MedicationDispense.substitution.type [ CodeableConcept ]; # 0..1 Code signifying whether a different drug was dispensed from what was prescribed
    fhir:MedicationDispense.substitution.reason [ CodeableConcept ], ... ; # 0..* Why was substitution made
    fhir:MedicationDispense.substitution.responsibleParty [ Reference(Practitioner|PractitionerRole) ], ... ; # 0..* Who is responsible for the substitution
  ];
  fhir:MedicationDispense.detectedIssue [ Reference(DetectedIssue) ], ... ; # 0..* Clinical issue with action
  fhir:MedicationDispense.eventHistory [ Reference(Provenance) ], ... ; # 0..* A list of relevant lifecycle events
]

Changes since Release 4

MedicationDispense
  • No Changes

See the Full Difference for further information

This analysis is available as XML or JSON.

Conversions between R3 and R4

See R3 <--> R4 Conversion Maps (status = 31 tests that all execute ok. 6 fail round-trip testing and 31 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
MedicationDispense.status RequiredMedicationDispense Status Codes
MedicationDispense.statusReason[x] ExampleMedicationDispense Status Reason Codes
MedicationDispense.category PreferredMedicationDispense Category Codes
MedicationDispense.medication[x] ExampleSNOMEDCTMedicationCodes
MedicationDispense.performer.function ExampleMedicationDispense Performer Function Codes
MedicationDispense.type ExampleActPharmacySupplyType
MedicationDispense.substitution.type ExampleActSubstanceAdminSubstitutionCode
MedicationDispense.substitution.reason ExampleSubstanceAdminSubstitutionReason

idLevelLocationDescriptionExpression
mdd-1Rule (base)whenHandedOver cannot be before whenPreparedwhenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
codetokenReturns dispenses of this medicine code(MedicationDispense.medication as CodeableConcept)
contextreferenceReturns dispenses with a specific context (episode or episode of care)MedicationDispense.context
(EpisodeOfCare, Encounter)
destinationreferenceReturns dispenses that should be sent to a specific destinationMedicationDispense.destination
(Location)
identifiertokenReturns dispenses with this external identifierMedicationDispense.identifier
medicationreferenceReturns dispenses of this medicine resource(MedicationDispense.medication as Reference)
(Medication)
patientreferenceThe identity of a patient to list dispenses forMedicationDispense.subject.where(resolve() is Patient)
(Patient)
performerreferenceReturns dispenses performed by a specific individualMedicationDispense.performer.actor
(Practitioner, Organization, Device, Patient, PractitionerRole, RelatedPerson)
prescriptionreferenceThe identity of a prescription to list dispenses fromMedicationDispense.authorizingPrescription
(MedicationRequest)
receiverreferenceThe identity of a receiver to list dispenses forMedicationDispense.receiver
(Practitioner, Patient)
responsiblepartyreferenceReturns dispenses with the specified responsible partyMedicationDispense.substitution.responsibleParty
(Practitioner, PractitionerRole)
statustokenReturns dispenses with a specified dispense statusMedicationDispense.status
subjectreferenceThe identity of a patient for whom to list dispensesMedicationDispense.subject
(Group, Patient)
typetokenReturns dispenses of a specific typeMedicationDispense.type
whenhandedoverdateReturns dispenses handed over on this dateMedicationDispense.whenHandedOver
whenprepareddateReturns dispenses prepared on this dateMedicationDispense.whenPrepared