Package: app-transport-framework-library
ATF LibraryDie App-Transport-Framework (ATF) Library ist eine Python-Bibliothek zur Verarbeitung und Handhabung von ATF-Nachrichten (https://simplifier.net/app-transport-framework) im FHIR-Format. Die Bibliothek bietet eine einfache Möglichkeit, verschiedene Anwendungsfälle und ihre zugehörigen Handler zu registrieren und zu verwalten.InstallationInstallieren Sie diese Bibliothek mit dem folgenden Befehl:pip install app-transport-framework-libraryVerwendungImportieren Sie die benötigten Klassen und Funktionen aus der Bibliothek:fromapp_transport_framework_library.atf_bundle_processorimportATF_BundleProcessorErstellen Sie eine Instanz des ATF_BundleProcessor und registrieren Sie die Handler für die Anwendungsfälle, die Sie erweitern möchten:atf_processor=ATF_BundleProcessor(sender,source)atf_processor.register_use_case_handler("https://gematik.de/fhir/atf/CodeSystem/operation-identifier-cs","eRezept_Rezeptanforderung;Rezeptanfrage",eRezept_Rezeptanforderung_RezeptanfrageHandler())atf_processor.register_use_case_handler("https://gematik.de/fhir/atf/CodeSystem/service-identifier-cs","eRezept_Rezeptanforderung;Rezeptanfrage_Storno",eRezept_Rezeptanforderung_Rezeptanfrage_StornoHandler())EventsAbonnieren Sie das 'message_to_send_event', um die generierten ausgehenden Eingangsbestätigungen zu erhalten und weiterzuleiten:fromapp_transport_framework_library.models.message_to_sendimportMessageToSenddefon_message_to_send_triggered(message_to_send:MessageToSend):# Senden der Empfangsbestätigung an den ursprünglichen Absenderpassatf_processor.message_to_send_event.subscribe(on_message_to_send_triggered)Abonnieren Sie das 'received_Empfangsbestaetigung_event', um die eingehenden Eingangsbestätigungen des belieferten Adressaten zu erhalten und die Message-ID der gesendeten Nachricht auszuwerten:fromapp_transport_framework_library.models.empfangsbestaetigungimportEmpfangsbestaetigungdefon_received_Empfangsbestaetigung(empfangsbestaetigung:Empfangsbestaetigung):print(f"'{receiver_address}' hat Empfangsbestätigung für '{empfangsbestaetigung.message_id}' von '{empfangsbestaetigung.sender}' erhalten")atf_processor.received_Empfangsbestaetigung_event.subscribe(on_received_Empfangsbestaetigung)Abonnieren Sie das 'focus_Ressource_to_process_event', um die inhaltlichen Ressourcen des Anwendungsfalls zu erhalten und auswerten zu können:fromapp_transport_framework_library.models.bundle_focus_contentimportBundleFocusContentfromfhir.resources.R4B.communicationimportCommunicationdefon_focus_Ressource_to_process(bundle_content:BundleFocusContent):fromapp_transport_framework_library.models.bundle_focus_contentimportBundleFocusContentfromfhir.resources.R4B.communicationimportCommunicationdefon_focus_Ressource_to_process(bundle_content:BundleFocusContent):print(f"Verarbeitung des Bundles mit Fokus auf '{bundle_content.code}'")ifbundle_content.code=="Selbsttest;Lieferung":com_parsed=Communication.parse_raw(bundle_content.bundle_entries[0].json())decoded_message=base64.b64decode(com_parsed.payload[0].contentAttachment.data)print(f"Das Bundle enthält{len(bundle_content.bundle_entries)}Einträge")print(f"Die Kommunikation enthält die Payload '{decoded_message.decode('utf-8')}'")atf_processor.focus_Ressource_to_process_event.subscribe(on_focus_Ressource_to_process)BeispielimplementierungEine Beispielimplementierung kann hier eingesehen werden:https://github.com/gematik/api-app-transport-framework/tree/main/src/pocLizenzDieses Projekt steht unter der MIT-Lizenz - siehe die LICENSE-Datei für Details.