Release 4 R6 Ballot (1st Full Ballot)

This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU v6.0.0-ballot4: Release 6 Ballot (1st Full Ballot) (see Ballot Notes ) in it's permanent home (it will always be available at this URL). ). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions for published versions icon . Page versions: R5 R4B R4 R3 R2

11.3 14.3 Resource MedicationDispense - Content

Responsible Owner: Pharmacy icon Work Group Maturity Level : 2   Trial Use Normative Security Category : Patient Compartments : Encounter , Group , 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 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.

This Note to Balloters: The elements around Dosage have been subject to breaking changes in R6:

  • A new data type DosageDetails is introduced, containing rendered instructions and simple or structured Dosage .
  • dosageInstruction is now 0..1, and uses the new data type. The composition of complex dosages (with segments, repetitions etc.) can be done using the structure in that data type.
  • renderedDosageInstruction is removed from the resource and placed in DosageDetails.renderedInstruction in the DosageDetails data type.
  • A set of examples is referenced by ChargeItem , MedicationStatement provided to show how structured dosages can be represented.

Note to Balloters: The code system used in medication dispense category is presented here but is expected to move to terminology.hl7.org icon.

Structure

0..1 0..1 0..* BackboneElement 0..* detectedIssue 0..* Reference ( DetectedIssue ) Clinical issue with action
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MedicationDispense I TU N DomainResource Dispensing 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..* Identifier External identifier

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

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

. . . status ?! Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped unfulfilled | declined | unknown
Binding: Medication dispense status codes MedicationDispense Status Codes ( Required )
. . statusReason[x] . notPerformedReason 0..1 CodeableReference ( DetectedIssue ) Why a dispense was not performed
Medication dispense status reason codes Binding: MedicationDispense Status Reason Codes ( Example )
. . statusReasonCodeableConcept CodeableConcept . statusChanged statusReasonReference 0..1 Reference ( DetectedIssue dateTime ) When the status changed
. . . category 0..* CodeableConcept Type of medication dispense
Medication dispense category codes Binding: MedicationDispense Category Codes ( Preferred Example )

. . medication[x] . medication Σ 1..1 CodeableReference ( Medication ) What medication was (or was intended to be) supplied
Binding: SNOMED CT Medication Codes ( Example ) medicationCodeableConcept CodeableConcept medicationReference Reference ( Medication )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who the dispense is for
. . . context encounter 0..1 Reference ( Encounter | EpisodeOfCare ) Encounter / Episode associated with event
. . . supportingInformation 0..* Reference ( Any ) Information that supports the dispensing of the medication

. . . performer 0..* BackboneElement Who performed event

. . . . function 0..1 CodeableConcept Who performed the dispense and what they did
Medication dispense performer function codes Binding: MedicationDispense Performer Function Codes ( Example )
. . . . actor 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam | Group ) Individual who was performing
. . . location 0..1 Reference ( Location ) Where the dispense occurred
. . . authorizingPrescription 0..* Reference ( MedicationRequest ) Medication order that authorizes the dispense

. . . type 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc. etc
Binding: ActPharmacySupplyType icon V3 Value SetActPharmacySupplyType ( Example )
. . . quantity 0..1 SimpleQuantity Amount dispensed of medication
. . . daysSupply 0..1 SimpleQuantity Amount of medication expressed as a timing amount
. . . whenPrepared fillNumber 0..1 Σ positiveInt A number that represents the known fill this dispense represents
0..1
. . . recorded 0..1 dateTime When the recording of the dispense started
. . . whenPrepared Σ C 0..1 dateTime When product was packaged and reviewed
. . . whenHandedOver C 0..1 dateTime When product was given out
. . . destination 0..1 Reference ( Location ) Where the medication was was/will be sent
. . . receiver 0..* Reference ( Patient | Practitioner | RelatedPerson | Location | PractitionerRole | Organization | Group ) Who collected the medication or where the medication was delivered

. . . note 0..* Annotation Information about the dispense

. . . dosageInstruction 0..1 Dosage DosageDetails How the medication is to be used by the patient or administered by the caregiver
. . substitution . doseAdministrationAid 0..1 CodeableConcept Type of adherence packaging to use for the dispense
Binding: Medication Dose Aids ( Example )
0..1
. . . substitution 0..1 BackboneElement Whether a substitution was performed on the dispense
. . . . wasSubstituted 1..1 boolean 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
Binding: ActSubstanceAdminSubstitutionCode icon V3 Value SetActSubstanceAdminSubstitutionCode ( Example )
. . . . reason 0..* CodeableConcept Why was substitution made
Binding: SubstanceAdminSubstitutionReason icon V3 Value SetSubstanceAdminSubstitutionReason ( Example )

. . . . responsibleParty 0..1 Reference ( 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 )

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 server identifier : Identifier [0..*] A plan that is fulfilled in whole or in part by this MedicationDispense basedOn : Reference [0..*] « CarePlan » The procedure or medication administration that trigger triggered the dispense partOf : Reference [0..*] « Procedure | MedicationAdministration » A code specifying the state of the set of dispense events (this element modifies the meaning of other elements) status : code [1..1] « A coded concept specifying the state of the dispense event. (Strength=Required) MedicationDispense Status MedicationDispenseStatusCodes ! » Indicates the reason why a dispense was not performed statusReason[x] notPerformedReason : Type CodeableReference [0..1] « CodeableConcept DetectedIssue | Reference ; null (Strength=Example) ( DetectedIssue MedicationDispenseStatusReaso... ); ?? » A code describing why a The date (and maybe time) when the status of the dispense was not performed. (Strength=Example) record changed MedicationDispense Status Rea... statusChanged ?? » : dateTime [0..1] Indicates the type of medication dispense (for example, drug classification like ATC, where the medication is expected to meds would be consumed or administered (i.e. inpatient or outpatient)) administered, legal category of the medication.) category : CodeableConcept [0..1] [0..*] « A code describing where the dispensed medication is expected to be consumed or administered. (Strength=Preferred) null (Strength=Example) MedicationDispense Category MedicationDispenseCategoryCod... ? ?? » Identifies the medication being administered. 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 medication[x] medication : Type CodeableReference [1..1] « CodeableConcept | Reference ( Medication ); ; A coded concept identifying which substance or product can be dispensed. null (Strength=Example) SNOMEDCTMedicationCodes ?? » A link to a resource representing the person or the group to whom the medication will be given subject : Reference [0..1] [1..1] « Patient | Group » The encounter or episode of care that establishes the context for this event context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Additional information that supports the medication being dispensed dispensed. For example, there may be requirements that a specific lab test has been completed prior to dispensing or the patient's weight at the time of dispensing is documented supportingInformation : Reference [0..*] « Any » The principal physical location where the dispense was performed location : Reference [0..1] « Location » Indicates the medication order that is being dispensed against authorizingPrescription : Reference [0..*] « MedicationRequest » Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc type : CodeableConcept [0..1] « Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. (Strength=Example) v3.ActPharmacySupplyType ActPharmacySupplyType ?? » The amount of medication that has been (or was intended to be) dispensed. Includes unit of measure quantity : Quantity ( SimpleQuantity ) [0..1] The amount of medication expressed as a timing amount daysSupply : Quantity ( SimpleQuantity ) [0..1] Represents the known number of the fill over the entire lifetime of the prescription, i.e. if this is the first dispense by this pharmacy but the third fill overall, then the fillNumber will be 3. Each fill number represents one dispensation, even if that dispensation is not for the full quantity. Partial fills are not represented by decimal quantities, i.e., a partial fill of 40 tablets (full quantity is 100 tablets) adds 1 to the prior fill number, not 0.4. This means that the 'fillNumber' may sometimes be higher than the MedicationRequest.numberOfRepeatsAllowed, as the latter assumes full fills, while fillNumber does not fillNumber : positiveInt [0..1] The date the occurrence of the MedicationDispense was first captured in the system recorded : dateTime [0..1] The time when the dispensed product was packaged and reviewed whenPrepared : dateTime [0..1] « This element has or is affected by some invariants C » The time the dispensed product was provided to the patient or their representative whenHandedOver : dateTime [0..1] « This element has or is affected by some invariants C » Identification of the facility/location where the medication was was/will be shipped to, as part of the dispense event destination : Reference [0..1] « Location » Identifies the person who picked up the medication. medication or the location or organization where the medication was delivered. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professional or a location, or organization receiver : Reference [0..*] « Patient | Practitioner | RelatedPerson | Location | PractitionerRole | Organization | Group » Extra information about the dispense that could not be conveyed in the other attributes note : Annotation [0..*] Indicates how the medication is to be used by the patient dosageInstruction : Dosage DosageDetails [0..*] [0..1] Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions Provides information about the type of adherence packaging supplied for a patient; e.g. drug-drug interaction, duplicate therapy, dosage alert etc the medication dispense detectedIssue doseAdministrationAid : Reference CodeableConcept [0..*] [0..1] « DetectedIssue A coded concept describing the type of adherence packaging supplied for the medication dispense. (Strength=Example) MedicationDoseAids ?? » A summary of the events of interest that have occurred, such as when the dispense was verified eventHistory : Reference [0..*] « Provenance » Performer Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker function : CodeableConcept [0..1] « A code describing the role an individual played in dispensing a medication. null (Strength=Example) MedicationDispense Performer ... MedicationDispensePerformerFu... ?? » The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication actor : Reference [1..1] « Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam | Group » Substitution True if the dispenser dispensed a different drug or product from what was prescribed wasSubstituted : boolean [1..1] A code signifying whether a different drug was dispensed from what was prescribed type : CodeableConcept [0..1] « A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. (Strength=Example) v3.ActSubstanceAdminSubstitut... ActSubstanceAdminSubstitution... ?? » Indicates the reason for the substitution (or lack of substitution) from what was prescribed reason : CodeableConcept [0..*] « A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. (Strength=Example) v3.SubstanceAdminSubstitution... SubstanceAdminSubstitutionRea... ?? » The person or organization that has primary responsibility for the substitution responsibleParty : Reference [0..*] [0..1] « Practitioner | PractitionerRole | Organization » Indicates who or what performed the event performer [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 done substitution [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>
 <
 <</statusReason[x]>
 <</category>
 <</medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>

 <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 | unfulfilled | 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 (or was intended to be) 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>

  <actor><!-- 1..1 Reference(CareTeam|Device|Group|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>
 <</quantity>

 <type><!-- 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc icon --></type>
 <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication --></quantity>

 <daysSupply><!-- 0..1 Quantity(SimpleQuantity) Amount of medication expressed as a timing amount --></daysSupply>
 <
 <
 <</destination>
 <</receiver>

 <fillNumber value="[positiveInt]"/><!-- 0..1 A number that represents the known fill this dispense represents -->
 <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(Group|Location|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Who collected the medication or where the medication was delivered --></receiver>
 <note><!-- 0..* Annotation Information about the dispense --></note>
 <</dosageInstruction>

 <dosageInstruction><!-- 0..1 DosageDetails How the medication is to be used by the patient or administered by the caregiver --></dosageInstruction>
 <doseAdministrationAid><!-- 0..1 CodeableConcept Type of adherence packaging to use for the dispense --></doseAdministrationAid>

 <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>
  <</reason>
  <</responsibleParty>

  <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>
 <</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
  "
  "
  
  " },
  " },
  "
  
  " },
  " },
  "
  "
  "

  "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 | unfulfilled | 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 (or was intended to be) 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|Group|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 of medication

  "daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount
  "
  "
  "
  "

  "fillNumber" : "<positiveInt>", // A number that represents the known fill this dispense represents
  "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(Group|Location|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }], // Who collected the medication or where the medication was delivered
  "note" : [{ Annotation }], // Information about the dispense
  "

  "dosageInstruction" : { DosageDetails }, // How the medication is to be used by the patient or administered by the caregiver
  "doseAdministrationAid" : { CodeableConcept }, // Type of adherence packaging to use for the dispense

  "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 
  # from 
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ];
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir: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 | unfulfilled | 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 (or was intended to be) 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|Group|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 of medication
  fhir:daysSupply [ Quantity(SimpleQuantity) ] ; # 0..1 Amount of medication expressed as a timing amount
  fhir:fillNumber [ positiveInt ] ; # 0..1 A number that represents the known fill this dispense represents
  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(Group|Location|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who collected the medication or where the medication was delivered
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Information about the dispense
  fhir:dosageInstruction [ DosageDetails ] ; # 0..1 How the medication is to be used by the patient or administered by the caregiver
  fhir:doseAdministrationAid [ CodeableConcept ] ; # 0..1 Type of adherence packaging to use for the dispense
  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 since R3 from R5 to R6

MedicationDispense
MedicationDispense.status
  • Min Remove code stopped
  • Add code unfulfilled
MedicationDispense.performer.actor
  • Type Reference: Added Target Type Group
MedicationDispense.fillNumber
  • Added Element
MedicationDispense.receiver
  • Type Reference: Added Target Types Organization, Group
MedicationDispense.dosageInstruction
  • Max Cardinality changed from 0 * to 1
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/medication-dispense-status Dosage to http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1 DosageDetails
MedicationDispense.statusReason[x] MedicationDispense.doseAdministrationAid
  • Added Element
MedicationDispense.renderedDosageInstruction
  • Deleted (-> dosageInstruction.renderedInstruction)

Changes from R4 and R4B to R6

MedicationDispense
MedicationDispense.performer.function MedicationDispense.basedOn
  • Added Element
MedicationDispense.performer.actor MedicationDispense.partOf
  • Type Reference: Added Target Type PractitionerRole MedicationAdministration
MedicationDispense.status
  • Remove code stopped
  • Add code unfulfilled
MedicationDispense.notPerformedReason
  • Renamed from statusReason[x] to notPerformedReason
  • Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(DetectedIssue)
MedicationDispense.location MedicationDispense.statusChanged
  • Added Element
MedicationDispense.substitution.responsibleParty 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
  • Renamed from context to encounter
  • Type Reference: Removed Target Type EpisodeOfCare
MedicationDispense.performer.actor
  • Type Reference: Added Target Types CareTeam, Group
MedicationDispense.fillNumber
  • Added Element
MedicationDispense.recorded
  • Added Element
MedicationDispense.receiver
  • Type PractitionerRole Reference: Added Target Types RelatedPerson, Location, PractitionerRole, Organization, Group
MedicationDispense.performer.onBehalfOf MedicationDispense.dosageInstruction
  • deleted Max Cardinality changed from * to 1
  • Type changed from Dosage to DosageDetails
MedicationDispense.notDone MedicationDispense.doseAdministrationAid
  • deleted Added Element
MedicationDispense.substitution.responsibleParty
  • Max Cardinality changed from * to 1
  • Type Reference: Added Target Type Organization
MedicationDispense.notDoneReason[x] MedicationDispense.detectedIssue
  • deleted Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . 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). ) for R4B as XML or JSON .

Structure

0..1 0..1 0..* BackboneElement 0..* detectedIssue 0..* Reference ( DetectedIssue ) Clinical issue with action
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MedicationDispense I TU N DomainResource Dispensing 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..* Identifier External identifier

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

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

. . . status ?! Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped unfulfilled | declined | unknown
Binding: Medication dispense status codes MedicationDispense Status Codes ( Required )
. . statusReason[x] . notPerformedReason 0..1 CodeableReference ( DetectedIssue ) Why a dispense was not performed
Medication dispense status reason codes Binding: MedicationDispense Status Reason Codes ( Example )
. . statusReasonCodeableConcept CodeableConcept . statusChanged statusReasonReference 0..1 Reference ( DetectedIssue dateTime ) When the status changed
. . . category 0..* CodeableConcept Type of medication dispense
Medication dispense category codes Binding: MedicationDispense Category Codes ( Preferred Example )

. . medication[x] . medication Σ 1..1 CodeableReference ( Medication ) What medication was (or was intended to be) supplied
Binding: SNOMED CT Medication Codes ( Example ) medicationCodeableConcept CodeableConcept medicationReference Reference ( Medication )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who the dispense is for
. . . context encounter 0..1 Reference ( Encounter | EpisodeOfCare ) Encounter / Episode associated with event
. . . supportingInformation 0..* Reference ( Any ) Information that supports the dispensing of the medication

. . . performer 0..* BackboneElement Who performed event

. . . . function 0..1 CodeableConcept Who performed the dispense and what they did
Medication dispense performer function codes Binding: MedicationDispense Performer Function Codes ( Example )
. . . . actor 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam | Group ) Individual who was performing
. . . location 0..1 Reference ( Location ) Where the dispense occurred
. . . authorizingPrescription 0..* Reference ( MedicationRequest ) Medication order that authorizes the dispense

. . . type 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc. etc
Binding: ActPharmacySupplyType icon V3 Value SetActPharmacySupplyType ( Example )
. . . quantity 0..1 SimpleQuantity Amount dispensed of medication
. . . daysSupply 0..1 SimpleQuantity Amount of medication expressed as a timing amount
. . . whenPrepared fillNumber 0..1 Σ positiveInt A number that represents the known fill this dispense represents
0..1
. . . recorded 0..1 dateTime When the recording of the dispense started
. . . whenPrepared Σ C 0..1 dateTime When product was packaged and reviewed
. . . whenHandedOver C 0..1 dateTime When product was given out
. . . destination 0..1 Reference ( Location ) Where the medication was was/will be sent
. . . receiver 0..* Reference ( Patient | Practitioner | RelatedPerson | Location | PractitionerRole | Organization | Group ) Who collected the medication or where the medication was delivered

. . . note 0..* Annotation Information about the dispense

. . . dosageInstruction 0..1 Dosage DosageDetails How the medication is to be used by the patient or administered by the caregiver
. . substitution . doseAdministrationAid 0..1 CodeableConcept Type of adherence packaging to use for the dispense
Binding: Medication Dose Aids ( Example )
0..1
. . . substitution 0..1 BackboneElement Whether a substitution was performed on the dispense
. . . . wasSubstituted 1..1 boolean 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
Binding: ActSubstanceAdminSubstitutionCode icon V3 Value SetActSubstanceAdminSubstitutionCode ( Example )
. . . . reason 0..* CodeableConcept Why was substitution made
Binding: SubstanceAdminSubstitutionReason icon V3 Value SetSubstanceAdminSubstitutionReason ( Example )

. . . . responsibleParty 0..1 Reference ( 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 )

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 server identifier : Identifier [0..*] A plan that is fulfilled in whole or in part by this MedicationDispense basedOn : Reference [0..*] « CarePlan » The procedure or medication administration that trigger triggered the dispense partOf : Reference [0..*] « Procedure | MedicationAdministration » A code specifying the state of the set of dispense events (this element modifies the meaning of other elements) status : code [1..1] « A coded concept specifying the state of the dispense event. (Strength=Required) MedicationDispense Status MedicationDispenseStatusCodes ! » Indicates the reason why a dispense was not performed statusReason[x] notPerformedReason : Type CodeableReference [0..1] « CodeableConcept DetectedIssue | Reference ; null (Strength=Example) ( DetectedIssue MedicationDispenseStatusReaso... ); ?? » A code describing why a The date (and maybe time) when the status of the dispense was not performed. (Strength=Example) record changed MedicationDispense Status Rea... statusChanged ?? » : dateTime [0..1] Indicates the type of medication dispense (for example, drug classification like ATC, where the medication is expected to meds would be consumed or administered (i.e. inpatient or outpatient)) administered, legal category of the medication.) category : CodeableConcept [0..1] [0..*] « A code describing where the dispensed medication is expected to be consumed or administered. (Strength=Preferred) null (Strength=Example) MedicationDispense Category MedicationDispenseCategoryCod... ? ?? » Identifies the medication being administered. 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 medication[x] medication : Type CodeableReference [1..1] « CodeableConcept | Reference ( Medication ); ; A coded concept identifying which substance or product can be dispensed. null (Strength=Example) SNOMEDCTMedicationCodes ?? » A link to a resource representing the person or the group to whom the medication will be given subject : Reference [0..1] [1..1] « Patient | Group » The encounter or episode of care that establishes the context for this event context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Additional information that supports the medication being dispensed dispensed. For example, there may be requirements that a specific lab test has been completed prior to dispensing or the patient's weight at the time of dispensing is documented supportingInformation : Reference [0..*] « Any » The principal physical location where the dispense was performed location : Reference [0..1] « Location » Indicates the medication order that is being dispensed against authorizingPrescription : Reference [0..*] « MedicationRequest » Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc type : CodeableConcept [0..1] « Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. (Strength=Example) v3.ActPharmacySupplyType ActPharmacySupplyType ?? » The amount of medication that has been (or was intended to be) dispensed. Includes unit of measure quantity : Quantity ( SimpleQuantity ) [0..1] The amount of medication expressed as a timing amount daysSupply : Quantity ( SimpleQuantity ) [0..1] Represents the known number of the fill over the entire lifetime of the prescription, i.e. if this is the first dispense by this pharmacy but the third fill overall, then the fillNumber will be 3. Each fill number represents one dispensation, even if that dispensation is not for the full quantity. Partial fills are not represented by decimal quantities, i.e., a partial fill of 40 tablets (full quantity is 100 tablets) adds 1 to the prior fill number, not 0.4. This means that the 'fillNumber' may sometimes be higher than the MedicationRequest.numberOfRepeatsAllowed, as the latter assumes full fills, while fillNumber does not fillNumber : positiveInt [0..1] The date the occurrence of the MedicationDispense was first captured in the system recorded : dateTime [0..1] The time when the dispensed product was packaged and reviewed whenPrepared : dateTime [0..1] « This element has or is affected by some invariants C » The time the dispensed product was provided to the patient or their representative whenHandedOver : dateTime [0..1] « This element has or is affected by some invariants C » Identification of the facility/location where the medication was was/will be shipped to, as part of the dispense event destination : Reference [0..1] « Location » Identifies the person who picked up the medication. medication or the location or organization where the medication was delivered. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professional or a location, or organization receiver : Reference [0..*] « Patient | Practitioner | RelatedPerson | Location | PractitionerRole | Organization | Group » Extra information about the dispense that could not be conveyed in the other attributes note : Annotation [0..*] Indicates how the medication is to be used by the patient dosageInstruction : Dosage DosageDetails [0..*] [0..1] Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions Provides information about the type of adherence packaging supplied for a patient; e.g. drug-drug interaction, duplicate therapy, dosage alert etc the medication dispense detectedIssue doseAdministrationAid : Reference CodeableConcept [0..*] [0..1] « DetectedIssue A coded concept describing the type of adherence packaging supplied for the medication dispense. (Strength=Example) MedicationDoseAids ?? » A summary of the events of interest that have occurred, such as when the dispense was verified eventHistory : Reference [0..*] « Provenance » Performer Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker function : CodeableConcept [0..1] « A code describing the role an individual played in dispensing a medication. null (Strength=Example) MedicationDispense Performer ... MedicationDispensePerformerFu... ?? » The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication actor : Reference [1..1] « Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam | Group » Substitution True if the dispenser dispensed a different drug or product from what was prescribed wasSubstituted : boolean [1..1] A code signifying whether a different drug was dispensed from what was prescribed type : CodeableConcept [0..1] « A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. (Strength=Example) v3.ActSubstanceAdminSubstitut... ActSubstanceAdminSubstitution... ?? » Indicates the reason for the substitution (or lack of substitution) from what was prescribed reason : CodeableConcept [0..*] « A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. (Strength=Example) v3.SubstanceAdminSubstitution... SubstanceAdminSubstitutionRea... ?? » The person or organization that has primary responsibility for the substitution responsibleParty : Reference [0..*] [0..1] « Practitioner | PractitionerRole | Organization » Indicates who or what performed the event performer [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 done substitution [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>
 <
 <</statusReason[x]>
 <</category>
 <</medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>

 <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 | unfulfilled | 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 (or was intended to be) 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>

  <actor><!-- 1..1 Reference(CareTeam|Device|Group|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>
 <</quantity>

 <type><!-- 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc icon --></type>
 <quantity><!-- 0..1 Quantity(SimpleQuantity) Amount of medication --></quantity>

 <daysSupply><!-- 0..1 Quantity(SimpleQuantity) Amount of medication expressed as a timing amount --></daysSupply>
 <
 <
 <</destination>
 <</receiver>

 <fillNumber value="[positiveInt]"/><!-- 0..1 A number that represents the known fill this dispense represents -->
 <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(Group|Location|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) Who collected the medication or where the medication was delivered --></receiver>
 <note><!-- 0..* Annotation Information about the dispense --></note>
 <</dosageInstruction>

 <dosageInstruction><!-- 0..1 DosageDetails How the medication is to be used by the patient or administered by the caregiver --></dosageInstruction>
 <doseAdministrationAid><!-- 0..1 CodeableConcept Type of adherence packaging to use for the dispense --></doseAdministrationAid>

 <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>
  <</reason>
  <</responsibleParty>

  <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>
 <</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
  "
  "
  
  " },
  " },
  "
  
  " },
  " },
  "
  "
  "

  "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 | unfulfilled | 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 (or was intended to be) 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|Group|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 of medication

  "daysSupply" : { Quantity(SimpleQuantity) }, // Amount of medication expressed as a timing amount
  "
  "
  "
  "

  "fillNumber" : "<positiveInt>", // A number that represents the known fill this dispense represents
  "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(Group|Location|Organization|Patient|Practitioner|
   PractitionerRole|RelatedPerson) }], // Who collected the medication or where the medication was delivered
  "note" : [{ Annotation }], // Information about the dispense
  "

  "dosageInstruction" : { DosageDetails }, // How the medication is to be used by the patient or administered by the caregiver
  "doseAdministrationAid" : { CodeableConcept }, // Type of adherence packaging to use for the dispense

  "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 
  # from 
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
  ];
  fhir:
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir: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 | unfulfilled | 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 (or was intended to be) 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|Group|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 of medication
  fhir:daysSupply [ Quantity(SimpleQuantity) ] ; # 0..1 Amount of medication expressed as a timing amount
  fhir:fillNumber [ positiveInt ] ; # 0..1 A number that represents the known fill this dispense represents
  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(Group|Location|Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who collected the medication or where the medication was delivered
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Information about the dispense
  fhir:dosageInstruction [ DosageDetails ] ; # 0..1 How the medication is to be used by the patient or administered by the caregiver
  fhir:doseAdministrationAid [ CodeableConcept ] ; # 0..1 Type of adherence packaging to use for the dispense
  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 since Release 3 from R5 to R6

MedicationDispense
MedicationDispense.status
  • Min Remove code stopped
  • Add code unfulfilled
MedicationDispense.performer.actor
  • Type Reference: Added Target Type Group
MedicationDispense.fillNumber
  • Added Element
MedicationDispense.receiver
  • Type Reference: Added Target Types Organization, Group
MedicationDispense.dosageInstruction
  • Max Cardinality changed from 0 * to 1
  • Change value set Type changed from http://hl7.org/fhir/ValueSet/medication-dispense-status Dosage to http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1 DosageDetails
MedicationDispense.statusReason[x] MedicationDispense.doseAdministrationAid
  • Added Element
MedicationDispense.renderedDosageInstruction
  • Deleted (-> dosageInstruction.renderedInstruction)

Changes from R4 and R4B to R6

MedicationDispense
MedicationDispense.performer.function MedicationDispense.basedOn
  • Added Element
MedicationDispense.performer.actor MedicationDispense.partOf
  • Type Reference: Added Target Type PractitionerRole MedicationAdministration
MedicationDispense.status
  • Remove code stopped
  • Add code unfulfilled
MedicationDispense.notPerformedReason
  • Renamed from statusReason[x] to notPerformedReason
  • Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(DetectedIssue)
MedicationDispense.location MedicationDispense.statusChanged
  • Added Element
MedicationDispense.substitution.responsibleParty 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
  • Renamed from context to encounter
  • Type Reference: Removed Target Type EpisodeOfCare
MedicationDispense.performer.actor
  • Type Reference: Added Target Types CareTeam, Group
MedicationDispense.fillNumber
  • Added Element
MedicationDispense.recorded
  • Added Element
MedicationDispense.receiver
  • Type PractitionerRole Reference: Added Target Types RelatedPerson, Location, PractitionerRole, Organization, Group
MedicationDispense.performer.onBehalfOf MedicationDispense.dosageInstruction
  • deleted Max Cardinality changed from * to 1
  • Type changed from Dosage to DosageDetails
MedicationDispense.notDone MedicationDispense.doseAdministrationAid
  • deleted Added Element
MedicationDispense.substitution.responsibleParty
  • Max Cardinality changed from * to 1
  • Type Reference: Added Target Type Organization
MedicationDispense.notDoneReason[x] MedicationDispense.detectedIssue
  • deleted Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . 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). ) for R4B as XML or JSON .

 

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

MedicationDispense.statusReason[x]
Path Definition ValueSet Type Reference Documentation
MedicationDispense.status A coded concept specifying the state of the dispense event. MedicationDispenseStatusCodes Required

MedicationDispense Status Codes

MedicationDispense.notPerformedReason A code describing why a dispense was not performed. MedicationDispenseStatusReasonCodes Example

MedicationDispense Status Reason Codes

MedicationDispense.category A code describing where the dispensed medication is expected to be consumed or administered. MedicationDispenseCategoryCodes Preferred Example

MedicationDispense Category Codes

MedicationDispense.medication[x] MedicationDispense.medication A coded concept identifying which substance or product can be dispensed. SNOMEDCTMedicationCodes Example SNOMEDCTMedicationCodes

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 A code describing the role an individual played in dispensing a medication. MedicationDispensePerformerFunctionCodes Example

MedicationDispense Performer Function Codes

MedicationDispense.type ActPharmacySupplyType icon Example Indicates the type

Identifies types of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. events

MedicationDispense.doseAdministrationAid MedicationDoseAids (a valid code from Medication dose aid ) Example v3.ActPharmacySupplyType

Medication Dose Aids

MedicationDispense.substitution.type A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription. ActSubstanceAdminSubstitutionCode icon Example v3.ActSubstanceAdminSubstitutionCode

No description

MedicationDispense.substitution.reason A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed. SubstanceAdminSubstitutionReason icon Example v3.SubstanceAdminSubstitutionReason

No description

id UniqueKey Level Location Description Expression
mdd-1 img  mdd-1 Rule (base) whenHandedOver cannot be before whenPrepared whenHandedOver.empty() or whenPrepared.empty() or (whenHandedOver.hasValue() and whenPrepared.hasValue()) implies 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.

Name Type Description Expression In Common
code token Returns dispenses of this medicine code (MedicationDispense.medication as CodeableConcept) MedicationDispense.medication.concept 13 19 Resources
destination context reference Returns dispenses with that should be sent to a specific context (episode or episode of care) destination MedicationDispense.context MedicationDispense.destination
( EpisodeOfCare , Encounter Location )
encounter destination reference Returns dispenses that should be sent to with a specific destination encounter MedicationDispense.destination MedicationDispense.encounter
( Location Encounter )
26 Resources
identifier token Returns dispenses with this external identifier MedicationDispense.identifier 30 58 Resources
location reference Returns dispense for a given location MedicationDispense.location
( Location )
medication reference Returns dispenses of this medicine resource (MedicationDispense.medication as Reference) ( Medication ) MedicationDispense.medication.reference 3 4 Resources
patient reference The identity of a patient to list dispenses for MedicationDispense.subject.where(resolve() is Patient)
( Patient )
33 60 Resources
performer reference Returns dispenses performed by a specific individual MedicationDispense.performer.actor
( Practitioner , Group , Organization , CareTeam , Device , Patient , PractitionerRole , RelatedPerson )
prescription reference The identity of a prescription to list dispenses from MedicationDispense.authorizingPrescription
( MedicationRequest )
1 Resources
receiver reference The identity of a receiver to list dispenses for MedicationDispense.receiver
( Practitioner , Group , Organization , Patient , PractitionerRole , RelatedPerson , Location )
recorded date Returns dispenses where dispensing activity began on this date MedicationDispense.recorded
responsibleparty reference Returns dispenses with the specified responsible party MedicationDispense.substitution.responsibleParty
( Practitioner , Organization , PractitionerRole )
status token Returns dispenses with a specified dispense status MedicationDispense.status 3 4 Resources
subject reference The identity of a patient for whom to list dispenses MedicationDispense.subject
( Group , Patient )
type token Returns dispenses of a specific type MedicationDispense.type 10 Resources
whenhandedover date Returns dispenses handed over on this date MedicationDispense.whenHandedOver
whenprepared date Returns dispenses prepared on this date MedicationDispense.whenPrepared