Medication Prescription and Dispense (MPD)
1.0.0-comment-3 - ballot

Medication Prescription and Dispense (MPD), published by Integrating the Healthcare Enterprise (IHE). This guide is not an authorized publication; it is the continuous build for version 1.0.0-comment-3 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/pharm-mpd/tree/113/merge and changes regularly. See the Directory of published versions

## Logical Model: Medication dispense (model)

Official URL: https://profiles.ihe.net/PHARM/MPD/StructureDefinition/IHEMedicationDispenseModel | Version: 1.0.0-comment-3
Active as of 2026-04-22 | Computable Name: IHEMedicationDispenseModel
Copyright/Legal: IHE http://www.ihe.net/Governance/#Intellectual_Property

Logical model for medication dispense report (based on request or independently)

Usages:

- This Logical Model is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
IHEMedicationDispenseModel |  | 0..* | Base | Medication dispense (model) Instances of this logical model can be the target of a Reference
identifier |  | 0..* | Identifier | Identifier for the dispense
patient |  | 1..1 | Reference(Patient (model)) | The person for whom the medication is prescribed/ordered
receiver |  | 0..1 | Reference(Patient (model) | Practitioner (model) | RelatedPerson | PractitionerRole) | Identification of the person who received the dispensed medication, especially when it was not the patient
dispenser |  | 1..1 | Reference(Practitioner (model) | Organization | Device) | The person who dispensed the product, and takes the responsibility of the dispensation
relatedRequest |  | 0..* | Reference(Medication order (model)) | Prescription/request/order the dispense is related to
medication |  | 1..1 | Reference(Medicinal product (model)) | Exact dispensed product
dispensedQuantity |  | 1..1 | Quantity | Number of dispensed packages if the pack size is known, or number of smaller items/units
timeOfDispensation |  | 1..1 | dateTime | Date and time of dispensation
substitution |  | 0..1 | BackboneElement | Substitution was made
@id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
substitutionOccurred |  | 1..1 | boolean | Indicates whether substitution was made by the dispenser
type |  | 0..1 | CodeableConcept | Indicates the type of substitution made by the dispenser
reason |  | 0..1 | CodeableConcept | The reason for the substitution by the dispenser or why a required substitution was not made
status |  | 1..1 | CodeableConcept | Status of the dispensation
statusReason |  | 0..* | CodeableConcept | Reason for the current status of dispensation, for example the reason why the dispensation was made invalid
statusReasonText |  | 0..1 | string | Textual reason for the current status of dispensation
usageInstructions |  | 0..* | Reference(Dosaging (model)) | Dosaging and administration instructions
comment |  | 0..* | string | Additional information or comments
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Base

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
IHEMedicationDispenseModel |  | 0..* | Base | Medication dispense (model) Instances of this logical model can be the target of a Reference
identifier |  | 0..* | Identifier | Identifier for the dispense
patient |  | 1..1 | Reference(Patient (model)) | The person for whom the medication is prescribed/ordered
receiver |  | 0..1 | Reference(Patient (model) | Practitioner (model) | RelatedPerson | PractitionerRole) | Identification of the person who received the dispensed medication, especially when it was not the patient
dispenser |  | 1..1 | Reference(Practitioner (model) | Organization | Device) | The person who dispensed the product, and takes the responsibility of the dispensation
relatedRequest |  | 0..* | Reference(Medication order (model)) | Prescription/request/order the dispense is related to
medication |  | 1..1 | Reference(Medicinal product (model)) | Exact dispensed product
dispensedQuantity |  | 1..1 | Quantity | Number of dispensed packages if the pack size is known, or number of smaller items/units
timeOfDispensation |  | 1..1 | dateTime | Date and time of dispensation
substitution |  | 0..1 | BackboneElement | Substitution was made
substitutionOccurred |  | 1..1 | boolean | Indicates whether substitution was made by the dispenser
type |  | 0..1 | CodeableConcept | Indicates the type of substitution made by the dispenser
reason |  | 0..1 | CodeableConcept | The reason for the substitution by the dispenser or why a required substitution was not made
status |  | 1..1 | CodeableConcept | Status of the dispensation
statusReason |  | 0..* | CodeableConcept | Reason for the current status of dispensation, for example the reason why the dispensation was made invalid
statusReasonText |  | 0..1 | string | Textual reason for the current status of dispensation
usageInstructions |  | 0..* | Reference(Dosaging (model)) | Dosaging and administration instructions
comment |  | 0..* | string | Additional information or comments
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
IHEMedicationDispenseModel |  | 0..* | Base | Medication dispense (model) Instances of this logical model can be the target of a Reference
identifier |  | 0..* | Identifier | Identifier for the dispense
patient |  | 1..1 | Reference(Patient (model)) | The person for whom the medication is prescribed/ordered
receiver |  | 0..1 | Reference(Patient (model) | Practitioner (model) | RelatedPerson | PractitionerRole) | Identification of the person who received the dispensed medication, especially when it was not the patient
dispenser |  | 1..1 | Reference(Practitioner (model) | Organization | Device) | The person who dispensed the product, and takes the responsibility of the dispensation
relatedRequest |  | 0..* | Reference(Medication order (model)) | Prescription/request/order the dispense is related to
medication |  | 1..1 | Reference(Medicinal product (model)) | Exact dispensed product
dispensedQuantity |  | 1..1 | Quantity | Number of dispensed packages if the pack size is known, or number of smaller items/units
timeOfDispensation |  | 1..1 | dateTime | Date and time of dispensation
substitution |  | 0..1 | BackboneElement | Substitution was made
@id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
substitutionOccurred |  | 1..1 | boolean | Indicates whether substitution was made by the dispenser
type |  | 0..1 | CodeableConcept | Indicates the type of substitution made by the dispenser
reason |  | 0..1 | CodeableConcept | The reason for the substitution by the dispenser or why a required substitution was not made
status |  | 1..1 | CodeableConcept | Status of the dispensation
statusReason |  | 0..* | CodeableConcept | Reason for the current status of dispensation, for example the reason why the dispensation was made invalid
statusReasonText |  | 0..1 | string | Textual reason for the current status of dispensation
usageInstructions |  | 0..* | Reference(Dosaging (model)) | Dosaging and administration instructions
comment |  | 0..* | string | Additional information or comments
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Base

Summary

Mandatory: 0 element(7 nested mandatory elements)

Structures

This structure refers to these other structures:

- Patient (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/PatientBasic)
- Practitioner (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/PractitionerBasic)
- Medication order (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/IHEMedicationOrderModel)
- Medicinal product (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/MedicinalProductModel)
- Dosaging (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/DosagingInformation)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
IHEMedicationDispenseModel |  | 0..* | Base | Medication dispense (model) Instances of this logical model can be the target of a Reference
identifier |  | 0..* | Identifier | Identifier for the dispense
patient |  | 1..1 | Reference(Patient (model)) | The person for whom the medication is prescribed/ordered
receiver |  | 0..1 | Reference(Patient (model) | Practitioner (model) | RelatedPerson | PractitionerRole) | Identification of the person who received the dispensed medication, especially when it was not the patient
dispenser |  | 1..1 | Reference(Practitioner (model) | Organization | Device) | The person who dispensed the product, and takes the responsibility of the dispensation
relatedRequest |  | 0..* | Reference(Medication order (model)) | Prescription/request/order the dispense is related to
medication |  | 1..1 | Reference(Medicinal product (model)) | Exact dispensed product
dispensedQuantity |  | 1..1 | Quantity | Number of dispensed packages if the pack size is known, or number of smaller items/units
timeOfDispensation |  | 1..1 | dateTime | Date and time of dispensation
substitution |  | 0..1 | BackboneElement | Substitution was made
@id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
substitutionOccurred |  | 1..1 | boolean | Indicates whether substitution was made by the dispenser
type |  | 0..1 | CodeableConcept | Indicates the type of substitution made by the dispenser
reason |  | 0..1 | CodeableConcept | The reason for the substitution by the dispenser or why a required substitution was not made
status |  | 1..1 | CodeableConcept | Status of the dispensation
statusReason |  | 0..* | CodeableConcept | Reason for the current status of dispensation, for example the reason why the dispensation was made invalid
statusReasonText |  | 0..1 | string | Textual reason for the current status of dispensation
usageInstructions |  | 0..* | Reference(Dosaging (model)) | Dosaging and administration instructions
comment |  | 0..* | string | Additional information or comments
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Base

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
IHEMedicationDispenseModel |  | 0..* | Base | Medication dispense (model) Instances of this logical model can be the target of a Reference
identifier |  | 0..* | Identifier | Identifier for the dispense
patient |  | 1..1 | Reference(Patient (model)) | The person for whom the medication is prescribed/ordered
receiver |  | 0..1 | Reference(Patient (model) | Practitioner (model) | RelatedPerson | PractitionerRole) | Identification of the person who received the dispensed medication, especially when it was not the patient
dispenser |  | 1..1 | Reference(Practitioner (model) | Organization | Device) | The person who dispensed the product, and takes the responsibility of the dispensation
relatedRequest |  | 0..* | Reference(Medication order (model)) | Prescription/request/order the dispense is related to
medication |  | 1..1 | Reference(Medicinal product (model)) | Exact dispensed product
dispensedQuantity |  | 1..1 | Quantity | Number of dispensed packages if the pack size is known, or number of smaller items/units
timeOfDispensation |  | 1..1 | dateTime | Date and time of dispensation
substitution |  | 0..1 | BackboneElement | Substitution was made
substitutionOccurred |  | 1..1 | boolean | Indicates whether substitution was made by the dispenser
type |  | 0..1 | CodeableConcept | Indicates the type of substitution made by the dispenser
reason |  | 0..1 | CodeableConcept | The reason for the substitution by the dispenser or why a required substitution was not made
status |  | 1..1 | CodeableConcept | Status of the dispensation
statusReason |  | 0..* | CodeableConcept | Reason for the current status of dispensation, for example the reason why the dispensation was made invalid
statusReasonText |  | 0..1 | string | Textual reason for the current status of dispensation
usageInstructions |  | 0..* | Reference(Dosaging (model)) | Dosaging and administration instructions
comment |  | 0..* | string | Additional information or comments
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
IHEMedicationDispenseModel |  | 0..* | Base | Medication dispense (model) Instances of this logical model can be the target of a Reference
identifier |  | 0..* | Identifier | Identifier for the dispense
patient |  | 1..1 | Reference(Patient (model)) | The person for whom the medication is prescribed/ordered
receiver |  | 0..1 | Reference(Patient (model) | Practitioner (model) | RelatedPerson | PractitionerRole) | Identification of the person who received the dispensed medication, especially when it was not the patient
dispenser |  | 1..1 | Reference(Practitioner (model) | Organization | Device) | The person who dispensed the product, and takes the responsibility of the dispensation
relatedRequest |  | 0..* | Reference(Medication order (model)) | Prescription/request/order the dispense is related to
medication |  | 1..1 | Reference(Medicinal product (model)) | Exact dispensed product
dispensedQuantity |  | 1..1 | Quantity | Number of dispensed packages if the pack size is known, or number of smaller items/units
timeOfDispensation |  | 1..1 | dateTime | Date and time of dispensation
substitution |  | 0..1 | BackboneElement | Substitution was made
@id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
substitutionOccurred |  | 1..1 | boolean | Indicates whether substitution was made by the dispenser
type |  | 0..1 | CodeableConcept | Indicates the type of substitution made by the dispenser
reason |  | 0..1 | CodeableConcept | The reason for the substitution by the dispenser or why a required substitution was not made
status |  | 1..1 | CodeableConcept | Status of the dispensation
statusReason |  | 0..* | CodeableConcept | Reason for the current status of dispensation, for example the reason why the dispensation was made invalid
statusReasonText |  | 0..1 | string | Textual reason for the current status of dispensation
usageInstructions |  | 0..* | Reference(Dosaging (model)) | Dosaging and administration instructions
comment |  | 0..* | string | Additional information or comments
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Base

Summary

Mandatory: 0 element(7 nested mandatory elements)

Structures

This structure refers to these other structures:

- Patient (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/PatientBasic)
- Practitioner (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/PractitionerBasic)
- Medication order (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/IHEMedicationOrderModel)
- Medicinal product (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/MedicinalProductModel)
- Dosaging (model) (https://profiles.ihe.net/PHARM/MPD/StructureDefinition/DosagingInformation)

Other representations of profile: CSV, Excel