Healthcare testen: Muster HL7 an HL7

Mit den folgenden Informationen können Sie das Muster Healthcare: HL7 an HL7 testen.

Dieses Kapitel enthält folgende Abschnitte:

Testanwendung
HL7-Nachrichten
Einrichtung der grundlegenden Musterinstanz
Informationsaustausch in der Musterinstanz
Zusatzoptionen

Testdatenflüsse

Mit diesem Muster können Sie HL7-Anwendungen verbinden und gefilterte Nachrichten aus einer Absenderanwendung an viele Zielanwendungen weiterleiten. Weitere Informationen zur Einführung in die Musterinstanz erhalten Sie durch die Verwendung von Nachrichtenflüssen zur Simulation von klinischen Quellen- und Zielanwendungen.

Das in diesem Muster enthaltene Projekt TestApplication (siehe Ressourcen für das Muster Healthcare: HL7 an HL7 enthält einen Quellendatenfluss mit der Bezeichnung 'SourceApplication' und sechs Zieldatenflüsse mit der Bezeichnung 'DestinationApplication'. Die sechs Zieldatenflüsse sind bis auf die Verbindungsdetails gleich. Die Zielanwendungsflüsse werden für die Verwendung von localhost mit der im Datenflussnamen angegebenen Portnummer eingerichtet. Deshalb sind beispielsweise die Verbindungsdetails für 'DestinationApplicationListensOnPort2222' auf localhost:2222 gesetzt .

Die Verbindungsdetails der Projektdatenflüsse TestApplication stimmen mit den standardmäßigen Verbindungsdetails für die Musterinstanz überein. Wenn Sie die Verbindungsdetails in der Konfiguration der Musterinstanz ändern, müssen Sie auch die Verbindungsdetails in den Datenflüssen der Testanwendung ändern.

Muster mithilfe des Fluss-Debuggers testen

Zum Testen des Musters mithilfe des Fluss-Debuggers lesen Sie den Abschnitt "Test und Debugging bei Nachrichtenflussanwendungen" in der Dokumentation für WebSphere Message Broker. Für die Verwendung des Fluss-Debuggers mit den GenericHL7Input- und GenericHL7Output-Knoten müssen Sie die von diesen Ressourcen verwendeten untergeordneten Nachrichtenflüsse importieren; siehe Ressourcen für das Muster Healthcare: HL7 an HL7 .

Testanwendung für das Muster

Mit der Testanwendung für das Muster können Sie HL7-Nachrichten mithilfe von MLLP an den Broker senden und von diesem empfangen. Die Anwendung kann eine einzelne klinische Quellen- und Zielanwendung simulieren. Die Testanwendung stellt Optionen bereit, mit denen unterschiedliche MLLP-Konfigurationen und eine Reihenfolgeplanung der Nachrichten simuliert werden können. HL7-Nachrichten werden in den Musterressourcen für die Verwendung als Testdaten bereitgestellt; siehe Ressourcen für das Muster Healthcare: HL7 an HL7 .

Die Testanwendung für das Muster wird aus der neuen Dateikategorie Healthcare gestartet - die Anwendung ist überschaubar und selbsterklärend.

HL7-Nachrichten

Eine HL7-Nachricht setzt sich aus Segmenten und Feldern zusammen. Die Grenze zwischen Segmenten kann je nach der sendenden Anwendung variieren. Die in der Testanwendung verwendeten Beispielnachrichten verwenden die Hexadezimalzeichen 0D und 0A . Felder innerhalb eines Segments werden durch das Zeichen getrennt, das im MSH-Segment am Anfang jeder HL7-Nachricht deklariert wurde. Der Standardwert ist der vertikale Balken (|). Die Segmente werden nach dem ersten Feld ermittelt; das folgende Beispiel enthält vier Segmente: MSH, EVN, PID und PV1. Das MSH-Segment ist die Kopfzeile der Nachricht und enthält mehrere Felder, die in diesem Abschnitt erläutert werden.

Im folgenden Beispiel wird eine typische HL7-Nachricht (ADT A01) gezeigt (es wurden Zeilenumbrüche zur besseren Lesbarkeit hinzugefügt):

MSH|^~\&|HL7ABLAB|HNA500|HNAM|HNAM|20090911132151||ADT^A01|
Q30235031T29347435X328970|A|2.3|123
EVN|A01|20090911132100|||^DRONE_PM1^DRONE_PM^^^^^^^Personnel
PID|1||1357920591||IntFace1101A^WinTask^^^^^Current||19801117|M||||||||||
10000476524^^^FIN^FIN NBR|100000451||||||0
PV1|1|Inpatient|CD:16067689^CD:16067691^CD:16067741^Uniontown Hospit^^Bed(s)
^Uniontown Hospit||||||||||||||501455^Orr^Maggi^^^^^^External ID^Personnel^^^
External
Identifier~25584^Orr^Maggi^^^^^^PERSONNEL PRIMARY
IDENTIFIER^Personnel^^^Personnel Primary Identifier|Inpatient|||||||||||||||||||
||
Uniontown Hospit||Active|||20090911132100
    

Einrichtung der grundlegenden Musterinstanz

Die Musterinstanz enthält folgende Hauptnachrichtenflüsse:

Wenn Sie eine Musterinstanz mit weiteren Zielen erstellen möchten, werden weitere Nachrichtenflüsse des Typs 'DestnSender' erstellt, wobei n die Anzahl der Ziele ist.

Sie müssen sicherstellen, dass alle Warteschlangen für die Musterinstanz installiert sind; weitere Informationen finden Sie im Abschnitt "Warteschlangen" unter Musterinstanz Healthcare: HL7 an HL7 verwalten.

Informationsaustausch in der Musterinstanz

Wenn Sie eine Nachricht mit der Testanwendung senden, werden die Informationen in folgender Reihenfolge durch die Musterinstanz geleitet:

  1. Die Nachricht wird in die Warteschlange HL7_TEST_IN eingereiht und vom Datenfluss 'SourceApplication' abgenommen.
  2. Der Datenfluss 'SourceApplication' fügt der Nachricht MLLP-Bytes hinzu und sendet sie über TCP/IP an die Musterinstanz.
  3. Die Nachricht erreicht den Nachrichtenfluss 'Empfänger', in dem die MLLP-Bytes abgeschnitten werden.
  4. Das MSH-Segment in der Nachricht wird analysiert.
  5. Wenn die doppelte Nachricht und die Optionen zur Reihenfolgeplanung beim Einrichten der Musterinstanz aktiviert werden, findet eine Überprüfung auf doppelte Nachrichten statt und die Reihenfolgeplanung wird eingerichtet.
  6. Es wird eine Bestätigungsantwort (ACK-Nachricht) zurück an den Datenfluss 'SourceApplication' gesendet.
  7. Die Nachricht wird an die Warteschlange 'RXFn' gesendet, wobei n für die Nummer des Ziels steht. Der Nachrichtenfluss 'TransformAndRouten' (mit n als der Nummer des Ziels) nimmt die Nachricht von der Warteschlange 'RXFn' ab.

    Wenn Sie das Filtern der Nachricht oder des Segments installiert haben, wird der Filtervorgang in diesem Datenfluss ausgeführt. Abhängig von der Einrichtung der Musterinstanz kann dieser Datenfluss auch Knoten enthalten, die Restwerte in der Nachricht und das kanonische Format der Nachricht veröffentlichen.

  8. Die Nachricht wird in XML umgewandelt und an jeden Zieldatenfluss gesendet.
  9. In den Zieldatenflüssen werden die Nachrichten an die DestinationApplication-Datenflüsse gesendet, die mit einer Bestätigungsnachricht antworten.
  10. Die Bestätigungsnachricht wird vom Zieldatenfluss verarbeitet.
  11. Abhängig von der von Ihnen installierten Konfiguration der Musterinstanz können die Nachrichten auch neu sortiert und erneut an das Ziel gesendet werden.

Alle Datenflüsse enthalten auch einen untergeordneten Nachrichtenfluss für die Ausnahmebehandlung, mit dem alle im Nachrichtenfluss erfassten Probleme bearbeitet werden.

Zusatzoptionen

Reihenfolgeplanung

Sie können die Reihenfolgeplanung für die Musterinstanz in der Gruppe Optionen der Parameter einrichten. Falls die Option Arrival based (Auf dem Eingang basiert) für die Reihenfolgeplanung ausgewählt ist, basiert die richtige Reihenfolge des Eingangs auf der Musterinstanz. Falls die Option Content based (Auf Inhalten basiert) für die Reihenfolgeplanung ausgewählt ist, wird der Wert des dreizehnten Felds (123 im Beispiel) im MSH-Segment der Nachricht als Folgenummer verwendet. Der Nachrichtenfluss 'Empfänger' richtet die Reihenfolgeplanung für die Musterinstanz ein und verwendet die Folgenummer der Nachrichten.

Nachrichten werden in jedem der Zieldatenflüsse neu sortiert. Sie können für jedes Ziel eine strikte oder eine lockere Reihenfolgeplanung auswählen. Wenn bei Auswahl der strikten Reihenfolgeplanung eine Nachricht fehlt, werden die übrigen Nachrichten blockiert, bis die fehlende Nachricht empfangen wird. Dadurch kann der Datenfluss auf unbestimmte Zeit blockiert sein. Wenn bei Auswahl der lockeren Reihenfolgeplanung eine Nachricht fehlt, können Sie entscheiden, wie lange der Datenfluss auf die fehlende Nachricht wartet, bis die Verarbeitung der Nachrichten fortgesetzt wird.

Für die Anwendung der Optionen zur Reihenfolgeplanung können Sie die Reihenfolge, in der die Nachrichten an die Musterinstanz gesendet werden, und die Reihenfolgeplanung in der Nachricht ändern oder Nachrichten während der Verarbeitung aus Warteschlangen herausnehmen.

Doppelte Nachrichten verarbeiten

Falls der Parameter Check duplicates (Duplikate prüfen) ausgewählt ist, enthält der Nachrichtenfluss 'Empfänger' zusätzliche Knoten für die Überprüfung auf doppelte Nachrichten. Das zehnte Feld (in diesem Beispiel Q30235031T29347435X328970) im MSH-Segment der Nachricht enthält die Nachrichtensteuerungs-ID, die zur Überprüfung auf doppelte Nachrichten verwendet wird. Nach der Verarbeitung einer Nachricht durch den Datenfluss wird die Nachricht in einer Warteschlange gespeichert, die überprüft werden kann. Der untergeordnete Nachrichtenfluss Check duplicates (Duplikate prüfen) überprüft, ob doppelte Nachrichten vorhanden sind; wenn die Nachricht keine doppelte Nachricht ist, wird die Verarbeitung normal fortgesetzt. Wenn es sich aber um eine doppelte Nachricht handelt und Bestätigungsnachrichten aktiviert sind, wird die ursprüngliche Nachricht an die sendende Anwendung zurückgegeben. Wenn Bestätigungsnachrichten inaktiviert sind, wird die doppelte Nachricht auf die gleiche Weise verarbeitet wie eine neue Nachricht, die im Datenfluss empfangen wird.

Zur Ausführung der doppelten Verarbeitung können Sie das zehnte Feld des MSH-Segments in Ihren Nachrichten verändern.

Bestätigungsnachrichten (ACK) und negative Bestätigungsnachrichten (NACK) senden

Falls der Parameter Send acknowledgment (Bestätigung senden) ausgewählt ist, sendet die Musterinstanz nach der Verarbeitung der Nachricht durch den Nachrichtenfluss 'Empfänger' eine Bestätigungsnachricht an die sendende Anwendung. Durch diese Aktion wird die sendende Anwendung darüber informiert, dass die Nachricht erfolgreich verarbeitet wurde. Der SourceApplication-Nachrichtenfluss enthält Knoten, die für die Verarbeitung von Bestätigungsnachrichten (ACK) und negativen Bestätigungsantworten (NACK) konfiguriert wurden. Wenn bei der Nachrichtenverarbeitung ein Fehler auftritt, wird nun eine NACK-Nachricht an die sendende Anwendung gesendet.

Knoten sind auch in den Zielnachrichtenflüssen enthalten und verarbeiten dort Bestätigungsnachrichten, die nach dem erfolgreichen Empfang der Nachricht in der Zielanwendung von dieser zurück an die Musterinstanz gesendet werden.

Journalführung

Mehrere Parameter in der Gruppe Optionen der Musterinstanzkonfiguration ermöglichen Ihnen die Auswahl der Informationen, die während der Verarbeitung der Nachrichten protokolliert werden:

Filtern von Nachrichten und Segmenten

Das Filtern von Nachrichten ermöglicht Ihnen das Filtern von Nachrichten auf Basis des zugehörigen Ereignistyps, des neunten Felds (im Beispiel ADT^A01) des MSH-Segments der Nachricht. Nicht alles Nachrichten aus einer Quellenanwendung sind für alle Ziele erforderlich. Mit dem Filtern von Nachrichten können Sie bestimmte Nachrichten aus bestimmten Zielen ausschließen. Das Filtern von Nachrichten wird auf Zielbasis konfiguriert.

Bei der Angabe von Nachrichtenfiltern werden im neunten Feld Werte für Code und Ereignis bereitgestellt . Die beiden Werte werden durch das Zirkumflexzeichen (^) getrennt. Bei der Beispielnachricht am Anfang dieses Dokuments gilt: Code ist ADT und Ereignis ist A01 . Wenn die Reihenfolgeplanung aktiviert und das Filtern inaktiviert ist, wird stattdessen eine Testnachricht gesendet, damit die Reihenfolge beibehalten wird.

Das Filtern von Segmenten ermöglicht Ihnen die Angabe der Segmente, die beim Senden einer Nachricht an ein Ziel aus der Nachricht entfernt werden. Mit dem Filtern von Segmenten können Sie diese Segmente aus einer Nachricht entfernen, bevor diese an ein Ziel weitergegeben wird. Wenn das Ziel nicht alle von der Quellenanwendung gesendeten Nachrichtensegmente unterstützt, können Sie mit dieser Option diese Segmente herausfiltern, beispielsweise Erweiterungen für HL7-Nachrichten mit der Bezeichnung Z-Segmente. Das Filtern von Segmenten wird auf Zielbasis konfiguriert.

Segmente werden durch einen Code aus drei Buchstaben angegeben (in der Beispielnachricht sind dies MSH, EVN, PID und PV1). Beim MSH-Segment handelt es sich um den Nachrichtenheader, der nicht herausgefiltert werden kann, selbst wenn dies vom Benutzer angegeben wurde.

Zurück zur Musterspezifikation 'Healthcare: HL7 an HL7'