TIFlow - Datenaustausch BfArM Webdienst
Version 2.0.0-ballot.1 - ci-build

## StructureMap: E-T-Rezept Structure Map for MedicationDispense

Official URL: https://gematik.de/fhir/erp-t-prescription/StructureMap/ERPTPrescriptionStructureMapMedicationDispense | Version: 2.0.0-ballot.1
Draft as of 2026-05-26 | Computable Name: ERPTPrescriptionStructureMapMedicationDispense

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

    map "https://gematik.de/fhir/erp-t-prescription/StructureMap/ERPTPrescriptionStructureMapMedicationDispense" = "ERPTPrescriptionStructureMapMedicationDispense"

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

    uses "http://hl7.org/fhir/StructureDefinition/MedicationDispense" alias gematikMedicationDispense as source
    uses "http://hl7.org/fhir/StructureDefinition/MedicationDispense" alias bfarmMedicationDispense as target

    // Mapping-Anweisungen zur Transformation von gematik ERP MedicationDispense zu BfArM T-Prescription MedicationDispense
    group ERPTPrescriptionStructureMapMedicationDispense(source gematikMedicationDispense : gematikMedicationDispense, target bfarmMedicationDispense : bfarmMedicationDispense) {
      gematikMedicationDispense.extension as extDosageMetaVar where url='http://ig.fhir.de/igs/medication/StructureDefinition/GeneratedDosageInstructionsMeta' -> bfarmMedicationDispense.extension = extDosageMetaVar "medicationDispenseExt"; // Kopiert Dosage Metadata Extension
      gematikMedicationDispense.extension as extDosageRenderedVar where url='http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationDispense.renderedDosageInstruction' -> bfarmMedicationDispense.extension = extDosageRenderedVar "medicationDispenseExt"; // Kopiert RenderedDosageText
      gematikMedicationDispense.dosageInstruction as dosageInstructionVar -> bfarmMedicationDispense.dosageInstruction = dosageInstructionVar "medicationDispenseDosageInstruction"; // Übernimmt die Dosierungsanweisungen aus der ursprünglichen Abgabe für den digitalen Durchschlag
      gematikMedicationDispense.whenHandedOver as whenHandedOverVar -> bfarmMedicationDispense.whenHandedOver = whenHandedOverVar "medicationDispenseWhenHandedOver"; // Kopiert das Abgabedatum zur Dokumentation des Zeitpunkts der Medikamentenausgabe
      gematikMedicationDispense.medication as medicationVar -> bfarmMedicationDispense.medication = medicationVar "medicationReference"; // Kopiert die Medikamentenreferenz - das referenzierte Medication wird separat gemappt
      gematikMedicationDispense.status as gematikMedicationDispenseStatus -> bfarmMedicationDispense.status = 'completed' "medicationDispenseStatus"; // Setzt den Status auf 'completed' da die Abgabe bereits erfolgt ist (digitaler Durchschlag)
      gematikMedicationDispense.quantity as quantityVar -> bfarmMedicationDispense.quantity = quantityVar "medicationDispenseQuantity"; // Übernimmt die abgegebene Menge zur Dokumentation der tatsächlich ausgehändigten Medikamentenmenge
      gematikMedicationDispense.performer as srcPerformerVar -> bfarmMedicationDispense.performer as tgtPerformerVar then {
        srcPerformerVar.actor as srcPerformerActorVar -> tgtPerformerVar.actor as tgtPerformerActorVar then {
          srcPerformerActorVar.identifier as srcPerformerActorIdentifierVar then {
            srcPerformerActorIdentifierVar.value as srcPerformerActorIdentifierValueVar -> tgtPerformerActorVar.reference = append('Organization/', srcPerformerActorIdentifierValueVar) "medicationDispensePerformerActorIdentifierValue"; // Wandelt Apotheken-Identifier in Organization-Referenz um (Organization/<telematik-id>)
          } "medicationDispensePerformerActorIdentifier"; // Extrahiert den Identifier der abgebenden Apotheke
        } "medicationDispensePerformerActor"; // Verarbeitet den Actor (abgebende Apotheke) des Performers
      } "medicationDispensePerformer"; // Transformiert Apotheken-Identifier zu Organization-Referenz für eindeutige Zuordnung der abgebenden Apotheke
    }