Nachrichtenrouting mit BTAHL7
Microsoft BizTalk Accelerator for HL7 (BTAHL7) nutzt die Nachrichtenverarbeitungsfunktionen von Microsoft BizTalk Server, erweitert es aber auch auf verschiedene Arten, die für HL7-Messaginganforderungen spezifisch sind.
Routingübersicht
HL7 empfängt Nachrichten von einem Branchensystem (Lob) und kann diese mithilfe des MLLP-Adapters empfangen. Das LOB-System stellt über einen TCP-Port eine Verbindung mit dem MLLP-Adapter auf BizTalk Server her und sendet dann Nachrichten an den MLLP-Adapter.
In BizTalk Server 2013 R2 und älteren Versionen wartet der HL7 MLLP-Empfangsadapter darauf, dass das Remote-LOB-System eine Verbindung mit MLLP herstellt. Sobald das Remote-LOB-System eine Verbindung herstellt, sendet das LOB-System die Nachrichten mithilfe von MLLP an die BizTalk Server. Dies gilt insbesondere in folgenden Fällen:
- Das Remote-LOB-System stellt über einen TCP-Port eine Verbindung mit dem MLLP-Adapter auf dem lokalen BizTalk Server
- Der BTA4HL7 Empfangsspeicherort mit MLLP-Adapter akzeptiert die Verbindung.
- Das Remote-LOB-System sendet mindestens eine Nachricht.
- Das Remote-LOB-System wird getrennt.
In BizTalk Server 2016 und neueren Versionen wird die Verbindung mit dem LOB-System vom MLLP-Adapter initiiert, und das LOB-System sendet dann Nachrichten an den MLLP-Empfang. Anders ausgedrückt: Das Remote-LOB-System wartet auf die Verbindung, bevor Nachrichten an MLLP gesendet werden. Dies gilt insbesondere in folgenden Fällen:
- Der lokale BizTalk Server über einen TCP-Port eine Verbindung mit dem Remote-LOB-System herstellt
- Der BTA4HL7 Empfangsspeicherort mit dem MLLP-Adapter initiiert die Verbindung.
- Das Remote-LOB-System sendet mindestens eine Nachricht.
- Das Remote-LOB-System wird getrennt.
Aus Gründen der Abwärtskompatibilität können Sie das ursprüngliche Standardverhalten verwenden, bei dem das Remote-LOB-System die Verbindungen initiiert. Diese Option kann in den MLLP-Empfangsstandorteigenschaften konfiguriert werden.
Nachdem die HL7-Nachricht empfangen wurde, wird sie an eine HL7-Empfangspipeline übermittelt. Innerhalb dieser Pipeline analysiert der HL7-Disassembler die Nachricht und überprüft die Nachricht gemäß der entsprechenden Schemadefinition und Validierungskonfiguration. An diesem Punkt kann eine HL7-Bestätigungsmeldung generiert werden (Erfolg oder Fehler), entsprechend der Gültigkeit der Nachricht und der entsprechenden Bestätigungskonfiguration. Von hier aus sendet die Pipeline die Nachricht instance und optionaler Bestätigung an die MessageBox-Datenbank für die weitere Verarbeitung und das Routing.
Sobald eine Nachricht instance in der MessageBox-Datenbank eintrifft, überprüft BizTalk Server filterbasierte Abonnements und leitet die Nachricht über eine HL7-Sendepipeline an einen oder mehrere Sendeports (möglicherweise MLLP-Ports) weiter. Die Sendepipeline kann die Nachrichteninstanzen gemäß der entsprechenden Schemadefinition und Validierungskonfiguration überprüfen. Zusätzlich zur Validierung ist es möglich, bestimmte Feldwerte im MSH-Segment der ausgehenden Nachricht zu überschreiben. Diese Überschreibungsmöglichkeit ist besonders nützlich, wenn mehrere Ports eine Nachricht abonniert haben und jede empfangende Anwendung eindeutige Erwartungen innerhalb der MSH-Segmentwerte aufweist.
Natürlich sind alle anderen BizTalk Server Sende- und Empfangsportfunktionen für HL7-Nachrichten verfügbar, zusammen mit einigen Funktionen, die für den ausgewählten Porttyp eindeutig sind, z. B. MLLP-Sendeportparameter. Ein Beispiel für die relevanten BizTalk Server Funktionen wäre die Möglichkeit, eine Transformationszuordnung auf eine ausgehende Nachricht anzuwenden.
Funktionsweise des Routings
BizTalk Accelerator for HL7 leitet HL7-Nachrichteninstanzen entsprechend den Abonnements weiter, die von der MessageBox-Datenbank verwaltet werden. Diese Abonnements verwenden Filter, die Sie für jeden Sendeport definieren. Beispielfilter können Routing basierend auf der Empfangsport-ID und/oder dem HL7-Nachrichtentyp (z. B. ADT^A03) und/oder sendende Anwendung (MSH3.1-Wert) umfassen.
Zusätzlich zum Einrichten BizTalk Server-Abonnements müssen Sie eine HL7-spezifische Messagingkonfiguration durchführen, die sich auf HL7-Nachrichteninstanzen auswirkt, da BizTalk Server sie weitergibt. Diese zusätzliche Konfiguration ermöglicht es Ihnen, eindeutige HL7-Validierungsregeln anzuwenden, die automatische Generierung von Bestätigungen und die Möglichkeit, MSH-Werte zu überschreiben. BTAHL7 wendet diese Konfiguration auf Parteiebene an. Sie müssen Parteien innerhalb von BizTalk Explorer definieren und die zugehörige HL7-Konfiguration in BTAHL7 Configuration Explorer ausführen.
Um eine eindeutige HL7-Messagingkonfiguration (z. B. Validierung oder MSH-Außerkraftsetzungen) auf mehrere Sendeports anzuwenden, die eine Nachricht abonnieren, müssen Sie Zuordnungen zwischen Parteien und Sendeports erstellen. Sie konfigurieren Portzuordnungen von Partei zu Sende als Parteieigenschaften innerhalb von BizTalk Explorer.
Wenn Sie HL7-Nachrichten nicht an mehrere Sendeports weiterleiten oder eine eindeutige HL7-Verarbeitungskonfiguration auf mehrere Sendeports anwenden müssen, können Sie den Schritt des Zuordnens von Parteien zu Sendeports aufheben. In diesem Fall verknüpft BTAHL7 die Partei mit ihrer HL7-Messagingkonfiguration über das empfangende Anwendungsfeld in der HL7-Nachricht (MSH 3.1). Diese Situation tritt höchstwahrscheinlich bei einem HL7-Abfragenachrichtenaustausch (Anforderung/Antwort) auf.