Mithilfe eines HL7DFDLOutput-Knotens kann eine Nachricht für die Zielanwendung aufbereitet werden.
Der HL7DFDLOutput-Knoten empfängt eine HL7-Nachricht in der DFDL-Domäne und öffnet Verbindungen zu einer Zielanwendung, die an einem TCP/IP-Port empfangsbereit ist. Sobald die Verbindung hergestellt ist, wird die HL7-Nachricht mit einem Datensatzende gesendet, das dem mit der Eigenschaft Abschließende MLLP-Bytes angegebenen Begrenzer entspricht; der Standardwert ist 1C0D. Wenn die Daten nicht innerhalb des durch Zeitlimitüberschreitung beim Senden eines Datensatzes (Sekunden) für den Knoten festgelegten Zeitlimits erfolgreich gesendet wurden, wird die Nachricht an das Fehlerterminal übergeben.
Nach dem erfolgreichen Senden der Nachricht wartet der HL7DFDLOutput-Knoten auf eine Bestätigung von der Zielanwendung. Bei einer HL7-Bestätigung werden MLLP-Bytes entfernt, sie wird analysiert und der Rückgabecode wird überprüft. Wenn im HL7DFDLOutput-Knoten ein Fehler auftritt, wird die Nachricht entweder an das Terminal für Wiederholungsprotokollierung oder das Fehlerterminal übergeben.
Wenn die Übermittlung erfolgreich ist, der Code AR in der Bestätigung zurückgegeben wird und das Wiederholungslimit nicht überschritten wurde, wird die Nachricht an das Terminal für Wiederholungsprotokollierung übergeben.
Wenn die Nachricht übermittelt und in der Bestätigung der Code AE zurückgegeben wird oder die empfangene Bestätigung ungültig ist, wird die Nachricht an das Fehlerterminal übergeben.
Wenn die Nachricht nicht übermittelt wird, wird davon ausgegangen, dass das Ziel nicht verfügbar ist, und wenn das Wiederholungslimit nicht überschritten wurde, wird die Nachricht an das Terminal für Wiederholungsprotokollierung übergeben.
Wenn keine Verbindung zum Terminal für Wiederholungsprotokollierung besteht oder der Pfad erfolgreich endet, wird die Übermittlung wiederholt. Wenn eine Verbindung zum Terminal für Wiederholungsprotokollierung besteht und nachgeschaltet eine Ausnahmebedingung ausgelöst wird, wird nicht erneut versucht, die Nachricht zu senden, und sie wird an das Fehlerterminal übergeben.
Wenn keine Verbindung zum Fehlerterminal besteht, wird eine Ausnahmebedingung ausgelöst.
Informationen zu HL7 finden Sie unter Health Level Seven International.
Der HL7DFDLOutput-Knoten befindet sich im Ablagefach Healthcare der Nachrichtenflussknotenpalette und wird in IBM® Integration Toolkit durch folgendes Symbol dargestellt:
Ein Beispiel für die Verwendung des HL7DFDLOutput-Knotens wird im integrierten Muster 'Healthcare: HL7 an HL7' in der Kategorie Healthcare im Musterexplorer-Ansicht gezeigt.
Wenn ein HL7DFDLOutput-Knoten in einem Nachrichtenfluss verwendet wird, erwartet der Knoten, dass die DFDL-Baumstruktur eine Nachricht enthält, die im Abgleich mit der HL7-Nachricht im DFDL-Nachrichtenmodell geparst wurde. Sie können entweder das generische oder das spezifische Modell für den in der Nachricht definierten Nachrichtentyp verwenden (geben Sie das Format an, indem Sie die Knoteneigenschaft Generisches Modell verwenden auf dem HL7DFDLInput-Knoten in Ihrem Nachrichtenfluss konfigurieren). Falls Sie nicht sicher sind, ob Nachrichten, die an den HL7DFDLOutput-Knoten übergeben werden, korrekt sind, können Sie die Eigenschaft Auswerten so konfigurieren, dass vor Beginn der Verarbeitung ein Parsing durchgeführt wird. Wenn die Nachricht erfolgreich an das konfigurierte Ziel gesendet wird und das Ziel eine Bestätigung der erfolgreichen Verarbeitung zurückgibt, wird die Bestätigung an das Ausgangsterminal des Knotens übergeben.
Wenn der Knoten nach einem Fehler versuchen soll, die Nachricht erneut zu senden, müssen Sie den Wert der Eigenschaft Wiederholungslimit auf die Anzahl der Versuche setzen, die der Knoten durchführen soll, um die Nachricht zu senden. Der Knoten wiederholt seine Versuche alle 10 Sekunden, aber Sie können dieses Intervall mit der Eigenschaft Wiederholungsintervall (Sekunden) ändern. Wenn außerdem jeder Versuch protokolliert werden soll, müssen Sie die Eigenschaft Wiederholung protokollieren auswählen. Ist die Eigenschaft Wiederholung protokollieren ausgewählt, wird die Nachricht für jeden Versuch an das Terminal für Wiederholungsprotokollierung übergeben. Die Umgebung enthält die Werte, die Sie in Ihrer Protokollnachricht verwenden können (siehe folgende Umgebungstabelle).
Wenn Sie eine Verbindung mit dem Terminal für Wiederholungsprotokollierung herstellen, endet der Nachrichtenflussthread erfolgreich und es werden weitere Versuche unternommen, die Nachricht zu senden. Falls nicht abgefangene Ausnahmebedingungen für diesen Thread ausgelöst werden, werden die Wiederholungen nicht fortgesetzt.
Wenn eine Nachricht an das Fehlerterminal übergeben wird, verhält sich der Nachrichtenfluss, wie in Ihren Fehlerbehandlungsprozeduren vorgegeben. Es muss eine Verbindung zum Fehlerterminal bestehen, sodass der Fehler protokolliert wird und entweder die Daten gespeichert und/oder eine Ausnahmebedingung ausgelöst werden. Wenn keine Verbindung zum Fehlerterminal besteht, verursacht der Fehler einen Hintergrundfehler, es wird keine Ausnahmebedingung ausgelöst und es werden keine Ereignisse im Ereignisprotokoll erfasst. Fehlercodes und andere Informationen, die Sie in Ihrer Fehlerbehandlung verwenden können, sind in der folgenden Fehlertabelle aufgeführt.
Wenn im HL7DFDLOutput-Knoten ein Fehler aufgetreten ist, 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 an, wo der Fehler aufgetreten ist. |
Retry | Gibt an, ob diese Aktion erneut versucht werden kann. |
ErrorCondition | Enthält eine Beschreibung des Fehlers. |
Attempt | Tritt der Fehler in einer Wiederholungsschleife auf, enthält diese Variable folgenden Text: Attempt <i> of <n> |
RetryCount | Gibt den aktuellen Versuch an. |
RetryLimit | Gibt die Anzahl der zulässigen Versuche an. |
In der folgenden Fehlertabelle sind die Fehlercodes aufgeführt, die auftreten können.
Fehler | Terminal | Wiederholung | Code | Fehlertext |
---|---|---|---|---|
Der Knoten konnte die ankommende Nachricht nicht mithilfe der DFDL-Nachrichtenmodell und des HL7-Nachrichtenformats parsen. | Fehler | Nein | BADHL7 MESSAGE | The incoming HL7 message cannot be parsed. |
Der Knoten konnte die Nachricht nicht an das konfigurierte Ziel senden. | Terminal für Wiederholungsprotokollierung | Ja | SENDHL7 | TCP/IP error. The HL7 message was not sent. |
Der Knoten konnte die Bestätigung nicht parsen. | Fehler | Nein | ACKPARSE ERROR | MSH error while ACK message was being parsed. |
Die Bestätigung wurde empfangen, aber sie enthält keinen Bestätigungscode. | Fehler | Nein | ACKERROR | MSA parsing or validation error: MSA 1. The acknowledgment code is null. The ACK contained the following error message: Fehlernachricht |
Die Bestätigung wurde empfangen, aber sie enthält keine Nachrichtensteuerungs-ID. | Fehler | Nein | ACKERROR | MSA parsing or validation error: MSA 2. The MessageControlID is null. The ACK sent the following error message: Fehlernachricht |
Es wurde keine Bestätigung im Zeitlimitintervall empfangen. | Fehler | Nein | TIMEOUT | The node failed to receive ACK message within the specified time-out. |
Der Knoten hat die Bestätigung nicht empfangen. | Fehler | Nein | RECEIVE ACK | TCPIP error. The node failed to receive ACK message. |
Der Knoten hat versucht, die Nachricht zu übermitteln, hat jedoch das konfigurierte Wiederholungslimit erreicht. | Fehler | Nein | SENDHL7 TOOMANY REPEATS | The node failed to receive the ACK message. |
Der Knoten empfing AR-Bestätigungen, hat jedoch das konfigurierte Wiederholungslimit erreicht. | Fehler | Nein | ACKAR TOOMANY REPEATS | The node has retried sending the message and cannot successfully deliver the message. |
Nachdem Sie eine Instanz eines HL7DFDLOutput-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 |
---|---|
Eingabe | Das Eingabeterminal, das eine HL7-Nachricht zur Verarbeitung durch den Knoten annimmt. |
Fehler | Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn der Knoten sie nicht erfolgreich senden kann und keine Bestätigung der erfolgreichen Verarbeitung empfängt. |
Ausgabe | Das Ausgabeterminal, an das die Bestätigung weitergeleitet wird, wenn eine Nachricht erfolgreich an das Ziel gesendet wurde und eine Bestätigung der erfolgreichen Verarbeitung empfangen wird. |
Terminal für Wiederholungsprotokollierung | Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn der Knoten die Nachricht entweder nicht erfolgreich senden kann oder keine Bestätigung der erfolgreichen Verarbeitung empfängt und wenn der Wiederholungszähler nicht überschritten ist. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, 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 einzusetzen).
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | HL7DFDLOutput | 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 |
---|---|---|---|---|
Verbindungsdetails | Ja | Ja | localhost:2222 | Die TCP/IP-Verbindung für die Zielanwendung im Format Hostname:Port. |
Zeitlimitüberschreitung beim Senden eines Datensatzes (Sekunden) | Ja | Ja | 60 | Die Zeit in Sekunden, die der Knoten wartet, bevor er versucht, Daten zu senden oder eine Bestätigung zu empfangen. |
Anführendes MLLP-Byte | Ja | Ja | 0B | Das führende MLLP-Byte, das zu abgehenden HL7-Datensätzen hinzugefügt und aus eingehenden Bestätigungen entfernt wird. |
Wiederholungslimit | Ja | Ja | 5 | Die maximale Anzahl Versuche, die der Knoten unternimmt, um eine HL7-Nachricht an die Zielanwendung zu übermitteln. |
Wiederholungsintervall (Sekunden) | Ja | Ja | 10 | Das Intervall (in Sekunden), in dem versucht wird, eine HL7-Nachricht an die Zielanwendung zu übermitteln. |
Wiederholung protokollieren | Nein | Ja | Ausgewählt | Gibt an, ob jeder Versuch, eine Nachricht zu übermitteln, an das Terminal für Wiederholungsprotokollierung übergeben wird, um eine Protokollierung zu ermöglichen. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Begrenzer | Nein | 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 TCPIPClientOutput-Knoten hinzugefügt. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Begrenzer | Nein | Nein | Angepasster Begrenzer | Diese Eigenschaft ist nicht bearbeitbar. |
Abschließende MLLP-Bytes (Bestätigung) | Ja | Nein | 1C0D | Der HL7-Begrenzer, an dem das Ende von eingehenden Bestätigungen erkannt wird. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Auswerten | Nein | Ja | Keine | Diese Eigenschaft legt die Auswertungsstufe für die ankommende
HL7-Nachricht in der DFDL-Domäne fest. Gültige Werte:
|