SPLG Grouper

Testfall

Einführung

Der SPLG-Grouper kann zu einem konkreten Fall einen Testfall erzeugen und ausführen. Dies ist hilfreich, wenn ein unerklärliches oder unerwartetes Gruppierungsergebnis analysiert oder gemeldet werden soll. Durch das Erzeugen eines Testfalls steigt die Chance, dass das Verhalten beim AFG rasch nachvollzogen und korrigiert werden kann.

Ein Testfall ist eine kompakte Textdatei, die einen einzelnen Fall mitsamt der relevanten Konfiguration (Release, ggf. eigene Spitalliste oder Wohnkanton-Override) so beschreibt, dass die Gruppierung reproduzierbar wiederholt werden kann.

Bei Fragen zu einem konkreten Fall sind wir froh, wenn Sie uns den passenden Testfall mitschicken. Damit liegen uns alle nötigen Informationen vor, um den Sachverhalt zu analysieren.

Testfall aus einem Fall erzeugen

Liegt ein konkreter Fall in den Eingabedaten vor, kann zu diesem Fall ein Testfall erzeugt werden. Dazu wird die CLI im Testcase-Modus aufgerufen:

splg-grp-cli.exe --release A_2026 --input C:\Temp\inputdata ^
                 --create-testcase-for <burnr> <fallid>

Der Grouper sucht in den Eingabedaten den Fall mit der angegebenen BURNR und Fall-ID, gruppiert ihn und schreibt den Testfall im aktuellen Verzeichnis unter dem Namen testcase-<burnr>-<fallid>-<datetime>.txt. Mit --output <dir> kann ein anderes Zielverzeichnis angegeben werden.

Mit der zusätzlichen Option --with-log wird der Testfall um detaillierte Regelverlauf-Informationen erweitert, die zeigen, wie der Grouper zum Resultat gekommen ist:

splg-grp-cli.exe --release A_2026 --input C:\Temp\inputdata ^
                 --create-testcase-for <burnr> <fallid> --with-log

Format eines Testfalls

Hier ein Beispiel eines einfachen, aber kompletten Testfalls:

# SPLG Testcase
# Timestamp   06.05.2026 17:49:54
# Grouper     2026.2.1
# Defversion  A_2023_21
# Spitalliste A_2023_3_zh

release         A_2023

burnr           12345678
fallid          1234568
plz             8000
standort        01
wohnkanton      ZH
austritt        20230918
agey            28
aged            0

diagnose        Z390

# Output:
# SPLG:        GEB1
# MFZS:
# MFZO:
# LACTRL:      99
# Lactrlcodes:
# Errorcode:   0

Ein Testfall besteht aus Textzeilen. Zeilen, die mit # beginnen, sind Kommentare und werden bei der Ausführung ignoriert. Sie enthalten dennoch wichtige Informationen über den verwendeten Grouper, die verwendete Definition und (sofern angegeben) die ursprünglichen Resultate.

Die eigentlichen Daten sind in Blöcke gruppiert:

Jede Zeile enthält ein Schlüsselwort und einen Wert, getrennt durch Leerzeichen.

Testfall ausführen

Liegt ein Testfall als Datei vor, kann er direkt ausgeführt werden:

splg-grp-cli.exe --testcase testcase.txt

Der Grouper liest den Testfall ein, gruppiert ihn und schreibt einen frischen Testfall (mit aktuellem Output-Block) auf die Standardausgabe. Die Ausgabe lässt sich nach Belieben in eine Datei umleiten oder mit dem ursprünglichen Testfall vergleichen.

Mit --with-log werden zusätzlich die Regelverlauf-Informationen in die Ausgabe aufgenommen:

splg-grp-cli.exe --testcase <file> --with-log

Wesentliche Optionen wie --release, --spitalliste oder --wohnkanton-override können auch beim Ausführen erneut angegeben werden und überschreiben die Werte aus der Testfalldatei. So lässt sich ein Fall ohne Änderung der Testfalldatei mit einer anderen Definition oder einer anderen Spitalliste gegentesten.

Spitallisten im Testfall

Im Testfall können sowohl bestehende Spitallistendateien als auch ad-hoc definierte Spitallisten verwendet werden:

spitalliste <file>
Verwendet die angegebene Spitallistendatei (mehrfach angebbar). Entspricht der CLI-Option --spitalliste.
sl <eintrag>
Inline-Spitallisteneintrag im Format burnr,plz,standort,referenz,kanton,jahr[,splg[:vfrom[:vto]],...]. Praktisch für rasche Experimente mit verschiedenen Leistungsaufträgen, ohne dass eine Spitallistendatei erstellt werden müsste. Mehrfach angebbar.

Konkretes Beispiel: BURNR 12345678 erhält für das Jahr 2025 die Leistungsaufträge BP und NEO1:

sl              12345678,,,1,ZH,2025,BP,NEO1

Bei sl sind vfrom und vto optional und werden nur verwendet, wenn eine SPLG nur für einen Teil des Jahres gültig ist (Format MMTT, z. B. 0106:3112). Wird eine Standort-BURNR verwendet, können plz und standort leer gelassen werden. referenz ist 1, falls die Spitalliste eine Referenzspitalliste ist, ansonsten 0.

Kommando-Referenz

Die folgenden Kommandos können in einer Testfalldatei vorkommen. Unbekannte Kommandos werden beim Einlesen stillschweigend ignoriert. Damit lassen sich Testfälle, die für andere Varianten des SPLG-Groupers (z. B. die Integrationsmodule) erstellt wurden, ohne Anpassung verwenden — nicht unterstützte Felder bleiben einfach wirkungslos.

Konfiguration

release <release>
Wählt die zu verwendende SPLG-Definition (z. B. A_2026).
kantonsoverride <kanton>
Überschreibt den Wohnkanton des Falls. Mit - wird der Override zurückgesetzt.
spitalliste <file>
Verwendet die angegebene Spitallistendatei.
sl <burnr,plz,standort,referenz,kanton,jahr,splg:vfrom:vto,...>
Inline-Spitallisteneintrag (siehe oben).
with-log
Aktiviert den Detail-Log für die Gruppierung.

Falldaten

burnr <wert>
BURNR des Betriebs.
fallid <wert>
Fall-ID innerhalb des Betriebs.
plz <wert>
PLZ des Betriebs.
standort <wert>
Standortnummer des Betriebs.
wohnkanton <wert>
Wohnkanton des Patienten.
austritt <yyyymmdd>
Austrittsdatum des Patienten.
agey <wert>
Alter in Jahren.
aged <wert>
Alter in Tagen (nur bei Neugeborenen mit agey gleich 0).
ssw <wert>
Gestationsalter (in Tagen).
ggw <wert>
Geburtsgewicht (in Gramm).
dmb <wert>
Dauer manueller Beatmung.
freiwilligkeit <wert>
Freiwilligkeit (nur Psychiatrie).

Diagnosen, Behandlungen, Bewegungen

diagnose <code,seitigkeit>
Fügt eine Diagnose hinzu. seitigkeit ist optional (0=beidseitig, 1=links, 2=rechts). Die erste Diagnose-Zeile gilt als Hauptdiagnose.
behandlung <code,seitigkeit,beginn,ambext>
Fügt eine Behandlung hinzu. Felder am Ende können weggelassen werden.
op <gln,funktion,zulassung>
Fügt der zuletzt angegebenen Behandlung einen Operateur hinzu (funktion: 1=primär, 2=sekundär; zulassung: 1=auf Spitalliste).
bewegung <beginn,ende,art,burnr>
Fügt eine Patientenbewegung (Episode) hinzu (art: 1=inhouse).