Script-HL7-Funktionen
Mit den HL7-Funktionen der MediControl Script Engine können Sie standardisierte HL7-Nachrichten einfach erzeugen, exportieren und wieder einlesen. Damit lassen sich z. B. ADT-Nachrichten (Aufnahme, Änderung, Entlassung) automatisiert mit angebundenen Kliniksystemen austauschen.
Überblick
Die beiden zentralen Funktionen sind:
- HL7.PUTHL7FILE – erstellt aus einer HL7-Vorlage (*.DEF) eine fertige HL7-Datei.
- HL7.GETHL7FILE – liest eine bestehende HL7-Datei ein und füllt Segmente und Felder in Variablen.
Damit können Sie mit wenigen Skriptzeilen komplette HL7-Nachrichten generieren oder aus externen Systemen übergebene HL7-Dateien auswerten – ohne sich um die technische Struktur (Segmente, Trenner, Felder, Subfelder) kümmern zu müssen.
HL7.PUTHL7FILE – HL7-Dateien erzeugen und exportieren
HL7.PUTHL7FILE erzeugt aus einer vorgegebenen HL7-Definitionsdatei (*.DEF) eine vollständige HL7-Nachricht und speichert diese als Datei in einem definierten Ordner. Alle benötigten Werte werden zuvor im Skript über Variablen gesetzt (z. B. Patienten-ID, Name, Geburtsdatum, Aufnahmedatum, Behandlungsart usw.).
Typische Anwendungsfälle:
- Erzeugung von ADT-A01-Nachrichten (Patientenaufnahme)
- Erzeugung von ADT-A08-Nachrichten (Stammdatenänderung / Bewegungsänderung)
- Erzeugung von ADT-A11-Nachrichten (Stornierung einer Aufnahme)
- Export von Patienten- und Bewegungsdaten an externe KIS-/Kommunikationsserver
Funktionsprinzip:
- Patienten- und Aufnahmedaten werden aus der Stammdatenbank gelesen.
- Hilfsvariablen (z. B. Datum im Format
YYYYMMDD, Uhrzeit, Behandlungsart) werden berechnet. - Eine HL7-Vorlagendatei (z. B.
HL7A01.DEF) definiert den Aufbau der Nachricht. - HL7.PUTHL7FILE fügt die Variablen in die HL7-Struktur ein und schreibt eine fertige *.hl7-Datei.
Beispiel aus einem ADT-A01-Exportskript:
//...
AUSGABEPFAD={APPPATH}\AUFTRAG\HL7\
AUSGABE=TIMESTAMP{}
AUSGABE={AUSGABEPFAD}{AUSGABE}_{PATIENTID}_{NACHRICHT}.hl7IFBLOCK{NACHRICHT=A01}
RES=SETSCRTAG{A01,{PATIENTID},A01,1}
RESULT=HL7.PUTHL7FILE{{APPPATH}\CONFIG\EXPORT\HL7A01.DEF,{AUSGABE}}
ELSEIF{NACHRICHT=A08}
RESULT=HL7.PUTHL7FILE{{APPPATH}\CONFIG\EXPORT\HL7A08.DEF,{AUSGABE}}
ELSEIF{NACHRICHT=A11}
RESULT=HL7.PUTHL7FILE{{APPPATH}\CONFIG\EXPORT\HL7A11.DEF,{AUSGABE}}
ENDIF
//...
Sie definieren einmalig die HL7-Struktur in der DEF-Datei. Änderungen (z. B. zusätzliche Felder oder Segmente) werden zentral in der Vorlage gepflegt; das Skript bleibt weitgehend unverändert.
HL7.GETHL7FILE – HL7-Dateien einlesen und auswerten
HL7.GETHL7FILE liest eine vorhandene HL7-Datei ein und stellt die Inhalte der gewünschten Segmente als Skriptvariablen zur Verfügung. Damit können eingehende HL7-Nachrichten komfortabel geprüft, protokolliert oder für weitere Verarbeitungsschritte genutzt werden.
Typische Anwendungsfälle:
- Import von ADT-Nachrichten aus einem Kommunikationsserver
- Auswertung von HL7-Dateien in Importverzeichnissen
- Übernahme von Patienten-IDs, Fallnummern, Versichertennummern oder Bewegungsinformationen
- Diagnose von HL7-Kommunikationsproblemen durch gezielte Anzeige einzelner Segmente
Funktionsprinzip:
- Sie übergeben den Segmentnamen (z. B.
MSH,PID) und den Dateipfad der HL7-Datei. - HL7.GETHL7FILE liest die Datei und füllt Segment- und Feldinhalte in Variablen.
- Segmentteile stehen anschließend z. B. als
MSH_...,MSH_PID_...usw. zur Verfügung. - Diese Variablen können in weiteren Skripten verarbeitet, geprüft oder zum Datenabgleich verwendet werden.
Beispiel aus einem Testszenario:
//Wenn kein Patient ausgewählt ist, Script verlassen
DUMMYVAR=IFNOVAREXIT{PATIENTID}
// HL7-Datei lesen und MSH-Segment auswerten
TST=HL7.GETHL7FILE{MSH,...\MCDMS\AUFTRAG\IMPORT\123.hl7}
//Nachricht (z.B. inkl. PID) anzeigen
DLG=DLGMESSAGE{{MSH_PID}}
//Beispiel: Patienten-ID aus einem HL7-Feld
PATIENTNR={MSH_PID_1_3}
Auf diese Weise können Sie eingehende HL7-Nachrichten ohne manuelle Zerlegung auslesen und direkt in die MediControl-Prozesse integrieren.
Vorteile der HL7-Integration in MediControl
- Standardkonform – HL7-Strukturen werden technisch korrekt aufgebaut und interpretiert.
- Automatisierbar – ideal in Kombination mit SRV-Watch-Skripten für Hintergrundprozesse.
- Fehlerarm – keine manuelle Bearbeitung der HL7-Syntax nötig.
- Flexibel – HL7-Vorlagen können je nach Anforderung angepasst und erweitert werden.
Mit HL7.PUTHL7FILE und HL7.GETHL7FILE steht Ihnen eine leistungsfähige, aber dennoch einfach steuerbare Schnittstelle zur Verfügung, um MediControl nahtlos in bestehende KIS- und Kommunikationsumgebungen einzubinden.
