FHIR Release 3 (STU) CI-Build

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0 . For a full list Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3 R2

11.3 Resource MedicationDispense - Content

Responsible Owner: Pharmacy icon Work Group Maturity Level : 2   Trial Use 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 out-patient outpatient or community pharmacy, dispensing patient-specific medications from in-patient 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 it 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, sequence but is a report that such a sequence (or at least a part of it) did take place, resulting in a belief that the patient has received a particular medication.

This resource does not deal with the supply or transfer of non-medication related items to a patient.

The supply and the associated administration instructions may might not exactly follow the original order (prescription), either because some details were left for completion at this point in the process or because the dispenser exercised their clinical judgment to make some appropriate modification.

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

Structure

0..1 Type of medication Σ 1..1 0..1 detectedIssue 0..* Reference ( DetectedIssue ) Clinical issue with action notDone 0..1 boolean Whether the dispense was or was not performed notDoneReason[x] 0..1 Why a dispense was not performed notDoneReasonCodeableConcept CodeableConcept notDoneReasonReference Reference ( DetectedIssue )
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MedicationDispense I TU 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

. . . 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
MedicationDispenseStatus Binding: MedicationDispense Status Codes ( Required )
. . category . notPerformedReason 0..1 CodeableConcept CodeableReference ( DetectedIssue ) Why a dispense was not performed
MedicationDispenseCategory Binding: MedicationDispense Status Reason Codes ( Preferred Example )
. . medication[x] . statusChanged 0..1 dateTime What medication was supplied When the status changed
SNOMED CT Medication Codes ( Example )
. . medicationCodeableConcept . category 0..* CodeableConcept Type of medication dispense
Binding: MedicationDispense Category Codes ( Example )

. . . medicationReference medication Σ Reference 1..1 CodeableReference ( Medication ) What medication was (or was intended to be) supplied
Binding: SNOMED CT Medication Codes ( Example )
. . . 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
Binding: MedicationDispense Performer Function Codes ( Example )
... . actor 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam | Group ) Individual who was performing
. . onBehalfOf . location 0..1 Reference ( Organization Location ) Where the dispense occurred
Organization organization was acting for
. . . 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 ( 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

. . . renderedDosageInstruction 0..1 markdown Full representation of the dosage instructions
. . . dosageInstruction 0..* Dosage How the medication is to be used by the patient or administered by the caregiver

. . . doseAdministrationAid 0..1 CodeableConcept Type of adherence packaging to use for the dispense
Binding: Medication Dose Aids ( Example )
.. . 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 ( Example )
. . . . reason 0..* CodeableConcept Why was substitution made
Binding: SubstanceAdminSubstitutionReason icon ( Example )

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


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

MedicationDispense ( DomainResource ) Identifier assigned 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 dispensing facility - this resource itself is an identifier not appropriate. They are business identifiers assigned outside FHIR 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 triggered the dispense is done because of 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 [0..1] [1..1] « A coded concept specifying the state of the dispense event. (Strength=Required) MedicationDispenseStatus MedicationDispenseStatusCodes ! » Indicates the reason why a dispense was not performed notPerformedReason : CodeableReference [0..1] « DetectedIssue ; null (Strength=Example) MedicationDispenseStatusReaso... ?? » The date (and maybe time) when the status of the dispense record changed statusChanged : dateTime [0..1] Indicates the type of medication dispense and (for example, drug classification like ATC, where the medication is expected to meds would be consumed or administered 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) MedicationDispenseCategory 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) SNOMED CT Medication 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) 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 full representation of the dose of the medication is to included in all dosage instructions. To be used by the patient when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses dosageInstruction renderedDosageInstruction : Dosage markdown [0..*] [0..1] Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc how the medication is to be used by the patient detectedIssue dosageInstruction : Reference Dosage [0..*] DetectedIssue True if Provides information about the dispense was not performed type of adherence packaging supplied for some reason notDone : boolean [0..1] Indicates the reason why a medication dispense was not performed notDoneReason[x] doseAdministrationAid : Type [0..1] CodeableConcept | Reference ( [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] « null (Strength=Example) 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 The organization the device or practitioner was acting on behalf of onBehalfOf : Reference | CareTeam [0..1] Organization | 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 prescription. (Strength=Example) ActSubstanceAdminSubstitution... ?? » Indicates the reason for the substitution of (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 prescribed. (Strength=Example) 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. It should be assumed that the performer is the dispenser of the medication event performer [0..*] Indicates whether or not substitution was made as part of the dispense. In some cases 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>
 <</partOf>
 <
 <</category>
 <</medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>
 <
  <|
    </actor>
  <</onBehalfOf>

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

 <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><!-- 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>
 <
 <</notDoneReason[x]>
 <</eventHistory>

 <eventHistory><!-- 0..* Reference(Provenance) A list of relevant lifecycle events --></eventHistory>

</MedicationDispense>

JSON Template

{doco
  "resourceType" : "",

  "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
  "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
  "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:
  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:
  # . One of these 2
    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: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: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 DSTU2 from both R4 and R4B

MedicationDispense.identifier MedicationDispense.dispenser deleted MedicationDispense.dosageInstruction.text deleted MedicationDispense.dosageInstruction.additionalInstructions deleted
MedicationDispense Max Cardinality changed from 1 to *
MedicationDispense.partOf MedicationDispense.basedOn
  • Added Element
MedicationDispense.category MedicationDispense.partOf
  • Type Reference: Added Element Target Type MedicationAdministration
MedicationDispense.subject MedicationDispense.status
  • Renamed from patient to subject Remove code stopped
  • Add Reference(Group) MedicationDispense.context Added Element MedicationDispense.supportingInformation Added Element MedicationDispense.performer Added Element code unfulfilled
MedicationDispense.performer.actor MedicationDispense.notPerformedReason
  • Added Element
MedicationDispense.performer.onBehalfOf MedicationDispense.statusChanged
  • Added Element
MedicationDispense.authorizingPrescription Type changed from Reference(MedicationOrder) to Reference(MedicationRequest) MedicationDispense.note MedicationDispense.category
  • Max Cardinality changed from 1 to *
  • Type changed from string to Annotation
MedicationDispense.dosageInstruction MedicationDispense.medication
  • Type changed Renamed from BackboneElement medication[x] to Dosage medication
  • MedicationDispense.substitution.wasSubstituted
  • Added Element Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(Medication)
MedicationDispense.substitution.type MedicationDispense.subject
  • Min Cardinality changed from 1 to 0 to 1
MedicationDispense.detectedIssue MedicationDispense.encounter
  • Added Element
MedicationDispense.notDone MedicationDispense.performer.actor
  • Type Reference: Added Element Target Types CareTeam, Group
MedicationDispense.notDoneReason[x] MedicationDispense.fillNumber
  • Added Element
MedicationDispense.eventHistory MedicationDispense.recorded
  • Added Element
MedicationDispense.dosageInstruction.timing MedicationDispense.receiver
  • deleted Type Reference: Added Target Types RelatedPerson, Location, PractitionerRole, Organization, Group
MedicationDispense.dosageInstruction.asNeeded[x] MedicationDispense.renderedDosageInstruction
  • deleted Added Element
MedicationDispense.dosageInstruction.site[x] MedicationDispense.doseAdministrationAid
  • deleted Added Element
MedicationDispense.dosageInstruction.route MedicationDispense.substitution.responsibleParty
  • deleted Max Cardinality changed from * to 1
  • MedicationDispense.dosageInstruction.method
  • deleted Type Reference: Added Target Type Organization
MedicationDispense.dosageInstruction.dose[x] MedicationDispense.statusReason[x]
  • deleted Deleted
MedicationDispense.dosageInstruction.rate[x] MedicationDispense.context
  • deleted Deleted
MedicationDispense.dosageInstruction.maxDosePerPeriod MedicationDispense.detectedIssue
  • deleted Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 7 tests that all execute ok. 7 fail round-trip testing and 1 r3 resources are invalid (2 errors). ). for R4B as XML or JSON .

Structure

0..1 Type of medication Σ 1..1 0..1 detectedIssue 0..* Reference ( DetectedIssue ) Clinical issue with action notDone 0..1 boolean Whether the dispense was or was not performed notDoneReason[x] 0..1 Why a dispense was not performed notDoneReasonCodeableConcept CodeableConcept notDoneReasonReference Reference ( DetectedIssue )
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MedicationDispense I TU 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

. . . 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
MedicationDispenseStatus Binding: MedicationDispense Status Codes ( Required )
. . category . notPerformedReason 0..1 CodeableConcept CodeableReference ( DetectedIssue ) Why a dispense was not performed
MedicationDispenseCategory Binding: MedicationDispense Status Reason Codes ( Preferred Example )
. . medication[x] . statusChanged 0..1 dateTime What medication was supplied When the status changed
SNOMED CT Medication Codes ( Example )
. . medicationCodeableConcept . category 0..* CodeableConcept Type of medication dispense
Binding: MedicationDispense Category Codes ( Example )

. . . medicationReference medication Σ Reference 1..1 CodeableReference ( Medication ) What medication was (or was intended to be) supplied
Binding: SNOMED CT Medication Codes ( Example )
. . . 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
Binding: MedicationDispense Performer Function Codes ( Example )
... . actor 1..1 Reference ( Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam | Group ) Individual who was performing
. . onBehalfOf . location 0..1 Reference ( Organization Location ) Where the dispense occurred
Organization organization was acting for
. . . 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 ( 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

. . . renderedDosageInstruction 0..1 markdown Full representation of the dosage instructions
. . . dosageInstruction 0..* Dosage How the medication is to be used by the patient or administered by the caregiver

. . . doseAdministrationAid 0..1 CodeableConcept Type of adherence packaging to use for the dispense
Binding: Medication Dose Aids ( Example )
.. . 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 ( Example )
. . . . reason 0..* CodeableConcept Why was substitution made
Binding: SubstanceAdminSubstitutionReason icon ( Example )

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


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram ( Legend )

MedicationDispense ( DomainResource ) Identifier assigned 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 dispensing facility - this resource itself is an identifier not appropriate. They are business identifiers assigned outside FHIR 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 triggered the dispense is done because of 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 [0..1] [1..1] « A coded concept specifying the state of the dispense event. (Strength=Required) MedicationDispenseStatus MedicationDispenseStatusCodes ! » Indicates the reason why a dispense was not performed notPerformedReason : CodeableReference [0..1] « DetectedIssue ; null (Strength=Example) MedicationDispenseStatusReaso... ?? » The date (and maybe time) when the status of the dispense record changed statusChanged : dateTime [0..1] Indicates the type of medication dispense and (for example, drug classification like ATC, where the medication is expected to meds would be consumed or administered 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) MedicationDispenseCategory 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) SNOMED CT Medication 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) 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 full representation of the dose of the medication is to included in all dosage instructions. To be used by the patient when multiple dosage instructions are included to represent complex dosing such as increasing or tapering doses dosageInstruction renderedDosageInstruction : Dosage markdown [0..*] [0..1] Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc how the medication is to be used by the patient detectedIssue dosageInstruction : Reference Dosage [0..*] DetectedIssue True if Provides information about the dispense was not performed type of adherence packaging supplied for some reason notDone : boolean [0..1] Indicates the reason why a medication dispense was not performed notDoneReason[x] doseAdministrationAid : Type [0..1] CodeableConcept | Reference ( [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] « null (Strength=Example) 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 The organization the device or practitioner was acting on behalf of onBehalfOf : Reference | CareTeam [0..1] Organization | 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 prescription. (Strength=Example) ActSubstanceAdminSubstitution... ?? » Indicates the reason for the substitution of (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 prescribed. (Strength=Example) 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. It should be assumed that the performer is the dispenser of the medication event performer [0..*] Indicates whether or not substitution was made as part of the dispense. In some cases 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>
 <</partOf>
 <
 <</category>
 <</medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>
 <
  <|
    </actor>
  <</onBehalfOf>

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

 <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><!-- 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>
 <
 <</notDoneReason[x]>
 <</eventHistory>

 <eventHistory><!-- 0..* Reference(Provenance) A list of relevant lifecycle events --></eventHistory>

</MedicationDispense>

JSON Template

{doco
  "resourceType" : "",

  "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
  "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
  "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:
  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:
  # . One of these 2
    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: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: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 DSTU2 from both R4 and R4B

MedicationDispense.identifier MedicationDispense.dispenser deleted MedicationDispense.dosageInstruction.text deleted MedicationDispense.dosageInstruction.additionalInstructions deleted
MedicationDispense Max Cardinality changed from 1 to *
MedicationDispense.partOf MedicationDispense.basedOn
  • Added Element
MedicationDispense.category MedicationDispense.partOf
  • Type Reference: Added Element Target Type MedicationAdministration
MedicationDispense.subject MedicationDispense.status
  • Renamed from patient to subject Remove code stopped
  • Add Reference(Group) MedicationDispense.context Added Element MedicationDispense.supportingInformation Added Element MedicationDispense.performer Added Element code unfulfilled
MedicationDispense.performer.actor MedicationDispense.notPerformedReason
  • Added Element
MedicationDispense.performer.onBehalfOf MedicationDispense.statusChanged
  • Added Element
MedicationDispense.authorizingPrescription Type changed from Reference(MedicationOrder) to Reference(MedicationRequest) MedicationDispense.note MedicationDispense.category
  • Max Cardinality changed from 1 to *
  • Type changed from string to Annotation
MedicationDispense.dosageInstruction MedicationDispense.medication
  • Type changed Renamed from BackboneElement medication[x] to Dosage medication
  • MedicationDispense.substitution.wasSubstituted
  • Added Element Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(Medication)
MedicationDispense.substitution.type MedicationDispense.subject
  • Min Cardinality changed from 1 to 0 to 1
MedicationDispense.detectedIssue MedicationDispense.encounter
  • Added Element
MedicationDispense.notDone MedicationDispense.performer.actor
  • Type Reference: Added Element Target Types CareTeam, Group
MedicationDispense.notDoneReason[x] MedicationDispense.fillNumber
  • Added Element
MedicationDispense.eventHistory MedicationDispense.recorded
  • Added Element
MedicationDispense.dosageInstruction.timing MedicationDispense.receiver
  • deleted Type Reference: Added Target Types RelatedPerson, Location, PractitionerRole, Organization, Group
MedicationDispense.dosageInstruction.asNeeded[x] MedicationDispense.renderedDosageInstruction
  • deleted Added Element
MedicationDispense.dosageInstruction.site[x] MedicationDispense.doseAdministrationAid
  • deleted Added Element
MedicationDispense.dosageInstruction.route MedicationDispense.substitution.responsibleParty
  • deleted Max Cardinality changed from * to 1
  • MedicationDispense.dosageInstruction.method
  • deleted Type Reference: Added Target Type Organization
MedicationDispense.dosageInstruction.dose[x] MedicationDispense.statusReason[x]
  • deleted Deleted
MedicationDispense.dosageInstruction.rate[x] MedicationDispense.context
  • deleted Deleted
MedicationDispense.dosageInstruction.maxDosePerPeriod MedicationDispense.detectedIssue
  • deleted Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 7 tests that all execute ok. 7 fail round-trip testing and 1 r3 resources are invalid (2 errors). ). for R4B as XML or JSON .

 

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

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 MedicationDispenseStatus 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 MedicationDispenseCategory

MedicationDispense Category Codes

MedicationDispense.medication[x] MedicationDispense.medication SNOMEDCTMedicationCodes Example A coded concept identifying which substance

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

MedicationDispense.performer.function MedicationDispensePerformerFunctionCodes Example SNOMED CT Medication

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 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 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 SubstanceAdminSubstitutionReason

No description

UniqueKey Level Location Description Expression
mdd-1 : img  mdd-1 Rule (base) whenHandedOver cannot be before whenPrepared ( expression : 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 Return Returns dispenses of this medicine code MedicationDispense.medication.as(CodeableConcept) MedicationDispense.medication.concept 4 19 Resources
context destination 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 Return Returns dispenses that should be sent to with a specific destination encounter MedicationDispense.destination MedicationDispense.encounter
( Location Encounter )
27 Resources
identifier token Return Returns dispenses with this external identifier MedicationDispense.identifier 3 59 Resources
location reference Returns dispense for a given location MedicationDispense.location
( Location )
medication reference Return 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 MedicationDispense.subject.where(resolve() is Patient)
( Patient )
3 61 Resources
performer reference Return 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 Return Returns dispenses with the specified responsible party MedicationDispense.substitution.responsibleParty
( Practitioner , Organization , PractitionerRole )
status token Return Returns dispenses with a specified dispense status MedicationDispense.status 3 4 Resources
subject reference The identity of a patient for whom to list dispenses for MedicationDispense.subject
( Group , Patient )
type token Return 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