Mit einem GenericHL7Input-Knoten können Sie Nachrichten von Clients empfangen, die über das Protokoll MLLP über TCP/IP eine Verbindung mit dem Server herstellen.
Falls möglich, sollten Sie für neue und aktualisierte Anwendungen jedoch den HL7DFDLInput-Knoten verwenden, da das DFDL-Nachrichtenmodell die folgenden Vorteile bietet:
Weitere Informationen zum HL7DFDLInputknoten finden Sie unter HL7DFDLInput-Knoten.
Der GenericHL7Input-Knoten ist an einem Port empfangsbereit, und sobald ein Client-Socket eine Verbindung zum Port aufbaut, stellt das Server-Socket eine Verbindung für den Client her. Ist eine Verbindung geöffnet, wird ein Datensatz empfangen, wobei das Ende des Datensatzes am Vorhandensein eines konfigurierbaren Begrenzers erkannt wird. Wenn beim Lesen von Daten ein Fehler auftritt, z. B. eine Zeitlimitüberschreitung beim Warten auf Daten oder das Schließen einer Verbindung beim Warten auf den vollständigen Datensatz, werden die Daten an das Fehlerterminal gesendet. Besteht keine Verbindung zum Fehlerterminal, wird eine Ausnahmebedingung ausgelöst. Wenn die Eigenschaft Wiederholungsmechanismus für den Knoten nicht auf Fehler gesetzt ist, wiederholt der Knoten den Vorgang so lange, bis die Daten erfolgreich empfangen werden oder die Anzahl Wiederholungsversuche, die durch die Eigenschaft Wiederholungsschwellenwert festgelegt ist, erreicht wird.
Der GenericHL7Input-Knoten erfordert Nachrichten, die das Protokoll MLLP über TCP/IP verwenden. Wenn die führenden MLLP-Bytes nicht vorhanden sind, wird die Nachricht an das Fehlerterminal gesendet.
Der GenericHL7Input-Knoten verarbeitet Nachrichten, die in der MRM-Domäne definiert sind. Zum Parsen der Nachrichten wird das HL7-Nachrichtenformat in der Nachrichtengruppe Nachrichtengruppe 'HL7v25P' verwendet. Wenn ein Parsing-Fehler auftritt oder obligatorische MSH-Felder nicht vorhanden sind, wird die Nachricht an das Fehlerterminal übergeben. Informationen zu Nachrichtengruppen finden Sie unter Nachrichtensätze - Übersicht in der WebSphere Message Broker-Dokumentation.
Sie können den GenericHL7Input-Knoten so konfigurieren, dass er eine Prüfung auf Duplikate durchführt. Jede ankommende HL7-Nachricht enthält im MSH-Headersegment ein MessageControlID-Feld, das den Datensatz identifiziert. Wenn die Eigenschaft Duplikate prüfen ausgewählt ist, werden alle IDs zusammen mit der Bestätigung, die an den Sender zurückgegeben wurde, in der Warteschlange für Duplikate gespeichert. Die ID einer ankommenden Nachricht wird gegen die gespeicherten IDs abgeglichen, um festzustellen, ob es sich um ein Duplikat handelt. Wird ein Duplikat erkannt, wird es nicht verarbeitet, sondern es wird dieselbe Bestätigung, die mit der ersten Nachricht gesendet wurde, an den Sender zurückgegeben. Die Warteschlange für Duplikate wird als Knoteneigenschaft angegeben.
IDs werden für die Dauer in der Warteschlange für Duplikate gespeichert, die durch die Eigenschaft Duplikatzeitraum angegeben ist. Nach Ablauf dieses Zeitraums werden die IDs gelöscht und Nachrichten mit derselben ID nicht mehr als Duplikate behandelt. Sie müssen die Größe der Warteschlange für Duplikate so festlegen, dass sie die maximale Anzahl Nachrichten-IDs, die im angegebenen Zeitraum erwartet wird, aufnehmen kann.
Wenn eine ankommende Nachricht kein Duplikat ist, wird sie zur weiteren Verarbeitung an das Ausgangsterminal des GenericHL7Input-Knotens übergeben. Wird ein Duplikat erkannt, gibt der GenericHL7Input-Knoten eine Bestätigung an den Anforderer zurück. Wenn die Duplikatberichterstellung aktiviert ist und ein Duplikat erkannt wird, wird die Nachricht an das Fehlerterminal übergeben.
Die Verarbeitung der Nachrichten unterliegt einer transaktionsorientierten Steuerung. Wenn der Nachrichtenfluss rückgängig gemacht wird, werden die Duplikat-IDs, die zur Warteschlange für Duplikat-IDs hinzugefügt wurden, entfernt. Dies stellt sicher, dass eine Nachricht, die erneut gesendet wird, nicht als Duplikat identifiziert, sondern als neue Nachricht verarbeitet wird.
Wenn beim Lesen von Daten ein Fehler auftritt, einschließlich einer Zeitlimitüberschreitung beim Warten auf Daten oder dem Schließen einer Verbindung beim Warten auf den vollständigen Datensatz, werden die Daten an das Fehlerterminal gesendet. Besteht keine Verbindung zum Fehlerterminal, wird eine Ausnahmebedingung ausgelöst. Wenn die Eigenschaft Wiederholungsmechanismus für den Knoten nicht auf Fehler gesetzt ist, wiederholt der Knoten den Vorgang so lange, bis die Daten erfolgreich empfangen werden oder die Anzahl Wiederholungsversuche, die durch die Eigenschaft Wiederholungsschwellenwert festgelegt ist, erreicht wird.
Informationen zu HL7 finden Sie unter Health Level Seven International.
Der GenericHL7Input-Knoten befindet sich im Ablagefach Healthcare der Nachrichtenflussknotenpalette und wird im WebSphere Message Broker Toolkit durch folgendes Symbol dargestellt:
Wenn ein GenericHL7Input-Knoten in einem Nachrichtenfluss verwendet wird, enthalten Nachrichten, die an das Ausgangsterminal übergeben werden, vom Parser analysierte HL7-Nachrichten, aus denen die führenden und abschließenden MLLP-Bytes entfernt wurden. Die Nachrichtenbaumstruktur enthält MQMD- und MQRFH2-Header, sodass die Nachricht bei Bedarf direkt in eine Warteschlange geschrieben werden kann. Der Nachrichtentext enthält eine HL7-Nachricht in der MRM-Domäne. Der Nachrichtenfluss ist dafür verantwortlich, dass eine Bestätigung an den Anforderer zurückgegeben wird.
Der GenericHL7Input-Knoten arbeitet transaktionsorientiert. Wenn der Nachrichtenfluss, in dem sich der Knoten befindet, erfolgreich endet, werden alle innerhalb der Transaktion geschriebenen Nachrichten festgeschrieben, einschließlich der Nachricht an die Warteschlange, in der bei Duplikaterkennungen die Duplikat-IDs gespeichert werden.
Wenn im GenericHL7Input-Knoten ein Fehler auftritt, wird die Nachricht an das Fehlerterminal übergeben. LocalEnvironment.HL7 enthält die Felder, die in der folgenden Umgebungstabelle aufgeführt sind. Mithilfe der Informationen in diesen Feldern wird eine negative Rückmeldung oder eine Fehlernachricht erstellt.
Feld | Beschreibung |
---|---|
FlowMilestoneReached | Gibt die Aktion an, die beim Auftreten des Fehlers ausgeführt wird. |
SendNACK | Es wird eine negative Bestätigungsantwort gesendet. |
EndConnection | YES: Verbindung schließen NO: Verbindung nicht schließen |
HL7RC | HL7-Rückgabecode |
ErrorCondition | Fehlertext, der in die negative Bestätigung eingeschlossen wird. |
Wenn EndConnection auf YES gesetzt ist, muss die Verbindung geschlossen werden. Diese Aktion wird ausgeführt, wenn die ankommende Nachricht nicht die richtigen MLLP-Begrenzer enthielt und deshalb davon ausgegangen wird, dass das MLLP-Protokoll nicht unterstützt wird.
Die Felder HL7RC (HL7-Rückgabecode) und ErrorCondition (Fehlerbedingung) dienen dazu, Informationen in der negativen Bestätigung bereitzustellen, die an den Anforderer zurückgegeben wird.
Erreichter Nachrichtenflussmeilenstein | Rückkehrcode | Fehlertext |
---|---|---|
DETECTDUPLICATE | AR | Error checking duplicates |
PARSE | AE | Input message MSH parsing or validation error |
BUILDACK | AR | Error while building ACK message (Dieser Fehler tritt auf, wenn eine Bestätigung zurückgegeben wird, weil die Nachricht ein Duplikat ist). |
SENDACK | AR | Error while building ACK message (Dieser Fehler tritt auf, wenn eine Bestätigung zurückgegeben wird, weil die Nachricht ein Duplikat ist). |
DUPLICATEERROR | AR | Failure during duplicate detection.
Duplicate queue is full. Failure during duplicate detection. Message processing failed. |
SAVINGDUPDATA | AR | Error while saving duplicate data |
DUPLICATE RECORD | AR | Duplicate record detected |
Der GenericHL7Input-Knoten arbeitet transaktionsorientiert. Wenn der Nachrichtenfluss, in dem sich der Knoten befindet, erfolgreich endet, werden alle innerhalb der Transaktion geschriebenen Nachrichten festgeschrieben. Endet die Nachricht mit einer Ausnahmebedingung, die nicht abgefangen wird, werden alle innerhalb der Transaktion geschriebenen Nachrichten rückgängig gemacht, einschließlich der Nachricht selbst. Diese Aktion schließt die Nachricht an die Warteschlange ein, in der bei Duplikaterkennungen die Duplikat-IDs gespeichert werden. Sie müssen bestimmen, welche Nachrichten unter diesen Bedingungen rückgängig gemacht werden sollen, und sicherstellen, dass andere Nachrichten, z. B. Fehlernachrichten, nicht innerhalb der Transaktion geschrieben werden.
Nachdem Sie eine Instanz eines GenericHL7Input-Knotens in einem Nachrichtenfluss hinzugefügt haben, können Sie ihn konfigurieren.
Alle obligatorischen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind mit einem Stern markiert.
Terminal | Beschreibung |
---|---|
Fehlerterminal | Das Ausgabeterminal, an das eine Nachricht weitergeleitet wird, wenn ein Fehler auftritt. |
Ausgangsterminal | Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn sie erfolgreich von einer externen Ressource abgerufen wurde. |
Catch-Terminal | Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn nachgeschaltet eine Ausnahmebedingung ausgelöst und von diesem Knoten abgefangen wurde. Ausnahmebedingungen werden nur abgefangen, wenn dieses Terminal angeschlossen ist. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Stern, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn zu implementieren).
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Ja | Nein | GenericHL7Input | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | Eine Kurzbeschreibung des Knotens. | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Duplikate prüfen | Ja | Nein | Ausgewählt | Gibt an, ob Duplikate (doppelte Nachrichten) erkannt werden, wie durch die
eindeutige Nachrichten-ID im HL7-MSH-Header
festgelegt. Bei Erkennung eines Duplikats wird folgende Aktion ausgeführt:
|
Duplikate melden | Ja | Ja | Ausgewählt | Gibt an, ob Duplikate, die innerhalb der angegebenen Zeit eintreffen, eine Fehlernachricht generieren. |
Duplikatzeitraum | Nein | Ja | 86400 | Gibt den Zeitraum (in Sekunden) bis zum Verfall gespeicherter Duplikat-IDs
an. Nach Ablauf dieses Zeitraums werden Duplikate nicht erkannt und normal verarbeitet. Der
Standardwert (86400) entspricht 24 Stunden. Diese Eigenschaft ist obligatorisch, wenn Duplikate prüfen ausgewählt ist. |
Duplikat-ID-Warteschlange | Nein | Nein | Gibt die Warteschlange mit der Liste der aktuellen Duplikat-IDs an, gegen die
ankommende Nachrichten abgeglichen werden. Diese Eigenschaft ist obligatorisch, wenn Duplikate prüfen ausgewählt ist. |
|
Führende MLLP-Bytes | Ja | Nein | 0B | Gibt das führende Byte an, das Teil des MLLP-Protokolls ist und das entfernt wird, bevor die Nachricht geparst und verarbeitet wird. |
Bestätigungen senden | Ja | Ja | Ausgewählt | Gibt an, ob bei der Erkennung von Duplikaten Bestätigungsnachrichten gesendet werden. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Verbindungsdetails | Ja | Ja | 1111 | Die TCP/IP-Verbindung für die Quellenanwendung im Format Hostname:Port. |
Zeitlimitüberschreitung bei Warten auf Datensatz (Sekunden) | Ja | Ja | 60 | Gibt an, wie lange der Knoten an einer Verbindung auf weitere Daten wartet, nachdem das erste Datenbyte eingegangen ist. Sie können einen beliebigen Zeitwert in Sekunden angeben. Der Standardwert beträgt 60 Sekunden. Sobald die festgelegte Zeitspanne überschritten wird, werden alle verfügbaren Daten an das Fehlerterminal gesendet. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Begrenzer | Ja | Nein | Angepasster Begrenzer | Diese Eigenschaft ist nicht bearbeitbar. |
Abschließende MLLP-Bytes | Ja | Ja | 1C0D | Die abschließenden MLLP-Bytes werden als HL7-Datensatzbegrenzer verwendet. Sie werden vom GenericHL7Input-Knoten entfernt. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Wiederholungsmechanismus | Ja | Nein | Kurzes Wiederholungsintervall (Sekunden) | Gibt an, wie der Knoten einen Nachrichtenflussfehler handhabt. Gültige Optionen:
|
Kurzes Wiederholungsintervall (Sekunden) | Ja | Ja | 0 | Das Intervall in Sekunden zwischen den Wiederholungen, wenn der Wiederholungsschwellenwert ungleich null ist. |
Wiederholungsschwellenwert | Ja | Ja | 0 | Gibt an, wie oft die Flusstransaktion wiederholt werden soll, wenn Wiederholungsmechanismus auf Kurzes Wiederholungsintervall (Sekunden) gesetzt ist. |
Langes Wiederholungsintervall (Sekunden) | Ja | Ja | 300 | Das Intervall zwischen Wiederholungen, wenn Wiederholungsmechanismus auf Kurze und lange Wiederholungszeit gesetzt ist und der Wiederholungsschwellenwert erreicht ist. |