alle Z-Segmente löschen

Hin und wieder kommt es vor, dass z.B. KIS Systeme Z-Segmente senden. Davon wird bei vielen Subsystemen meist nur das ZBE-Segment benötigt. Um die Z-Segmente mit Ausnahme des ZBE-Segmentes dynamisch zu löschen, kann folgender JavaScript-Code genutzt werden.

for each(seg in msg.children())
{
    if(seg.name().toString().indexOf('Z') != -1 && seg.name().toString() != 'ZBE')
    {
        delete msg[seg.name().toString()];
    }
}

Prüfen, ob eine Datei vorhanden ist

Grade bei HL7-MDM Schnittstellen, bei denen PDF-Dokumente nicht embedded übermittelt werden, ist es oft wichtig im Vorfeld zu prüfen, ob die PDF-Datei überhaupt vorhanden ist.

In dem folgenden Code-Schnipsel wird der Dateiname aus dem Feld TXA.16.1 gelesen. Der Pfad, in dem die Datei liegt, wird im Vorfeld definiert und liegt hier im Beispiel auf einer Freigabe (UNCPFAD).

Wichtig hierbei ist, dass der Benutzer, unter dem der Dienst des Kommservers läuft berechtigt ist, auf die UNC-Freigabe zuzugreifen.

//Benötigte Java Dateien
importPackage(java.io);
importPackage(org.apache.commons.io);

// Datei lesen und prüfen, ob sie existiert
var filename = msg['TXA']['TXA.16']['TXA.16.1'].toString();
var file = new File("\\\\UNCPFAD\\" + filename);
if(!file.exists())
	logger.info("Fehler, PDF Datei nicht gefunden");

Entlassungsdatum älter als Heute

In manchen Situationen ist es erforderlich ein Datum zu vergleichen. So kommt es öfters vor, dass ein Entlassungsdatum nur im Feld PV1.45.1 stehen bleiben darf, wenn es älter als Heute ist. Dies ist mit HL7 relativ einfach zu prüfen, da hier kein Datumsvergleich angestoßen werden muss, sondern ein einfacher Integer Vergleich durchgeführt werden kann.

const entlassdatum = msg['PV1']['PV1.45']['PV1.45.1'].toString();

if(entlassdatum.toString() != ''
&& entlassdatum.toString() > DateUtil.formatDate("yyyyMMddHHmmss", new Date()))
    msg['PV1']['PV1.45']['PV1.45.1'] = '';

Im obigen Beispiel speichern wir aus Gründen der Übersichtlichkeit das Feld PV1.45.1 in einer Variable. Danach prüfen wir, ob das Entlassungsdatum nicht leer ist und vergleichen dann das Entlassungsdatum inkl. Uhrzeit gegen das heutige Datum inkl. Uhrzeit. Wenn das Entlassungsdatum größer ist, dann setzen wir für das Entlassungsdatum einen Leerstring.

Fehlerhafte Zeilenumbrüche entfernen

Manchmal kommt es vor, dass Systeme innerhalb eines Segmentes Zeilenumbrüche (\r\n) senden, die lt. HL7 Standard nicht zulässig sind.

NTE|||Klinische Bemerkungen:
Bitte Auftrag A und B zusammenfassen

Innerhalb des Kommservers laufen diese direkt auf einen Fehler, da er diese Segmente nicht parsen kann. Abhilfe kann man durch eine einfach Zeile im Pre-Processor Script schaffen. Innerhalb des Channels fügen Sie im Pre-Processor Script einfach folgende Zeile oberhalb des return message; ein:

message = message.replace(/[\r\n]+(?![A-Z][A-Z][A-Z0-9]\|)/g, "");