Mit einem HL7DFDLInput-Knoten können Sie Nachrichten von Clients empfangen, die über das Protokoll MLLP über TCP/IP eine Verbindung mit dem Server herstellen.
Der HL7DFDLInput-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. Wenn keine Verbindung zum Fehlerterminal besteht, wird eine Ausnahmebedingung ausgelöst. Wenn die Eigenschaft Wiederholungsmechanismus für den Knoten nicht auf Fehler gesetzt ist, wiederholt der Knoten den Verbindungsversuch so lange, bis die Daten erfolgreich empfangen werden oder die Anzahl der Wiederholungsversuche, die durch die Eigenschaft Wiederholungsschwellenwert festgelegt ist, erreicht wird.
Der HL7DFDLInput-Knoten erfordert, dass Nachrichten das Protokoll MLLP über TCP/IP verwenden. Wenn die führenden MLLP-Bytes nicht vorhanden sind, wird die Nachricht an das Fehlerterminal gesendet.
Der HL7DFDLInput-Knoten verarbeitet Nachrichten, die in der DFDL-Domäne definiert sind. Zum Parsen der Nachrichten wird das HL7-Nachrichtenformat im DFDL-Nachrichtenmodell verwendet. Wenn ein Parsing-Fehler auftritt oder obligatorische MSH-Felder nicht vorhanden sind, wird die Nachricht an das Fehlerterminal übergeben. Informationen zu Nachrichtenmodellen finden Sie unter Nachrichtenmodelle in der IBM® Integration Bus-Produktdokumentation.
Sie können den HL7DFDLInput-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 Check duplicates (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 der 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 HL7DFDLInput-Knotens übergeben. Wird ein Duplikat erkannt, gibt der HL7DFDLInput-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.
Informationen zu HL7 finden Sie unter Health Level Seven International.
Der HL7DFDLInput-Knoten befindet sich im Ablagefach Healthcare der Nachrichtenflussknotenpalette und wird im IBM Integration Toolkit durch folgendes Symbol dargestellt:
Wenn ein HL7DFDLInput-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 DFDL-Domäne. Der Nachrichtenfluss ist dafür verantwortlich, dass eine Bestätigung an den Anforderer zurückgegeben wird.
Wenn im HL7DFDLInput-Knoten ein Fehler auftritt, wird die Nachricht an das Fehlerterminal übergeben. LocalEnvironment.HL7 enthält die Felder, die in der folgenden Umgebungstabelle beschrieben werden. 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 | Fehler beim Überprüfen der Duplikate |
PARSE | AE | Eine DFDL-Analysefehlernachricht wird angezeigt. Das Problem wird in der Nachricht zusammengefasst. |
BUILDACK | AR | Fehler beim Erstellen der ACK-Nachricht (Dieser Fehler tritt auf, wenn eine Bestätigung zurückgegeben wird, weil die Nachricht ein Duplikat ist). |
SENDACK | AR | Fehler beim Erstellen der ACK-Nachricht (Dieser Fehler tritt auf, wenn eine Bestätigung zurückgegeben wird, weil die Nachricht ein Duplikat ist). |
DUPLICATEERROR | AR | Fehler bei der Duplikaterkennung. Duplikatwarteschlange ist voll. Fehler während der Duplikaterkennung.Nachrichtenverarbeitung fehlgeschlagen. |
SAVINGDUPDATA | AR | Fehler beim Speichern der Duplikatdaten |
DUPLICATE RECORD | AR | Doppelter Datensatz erkannt |
Der HL7DFDLInput-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 HL7DFDLInput-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 |
---|---|
Fehler | Das Ausgabeterminal, an das eine Nachricht weitergeleitet wird, wenn ein Fehler auftritt. |
Out | 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 | HL7DFDLInput | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | 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 | Nein | Nein | Nicht 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 | Nein | 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 Check duplicates ausgewählt ist. |
Doppelte 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 Check duplicates 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 | Nein | 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 HL7DFDLInput-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. |