Devlog #13: Duplikate in den Statistiken bereinigen

15.06.2026 18:11
Author: jsteltner
Category: Devlog
Tags: Info
Wenn dieselben IVENA-Fälle mehrfach importiert werden, entstehen in der Datenbank doppelte Allocations und damit aufgeblähte Zahlen in den Statistik-Projektionen. Das ist kein theoretisches Problem: Bei wiederholten Exporten oder Korrektur-Importen kann derselbe Fall mehrfach landen, ohne dass das auf den ersten Blick auffällt.

Um das systematisch zu bereinigen, habe ich einen Deduplizierungsprozess eingeführt. Er unterscheidet zwei Fälle:

  1. Wenn eine Einsatznummer (ENR) vorhanden ist, reicht diese allein nicht als Identifikator. Denn die ENR-Nummern können sich über Monate hinweg wiederholen. Deshalb prüfen wir, ob Klinik, ENR-Hash und die eigentlichen Falldaten (Ankunftszeit, Alter, Geschlecht, Dringlichkeit, Fachabteilung und weitere Merkmale) übereinstimmen. Nur dann handelt es sich um ein echtes Re-Import-Duplikat.
  2. Wenn keine ENR vorliegt, vergleichen wir einen inhaltlichen Fingerabdruck aus denselben Falldaten. Dabei berücksichtigen wir dann noch sehr viel mehr Daten, um das falsch positive Erfassen zu vermeiden.

Pro Duplikatgruppe bleibt ein Datensatz erhalten, mit einer klaren Priorität: Zuerst gewinnt der neueste Import (der aktuellste IVENA-Export hat Vorrang). Bei Gleichstand zählt der vollständigere Datensatz (mit Notizen, Assessment oder Nebenindikation). Als letzter Tiebreaker dient die niedrigste interne ID einer Allocation.

Bewusst nicht zusammengelegt werden Fälle, die zwar dieselbe ENR-Nummer tragen, aber aus unterschiedlichen Monaten oder Jahren stammen, denn das sind eigenständige Einsätze, keine Import-Duplikate.

Der Prozess läuft aktuell über einen Befehl in der Konsole, ganz konkret ist das app:projection:deduplicate. Standardmäßig im Dry-Run-Modus, der nur analysiert und berichtet. Mit dem zusätzlichen Argument --execute werden Duplikate entfernt, verwaiste Projektionszeilen bereinigt und die Materialized Views neu aufgebaut. So bleiben die Statistiken belastbar, auch wenn in der Vergangenheit mehrfach importiert wurde.

Und der Erfolg lässt sich bereits sehen: Mit der ersten Ausführung heute Abend konnte ich 29.896 Duplikate aus dem bisherigen Bestand der Datenbank entfernen. Das entspricht ungefähr 1,57% aller Einsätze. Ich würde sagen, dass hat sich gelohnt! 💪

Comments

no comments
Please sign in to leave a comment. Login

Feedback