In Devlog #8 habe ich die Indikationsprofile vorgestellt: ein Dashboard pro Verdachtsdiagnose, mit automatischen Einblicken, die eine Indikation gegen den Rest des gewählten Scopes halten. Das funktioniert gut, solange man genau diese eine Diagnose betrachten will. In der Praxis stellt sich aber oft eine andere Frage: Wie unterscheiden sich zwei verwandte Indikationen voneinander? Und wie sieht die Versorgung für ein ganzes klinisches Themengebiet aus, etwa alle respiratorischen Notfälle oder alle neurologischen Krampfanfälle, statt nur für einen einzelnen IVENA-Code?
Genau dafür habe ich in den letzten Wochen zwei Erweiterungen umgesetzt: Indikationsgruppen als übergeordnete Sicht und einen direkten Indikationsvergleich für zwei ausgewählte Diagnosen.
Indikationsgruppen: vom Einzelcode zum klinischen Bild
Einzelne IVENA-Indikationen sind präzise, aber oft zu fein für fachliche Fragestellungen. Eine Dyspnoe kann sich über mehrere Codes verteilen; ein kardiologischer Notfall lässt sich nicht sinnvoll an einem einzigen Wert ablesen. Indikationsgruppen schließen diese Lücke: Mehrere normalisierte Indikationen werden zu einer fachlich benannten Gruppe zusammengefasst, mit eigenem Dashboard, das dieselben Kennzahlen und Diagramme zeigt wie das bekannte Indikationsprofil, nur aggregiert über alle Gruppenmitglieder.
Administratoren können Gruppen im Admin-Bereich anlegen, benennen und Indikationen zuordnen. Für den Einstieg gibt es außerdem einen Referenzsatz mit rund 20 vordefinierten Gruppen, von akuter Dyspnoe über Brustschmerz und Krampfanfälle bis zu pädiatrischen und geburtshilflichen Notfällen. Diese Definitionen lassen sich per Konsolenbefehl in eine Umgebung laden, sodass man nicht jede Gruppe von Hand aufbauen muss.
Auf dem Indication Insights-Überblick tauchen die Gruppen jetzt direkt neben den bekannten Top-25-Indikationen auf: In der Seitenleiste findet man einen Gruppen-Picker und eine Tabelle der zehn häufigsten Gruppen im gewählten Scope und Zeitraum, mit Fallzahl, Anteil und direktem Link zum Gruppen-Dashboard.
Das Gruppen-Dashboard selbst zeigt oben eine kompakte Übersicht: links der Gruppen-Picker zum Wechseln, rechts die Mitgliederliste mit Fallzahl und Anteil innerhalb der Gruppe. Längere Listen lassen sich aufklappen; jede Indikation verlinkt direkt in ihr Einzelprofil. Darunter folgen die gewohnten Auswertungen: Zusammenfassung, Verlauf, Heatmaps, Ressourcen, Transport, klinische Merkmale, nur eben für die gesamte Gruppe.
Besonders praktisch finde ich den Einstieg aus dem Admin heraus: Bei jeder Indikationsgruppe gibt es eine Aktion „In Statistiken öffnen“, die das passende Dashboard in einem neuen Tab öffnet. So lässt sich nach dem Anlegen einer Gruppe sofort prüfen, ob die Zusammenstellung fachlich Sinn ergibt.
Indikationsvergleich: zwei Diagnosen nebeneinander
Wo das Indikationsprofil fragt „Wie unterscheidet sich diese Indikation vom Durchschnitt?“, beantwortet der neue Vergleich die Frage „Wie unterscheiden sich diese beiden Indikationen voneinander?“, im selben Scope und Zeitraum, den man ohnehin schon gewählt hat.
Man wählt zwei Indikationen aus, über die Suche auf dem Insights-Index, direkt vom Einzel-Dashboard aus oder, neu, auch aus einer Indikationsgruppe heraus. Auf der Vergleichsseite stehen dann beide Diagnosen gegenüber: KPI-Kacheln mit absoluter Differenz und Verhältnis, Verteilungen nach Geschlecht, Dringlichkeit, Ressourcen, klinischen Merkmalen, Transportart, Altersgruppen und Transportzeit sowie die bekannten Tageszeit- und Schicht-Heatmaps aus dem Benchmarking-Bereich.
Darunter liefern automatische Einblicke Hinweise auf auffällige Unterschiede, etwa bei Notarztanteil, Reanimation, Altersstruktur oder Transportdauer. Man muss nicht selbst fünf Statistiken nebeneinander legen; die Anwendung hebt ab, wo die beiden Indikationen sich statistisch unterscheiden.
Aus Indikationsgruppen heraus geht das besonders schnell: Auf dem Gruppen-Dashboard kann man über einen Compare-Button zwei Mitglieder auswählen, mit Schnellauswahl etwa für die beiden häufigsten Indikationen oder für größte versus kleinste Fallzahl. Das ist hilfreich, wenn man innerhalb einer Gruppe verstehen will, welche Codes den Großteil der Fälle tragen und ob sich die Randindikationen vom Schwerpunkt unterscheiden.
Technisch im Hintergrund
Beide Funktionen bauen auf der Architektur auf, die in den Devlogs #7 bis #10 beschrieben wurde. Indikationsgruppen nutzen dieselbe Dashboard-Pipeline wie die Einzelprofile, nur mit einem Subject-Typ, der mehrere Indikations-IDs zusammenfasst. Die Abfragen laufen weiterhin über die Projektionsschicht; Scope und Zeitraumfilter verhalten sich identisch zu den bestehenden Statistiken.
Der Indikationsvergleich setzt konsequent auf die Benchmarking-Infrastruktur: Kennzahlen, Verteilungen und Heatmaps werden als Vergleichspaar berechnet und in derselben Chart-Logik dargestellt wie beim Krankenhaus-Benchmarking. Eine eigene Insight-Engine wertet die Differenzen aus und formuliert daraus verständliche Hinweise.
Für die Referenzgruppen habe ich ein YAML-Format eingeführt, das Gruppenname, optionale Kategorie und die zugehörigen IVENA-Codes beschreibt. Ein Loader synchronisiert diese Definitionen mit der Datenbank, inklusive Warnungen, wenn für einen Code keine normalisierte Indikation gefunden wird. In Entwicklungsumgebungen werden automatisch eine Handvoll Gruppen angelegt, damit die neuen Oberflächen sofort befüllt sind.
Was als Nächstes kommt
Indikationsgruppen und -vergleich sind für mich der nächste logische Schritt nach den Einzelprofilen aus Devlog #8 und dem Benchmarking aus Devlog #10: erst die isolierte Betrachtung, dann der Vergleich, zuerst gegen den Durchschnitt, jetzt direkt zwischen zwei Diagnosen und über fachlich definierte Gruppen hinweg.
Als Nächstes plane ich vor allem Feinschliff: weitere vordefinierte Gruppen nach Feedback aus der Praxis, klarere Hinweise bei Gruppen mit wenigen Fällen und engere Verknüpfungen zwischen Gruppen-Dashboard, Einzelprofil und Vergleich. Wenn ihr die neuen Bereiche ausprobiert, freue ich mich wie immer über Feedback direkt über die Sprechblase in der Anwendung.