FHIR × Imaging × LLM

Cases — Medizinphysik × FHIR · Initiativ Dr. Markus Kellermeier

imfusion.com ↗

FHIR × Imaging × LLM

Mini-Demo zur Brücke zwischen medizinischer Bildphysik, FHIR-Systementwicklung und LLM-Orchestrierung — fünf Cases, unterschiedliche Modalitäten, ein klinischer Schnitt.

Lokaler FHIR-Demo-Speicher (in-process, ohne atolleeHealth) (Fallback — http://127.0.0.1:11800/fhir nicht erreichbar)

FHIR verbindet klinische IT, LLMs und Bildverarbeitung — strukturierte Metadaten und Workflow oben, Voxel und Algorithmen in der Pipeline.

  1. LLM / AgentSprache · Tool-Aufrufe · Orchestrierung
  2. FHIRPatient · ImagingStudy · Terminology · DiagnosticReport · Observation
  3. PipelineSimpleITK/ITK (Demo) · produktives SDK möglich
  4. BilddatenVoxel · Volumen · Vektoren · DICOM

FHIR heute

HL7 FHIR ist heute die gemeinsame API-Schicht zwischen KIS, PACS, Apps, Payern und KI — nicht nur ein Austauschformat, sondern die Sprache, mit der Agenten klinische Daten lesen, begründen und zurückschreiben.

Im Gesundheitssystem

  • ONC und CMS treiben FHIR-APIs für Krankenhäuser und Payer voran — u. a. Patientenzugriff, Interoperabilität und Prior Authorization (Da Vinci CRD/DTR/PAS). HL7 News · Agentic AI & FHIR
  • Die US-Behörde ONC beschreibt FHIR-Ressourcen und REST-APIs als Grundbausteine, die mehrere KI-Anwendungen wiederverwenden — mit klaren Regeln zu Sicherheit, Consent und Provenance. ONC ISP · AI for Interoperability

Agenten sprechen FHIR

  • Das Model Context Protocol (MCP) wird über FHIR-Schnittstellen gelegt: Agenten rufen standardisierte Tools (Search, Read, Write) auf, die Autorisierung und Audit bleiben am FHIR-Backend. ONC ISP · MCP + FHIR · MCP for FHIR (Firearrow)
  • Agentic AI nutzt FHIR bereits produktiv — z. B. Prior Authorization über die Da-Vinci-APIs: der Agent interpretiert klinischen Kontext und führt CRD, DTR und PAS aus. HL7 News · e-PA Lifecycle
  • Diese Demo folgt demselben Muster: der Copilot ruft FHIR-Tools auf (ImagingStudy, Match, Pipeline) statt proprietärer Dateipfade.

Forschung & Health AI

  • Googles MedGemma 27B Multimodal wurde u. a. auf FHIR-basierten EHR-Daten trainiert und auf synthetischen FHIR-Patientenakten evaluiert — mit deutlichem Vorteil gegenüber text-only Varianten. Google Research · MedGemma · MedGemma Model Card
  • MedGemma lässt sich in agentische Systeme einbinden — neben Bild- und Textverständnis explizit mit FHIR-Generatoren und -Interpretern. HAI-DEF · MedGemma
  • Für Bildgebung gilt dasselbe Prinzip: strukturierte Ressourcen (ImagingStudy, DiagnosticReport, Observation) verbinden PACS, Segmentierung und LLM — die Voxel bleiben in DICOM.

Benchmark — FHIR-Server dieser Demo

Live-FHIR: Lokaler FHIR-Demo-Speicher (in-process, ohne atolleeHealth) (Fallback — http://127.0.0.1:11800/fhir nicht erreichbar). Auszug aus lokalem Prod-Benchmark 2026-07-07 — Prod (synthetisch, passes=3).

MetrikatolleeHealth R6 (TypeScript)HAPI R4 (Java) · Community-Referenz-Server
read (p50)1.60 ms1.54 ms
metadata (p50)0.52 ms40.8 ms
POST / PUT (p50)3.1–3.9 ms5.0–5.3 ms
batch 100 (p50)301.9 ms457.5 ms
TX-Semantik (A1–A7)7/74/7

Gesamt p50: atolleeHealth R6 (TypeScript) 8/17 Siege vs. Community-Referenz. Vergleich FHIR R6 (atolleeHealth) vs. HAPI R4 als Community-Referenz-Server — Latenz ist kontextabhängig; für komplexe Synthea-Bundles gewinnt HAPI bei Batch-Import, atolleeHealth R6 bei kleinen Writes und strikter Transaction-Semantik.

FHIR-Ökosystem

Rund um DICOM und Bilddaten nutzt FHIR verschiedene Ressourcentypen — von Patient und Auftrag über Studien-Metadaten und Terminology (LOINC, SNOMED CT, ICD-10) bis zu Befund und Messwert. Sie verbinden KIS, Agenten und Pipeline; die Voxel selbst bleiben in DICOM.

Klinischer KontextWer, wann, warum
  • Patientsubject von ImagingStudy & DiagnosticReport
  • EncounterAmbulant/stationärer Kontext
  • ConditionIndikation für Bildgebung
  • PractitionerAnforderer / Auswerter
Auftrag & WorkflowBevor Voxel fließen
  • ServiceRequestBildgebungsauftrag (Modalität, Body Site)
  • TaskPipeline-Job, Freigabe, Agent-Orchestrierung
Studie & MetadatenAdressierung, nicht die Voxel
  • ImagingStudyStudie, Serie, Instanz-UIDs, Modalität
  • ImagingSelectionAuswahl von Instanzen/Regionen (R5+)
  • DeviceModalitätsgerät, Software-Version
Pixel-ZugangFHIR → DICOM / WADO
  • EndpointWADO-RS / DICOMweb-URL
  • DocumentReferenceDICOM-SR, SEG, PDF-Befund
ErgebnisseLLM-lesbar, strukturiert
  • DiagnosticReportBefund, conclusion, basedOn ImagingStudy
  • ObservationHU, SUV, Längen, Doppler-Metriken
  • MediaFoto/Video (seltener für CT-Volumen)
TerminologyKlinische Codes statt Freitext
  • CodeSystemLOINC, SNOMED CT, ICD-10-GM, DICOM-Modalitäten
  • ValueSetGültige Codes für Observation, Condition, Body Site
  • ConceptMapMapping zwischen Kodiersystemen (z. B. DICOM ↔ SNOMED)
  • $expandValueSet auflösen — welche Codes sind erlaubt?
  • $validate-codeCode + System prüfen, bevor Observation/Report geschrieben wird
KI & GovernanceHerkunft & Zugriff
  • ProvenanceModell, Pipeline-Version, Herkunft
  • ConsentDarf die KI auf diese Studie zugreifen?

Terminology in der Demo: Der Demo-FHIR-Server atolleeHealth R6 (TypeScript) stellt CodeSystem, ValueSet und ConceptMap bereit — LOINC, SNOMED CT, ICD-10-GM u. a. $expand liefert gültige Codes aus ValueSets, $validate-code prüft sie; Observation und DiagnosticReport werden danach per REST mit coding/conclusionCode geschrieben — nicht nur Freitext in conclusion.

Fünf Cases demonstrieren dieselbe Architektur an unterschiedlichen Modalitäten: FHIR für Metadaten und Workflow, Pipeline für Voxel, Volumen, Vektoren und Segmentierung, strukturierte Ergebnisse zurück ins klinische System.

Architektur

Der LLM- oder UI-Layer spricht FHIR: `Patient` und `ImagingStudy` für Kontext und Adressierung, `Endpoint`/DICOM-UIDs für Pixel-Zugang, `DiagnosticReport` und `Observation` für Ergebnisse. Die Pipeline rechnet Voxel, Volumen und Vektoren — nicht in FHIR gespeichert.

Produktionspfad

In der Demo: SimpleITK/ITK für Voxel-, Volumen- und Segmentierungsalgorithmen. Derselbe FHIR-Schnitt lässt sich mit einem produktiven Bildverarbeitungs-SDK anbinden.