FHIR-Viewer

Viewer für FHIR-Daten

FHIR (Fast Healthcare Interoperability Resources) ist ein Standard von HL7 International, der Gesundheitsdaten als Ressourcen wie Patient, Observation oder Encounter beschreibt; sie lassen sich als JSON oder XML über REST-Schnittstellen austauschen.

Dieser Viewer macht solche Daten lesbar: Sie fügen JSON oder XML einer Ressource oder eines Bundles ein, und die Seite zeigt Karte, Baum und Referenzen. Er ersetzt weder den offiziellen FHIR-Validator noch eine Profilprüfung und ist kein Medizinprodukt.

Die Daten bleiben in Ihrem Browser: Es wird nichts hochgeladen. Nur zur Ansicht, kein Validator, kein Medizinprodukt.

Zuletzt aktualisiert: 27.10.2026. Grundlage ist FHIR R4 (4.0.1).

Was der Viewer kann

Eine Kartenansicht gibt es für 12 Ressourcentypen (Patient, Observation, Encounter, Condition, MedicationRequest, DiagnosticReport, Medication, Practitioner, Organization, Procedure, Immunization, AllergyIntolerance); alle anderen Typen sehen Sie als Baum und mit einer allgemeinen Karte. Die Hinweise erklären Sie im Abschnitt Grenzen.

Grenzen: was der Viewer nicht tut

Beispiele zum Ausprobieren

Acht Beispiele aus der FHIR-Spezifikation R4, jeweils unter 10 KB. Sie enthalten keine echten Daten. Lizenz: CC0 1.0. Wo SNOMED-CT-Codierungen oder Narrativ entfernt wurden, steht das nach dem Laden beim Beispiel; die Liste aller Quellen finden Sie unter Quellen und Lizenzen.

Patient

Eine Patientenressource mit Name, Adresse, Telefon und Kontakt. 3748 Bytes.

Observation (Körpergewicht)

Eine Messung mit LOINC-Code, Wert (valueQuantity) und Einheit. 1000 Bytes.

Observation (Blutdruck)

Eine Observation mit zwei component-Werten (systolisch, diastolisch), Interpretation und einer Referenz per Identifier. 2870 Bytes.

Condition

Eine Diagnose mit Freitext-Code, Status, Kategorie, Körperstelle und Beginn. 827 Bytes.

Encounter

Ein sehr kurzer Behandlungsfall mit Status und Klasse. 413 Bytes.

Bundle mit Referenzen

Ein Bundle mit Patienten und Observations; zeigt aufgelöste Referenzen, Versionen und Identifier. 8732 Bytes.

Bundle (searchset)

Ein kleines Suchergebnis mit MedicationRequest und Medication. 1733 Bytes.

Bundle (transaction)

Eine Transaktion mit mehreren Patienten und request-Angaben. 4807 Bytes.

Ressourcen und Bundles erklärt

Fehler und was der Viewer dazu sagt

Die folgenden Meldungen stammen aus dem Viewer selbst: Beim Erzeugen dieser Seite wurden die Eingaben durch dieselben Funktionen geschickt, die auch im Browser laufen. Bei JSON-Syntaxfehlern kommt der Satzteil nach dem Doppelpunkt vom JSON-Parser Ihres Browsers und kann je nach Browser anders lauten.

EingabeMeldung des Viewers
Abgeschnittenes JSON
{"resourceType": "Patient", "id": "x", "name": [{"family": "Muster"}

Ungültiges JSON (Zeile 1, Spalte 69): Erwartet wurde ein Komma oder ] nach dem Listeneintrag – Die Eingabe endet mitten im JSON. Möglicherweise fehlt eine schließende Klammer } oder ] oder ein Anführungszeichen. Wurde beim Kopieren etwas abgeschnitten?

Komma zu viel
{"resourceType": "Patient",}

Ungültiges JSON (Zeile 1, Spalte 28): Erwartet wurde ein Name in doppelten Anführungszeichen (gefunden: „}“) – Wahrscheinlich steht ein Komma zu viel nach dem letzten Eintrag. JSON erlaubt kein Komma vor } oder ].

Kein resourceType
{"id": "x", "name": [{"family": "Muster"}]}

Fehler: Das Objekt hat kein Feld "resourceType". Ohne dieses Feld ist es keine FHIR-Ressource. Erwartet wird zum Beispiel "resourceType": "Patient".

Tippfehler im Typ
{"resourceType": "Patent", "id": "x"}

Warnung: Der Ressourcentyp "Patent" steht nicht in der Liste von R4 (4.0.1). Das kann ein Tippfehler sein (Groß-/Kleinschreibung zählt) oder ein Typ aus einer neueren Version.

Deutsches Datumsformat
{"resourceType": "Patient", "birthDate": "25.12.1974"}

Warnung: birthDate: "25.12.1974" ist kein gültiges FHIR-date (erwartet JJJJ, JJJJ-MM oder JJJJ-MM-TT).

XML ohne Namensraum
<Patient><id value="x"/></Patient>

Warnung: Dem Wurzelelement fehlt der Namensraum xmlns="http://hl7.org/fhir". Ohne ihn ist die Datei kein gültiges FHIR-XML, auch wenn sie hier angezeigt wird.

Bundle ohne type, Referenz ins Leere
{"resourceType":"Bundle","entry":[{"resource":{"resourceType":"Observation","id":"o","sta…

Warnung: Bundle.type fehlt. Das Feld ist in R4 ein Pflichtfeld (1..1).

Warnung: Referenz subject = "Patient/zzz": nicht im Bundle.

FAQ

Was ist ein FHIR-Viewer?

Ein FHIR-Viewer macht FHIR-Daten lesbar. Dieser Viewer liest JSON oder XML einer Ressource oder eines Bundles, zeigt sie als Karte und als aufklappbaren Baum, listet bei Bundles die Einträge und löst Referenzen innerhalb des Bundles auf. Er dient zum Lesen und Nachvollziehen, nicht zum Bearbeiten oder Senden.

Werden meine Daten hochgeladen?

Nein. Eingaben und Dateien werden im Browser ausgewertet. Die Seite lädt keine Skripte, Schriften oder Tracker von Dritten und setzt keine Cookies. Eine Content-Security-Policy mit connect-src 'none' verbietet dem Seitencode Netzwerkanfragen; der Quellcode ist öffentlich einsehbar. Das ist ein technischer Schutz, aber keine Zusicherung für Ihre rechtliche Situation.

Was prüft der Viewer, und was nicht?

Er prüft die JSON- bzw. XML-Syntax, ob der resourceType in der R4-Liste steht, wenige Pflichtfelder (Observation: status und code; Condition: subject; Encounter: status; MedicationRequest; DiagnosticReport; Bundle: type), die Bundle-Regeln bdl-1, bdl-3, bdl-4, bdl-7 und bdl-9 bis bdl-12, die Regeln obs-6 und con-5, das Format von id und Datumswerten, einzelne Wertelisten (Patient.gender, Bundle.type, Observation.status), mehrere value[x] in einer Ressource, leere Arrays und Texte, null-Werte sowie Referenzen innerhalb eines Bundles. Nicht geprüft werden Profile, Terminologien und ValueSets, allgemeine Kardinalitäten und alle übrigen Invarianten. Er ist deshalb kein Validator und ersetzt weder den offiziellen FHIR-Validator noch eine Profilprüfung.

Welche FHIR-Versionen werden unterstützt?

Die Hinweise beruhen auf R4 (4.0.1): Ressourcenliste, Pflichtfelder und Bundle-Regeln. Karte und Baum hängen nicht von einem Schema ab, daher können auch Ressourcen aus R4B oder R5 angezeigt werden. Die Hinweise können bei solchen Daten aber falsch anschlagen. Zwei R5-Formen (Encounter mit actualPeriod oder class als Liste, MedicationRequest.medication als CodeableReference) erkennt der Viewer als Heuristik und weist darauf hin; geprüft wird R5 nicht.

Kann der Viewer JSON und XML?

Ja, beides. XML wird in dieselbe Struktur wie JSON umgewandelt, die Werte stammen aus den value-Attributen. Ohne Schema erkennt der Viewer Listen in XML nur, wenn ein Element mehrfach vorkommt; ein einzelner Listeneintrag erscheint deshalb als Einzelwert. FHIRPath wird auf der umgewandelten Struktur ausgewertet, und der Download einer Ressource ist immer JSON.

Was ist ein FHIR-Bundle?

Laut Spezifikation ist ein Bundle ein Container für eine Sammlung von Ressourcen, zum Beispiel ein Suchergebnis, ein Dokument, eine Nachricht oder eine Transaktion. Die Art steht in Bundle.type. Der Viewer zeigt die Anzahl je Ressourcentyp und die Liste der Einträge und macht Referenzen anklickbar.

Kann ich MIO-Dateien der KBV öffnen?

Der Viewer liest FHIR-JSON und FHIR-XML und kann deshalb Ressourcen anzeigen, die in dieser Form vorliegen. Er wurde nicht mit echten MIO-Dateien getestet und prüft nichts gegen die MIO-Profile. Für die Profilprüfung nennt die KBV Validierungspakete mit dem HL7-Validator.

Darf ich echte Patientendaten einfügen?

Besser nicht: Verwenden Sie Testdaten oder anonymisierte Daten. Auch wenn der Seitencode nichts versendet, liegen eingefügte Daten im Arbeitsspeicher Ihres Browsers. Ob Sie echte Patientendaten in einem Browserwerkzeug verarbeiten dürfen, richtet sich nach den Vorgaben Ihrer Einrichtung und nicht nach dieser Seite.

Weitere Werkzeuge

Dieselben Grundsätze (läuft im Browser, kein Upload) gelten für weitere Viewer desselben Entwicklers. Zu FHIR gehören vor allem zwei Nachbarformate:

Über dieses Projekt

Entwickelt von Thomas Freimoser, München / Remote – freimoser.de · LinkedIn. Kostenlos, ohne Konto, Quellcode im GitHub-Repository.