HL7 Europe Medication Prescription and Dispense
0.1.0 - ci-build 150

HL7 Europe Medication Prescription and Dispense, published by HL7 Europe. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7-eu/mpd/ and changes regularly. See the Directory of published versions

Resource Profile: MedicationDispense: MPD

Official URL: http://hl7.eu/fhir/r5/mpd/StructureDefinition/MedicationDispense-eu-mpd Version: 0.1.0
Draft as of 2024-12-31 Computable Name: MedicationDispenseEuMpd

Copyright/Legal: Used by permission of HL7 Europe, all rights reserved Creative Commons License

MedicationDispense profile for capturing dispensation information based on a medication prescription.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
mdd-1: whenHandedOver cannot be before whenPrepared
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... medication Σ 1..1 CodeableReference(Medication: MPD) What medication was supplied
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.


ele-1: All FHIR elements must have a @value or children
... subject Σ 1..1 Reference(Patient | Group) Who the dispense is for
ele-1: All FHIR elements must have a @value or children
... authorizingPrescription 0..* Reference(MedicationRequest: MPD) Medication order that authorizes the dispense
ele-1: All FHIR elements must have a @value or children
... quantity 1..1 SimpleQuantity Amount dispensed
ele-1: All FHIR elements must have a @value or children
... whenHandedOver C 1..1 dateTime When product was given out
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationDispense.statusrequiredMedicationDispenseStatusCodes
http://hl7.org/fhir/ValueSet/medicationdispense-status|5.0.0
from the FHIR Standard
MedicationDispense.medicationexampleSNOMEDCTMedicationCodes
http://hl7.org/fhir/ValueSet/medication-codes
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationDispenseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationDispenseIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationDispenseIf 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-5errorMedicationDispenseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationDispenseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mdd-1errorMedicationDispensewhenHandedOver cannot be before whenPrepared
: whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

This structure is derived from MedicationDispense

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense 0..* MedicationDispense Dispensing a medication to a named patient
... medication 1..1 CodeableReference(Medication: MPD) What medication was supplied
... authorizingPrescription 0..* Reference(MedicationRequest: MPD) Medication order that authorizes the dispense
... quantity 1..1 SimpleQuantity Amount dispensed

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
mdd-1: whenHandedOver cannot be before whenPrepared
... 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: AllLanguages (required): IETF language tag for a human language

Additional BindingsPurpose
CommonLanguages Starter Set
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External identifier
... basedOn 0..* Reference(CarePlan) Plan that is fulfilled by this dispense
... partOf 0..* Reference(Procedure | MedicationAdministration) Event that dispense is part of
... status ?!Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispenseStatusCodes (required): Describes the lifecycle of the dispense.

... notPerformedReason 0..1 CodeableReference(DetectedIssue) Why a dispense was not performed
Binding: MedicationDispenseStatusReasonCodes (example)
... statusChanged 0..1 dateTime When the status changed
... category 0..* CodeableConcept Type of medication dispense
Binding: MedicationDispenseAdministrationLocationCodes (example): A code describing where the dispensed medication is expected to be consumed or administered.


... medication Σ 1..1 CodeableReference(Medication: MPD) What medication was supplied
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.

... subject Σ 1..1 Reference(Patient | Group) Who the dispense is for
... encounter 0..1 Reference(Encounter) Encounter 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: MedicationDispensePerformerFunctionCodes (example): A code describing the role an individual played in dispensing a medication.

.... actor 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) Individual who was performing
... location 0..1 Reference(Location) Where the dispense occurred
... authorizingPrescription 0..* Reference(MedicationRequest: MPD) Medication order that authorizes the dispense
... type 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc
Binding: ActPharmacySupplyType (example): ActPharmacySupplyType

... quantity 1..1 SimpleQuantity Amount dispensed
... daysSupply 0..1 SimpleQuantity Amount of medication expressed as a timing amount
... recorded 0..1 dateTime When the recording of the dispense started
... whenPrepared ΣC 0..1 dateTime When product was packaged and reviewed
... whenHandedOver C 1..1 dateTime When product was given out
... destination 0..1 Reference(Location) Where the medication was/will be sent
... receiver 0..* Reference(Patient | Practitioner | RelatedPerson | Location | PractitionerRole) Who collected the medication or where the medication was delivered
... note 0..* 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
... 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 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 (example): ActSubstanceAdminSubstitutionCode

.... reason 0..* CodeableConcept Why was substitution made
Binding: SubstanceAdminSubstitutionReason (example): SubstanceAdminSubstitutionReason


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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationDispense.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
MedicationDispense.statusrequiredMedicationDispenseStatusCodes
http://hl7.org/fhir/ValueSet/medicationdispense-status|5.0.0
from the FHIR Standard
MedicationDispense.notPerformedReasonexampleMedicationDispenseStatusReasonCodes
http://hl7.org/fhir/ValueSet/medicationdispense-status-reason
from the FHIR Standard
MedicationDispense.categoryexampleMedicationDispenseAdministrationLocationCodes
http://hl7.org/fhir/ValueSet/medicationdispense-admin-location
from the FHIR Standard
MedicationDispense.medicationexampleSNOMEDCTMedicationCodes
http://hl7.org/fhir/ValueSet/medication-codes
from the FHIR Standard
MedicationDispense.performer.functionexampleMedicationDispensePerformerFunctionCodes
http://hl7.org/fhir/ValueSet/medicationdispense-performer-function
from the FHIR Standard
MedicationDispense.typeexampleActPharmacySupplyType
http://terminology.hl7.org/ValueSet/v3-ActPharmacySupplyType
MedicationDispense.substitution.typeexampleActSubstanceAdminSubstitutionCode
http://terminology.hl7.org/ValueSet/v3-ActSubstanceAdminSubstitutionCode
MedicationDispense.substitution.reasonexampleSubstanceAdminSubstitutionReason
http://terminology.hl7.org/ValueSet/v3-SubstanceAdminSubstitutionReason

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationDispenseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationDispenseIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationDispenseIf 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-5errorMedicationDispenseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationDispenseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mdd-1errorMedicationDispensewhenHandedOver cannot be before whenPrepared
: whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
mdd-1: whenHandedOver cannot be before whenPrepared
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... medication Σ 1..1 CodeableReference(Medication: MPD) What medication was supplied
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.


ele-1: All FHIR elements must have a @value or children
... subject Σ 1..1 Reference(Patient | Group) Who the dispense is for
ele-1: All FHIR elements must have a @value or children
... authorizingPrescription 0..* Reference(MedicationRequest: MPD) Medication order that authorizes the dispense
ele-1: All FHIR elements must have a @value or children
... quantity 1..1 SimpleQuantity Amount dispensed
ele-1: All FHIR elements must have a @value or children
... whenHandedOver C 1..1 dateTime When product was given out
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationDispense.statusrequiredMedicationDispenseStatusCodes
http://hl7.org/fhir/ValueSet/medicationdispense-status|5.0.0
from the FHIR Standard
MedicationDispense.medicationexampleSNOMEDCTMedicationCodes
http://hl7.org/fhir/ValueSet/medication-codes
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationDispenseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationDispenseIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationDispenseIf 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-5errorMedicationDispenseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationDispenseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mdd-1errorMedicationDispensewhenHandedOver cannot be before whenPrepared
: whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

Differential View

This structure is derived from MedicationDispense

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense 0..* MedicationDispense Dispensing a medication to a named patient
... medication 1..1 CodeableReference(Medication: MPD) What medication was supplied
... authorizingPrescription 0..* Reference(MedicationRequest: MPD) Medication order that authorizes the dispense
... quantity 1..1 SimpleQuantity Amount dispensed

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
mdd-1: whenHandedOver cannot be before whenPrepared
... 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: AllLanguages (required): IETF language tag for a human language

Additional BindingsPurpose
CommonLanguages Starter Set
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier External identifier
... basedOn 0..* Reference(CarePlan) Plan that is fulfilled by this dispense
... partOf 0..* Reference(Procedure | MedicationAdministration) Event that dispense is part of
... status ?!Σ 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Binding: MedicationDispenseStatusCodes (required): Describes the lifecycle of the dispense.

... notPerformedReason 0..1 CodeableReference(DetectedIssue) Why a dispense was not performed
Binding: MedicationDispenseStatusReasonCodes (example)
... statusChanged 0..1 dateTime When the status changed
... category 0..* CodeableConcept Type of medication dispense
Binding: MedicationDispenseAdministrationLocationCodes (example): A code describing where the dispensed medication is expected to be consumed or administered.


... medication Σ 1..1 CodeableReference(Medication: MPD) What medication was supplied
Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying which substance or product can be dispensed.

... subject Σ 1..1 Reference(Patient | Group) Who the dispense is for
... encounter 0..1 Reference(Encounter) Encounter 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: MedicationDispensePerformerFunctionCodes (example): A code describing the role an individual played in dispensing a medication.

.... actor 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson | CareTeam) Individual who was performing
... location 0..1 Reference(Location) Where the dispense occurred
... authorizingPrescription 0..* Reference(MedicationRequest: MPD) Medication order that authorizes the dispense
... type 0..1 CodeableConcept Trial fill, partial fill, emergency fill, etc
Binding: ActPharmacySupplyType (example): ActPharmacySupplyType

... quantity 1..1 SimpleQuantity Amount dispensed
... daysSupply 0..1 SimpleQuantity Amount of medication expressed as a timing amount
... recorded 0..1 dateTime When the recording of the dispense started
... whenPrepared ΣC 0..1 dateTime When product was packaged and reviewed
... whenHandedOver C 1..1 dateTime When product was given out
... destination 0..1 Reference(Location) Where the medication was/will be sent
... receiver 0..* Reference(Patient | Practitioner | RelatedPerson | Location | PractitionerRole) Who collected the medication or where the medication was delivered
... note 0..* 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
... 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 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 (example): ActSubstanceAdminSubstitutionCode

.... reason 0..* CodeableConcept Why was substitution made
Binding: SubstanceAdminSubstitutionReason (example): SubstanceAdminSubstitutionReason


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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
MedicationDispense.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
MedicationDispense.statusrequiredMedicationDispenseStatusCodes
http://hl7.org/fhir/ValueSet/medicationdispense-status|5.0.0
from the FHIR Standard
MedicationDispense.notPerformedReasonexampleMedicationDispenseStatusReasonCodes
http://hl7.org/fhir/ValueSet/medicationdispense-status-reason
from the FHIR Standard
MedicationDispense.categoryexampleMedicationDispenseAdministrationLocationCodes
http://hl7.org/fhir/ValueSet/medicationdispense-admin-location
from the FHIR Standard
MedicationDispense.medicationexampleSNOMEDCTMedicationCodes
http://hl7.org/fhir/ValueSet/medication-codes
from the FHIR Standard
MedicationDispense.performer.functionexampleMedicationDispensePerformerFunctionCodes
http://hl7.org/fhir/ValueSet/medicationdispense-performer-function
from the FHIR Standard
MedicationDispense.typeexampleActPharmacySupplyType
http://terminology.hl7.org/ValueSet/v3-ActPharmacySupplyType
MedicationDispense.substitution.typeexampleActSubstanceAdminSubstitutionCode
http://terminology.hl7.org/ValueSet/v3-ActSubstanceAdminSubstitutionCode
MedicationDispense.substitution.reasonexampleSubstanceAdminSubstitutionReason
http://terminology.hl7.org/ValueSet/v3-SubstanceAdminSubstitutionReason

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationDispenseIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationDispenseIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationDispenseIf 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-5errorMedicationDispenseIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationDispenseA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
mdd-1errorMedicationDispensewhenHandedOver cannot be before whenPrepared
: whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared

 

Other representations of profile: CSV, Excel, Schematron