Implementation Guide
E-T-Rezept Datenaustausch
Version 1.1.0-ballot-1 - ballot

Resource Profile: E-T-Rezept Medication Dispense

Official URL: https://gematik.de/fhir/erp-t-prescription/StructureDefinition/erp-tprescription-medication-dispense Version: 1.1.0-ballot-1
Draft as of 2025-07-07 Computable Name: ERP_TPrescription_MedicationDispense

Abgabeinformationen einer Apotheke, die es im Rahmen der Belieferung eines T-Rezeptes an den E-Rezept-Fachdienst übermittelt hat.

Mapping

Folgende Tabelle gibt eine grobe Darstellung des Mappings für dieses Profil:

Titel: E-T-Rezept Structure Map for MedicationDispense

Beschreibung: Mapping-Anweisungen zur Transformation von gematik ERP MedicationDispense zu BfArM T-Prescription MedicationDispense

Quelle (Eingangsdaten) Ziel (Ausgabedaten) Transformation & Beschreibung
gematikMedicationDispense.dosageInstruction bfarmMedicationDispense.dosageInstruction Übernimmt die Dosierungsanweisungen aus der ursprünglichen Abgabe für den digitalen Durchschlag
gematikMedicationDispense.whenHandedOver bfarmMedicationDispense.whenHandedOver Kopiert das Abgabedatum zur Dokumentation des Zeitpunkts der Medikamentenausgabe
gematikMedicationDispense.medication bfarmMedicationDispense.medication Kopiert die Medikamentenreferenz - das referenzierte Medication wird separat gemappt
gematikMedicationDispense.status bfarmMedicationDispense.status Setzt den Status auf ‘completed’ da die Abgabe bereits erfolgt ist (digitaler Durchschlag)
gematikMedicationDispense.quantity bfarmMedicationDispense.quantity Übernimmt die abgegebene Menge zur Dokumentation der tatsächlich ausgehändigten Medikamentenmenge
gematikMedicationDispense.performer bfarmMedicationDispense.performer Transformiert Apotheken-Identifier zu Organization-Referenz für eindeutige Zuordnung der abgebenden Apotheke
gematikMedicationDispense.performer.actor bfarmMedicationDispense.performer.actor Verarbeitet den Actor (abgebende Apotheke) des Performers
gematikMedicationDispense.performer.actor.identifier (wird bestimmt durch Kontext) Extrahiert den Identifier der abgebenden Apotheke
gematikMedicationDispense.performer.actor.identifier.value reference Wandelt Apotheken-Identifier in Organization-Referenz um (Organization/)

Usages:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 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.
Fixed Value: completed
... performer S 0..* BackboneElement Who performed event
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) Individual who was performing
... quantity S 0..1 SimpleQuantity Amount dispensed
... whenHandedOver S 0..1 dateTime When product was given out
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationDispense.statusrequiredFixed Value: completed
http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1
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().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-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 & Constraints    Filter: Filtersdoco
.. MedicationDispense MedicationDispense
... identifier 0..0
... partOf 0..0
... status 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Fixed Value: completed
... category 0..0
... medication[x] S 1..1 Reference(Medication) What medication was supplied
... subject 0..0
... context 0..0
... supportingInformation 0..0
... performer S 0..* BackboneElement Who performed event
... location 0..0
... authorizingPrescription 0..0
... type 0..0
... quantity S 0..1 SimpleQuantity Amount dispensed
... daysSupply 0..0
... whenPrepared 0..0
... whenHandedOver S 0..1 dateTime When product was given out
... destination 0..0
... receiver 0..0
... note 0..0
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
... substitution 0..0
... detectedIssue 0..0
... eventHistory 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense 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
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 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.
Fixed Value: completed
... medication[x] SΣ 1..1 Reference(Medication) What medication was supplied
... performer S 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 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) Individual who was performing
... quantity S 0..1 SimpleQuantity Amount dispensed
... whenHandedOver S 0..1 dateTime When product was given out
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationDispense.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
MedicationDispense.statusrequiredFixed Value: completed
http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1
From the FHIR Standard
MedicationDispense.performer.functionexampleMedicationDispense Performer Function Codes
http://hl7.org/fhir/ValueSet/medicationdispense-performer-function
From the FHIR Standard
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().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-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

Summary

Must-Support: 5 elements
Fixed: 1 element
Prohibited: 18 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense Dispensing a medication to a named patient
Constraints: mdd-1
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 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.
Fixed Value: completed
... performer S 0..* BackboneElement Who performed event
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) Individual who was performing
... quantity S 0..1 SimpleQuantity Amount dispensed
... whenHandedOver S 0..1 dateTime When product was given out
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationDispense.statusrequiredFixed Value: completed
http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1
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().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-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 & Constraints    Filter: Filtersdoco
.. MedicationDispense MedicationDispense
... identifier 0..0
... partOf 0..0
... status 1..1 code preparation | in-progress | cancelled | on-hold | completed | entered-in-error | stopped | declined | unknown
Fixed Value: completed
... category 0..0
... medication[x] S 1..1 Reference(Medication) What medication was supplied
... subject 0..0
... context 0..0
... supportingInformation 0..0
... performer S 0..* BackboneElement Who performed event
... location 0..0
... authorizingPrescription 0..0
... type 0..0
... quantity S 0..1 SimpleQuantity Amount dispensed
... daysSupply 0..0
... whenPrepared 0..0
... whenHandedOver S 0..1 dateTime When product was given out
... destination 0..0
... receiver 0..0
... note 0..0
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver
... substitution 0..0
... detectedIssue 0..0
... eventHistory 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. MedicationDispense C 0..* MedicationDispense 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
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 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.
Fixed Value: completed
... medication[x] SΣ 1..1 Reference(Medication) What medication was supplied
... performer S 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 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson) Individual who was performing
... quantity S 0..1 SimpleQuantity Amount dispensed
... whenHandedOver S 0..1 dateTime When product was given out
... dosageInstruction S 0..* Dosage How the medication is to be used by the patient or administered by the caregiver

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationDispense.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
MedicationDispense.statusrequiredFixed Value: completed
http://hl7.org/fhir/ValueSet/medicationdispense-status|4.0.1
From the FHIR Standard
MedicationDispense.performer.functionexampleMedicationDispense Performer Function Codes
http://hl7.org/fhir/ValueSet/medicationdispense-performer-function
From the FHIR Standard
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().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-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

Summary

Must-Support: 5 elements
Fixed: 1 element
Prohibited: 18 elements

 

Other representations of profile: CSV, Excel, Schematron