SPLG Grouper

Testcase

Zur Überprüfung einer Integration können Fälle als Testcase festgehalten werden. Ein Testcase enthält die Eingabedaten eines Falls zusammen mit dem erwarteten Gruppierungsergebnis und lässt sich so reproduzierbar gegen den Grouper prüfen. Das Format wird auch verwendet, um Fragen zu einzelnen Fällen eindeutig zu dokumentieren.

Erzeugung

Beide Module können zu einem Fall den passenden Testcase schreiben. Im Java-Modul beispielsweise:

Result result = grouper.group(fall);
grouper.writeTestcaseWithLog(fall, result, "fall-0815.txt");

Die erzeugte Datei enthält die Eingabefelder des Falls, die verwendete Konfiguration sowie das ermittelte Ergebnis samt Nachvollziehbarkeits-Log. Sie kann unverändert zurückgeschickt werden, um ein Ergebnis zu belegen oder eine Abweichung zu melden.

Aufbau

Ein Testcase ist eine einfache UTF-8-Textdatei mit zeilenweisen Schlüssel Wert-Angaben. Zeilen, die mit # beginnen, sind Kommentare (und enthalten u. a. das ermittelte Ergebnis). Der funktionale Teil – Konfiguration und Falldaten – wird beim erneuten Einlesen wieder zum selben Fall.

Kopf (Umgebung und Ergebnisübersicht)

Kommentarzeilen mit Angaben zur Umgebung und – falls ein Ergebnis vorliegt – zur verwendeten Definition und Spitalliste:

# SPLG Testcase
# Timestamp   2026-03-15 10:13:26
# Platform    linux
# OS          6.12.90-amd64
# CPU         4 cores
# Grouper     2026.2.1
# Defversion  A_2026_8
# Spitalliste A_2026_zh_1

# LA 71291845,8000 2026: GEB1,VIS1.3|0101-3008,...

Die # LA-Zeile listet die Leistungsaufträge des Betriebs des Falls (mit Gültigkeitszeitraum im Format TTMM-TTMM, siehe Gültigkeitszeiträume).

Konfiguration

release <Release>
Der zu verwendende Release, z. B. A_2026.
kantonsoverride <Kanton>
Optionaler Wohnkanton-Override.
with-log
Markiert, dass beim erneuten Gruppieren das Nachvollziehbarkeits-Log erzeugt werden soll.
sl <burnr,plz,standort,referenz,jahr,kanton,SPLG,…>
Eine In-Memory-Spitalliste (aus addSpitalliste), ein Eintrag pro Zeile.

Falldaten

Die Fallfelder entsprechen den Feldern der Falldaten-Klasse. Skalare Felder werden als schlüssel wert geschrieben, die Listenfelder als eigene Zeilen:

Skalare
burnr, fallid, plz, standort, standortkanton, wohnkanton, austritt, agey, aged, ssw, ggw, dmb, freiwilligkeit, falltyp sowie die Durchreiche-Felder. Leere Felder werden weggelassen.
diagnose <code,seitigkeit>
Eine Diagnose (die erste ist die Hauptdiagnose).
behandlung <code,seitigkeit,beginn,ambExt>
Eine Behandlung; direkt darauf folgende op-Zeilen gehören zu ihr.
op <gln,funktion,zulassung>
Ein Operateur der vorangehenden Behandlung.
bewegung <beginn,ende,art,burnr>
Eine Patientenbewegung.

Ergebnis

Das ermittelte Ergebnis wird als Kommentarblock angehängt (rein informativ – die Felder entsprechen der Result-Klasse):

# Output:
# SPLG:        GEB1
# Quer:        …
# MFZS:        …
# MFZO:        …
# Operateure:  …
# LACTRL:      0
# Lactrlcodes: …
# SLST:        2 Liste des Wohnkantons
# Errorcode:   0

Wurde der Testcase mit with-log erzeugt, folgt am Ende ein # Log-Details-Block mit dem Regel-Trace der Gruppierung.

Da der funktionale Teil dem Eingabeformat des eigenständigen Groupers entspricht (siehe Eingabeformate), lässt sich ein Testcase auch direkt vom Grouper einlesen.