Vernetzung persönlicher medizinischer Geräte und Umwandlung von klinischen Messwerten in standardkonforme Nachrichten auf Basis des Raspberry Pi 3

Teammitglieder

Marcel Skrotzki

Beschreibung

In diesem Projekt werden aus MatLab Dateien Daten wie Messwert, Maßeinheit und durchgeführte Untersuchung eingelesen. Die so erfassten Daten werden anschließend in PCD-01 (ORU), sowie FHIR Nachrichten eingesetzt und an zuvor eingerichtete Server, in diesem Fall ein HAPI Testpanel und ein FHIR Server, verschickt. Durch Response Nachrichten der jeweiligen Server erhält man die Gewissheit, dass der jeweilige Server die Nachrichten erhalten hat.

Die PCD (Patient Care Device) Domäne wurde 2005 durch IHE (Integrating the Healthcare Enterprise) ins Leben gerufen um medizinische Geräte von Patienten in das Gesundheitswesen zu integrieren. Sie besteht aus verschiedenen sogenannten PCD Profilen. Grundsätzlich werden die Daten von einem Device Observation Reporter (DOR) an einen Device Observation Consumer (DOC) gesendet. Sie werden durch eine sogenannte ORU Nachricht (ORU^R01^ORU_R01) verschickt. Die ORU Nachricht unterteilt die verschiedenen Daten in einzelne Segmente, z.B. MSH, PID, PV1 etc.

Um die ORU Nachrichten zu senden, wird ein Client erstellt, der über einen festgelegten Port im HAPI Testpanel eine Verbindung zu diesem aufbaut. Über einen erstellten Initiator, der benötigt wird um Nachrichten zu transferieren, wird die Nachricht an das Testpanel gesendet, sowie die Antwort des Testpanels empfangen.

 

HAPI Testpanel

HAPI Testpanel

Mit diesem Testpanel kann meinen einen Receiver erstellen, der darauf wartet das ihm eine Nachricht geschickt wird, nachdem man ihn gestartet hat. Sobald dies geschieht, sieht man im Testpanel die eingehende Nachricht und die ausgehende Antwort des Testpanels. Außerdem zeigt es die benötigte Zeit für die Antwort und das Eintreffen bzw. den Ausgang der jeweiligen Nachricht an. Zusätzlich kann man einen beliebigen Port für jeden erstellten Receiver einstellen.

 

FHIR

FHIR (Ausgesprochen wie das englische „fire“) steht für die Abkürzung „Fast Healthcare Interoperability Resources“. FHIR ist ein neuer Standard für den Datenaustausch in Gesundheitssystemen, der auf dem HL7 Standard aufbaut. Durch FHIR werden die Vorteile der sich bereits im Einsatz befindenden HL7 Standards Version 2, Version 3 und CDA mit denen aktueller Web-Standards vereinigt. Außerdem liegt ein starker Fokus auf einfache Implementierbarkeit.

Für den FHIR Server wurde ein vorgefertigter JPA Starter Server, von HAPI FHIR auf GitHub bereitgestellt, verwendet. Diesen kann man ganz einfach in einer Kommandozeile mit Maven installieren und auf einem beliebigen freien Port lokal laufen lassen. Auch hier kann man durch geeignete Implementierung eine Antwort, eine sogenannte ACK (Acknowledge) Nachricht, auf die abgeschickte Nachricht vom Server bekommen.

FIHR Testserver

Um FHIR Nachrichten an den Server zu senden, müssen die erfassten Daten zuerst in ein sogenanntes Bundle gepackt werden. Falls noch kein Eintrag für diesen Patienten besteht, wird einer angelegt. Dies wird über den Patienten-Identifier geprüft. Zusätzlich werden Einträge für die erfassten Daten angelegt. Um das Bundle leserlicher und übersichtlicher zu machen, werden die Ressourcen über einen Parser in XML bzw. JSON umgewandelt.

Anschließend wird ein Client über den zuvor freigegebenen Port 8080 erstellt und das Bundle an den Server geschickt. Falls dies gelungen ist, bekommt man eine Antwort vom Server, die man sich auch anzeigen lassen kann.

 

Bundle Ressource

Bundle Ressource

 

Eine FHIR Nachricht besteht aus sogenannten Ressourcen. Hier finden sich viele Daten in wohldefinierten Feldern und Datentypen, z.B. über den Patienten (Name, Identifikation), die Quelle und das Ziel der erfassten Daten, sowie die erfassten Daten selbst, wieder.