Modul-Loader
Lädt Synthea-GMF-Module (JSON)
Zustandsautomaten-Kern
Zustandssemantik und Übergänge
Bedingungsauswertung
Guards und Ausdrücke
Modul-Engine
Aktive Module und Zustandsauswertung
Generator
Populationsgröße, Seed, Konfiguration und Modulfilter
Demografie-Sampler
Simulationsschleife
Export-Manager
Person
Zufall mit Seed, Attribute, aktive Module
HealthRecord
Kontakte, Erkrankungen, Medikamente, Prozeduren, Beobachtungen
Referenzdaten
Leistungserbringer, Kostenträger, Orte, Demografie, Kosten
FHIR R4
Bundles
JSON
Patientendokumente
CSV
Ressourcentabellen
Eigene
Parquet, Datenbanken, Message Queues
01 - Was ist PySynthea
Ein Simulator im Stil von Synthea für KI im Gesundheitswesen, die in Python denkt.
Synthetische Gesundheitsdaten ermöglichen es Teams, Prototypen zu bauen, zu lehren, zu testen und zu benchmarken, ohne geschützte Gesundheitsinformationen offenzulegen. Synthea hat das für longitudinale EHR-Daten praktikabel gemacht, aber viele Forschende arbeiten heute fast vollständig in Python, pandas, Jupyter, PyTorch, Dask und PySpark.
PySynthea behält das Kernmodell von Synthea bei: modulare Zustandsautomaten für Krankheiten, demografische Stichproben der Bevölkerung, longitudinale Patientenhistorien und standardkonformen Export. Der Unterschied ist operativ. Es lässt sich mit Standard-Python-Tools installieren, läuft ohne JVM, bietet eine saubere Python-API und bringt die erzeugten Datensätze direkt in die Workflows von Gesundheitsdatenwissenschaft und angewandter KI.
Die Kernidee ist einfach: Die Erzeugung synthetischer Gesundheitsdaten sollte eine Python-Bibliothek sein, keine separate Laufzeit, die Data Scientists über Dateien und Shell-Befehle anbinden müssen.
02 - Warum es wichtig ist
Weniger Einrichtungsaufwand, schnellere reproduzierbare Forschung.
Echte EHR-Daten sind durch HIPAA, DSGVO, institutionelle Prüfung, vertragliche Beschränkungen und Re-Identifizierungsrisiken eingeschränkt. Synthetische Daten ersetzen keine echte klinische Validierung, geben Teams aber eine teilbare, reproduzierbare Grundlage für frühe Experimente und Engineering.
- Installation über normale Python-Workflows, einschließlich pip und uv.
- pip
- Führt originale JSON-Module des Synthea Generic Module Framework aus.
- GMF
- Exportiert standardkonforme Bundles für Interoperabilitätstests.
- FHIR R4
- Versorgt pandas, Tensoren, Notebooks und verteilte Analyse-Pipelines.
- ML
Designziele
| Ziel | Was es bedeutet |
|---|---|
| Zugänglichkeit | Python-native Installation und Nutzung, ohne externe JVM-Laufzeit. |
| Interoperabilität | Natürliche Integration mit pandas, NumPy, PyTorch, Dask, PySpark, Airflow und Jupyter. |
| Reproduzierbarkeit | Deterministische Erzeugung aus expliziten Seeds und Konfigurationen. |
| Erweiterbarkeit | Dokumentierte Erweiterungspunkte für Zustandstypen, Exporter, Module und Simulationsverhalten. |
| Skalierbarkeit | Interaktive Notebook-Kohorten und größere parallele Batch-Jobs nutzen dieselbe API. |
| Standardtreue | FHIR R4, CSV, JSON und Synthea-kompatible Kennungen bleiben vollwertige Ausgaben. |
03 - So funktioniert es
Generator, Weltmodell, Modul-Engine, Exporter.
PySynthea ist als einzelne Python-Distribution mit vier Hauptpaketen organisiert: der Simulations-Engine, dem Gesundheits-Weltmodell, Export-Adaptern und Hilfsprogrammen für Konfiguration und gemeinsames Verhalten.
Der Generator koordiniert demografische Stichproben, Simulation, Modulausführung und Export. Jede Person trägt deterministischen Zufall, Attribute, den Zustand aktiver Module und einen HealthRecord. Module werden aus Synthea-GMF-JSON geladen und als typisierte Zustandsautomaten ausgeführt, darunter Kontakte, Erkrankungsbeginn, Medikamentenverordnungen, Beobachtungen, Prozeduren, Behandlungspläne, Geräte, Diagnoseberichte, Impfungen und Endzustände.
Die Generierungs-Pipeline
Schritt 1
Initialisieren
Konfiguration, Zufalls-Seed, Leistungserbringer, Kostenträger, Ressourcen und Module laden.
Schritt 2
Stichprobe ziehen
Demografie, Ort, Geburtsdatum und sozialen Kontext aus den konfigurierten Verteilungen ziehen.
Schritt 3
Simulieren
Krankheitsmodule mit einer longitudinalen, zeitschrittbasierten Engine fortschreiben.
Schritt 4
Ausgeben
Kontakte, Erkrankungen, Medikamente, Prozeduren, Beobachtungen und Kosten schreiben.
Schritt 5
Ordnen
Zeitliche Kohärenz über Jahrzehnte simulierter Patientenhistorie wahren.
Schritt 6
Exportieren
FHIR-, CSV-, JSON-, Parquet- oder datenbankfertige Ausgaben erzeugen.
04 - Ausgaben und Workflows
Von Notebook-Kohorten bis zu FHIR-Testdaten und Data Lakes.
Da die Erzeugung im selben Prozess läuft, lassen sich Datensätze sofort als Python-Objekte prüfen, als DataFrames materialisieren, in modellfertige Sequenzen umwandeln, auf einen FHIR-Server schreiben oder für verteilte Jobs partitionieren.
| Format | Hauptverwendung |
|---|---|
| FHIR R4 | FHIR-Server-Befüllung, Validierung, Interoperabilitätstests und SMART-on-FHIR-Entwicklung. |
| CSV | Flache Ressourcentabellen für pandas, Tabellenkalkulationen und Massenladen in Datenbanken. |
| JSON | Verschachtelte Patientendokumente für Debugging, Dokumentdatenbanken und die Prüfung der vollständigen Historie. |
| Parquet | Spaltenorientierte Analysen für Data Lakes, PySpark, Dask und Lakehouse-Workflows. |
| Relationale DB | Forschungs-Warehouses, Testdatenbanken und nachgelagerte Schema-Mappings über SQLAlchemy oder pandas. |
Repräsentative Workflows
- Kohortenerzeugung im Notebook. Eine kleine Kohorte erzeugen, Datensätze prüfen und Parameter in wenigen Zellen iterieren.
- Individuelle Patientenerstellung. Einen deterministischen Patienten für Lehre, Debugging oder Unit-Tests von Modulen bauen.
- Parallele Batch-Erzeugung. Unabhängige Patienten über Threads, Prozesse, Dask-Worker oder PySpark-Partitionen laufen lassen.
- ML-Benchmarking. Kohorten mit festem Seed neu erzeugen, um Modelle unter kontrollierten synthetischen Verteilungen zu vergleichen.
- Interoperabilitätstests. Kontrollierte FHIR-Bundles für End-to-End-Software- und Integrationstests erzeugen.
05 - Zielkonflikte und künftige Arbeit
Eine Python-Grundlage für die nächste Generation synthetischer klinischer Simulation.
PySynthea ist eine unabhängige Engine, daher bleibt exakte semantische Parität mit dem ursprünglichen Java-Synthea ein fortlaufendes Validierungsziel. Ziel ist es, die GMF-Module von Synthea als gemeinsame klinische Inhaltsquelle zu erhalten und die Engine für Python-Nutzer leichter erweiterbar, profilierbar, testbar und einbettbar zu machen.
Die Arbeit unterscheidet zudem klar zwischen synthetischen Daten im Stil von Synthea und gelernten generativen Modellen. PySynthea ist wertvoll für strukturelle, longitudinale, standardkonforme Datensätze, für Lehre, Reproduzierbarkeit und Pipeline-Tests. Es ersetzt weder die klinische Validierung an echten Kohorten noch ein gelerntes Modell, das die Verteilung einer bestimmten Einrichtung abbildet.
PySynthea senkt die Kosten für den Einsatz synthetischer EHR-Daten in KI für das Gesundheitswesen, doch ein verantwortungsvoller Einsatz erfordert weiterhin Validierung, Governance und ein klares Verständnis dessen, was synthetische Daten belegen können und was nicht.
Forschungsrichtungen
- GPU-Beschleunigung. Vektorisierte und gebündelte Simulation mit CUDA, JAX oder PyTorch erkunden.
- LLM-gestützte Module. Krankheitsmodule aus klinischen Leitlinien entwerfen, mit menschlicher Prüfung in der Schleife.
- Multi-Agenten-Patientensimulation. Patientenverläufe über Ausbrüche, Haushalte und Systemüberlastung koppeln.
- Umgebungen für Reinforcement Learning. Synthetischen Patientenzustand und Behandlungsaktionen für klinische RL-Benchmarks bereitstellen.
- Multimodale synthetische Daten. Strukturierte EHR-Historien mit synthetischer Bildgebung und klinischem Text verknüpfen.




