Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version. 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 icon Work GroupMaturity Level: 2 Trial UseSecurity Category: Patient Compartments: Encounter, 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 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

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.

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

... basedOn 0..*Reference(CarePlan)Plan that is fulfilled by this dispense

... partOf 0..*Reference(Procedure | MedicationAdministration)Event that dispense is part of

... status ?!Σ1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (Required)
... notPerformedReason 0..1CodeableReference(DetectedIssue)Why a dispense was not performed
Binding: MedicationDispense Status Reason Codes (Example)
... statusChanged 0..1dateTimeWhen the status changed
... category 0..*CodeableConceptType of medication dispense
Binding: MedicationDispense Administration Location Codes (Example)

... medication Σ1..1CodeableReference(Medication)What medication was supplied
Binding: SNOMED CT Medication Codes (Example)
... subject Σ1..1Reference(Patient | Group)Who the dispense is for
... encounter 0..1Reference(Encounter)Encounter 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
Binding: MedicationDispense Performer Function Codes (Example)
.... actor 1..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam)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
Binding: ActPharmacySupplyType icon (Example)
... quantity 0..1SimpleQuantityAmount dispensed
... daysSupply 0..1SimpleQuantityAmount of medication expressed as a timing amount
... recorded 0..1dateTimeWhen the recording of the dispense started
... whenPrepared ΣC0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver C0..1dateTimeWhen product was given out
... destination 0..1Reference(Location)Where the medication was/will be sent
... receiver 0..*Reference(Patient | Practitioner | RelatedPerson | Location | PractitionerRole)Who collected the medication or where the medication was delivered

... note 0..*AnnotationInformation about the dispense

... renderedDosageInstruction 0..1markdownFull representation of the dosage instructions
... 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
Binding: ActSubstanceAdminSubstitutionCode icon (Example)
.... reason 0..*CodeableConceptWhy was substitution made
Binding: SubstanceAdminSubstitutionReason icon (Example)

.... responsibleParty 0..1Reference(Practitioner | PractitionerRole | Organization)Who is responsible for the substitution
... eventHistory 0..*Reference(Provenance)A list of relevant lifecycle events


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

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>
 <basedOn><!-- 0..* Reference(CarePlan) Plan that is fulfilled by this dispense --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|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 -->
 <notPerformedReason><!-- 0..1 CodeableReference(DetectedIssue) Why a dispense was not performed --></notPerformedReason>
 <statusChanged value="[dateTime]"/><!-- 0..1 When the status changed -->
 <category><!-- 0..* CodeableConcept Type of medication dispense --></category>
 <medication><!-- 1..1 CodeableReference(Medication) What medication was supplied --></medication>
 <subject><!-- 1..1 Reference(Group|Patient) Who the dispense is for --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Encounter associated with event --></encounter>
 <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(CareTeam|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 icon --></type>
 <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount dispensed --></quantity>
 <daysSupply><!-- 0..1 Quantity(SimpleQuantity) Amount of medication expressed as a timing amount --></daysSupply>
 <recorded value="[dateTime]"/><!-- 0..1 When the recording of the dispense started -->
 <whenPrepared value="[dateTime]"/><!-- I 0..1 When product was packaged and reviewed -->
 <whenHandedOver value="[dateTime]"/><!-- I 0..1 When product was given out -->
 <destination><!-- 0..1 Reference(Location) Where the medication was/will be sent --></destination>
 <receiver><!-- 0..* Reference(Location|Patient|Practitioner|PractitionerRole|
   RelatedPerson) Who collected the medication or where the medication was delivered --></receiver>
 <note><!-- 0..* Annotation Information about the dispense --></note>
 <renderedDosageInstruction value="[markdown]"/><!-- 0..1 Full representation of the dosage instructions -->
 <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 icon --></type>
  <reason><!-- 0..* CodeableConcept Why was substitution made icon --></reason>
  <responsibleParty><!-- 0..1 Reference(Organization|Practitioner|
    PractitionerRole) Who is responsible for the substitution --></responsibleParty>
 </substitution>
 <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
  "basedOn" : [{ Reference(CarePlan) }], // Plan that is fulfilled by this dispense
  "partOf" : [{ Reference(MedicationAdministration|Procedure) }], // Event that dispense is part of
  "status" : "<code>", // R!  preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  "notPerformedReason" : { CodeableReference(DetectedIssue) }, // Why a dispense was not performed
  "statusChanged" : "<dateTime>", // When the status changed
  "category" : [{ CodeableConcept }], // Type of medication dispense
  "medication" : { CodeableReference(Medication) }, // R!  What medication was supplied
  "subject" : { Reference(Group|Patient) }, // R!  Who the dispense is for
  "encounter" : { Reference(Encounter) }, // Encounter 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(CareTeam|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 icon
  "quantity" : { Quantity(SimpleQuantity) }, // Amount dispensed
  "daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount
  "recorded" : "<dateTime>", // When the recording of the dispense started
  "whenPrepared" : "<dateTime>", // I When product was packaged and reviewed
  "whenHandedOver" : "<dateTime>", // I When product was given out
  "destination" : { Reference(Location) }, // Where the medication was/will be sent
  "receiver" : [{ Reference(Location|Patient|Practitioner|PractitionerRole|
   RelatedPerson) }], // Who collected the medication or where the medication was delivered
  "note" : [{ Annotation }], // Information about the dispense
  "renderedDosageInstruction" : "<markdown>", // Full representation of the dosage instructions
  "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 icon
    "reason" : [{ CodeableConcept }], // Why was substitution made icon
    "responsibleParty" : { Reference(Organization|Practitioner|
    PractitionerRole) } // Who is responsible for the substitution
  },
  "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:identifier  ( [ Identifier ] ... ) ; # 0..* External identifier
  fhir:basedOn  ( [ Reference(CarePlan) ] ... ) ; # 0..* Plan that is fulfilled by this dispense
  fhir:partOf  ( [ Reference(MedicationAdministration|Procedure) ] ... ) ; # 0..* Event that dispense is part of
  fhir:status [ code ] ; # 1..1 preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  fhir:notPerformedReason [ CodeableReference(DetectedIssue) ] ; # 0..1 Why a dispense was not performed
  fhir:statusChanged [ dateTime ] ; # 0..1 When the status changed
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Type of medication dispense
  fhir:medication [ CodeableReference(Medication) ] ; # 1..1 What medication was supplied
  fhir:subject [ Reference(Group|Patient) ] ; # 1..1 Who the dispense is for
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 Encounter associated with event
  fhir:supportingInformation  ( [ Reference(Any) ] ... ) ; # 0..* Information that supports the dispensing of the medication
  fhir:performer ( [ # 0..* Who performed event
    fhir:function [ CodeableConcept ] ; # 0..1 Who performed the dispense and what they did
    fhir:actor [ Reference(CareTeam|Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 1..1 Individual who was performing
  ] ... ) ;
  fhir:location [ Reference(Location) ] ; # 0..1 Where the dispense occurred
  fhir:authorizingPrescription  ( [ Reference(MedicationRequest) ] ... ) ; # 0..* Medication order that authorizes the dispense
  fhir:type [ CodeableConcept ] ; # 0..1 Trial fill, partial fill, emergency fill, etc
  fhir:quantity [ Quantity(SimpleQuantity) ] ; # 0..1 Amount dispensed
  fhir:daysSupply [ Quantity(SimpleQuantity) ] ; # 0..1 Amount of medication expressed as a timing amount
  fhir:recorded [ dateTime ] ; # 0..1 When the recording of the dispense started
  fhir:whenPrepared [ dateTime ] ; # 0..1 I When product was packaged and reviewed
  fhir:whenHandedOver [ dateTime ] ; # 0..1 I When product was given out
  fhir:destination [ Reference(Location) ] ; # 0..1 Where the medication was/will be sent
  fhir:receiver  ( [ Reference(Location|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who collected the medication or where the medication was delivered
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Information about the dispense
  fhir:renderedDosageInstruction [ markdown ] ; # 0..1 Full representation of the dosage instructions
  fhir:dosageInstruction  ( [ Dosage ] ... ) ; # 0..* How the medication is to be used by the patient or administered by the caregiver
  fhir:substitution [ # 0..1 Whether a substitution was performed on the dispense
    fhir:wasSubstituted [ boolean ] ; # 1..1 Whether a substitution was or was not performed on the dispense
    fhir:type [ CodeableConcept ] ; # 0..1 Code signifying whether a different drug was dispensed from what was prescribed
    fhir:reason  ( [ CodeableConcept ] ... ) ; # 0..* Why was substitution made
    fhir:responsibleParty [ Reference(Organization|Practitioner|PractitionerRole) ] ; # 0..1 Who is responsible for the substitution
  ] ;
  fhir:eventHistory  ( [ Reference(Provenance) ] ... ) ; # 0..* A list of relevant lifecycle events
]

Changes from both R4 and R4B

MedicationDispense
MedicationDispense.basedOn
  • Added Element
MedicationDispense.partOf
  • Type Reference: Added Target Type MedicationAdministration
MedicationDispense.notPerformedReason
  • Added Element
MedicationDispense.statusChanged
  • Added Element
MedicationDispense.category
  • Max Cardinality changed from 1 to *
MedicationDispense.medication
  • Renamed from medication[x] to medication
  • Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(Medication)
MedicationDispense.subject
  • Min Cardinality changed from 0 to 1
MedicationDispense.encounter
  • Added Element
MedicationDispense.performer.actor
  • Type Reference: Added Target Type CareTeam
MedicationDispense.recorded
  • Added Element
MedicationDispense.receiver
  • Type Reference: Added Target Types RelatedPerson, Location, PractitionerRole
MedicationDispense.renderedDosageInstruction
  • Added Element
MedicationDispense.substitution.responsibleParty
  • Max Cardinality changed from * to 1
  • Type Reference: Added Target Type Organization
MedicationDispense.statusReason[x]
  • Deleted
MedicationDispense.context
  • Deleted
MedicationDispense.detectedIssue
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

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

... basedOn 0..*Reference(CarePlan)Plan that is fulfilled by this dispense

... partOf 0..*Reference(Procedure | MedicationAdministration)Event that dispense is part of

... status ?!Σ1..1codepreparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispense Status Codes (Required)
... notPerformedReason 0..1CodeableReference(DetectedIssue)Why a dispense was not performed
Binding: MedicationDispense Status Reason Codes (Example)
... statusChanged 0..1dateTimeWhen the status changed
... category 0..*CodeableConceptType of medication dispense
Binding: MedicationDispense Administration Location Codes (Example)

... medication Σ1..1CodeableReference(Medication)What medication was supplied
Binding: SNOMED CT Medication Codes (Example)
... subject Σ1..1Reference(Patient | Group)Who the dispense is for
... encounter 0..1Reference(Encounter)Encounter 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
Binding: MedicationDispense Performer Function Codes (Example)
.... actor 1..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam)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
Binding: ActPharmacySupplyType icon (Example)
... quantity 0..1SimpleQuantityAmount dispensed
... daysSupply 0..1SimpleQuantityAmount of medication expressed as a timing amount
... recorded 0..1dateTimeWhen the recording of the dispense started
... whenPrepared ΣC0..1dateTimeWhen product was packaged and reviewed
... whenHandedOver C0..1dateTimeWhen product was given out
... destination 0..1Reference(Location)Where the medication was/will be sent
... receiver 0..*Reference(Patient | Practitioner | RelatedPerson | Location | PractitionerRole)Who collected the medication or where the medication was delivered

... note 0..*AnnotationInformation about the dispense

... renderedDosageInstruction 0..1markdownFull representation of the dosage instructions
... 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
Binding: ActSubstanceAdminSubstitutionCode icon (Example)
.... reason 0..*CodeableConceptWhy was substitution made
Binding: SubstanceAdminSubstitutionReason icon (Example)

.... responsibleParty 0..1Reference(Practitioner | PractitionerRole | Organization)Who is responsible for the substitution
... eventHistory 0..*Reference(Provenance)A list of relevant lifecycle events


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

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>
 <basedOn><!-- 0..* Reference(CarePlan) Plan that is fulfilled by this dispense --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|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 -->
 <notPerformedReason><!-- 0..1 CodeableReference(DetectedIssue) Why a dispense was not performed --></notPerformedReason>
 <statusChanged value="[dateTime]"/><!-- 0..1 When the status changed -->
 <category><!-- 0..* CodeableConcept Type of medication dispense --></category>
 <medication><!-- 1..1 CodeableReference(Medication) What medication was supplied --></medication>
 <subject><!-- 1..1 Reference(Group|Patient) Who the dispense is for --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Encounter associated with event --></encounter>
 <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(CareTeam|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 icon --></type>
 <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount dispensed --></quantity>
 <daysSupply><!-- 0..1 Quantity(SimpleQuantity) Amount of medication expressed as a timing amount --></daysSupply>
 <recorded value="[dateTime]"/><!-- 0..1 When the recording of the dispense started -->
 <whenPrepared value="[dateTime]"/><!-- I 0..1 When product was packaged and reviewed -->
 <whenHandedOver value="[dateTime]"/><!-- I 0..1 When product was given out -->
 <destination><!-- 0..1 Reference(Location) Where the medication was/will be sent --></destination>
 <receiver><!-- 0..* Reference(Location|Patient|Practitioner|PractitionerRole|
   RelatedPerson) Who collected the medication or where the medication was delivered --></receiver>
 <note><!-- 0..* Annotation Information about the dispense --></note>
 <renderedDosageInstruction value="[markdown]"/><!-- 0..1 Full representation of the dosage instructions -->
 <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 icon --></type>
  <reason><!-- 0..* CodeableConcept Why was substitution made icon --></reason>
  <responsibleParty><!-- 0..1 Reference(Organization|Practitioner|
    PractitionerRole) Who is responsible for the substitution --></responsibleParty>
 </substitution>
 <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
  "basedOn" : [{ Reference(CarePlan) }], // Plan that is fulfilled by this dispense
  "partOf" : [{ Reference(MedicationAdministration|Procedure) }], // Event that dispense is part of
  "status" : "<code>", // R!  preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  "notPerformedReason" : { CodeableReference(DetectedIssue) }, // Why a dispense was not performed
  "statusChanged" : "<dateTime>", // When the status changed
  "category" : [{ CodeableConcept }], // Type of medication dispense
  "medication" : { CodeableReference(Medication) }, // R!  What medication was supplied
  "subject" : { Reference(Group|Patient) }, // R!  Who the dispense is for
  "encounter" : { Reference(Encounter) }, // Encounter 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(CareTeam|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 icon
  "quantity" : { Quantity(SimpleQuantity) }, // Amount dispensed
  "daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount
  "recorded" : "<dateTime>", // When the recording of the dispense started
  "whenPrepared" : "<dateTime>", // I When product was packaged and reviewed
  "whenHandedOver" : "<dateTime>", // I When product was given out
  "destination" : { Reference(Location) }, // Where the medication was/will be sent
  "receiver" : [{ Reference(Location|Patient|Practitioner|PractitionerRole|
   RelatedPerson) }], // Who collected the medication or where the medication was delivered
  "note" : [{ Annotation }], // Information about the dispense
  "renderedDosageInstruction" : "<markdown>", // Full representation of the dosage instructions
  "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 icon
    "reason" : [{ CodeableConcept }], // Why was substitution made icon
    "responsibleParty" : { Reference(Organization|Practitioner|
    PractitionerRole) } // Who is responsible for the substitution
  },
  "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:identifier  ( [ Identifier ] ... ) ; # 0..* External identifier
  fhir:basedOn  ( [ Reference(CarePlan) ] ... ) ; # 0..* Plan that is fulfilled by this dispense
  fhir:partOf  ( [ Reference(MedicationAdministration|Procedure) ] ... ) ; # 0..* Event that dispense is part of
  fhir:status [ code ] ; # 1..1 preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
  fhir:notPerformedReason [ CodeableReference(DetectedIssue) ] ; # 0..1 Why a dispense was not performed
  fhir:statusChanged [ dateTime ] ; # 0..1 When the status changed
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Type of medication dispense
  fhir:medication [ CodeableReference(Medication) ] ; # 1..1 What medication was supplied
  fhir:subject [ Reference(Group|Patient) ] ; # 1..1 Who the dispense is for
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 Encounter associated with event
  fhir:supportingInformation  ( [ Reference(Any) ] ... ) ; # 0..* Information that supports the dispensing of the medication
  fhir:performer ( [ # 0..* Who performed event
    fhir:function [ CodeableConcept ] ; # 0..1 Who performed the dispense and what they did
    fhir:actor [ Reference(CareTeam|Device|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 1..1 Individual who was performing
  ] ... ) ;
  fhir:location [ Reference(Location) ] ; # 0..1 Where the dispense occurred
  fhir:authorizingPrescription  ( [ Reference(MedicationRequest) ] ... ) ; # 0..* Medication order that authorizes the dispense
  fhir:type [ CodeableConcept ] ; # 0..1 Trial fill, partial fill, emergency fill, etc
  fhir:quantity [ Quantity(SimpleQuantity) ] ; # 0..1 Amount dispensed
  fhir:daysSupply [ Quantity(SimpleQuantity) ] ; # 0..1 Amount of medication expressed as a timing amount
  fhir:recorded [ dateTime ] ; # 0..1 When the recording of the dispense started
  fhir:whenPrepared [ dateTime ] ; # 0..1 I When product was packaged and reviewed
  fhir:whenHandedOver [ dateTime ] ; # 0..1 I When product was given out
  fhir:destination [ Reference(Location) ] ; # 0..1 Where the medication was/will be sent
  fhir:receiver  ( [ Reference(Location|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who collected the medication or where the medication was delivered
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Information about the dispense
  fhir:renderedDosageInstruction [ markdown ] ; # 0..1 Full representation of the dosage instructions
  fhir:dosageInstruction  ( [ Dosage ] ... ) ; # 0..* How the medication is to be used by the patient or administered by the caregiver
  fhir:substitution [ # 0..1 Whether a substitution was performed on the dispense
    fhir:wasSubstituted [ boolean ] ; # 1..1 Whether a substitution was or was not performed on the dispense
    fhir:type [ CodeableConcept ] ; # 0..1 Code signifying whether a different drug was dispensed from what was prescribed
    fhir:reason  ( [ CodeableConcept ] ... ) ; # 0..* Why was substitution made
    fhir:responsibleParty [ Reference(Organization|Practitioner|PractitionerRole) ] ; # 0..1 Who is responsible for the substitution
  ] ;
  fhir:eventHistory  ( [ Reference(Provenance) ] ... ) ; # 0..* A list of relevant lifecycle events
]

Changes from both R4 and R4B

MedicationDispense
MedicationDispense.basedOn
  • Added Element
MedicationDispense.partOf
  • Type Reference: Added Target Type MedicationAdministration
MedicationDispense.notPerformedReason
  • Added Element
MedicationDispense.statusChanged
  • Added Element
MedicationDispense.category
  • Max Cardinality changed from 1 to *
MedicationDispense.medication
  • Renamed from medication[x] to medication
  • Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(Medication)
MedicationDispense.subject
  • Min Cardinality changed from 0 to 1
MedicationDispense.encounter
  • Added Element
MedicationDispense.performer.actor
  • Type Reference: Added Target Type CareTeam
MedicationDispense.recorded
  • Added Element
MedicationDispense.receiver
  • Type Reference: Added Target Types RelatedPerson, Location, PractitionerRole
MedicationDispense.renderedDosageInstruction
  • Added Element
MedicationDispense.substitution.responsibleParty
  • Max Cardinality changed from * to 1
  • Type Reference: Added Target Type Organization
MedicationDispense.statusReason[x]
  • Deleted
MedicationDispense.context
  • Deleted
MedicationDispense.detectedIssue
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

PathValueSetTypeDocumentation
MedicationDispense.status MedicationDispenseStatusCodes Required

MedicationDispense Status Codes

MedicationDispense.notPerformedReason MedicationDispenseStatusReasonCodes Example

MedicationDispense Status Reason Codes

MedicationDispense.category MedicationDispenseAdministrationLocationCodes Example

MedicationDispense Administration Location Codes

MedicationDispense.medication SNOMEDCTMedicationCodes Example

This value set includes all drug or medicament substance codes and all pharmaceutical/biologic products from SNOMED CT - provided as an exemplar value set.

MedicationDispense.performer.function MedicationDispensePerformerFunctionCodes Example

MedicationDispense Performer Function Codes

MedicationDispense.type ActPharmacySupplyType icon Example

Identifies types of dispensing events

MedicationDispense.substitution.type ActSubstanceAdminSubstitutionCode icon Example

No description

MedicationDispense.substitution.reason SubstanceAdminSubstitutionReason icon Example

No description

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

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to 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 codeMedicationDispense.medication.concept22 Resources
destinationreferenceReturns dispenses that should be sent to a specific destinationMedicationDispense.destination
(Location)
encounterreferenceReturns dispenses with a specific encounterMedicationDispense.encounter
(Encounter)
29 Resources
identifiertokenReturns dispenses with this external identifierMedicationDispense.identifier65 Resources
locationreferenceReturns dispense for a given locationMedicationDispense.location
(Location)
medicationreferenceReturns dispenses of this medicine resourceMedicationDispense.medication.reference4 Resources
patientreferenceThe identity of a patient to list dispenses forMedicationDispense.subject.where(resolve() is Patient)
(Patient)
66 Resources
performerreferenceReturns dispenses performed by a specific individualMedicationDispense.performer.actor
(Practitioner, Organization, CareTeam, Device, Patient, PractitionerRole, RelatedPerson)
prescriptionreferenceThe identity of a prescription to list dispenses fromMedicationDispense.authorizingPrescription
(MedicationRequest)
1 Resources
receiverreferenceThe identity of a receiver to list dispenses forMedicationDispense.receiver
(Practitioner, Patient, PractitionerRole, RelatedPerson, Location)
recordeddateReturns dispenses where dispensing activity began on this dateMedicationDispense.recorded
responsiblepartyreferenceReturns dispenses with the specified responsible partyMedicationDispense.substitution.responsibleParty
(Practitioner, Organization, PractitionerRole)
statustokenReturns dispenses with a specified dispense statusMedicationDispense.status4 Resources
subjectreferenceThe identity of a patient for whom to list dispensesMedicationDispense.subject
(Group, Patient)
typetokenReturns dispenses of a specific typeMedicationDispense.type11 Resources
whenhandedoverdateReturns dispenses handed over on this dateMedicationDispense.whenHandedOver
whenprepareddateReturns dispenses prepared on this dateMedicationDispense.whenPrepared
Morty Proxy This is a proxified and sanitized view of the page, visit original site.