Wie validiere ich FHIR®-Ressourcen?

Hallo und willkommen zu Per Anhalter durch das MIOVersum. In diesem Video möchten wir dir zeigen, wieso du deine FHIR®-Ressourcen validieren solltest und wie das funktioniert.

Unsere MIO Spezifikationen enthalten FHIR®-Profile. Diese sind wie ein Bauplan und enthalten Vorgaben für deine FHIR®-Instanzen, also für die tatsächlichen Daten, die dein System erzeugt und beispielsweise in die ePA schreibt.
du musst zu den Profilen passende FHIR®-Instanzen erzeugen, damit die Empfänger der Daten diese korrekt verarbeiten können. Wenn Daten von den Vorgaben und damit der erwarteten Form abweichen, können enthaltene Elemente unter Umständen von empfangenden Systemen nicht verarbeitet werden.

Die Validierung stellt sicher, dass keine Fehler unterkommen und die Instanzen tatsächlich den Vorgaben folgen.
Wir bezeichnen FHIR®-Instanzen, welche die Vorgaben eines Profils erfüllen, als "konform zu dem Profil".

Um den Start der Arbeit mit unseren MIOs und das Validieren zu erleichtern, stellen wir zu jedem MIO ein Validierungspaket auf GitHub bereit, dass alle Daten enthält, die du zur Validierung und Verwendung unserer MIO Spezifikation brauchst.

Wie läuft nun das Validieren tatsächlich ab?

Es gibt sogenannte FHIR®-Validatoren. Das sind Anwendungen bzw. Werkzeuge, welche für die Validierung von FHIR®-Instanzen gegen eine FHIR®-Spezifikation genutzt werden können. Das Vorgehen ist dabei immer gleich: du gibst dem Validator als Eingabe an, welche Instanz bzw. Instanzen du validieren möchtest und gegen welche Profile oder welche Spezifikation du prüfen möchtest. Der Validator erzeugt dann einen Prüfbericht, welcher potenziell gefundene Fehler und Warnungen enthält.

Hier eine kleine Auswahl der bekanntesten FHIR®-Validatoren.

Der offizielle FHIR®-Validator des FHIR® Projektes von HL7 in Zusammenarbeit mit HAPI-FHIR® steht sowohl online als auch als herunterladbare Java-Anwendung zur Verfügung. Während die Online-Version für schnelle Überprüfung einzelner Ressourcen komfortabel sein kann, empfehlen wir für Überprüfung in der Entwicklungsumgebung die Java-Anwendung zu verwenden.

Diese ist auf GitHub zum Download verfügbar. Es handelt sich hierbei um ein auf der Konsole ausführbares Programm, bei welchem per Parameter die Pfade zu überprüfenden Instanzen, sowie die zu berücksichtigenden Spezifikationen angegeben werden. Wir verwenden bei der Spezifikation unserer MIOs ebenfalls den HL7 bzw. HAPI-FHIR® Validator und empfehlen diesen deshalb für die Vergleichbarkeit der Validierungsergebnisse. Auch die Online-Version verwendet den HAPI-FHIR® Validator, jedoch meist in einer weniger aktuellen Version, weshalb sich für stets aktuelle Versionen sowie internetunabhängige Nutzung sich ebenfalls die Java Anwendung anbietet. 

Eine ausführlichere Anleitung für die Verwendung bietet HL7 auf der eigenen Confluence Webseite.

Alternativ haben auch andere Anwendungen Validatoren eingebaut.
So überprüft Forge beim Spezifizieren direkt die Profile, das firely Terminal bietet neben anderen Funktionen einen eigenen Validator für die Kommandozeile, und Simplifier stellt ebenfalls einen Online FHIR®-Validator für Simplifier-Nutzer bereit, in welchen für schnelle Überprüfung einzelne Ressourcen eingefügt werden können.

Genau wie beim HL7 FHIR® Validator ist es bei diesen Tools wichtig, alle zugrundeliegenden Spezifikationen anzugeben, damit anhand dieser Vorgaben korrekt geprüft werden kann.

Sehen wir uns nun kurz an, wie Validierungsergebnisse aussehen können.

Es gibt drei Schweregrade von Meldungen: Informationen bzw. Empfehlungen, Warnungen und Fehlermeldungen.
Empfehlungen und Warnungen müssen individuell beachtet und eingeschätzt werden.
So kann eine Meldung über Codes außerhalb vorgegebener ValueSets unproblematisch sein, wenn bewusst beispielsweise eigene Terminologien wegen unpassender Vorgaben genutzt werden und die Vorgaben offen, also extensible, sind.

Fehlermeldungen hingegen bedeuten, dass die Instanz nicht valide bzw. konform zur Spezifikation und damit nicht gültig ist.
Fehlermeldungen müssen behoben werden, wenn sie durch die Instanz verursacht werden.
Es gibt bei manchen MIOs allerdings auch bekannte Fehler, welche ignoriert werden können.
Diese sind auf unserer MIO-Plattform aufgeführt.

Wir hoffen, dieser kleine Überblick zum Validieren hilft dir, um noch besser mit unseren MIOs arbeiten zu können.