MyHealth@Eu Electronic Prescription and Dispense
0.1.0 - draft 150

MyHealth@Eu Electronic Prescription and Dispense - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: MedicationDispense (EPD)

Official URL: http://fhir.ehdsi.eu/epd/StructureDefinition/MedicationDispense-myhealtheu-epd | Version: 0.1.0
Draft as of 2026-05-22 | Computable Name: MedicationDispenseMyHealthEuEpd
Copyright/Legal: Used by permission of HL7 Europe, all rights reserved Creative Commons License

This profile defines how to represent the supply and the associated administration instructions in HL7 FHIR for the purpose of this guide.

Usages:

- Examples for this Profile: MedicationDispense/300D-dispense-for-2-requests, MedicationDispense/400D-dispense-1, MedicationDispense/400D-dispense-2 and MedicationDispense/400E-refused-dispense

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
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | MedicationDispenseEuMpd | Dispensing a medication to a named patient Constraints: mdd-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:renderedDosageInstruction | O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1
Obligations | Actor | Source
SHOULD:able-to-populate | Producer | from MedicationDispense: MPD
extension:recorded | O | 1..1 | dateTime | Date and time when the dispense was recorded/issued. This is not necessarily the same as when the medication was handed over to the patient. URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.recorded Constraints: ext-1
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | O | 0..* | Identifier | External identifier
Obligations | Actor
SHALL:handle | EHDSI Handler
status | ?!O Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
Slices for medication[x] | O Σ | 1..1 | Reference(Medication) | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
medication[x]:medicationReference | O Σ | 1..1 | Reference(Medication (epd)) | What medication was supplied
Obligations | Actor
SHALL:handle | EHDSI Handler
subject | O Σ | 0..1 | Reference(Patient (Core)) | Who the dispense is for
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
authorizingPrescription | O | 0..* | Reference(MedicationRequest (EPD)) | Medication order that authorizes the dispense
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
quantity | O | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
whenHandedOver | O | 1..1 | dateTime | Date and time when the medication was handed over. When not present, the time of dispensation is assumed to be the time of issuing the dispense record.
Obligations | Actor
SHALL:handle | EHDSI Handler
SHALL:handle | EHDSI Handler
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
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()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

This structure is derived from MedicationDispenseEuMpd

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense |  | 0..* | MedicationDispenseEuMpd | Dispensing a medication to a named patient
identifier | O | 0..* | Identifier | External identifier
Obligations | Actor
SHALL:handle | EHDSI Handler
Slices for medication[x] |  |  |  | Content/Rules for all slices
medication[x]:medicationReference | O | 1..1 | Reference(Medication (epd)) | What medication was supplied
Obligations | Actor
SHALL:handle | EHDSI Handler
subject |  | 0..1 | Reference(Patient (Core)) | Who the dispense is for
performer |  |  |  |
actor |  | 1..1 | Reference(PractitionerRole (Core)) | Individual who was performing
authorizingPrescription | O | 0..* | Reference(MedicationRequest (EPD)) | Medication order that authorizes the dispense
Obligations | Actor | Source
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
quantity | O | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor | Source
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
whenHandedOver | O | 1..1 | dateTime | Date and time when the medication was handed over. When not present, the time of dispensation is assumed to be the time of issuing the dispense record.
Obligations | Actor
SHALL:handle | EHDSI Handler
SHALL:handle | EHDSI Handler
substitution |  |  |  |
wasSubstituted | O | 1..1 | boolean | Whether a substitution was or was not performed on the dispense
Obligations | Actor
SHALL:handle | EHDSI Handler
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | MedicationDispenseEuMpd | Dispensing a medication to a named patient Constraints: mdd-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:renderedDosageInstruction | O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1
Obligations | Actor | Source
SHOULD:able-to-populate | Producer | from MedicationDispense: MPD
extension:recorded | O | 1..1 | dateTime | Date and time when the dispense was recorded/issued. This is not necessarily the same as when the medication was handed over to the patient. URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.recorded Constraints: ext-1
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | O | 0..* | Identifier | External identifier
Obligations | Actor
SHALL:handle | EHDSI Handler
partOf |  | 0..* | Reference(Procedure) | Event that dispense is part of
status | ?!O Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
statusReason[x] |  | 0..1 |  | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed.
statusReasonCodeableConcept |  |  | CodeableConcept |
statusReasonReference |  |  | Reference(DetectedIssue) |
category |  | 0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered.
Slices for medication[x] | O Σ | 1..1 | Reference(Medication) | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
medication[x]:medicationReference | O Σ | 1..1 | Reference(Medication (epd)) | What medication was supplied
Obligations | Actor
SHALL:handle | EHDSI Handler
subject | O Σ | 0..1 | Reference(Patient (Core)) | Who the dispense is for
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
context |  | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event
supportingInformation |  | 0..* | Reference(Resource) | Information that supports the dispensing of the medication
performer |  | 0..* | BackboneElement | Who performed event
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function |  | 0..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication.
actor | O | 1..1 | Reference(PractitionerRole (Core)) | Individual who was performing
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
location |  | 0..1 | Reference(Location) | Where the dispense occurred
authorizingPrescription | O | 0..* | Reference(MedicationRequest (EPD)) | Medication order that authorizes the dispense
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
type |  | 0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.
quantity | O | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
daysSupply |  | 0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount
whenPrepared | Σ | 0..1 | dateTime | When product was packaged and reviewed
whenHandedOver | O | 1..1 | dateTime | Date and time when the medication was handed over. When not present, the time of dispensation is assumed to be the time of issuing the dispense record.
Obligations | Actor
SHALL:handle | EHDSI Handler
SHALL:handle | EHDSI Handler
destination |  | 0..1 | Reference(Location) | Where the medication was sent
receiver |  | 0..* | Reference(Patient | Practitioner) | Who collected the medication
note |  | 0..* | Annotation | Information about the dispense
dosageInstruction | O | 0..* | DosageEuMpd | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor | Source
SHOULD:able-to-populate | Producer | from MedicationDispense: MPD
substitution |  | 0..1 | BackboneElement | Whether a substitution was performed on the dispense
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
wasSubstituted | O | 1..1 | boolean | Whether a substitution was or was not performed on the dispense
Obligations | Actor
SHALL:handle | EHDSI Handler
type |  | 0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription.
reason |  | 0..* | CodeableConcept | Why was substitution made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.
responsibleParty |  | 0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution
detectedIssue |  | 0..* | Reference(DetectedIssue) | Clinical issue with action
eventHistory |  | 0..* | Reference(Provenance) | A list of relevant lifecycle events
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std.
MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.performer.​function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std.
MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.1
MedicationDispense.substitution.​type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.1
MedicationDispense.substitution.​reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.1

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
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()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

This structure is derived from MedicationDispenseEuMpd

Summary

Mandatory: 2 elements

Structures

This structure refers to these other structures:

- Medication (epd) (http://fhir.ehdsi.eu/epd/StructureDefinition/medication-myhealtheu-epd)
- Patient (Core) (http://fhir.ehdsi.eu/core/StructureDefinition/patient-myhealtheu-core)
- PractitionerRole (Core) (http://fhir.ehdsi.eu/core/StructureDefinition/practitionerRole-myhealtheu-core)
- MedicationRequest (EPD) (http://fhir.ehdsi.eu/epd/StructureDefinition/MedicationRequest-myhealtheu-epd)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | MedicationDispenseEuMpd | Dispensing a medication to a named patient Constraints: mdd-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:renderedDosageInstruction | O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1
Obligations | Actor | Source
SHOULD:able-to-populate | Producer | from MedicationDispense: MPD
extension:recorded | O | 1..1 | dateTime | Date and time when the dispense was recorded/issued. This is not necessarily the same as when the medication was handed over to the patient. URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.recorded Constraints: ext-1
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | O | 0..* | Identifier | External identifier
Obligations | Actor
SHALL:handle | EHDSI Handler
status | ?!O Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
Slices for medication[x] | O Σ | 1..1 | Reference(Medication) | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
medication[x]:medicationReference | O Σ | 1..1 | Reference(Medication (epd)) | What medication was supplied
Obligations | Actor
SHALL:handle | EHDSI Handler
subject | O Σ | 0..1 | Reference(Patient (Core)) | Who the dispense is for
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
authorizingPrescription | O | 0..* | Reference(MedicationRequest (EPD)) | Medication order that authorizes the dispense
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
quantity | O | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
whenHandedOver | O | 1..1 | dateTime | Date and time when the medication was handed over. When not present, the time of dispensation is assumed to be the time of issuing the dispense record.
Obligations | Actor
SHALL:handle | EHDSI Handler
SHALL:handle | EHDSI Handler
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
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()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

Differential View

This structure is derived from MedicationDispenseEuMpd

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense |  | 0..* | MedicationDispenseEuMpd | Dispensing a medication to a named patient
identifier | O | 0..* | Identifier | External identifier
Obligations | Actor
SHALL:handle | EHDSI Handler
Slices for medication[x] |  |  |  | Content/Rules for all slices
medication[x]:medicationReference | O | 1..1 | Reference(Medication (epd)) | What medication was supplied
Obligations | Actor
SHALL:handle | EHDSI Handler
subject |  | 0..1 | Reference(Patient (Core)) | Who the dispense is for
performer |  |  |  |
actor |  | 1..1 | Reference(PractitionerRole (Core)) | Individual who was performing
authorizingPrescription | O | 0..* | Reference(MedicationRequest (EPD)) | Medication order that authorizes the dispense
Obligations | Actor | Source
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
quantity | O | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor | Source
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
whenHandedOver | O | 1..1 | dateTime | Date and time when the medication was handed over. When not present, the time of dispensation is assumed to be the time of issuing the dispense record.
Obligations | Actor
SHALL:handle | EHDSI Handler
SHALL:handle | EHDSI Handler
substitution |  |  |  |
wasSubstituted | O | 1..1 | boolean | Whether a substitution was or was not performed on the dispense
Obligations | Actor
SHALL:handle | EHDSI Handler
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
MedicationDispense | C | 0..* | MedicationDispenseEuMpd | Dispensing a medication to a named patient Constraints: mdd-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 1..* | Extension | Extension Slice: Unordered, Open by value:url
extension:renderedDosageInstruction | O | 0..1 | markdown | Full representation of the dosage instructions URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction Constraints: ext-1
Obligations | Actor | Source
SHOULD:able-to-populate | Producer | from MedicationDispense: MPD
extension:recorded | O | 1..1 | dateTime | Date and time when the dispense was recorded/issued. This is not necessarily the same as when the medication was handed over to the patient. URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.recorded Constraints: ext-1
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | O | 0..* | Identifier | External identifier
Obligations | Actor
SHALL:handle | EHDSI Handler
partOf |  | 0..* | Reference(Procedure) | Event that dispense is part of
status | ?!O Σ | 1..1 | code | preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown Binding: MedicationDispense Status Codes (required): A coded concept specifying the state of the dispense event.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
statusReason[x] |  | 0..1 |  | Why a dispense was not performed Binding: MedicationDispense Status Reason Codes (example): A code describing why a dispense was not performed.
statusReasonCodeableConcept |  |  | CodeableConcept |
statusReasonReference |  |  | Reference(DetectedIssue) |
category |  | 0..1 | CodeableConcept | Type of medication dispense Binding: MedicationDispense Category Codes (preferred): A code describing where the dispensed medication is expected to be consumed or administered.
Slices for medication[x] | O Σ | 1..1 | Reference(Medication) | What medication was supplied Slice: Unordered, Closed by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
medication[x]:medicationReference | O Σ | 1..1 | Reference(Medication (epd)) | What medication was supplied
Obligations | Actor
SHALL:handle | EHDSI Handler
subject | O Σ | 0..1 | Reference(Patient (Core)) | Who the dispense is for
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
context |  | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with event
supportingInformation |  | 0..* | Reference(Resource) | Information that supports the dispensing of the medication
performer |  | 0..* | BackboneElement | Who performed event
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function |  | 0..1 | CodeableConcept | Who performed the dispense and what they did Binding: MedicationDispense Performer Function Codes (example): A code describing the role an individual played in dispensing a medication.
actor | O | 1..1 | Reference(PractitionerRole (Core)) | Individual who was performing
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
location |  | 0..1 | Reference(Location) | Where the dispense occurred
authorizingPrescription | O | 0..* | Reference(MedicationRequest (EPD)) | Medication order that authorizes the dispense
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
type |  | 0..1 | CodeableConcept | Trial fill, partial fill, emergency fill, etc. Binding: ActPharmacySupplyType (example): Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.
quantity | O | 1..1 | SimpleQuantity(4.0.1) | Amount dispensed
Obligations | Actor | Source
SHALL:able-to-populate | Producer | from MedicationDispense: MPD
SHALL:able-to-populate & SHALL:handle | Producer EHDSI Handler | from MedicationDispense: MPD
daysSupply |  | 0..1 | SimpleQuantity(4.0.1) | Amount of medication expressed as a timing amount
whenPrepared | Σ | 0..1 | dateTime | When product was packaged and reviewed
whenHandedOver | O | 1..1 | dateTime | Date and time when the medication was handed over. When not present, the time of dispensation is assumed to be the time of issuing the dispense record.
Obligations | Actor
SHALL:handle | EHDSI Handler
SHALL:handle | EHDSI Handler
destination |  | 0..1 | Reference(Location) | Where the medication was sent
receiver |  | 0..* | Reference(Patient | Practitioner) | Who collected the medication
note |  | 0..* | Annotation | Information about the dispense
dosageInstruction | O | 0..* | DosageEuMpd | How the medication is to be used by the patient or administered by the caregiver
Obligations | Actor | Source
SHOULD:able-to-populate | Producer | from MedicationDispense: MPD
substitution |  | 0..1 | BackboneElement | Whether a substitution was performed on the dispense
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
wasSubstituted | O | 1..1 | boolean | Whether a substitution was or was not performed on the dispense
Obligations | Actor
SHALL:handle | EHDSI Handler
type |  | 0..1 | CodeableConcept | Code signifying whether a different drug was dispensed from what was prescribed Binding: ActSubstanceAdminSubstitutionCode (example): A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription.
reason |  | 0..* | CodeableConcept | Why was substitution made Binding: SubstanceAdminSubstitutionReason (example): A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.
responsibleParty |  | 0..* | Reference(Practitioner | PractitionerRole) | Who is responsible for the substitution
detectedIssue |  | 0..* | Reference(DetectedIssue) | Clinical issue with action
eventHistory |  | 0..* | Reference(Provenance) | A list of relevant lifecycle events
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
MedicationDispense.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
MedicationDispense.status | Base | required | Medication dispense status codes | 📍4.0.1 | FHIR Std.
MedicationDispense.statusReason[x] | Base | example | Medication dispense status reason codes | 📍4.0.1 | FHIR Std.
MedicationDispense.category | Base | preferred | Medication dispense category codes | 📍4.0.1 | FHIR Std.
MedicationDispense.medication[x] | Base | example | SNOMED CT Medication Codes | 📍4.0.1 | FHIR Std.
MedicationDispense.performer.​function | Base | example | Medication dispense performer function codes | 📍4.0.1 | FHIR Std.
MedicationDispense.type | Base | example | ActPharmacySupplyType | 📦3.0.0 | THO v7.1
MedicationDispense.substitution.​type | Base | example | ActSubstanceAdminSubstitutionCode | 📦3.0.0 | THO v7.1
MedicationDispense.substitution.​reason | Base | example | SubstanceAdminSubstitutionReason | 📦3.0.0 | THO v7.1

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | MedicationDispense | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | MedicationDispense | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | MedicationDispense | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | MedicationDispense | A resource should have narrative for robust management | `text.`div`.exists()`
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()`
mdd-1 | error | MedicationDispense | whenHandedOver cannot be before whenPrepared | `whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared`

This structure is derived from MedicationDispenseEuMpd

Summary

Mandatory: 2 elements

Structures

This structure refers to these other structures:

- Medication (epd) (http://fhir.ehdsi.eu/epd/StructureDefinition/medication-myhealtheu-epd)
- Patient (Core) (http://fhir.ehdsi.eu/core/StructureDefinition/patient-myhealtheu-core)
- PractitionerRole (Core) (http://fhir.ehdsi.eu/core/StructureDefinition/practitionerRole-myhealtheu-core)
- MedicationRequest (EPD) (http://fhir.ehdsi.eu/epd/StructureDefinition/MedicationRequest-myhealtheu-epd)

Other representations of profile: CSV, Excel, Schematron