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

## StructureMap: E-T-Rezept Structure Map for KBV PZN Medication

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

Mapping-Anweisungen zur Transformation von KBV PZN-Medikamenten zu BfArM T-Prescription Format

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

    // Mapping-Anweisungen zur Transformation von KBV PZN-Medikamenten zu BfArM T-Prescription Format

    uses "http://hl7.org/fhir/StructureDefinition/Medication" alias kbvMedicationPZN as source
    uses "http://hl7.org/fhir/StructureDefinition/Medication" alias bfarmMedication as target

    // Mapping-Anweisungen zur Transformation von KBV PZN-Medikamenten zu BfArM T-Prescription Format
    group ERPTPrescriptionStructureMapKBVPZNMedication(source kbvMedicationPZN : kbvMedicationPZN, target bfarmMedication : bfarmMedication) {
      kbvMedicationPZN.extension as extVar -> bfarmMedication.extension as tgtExtVar then {
        extVar where url='http://fhir.de/StructureDefinition/normgroesse' -> tgtExtVar.url = 'http://fhir.de/StructureDefinition/normgroesse' then {
          extVar.value as extValVar -> tgtExtVar.value = extValVar "copyExtensionValue"; // Kopiert den Wert der Normgröße-Extension (N1, N2, N3)
        } "copyNormgroesseExtensionUrl"; // Übernimmt die Normgröße-Extension unverändert (deutsche Packungsgrößenangabe)
      } "medicationExt"; // Mappt Medication-Extensions von KBV- zu BfArM-Format
      kbvMedicationPZN.id as IdVar -> bfarmMedication.id = IdVar "medicationId"; // Übernimmt die eindeutige Medication-ID unverändert
      kbvMedicationPZN.code as codeVar -> bfarmMedication.code = codeVar "medicationCode"; // Kopiert den Medikamentencode (PZN - Pharmazentralnummer) für die eindeutige Identifikation
      kbvMedicationPZN.form as formVar -> bfarmMedication.form = formVar "medicationForm"; // Übernimmt die Darreichungsform (Tabletten, Kapseln, Tropfen, etc.)
      kbvMedicationPZN.amount as amountVar -> bfarmMedication.amount as tgtAmountVar then {
        amountVar.denominator as amountDenominatorVar -> tgtAmountVar.denominator = amountDenominatorVar "medicationAmountDenominator"; // Kopiert den Nenner der Mengenangabe (z.B. '1' für 'pro Packung')
        amountVar.numerator as amountNumeratorVar -> tgtAmountVar.numerator as tgtAmountNumeratorVar then {
          amountNumeratorVar.extension as amountNumExtVar -> tgtAmountNumeratorVar.extension as tgtAmountNumExtVar then {
            amountNumExtVar where url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_PackagingSize' -> tgtAmountNumExtVar.url = 'https://gematik.de/fhir/epa-medication/StructureDefinition/medication-packaging-size-extension' then {
              amountNumExtVar.value as extValVar -> tgtAmountNumExtVar.value = extValVar "copyExtensionValue"; // Übernimmt den Packungsgrößenwert unverändert
            } "copyPackagingSizeExtensionUrl"; // Wandelt KBV-Packungsgrößen-Extension in gematik EPA-Medication Extension um
          } "medicationAmountExt"; // Transformiert Packungsgrößen-Extensions von KBV- zu gematik-Format
          amountNumeratorVar.value as amountNumeratorValueVar -> tgtAmountNumeratorVar.value = amountNumeratorValueVar "medicationAmountNumeratorValue"; // Kopiert den numerischen Wert der Menge (z.B. '20' für 20 Tabletten)
          amountNumeratorVar.unit as amountNumeratorUnitVar -> tgtAmountNumeratorVar.unit = amountNumeratorUnitVar "medicationAmountNumeratorUnit"; // Übernimmt die Mengeneinheit (Stück, ml, g, etc.)
          amountNumeratorVar.system as amountNumeratorSystemVar -> tgtAmountNumeratorVar.system = amountNumeratorSystemVar "medicationAmountNumeratorSystem"; // Kopiert das Codesystem für die Mengeneinheit (meist UCUM)
          amountNumeratorVar.code as amountNumeratorCodeVar -> tgtAmountNumeratorVar.code = amountNumeratorCodeVar "medicationAmountNumeratorCode"; // Übernimmt den standardisierten Code für die Mengeneinheit
        } "medicationAmountNumerator"; // Mappt den Zähler der Mengenangabe mit allen Details (Wert, Einheit, Extensions)
      } "medicationAmount"; // Mappt die Mengenangaben des Fertigarzneimittels (Packungsgröße und Inhalt)
      kbvMedicationPZN.ingredient as ingredientVar -> bfarmMedication.ingredient = ingredientVar "medicationIngredient"; // Kopiert Wirkstoffinformationen (bei PZN-Medikamenten meist nicht detailliert angegeben)
    }