Implementation Guide
TIFlow - Datenaustausch BfArM Webdienst
Version 2.0.0 - release

StructureMap: E-T-Rezept Structure Map for Organization

Official URL: https://gematik.de/fhir/tiflow-bfarm/StructureMap/ERPTPrescriptionStructureMapOrganization Version: 2.0.0
Active as of 2026-10-02 Computable Name: ERPTPrescriptionStructureMapOrganization

Mapping-Anweisungen zur Erstellung einer BfArM Organization aus dem VZD SearchSet

map "https://gematik.de/fhir/tiflow-bfarm/StructureMap/ERPTPrescriptionStructureMapOrganization" = "ERPTPrescriptionStructureMapOrganization"

// Mapping-Anweisungen zur Erstellung einer BfArM Organization aus dem VZD SearchSet

uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias vzdSearchSet as source
uses "http://hl7.org/fhir/StructureDefinition/Organization" alias bfarmOrganization as target

// Mapping-Anweisungen zur Erstellung einer BfArM Organization aus dem VZD SearchSet
group ERPTPrescriptionStructureMapOrganization(source vzdSearchSet : vzdSearchSet, target bfarmOrganization : bfarmOrganization) {
  // Mappt Organization-Einträge aus dem VZD SearchSet
  vzdSearchSet.entry as srcEntryOrgVar then {
    // Verarbeitet jeden Eintrag im SearchSet
    srcEntryOrgVar.resource : Organization as srcEntryOrganizationVar where (ofType(Organization)) then {
      // Übernimmt den Namen der Organisation aus dem VZD in die BfArM Organization
      srcEntryOrganizationVar.name as srcOrgNameVar -> bfarmOrganization.name = srcOrgNameVar;
      // Mappt die Telematik-ID der Organisation
      srcEntryOrganizationVar.identifier as srcOrgIdentifierVar where ($this.system='https://gematik.de/fhir/sid/telematik-id') -> bfarmOrganization.identifier as bfarmOrganizationIdentifierVar then {
        // Kopiert die Telematik-ID mit korrektem System-Identifier in die Ziel-Organisation
        srcOrgIdentifierVar.value as srcOrgIdentifierValueVar log (tgtTidIdentifier) ->  bfarmOrganizationIdentifierVar.system = 'https://gematik.de/fhir/sid/telematik-id',  bfarmOrganizationIdentifierVar.value = srcOrgIdentifierValueVar,  bfarmOrganization.id = srcOrgIdentifierValueVar "tidValue";
      } "tid";
    } "entry";
  } "mapOrganization";
  // Mappt HealthcareService-Informationen für Kontaktdaten
  vzdSearchSet.entry as srcEntryHCSVar then {
    // Verarbeitet HealthcareService-Einträge aus dem SearchSet
    srcEntryHCSVar.resource : HealthcareService as srcEntryHealthcareServiceVar where (ofType(HealthcareService)) then {
      // Übernimmt Kontaktinformationen (Telefon, E-Mail) aus dem HealthcareService in die Organisation
      srcEntryHealthcareServiceVar.telecom as srcHcsTelecomVar -> bfarmOrganization.telecom = srcHcsTelecomVar;
    } "entry";
  } "mapHealthcareService";
  // Mappt Location-Informationen für Adressdaten
  vzdSearchSet.entry as srcEntryHCSVar then {
    // Verarbeitet Location-Einträge aus dem SearchSet
    srcEntryHCSVar.resource : Location as srcEntryLocationVar where (ofType(Location)) then {
      // Übernimmt die Adressinformationen aus der Location in die Organisation
      srcEntryLocationVar.address as srcLocationAddressVar -> bfarmOrganization.address = srcLocationAddressVar;
    } "entry";
  } "mapLocation";
}