Materialstamm-Bereinigung 2026-09-04: 17 Dubletten zusammengelegt
CI / backend-tests (push) Failing after 1m17s
CI / frontend-build (push) Successful in 23s

Live-Datenbereinigung (172 -> 155 Materialien): Excel-Import-Tippfehler und
Leerzeichen-Varianten zusammengelegt, Material 148 "Manometer SN 1308409"
korrigiert (Name -> "Manometer", materialtyp -> geraet_sn, SN als erste
geraet_instanz-Zeile). Skript und Entscheidungsprotokoll (inkl. bewusst
unverändert gelassener Fälle) dokumentiert für Nachvollziehbarkeit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-04 21:24:15 +02:00
co-authored by Claude Sonnet 5
parent 6934276e8a
commit 411e67a51f
3 changed files with 320 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# Materialstamm-Bereinigung Log
Laufender Log für Bereinigungsläufe gegen den Materialstamm (Dubletten aus dem
Excel-Import, Datentyp-Fehler). Skripte liegen unter
`backend/scripts/material_bereinigung_<datum>.py`, jeweils gegen die Live-DB
auf 192.168.1.238 ausgeführt (nicht Teil der Alembic-Migrationskette, da reine
Datenbereinigung, kein Schema-Wechsel).
## 2026-09-04
Ausgangslage: 172 Materialien, per Fuzzy-Matching (Normalisierung + `difflib`)
auf Dubletten/Tippfehler geprüft. Skript: `material_bereinigung_2026-09-04.py`.
### Zusammengelegt (17 Paare, 172 → 155 Materialien)
| Behalten | Entfernt | Grund |
|---|---|---|
| E 153 | E153 | Leerzeichen-Variante |
| Rettungsdecke | Rettungsdecke (Leerzeichen) | Leerzeichen-Variante |
| Verbandspäckchen klein | Verbandspäckchen klein (Leerzeichen) | Leerzeichen-Variante |
| Thomasholder Kind | Thomas Holder Kind | Schreibweise |
| Samsplint | Samsplint (Leerzeichen) | Leerzeichen-Variante |
| Rollenpflaster | Rollenpflaster (Leerzeichen) | Leerzeichen-Variante |
| Stethoskop | Stetoskop | Tippfehler |
| Pupillenleuchte | Puppillenleuchte | Tippfehler |
| Aluderm Strips 1,9x7,2 | Aluderm Stripes 1,9x7,2 | Tippfehler |
| Farbkodierte Blockerspritze | Farbcodierte Blockerspritze | Schreibvariante |
| Infusionssystem | Infussionssystem | Tippfehler |
| Verbandspäckchen Groß | Verbandspäckchen gross | Schreibvariante |
| Wundschnellverband 10x6 a 8 | Wundschnelölverband 10x6 | Tippfehler |
| Handschuhe | Handschuh lose | Nutzer-Entscheidung: gleiches Material |
| Schlingentupfer | Schlinggazetupfer | Nutzer-Entscheidung: gleiches Material |
| Verbandtuch 60x80 | Verbandstuch 160x80 | Nutzer-Entscheidung: Tippfehler ("1" zu viel) |
| Elastische Binde | Elastische Binden | Nutzer-Entscheidung: reiner Plural-Unterschied |
Ein echter Konflikt trat bei "Aluderm Strips/Stripes" auf: beide Varianten
waren bereits unabhängig in denselben Vorlagen (1, 4) bzw. demselben Objekt
(1) verwendet die Dublettenzeile wurde dort gelöscht statt umgehängt (siehe
`_merge()`-Logik im Skript, UNIQUE-Constraint-Konfliktbehandlung).
### Datentyp-Fehler korrigiert
- **Material 148**: Name war `"Manometer SN 1308409"` (Seriennummer im
Namensfeld statt in einem Geräte-Feld), `materialtyp='ablauf_charge'`.
Korrigiert zu Name `"Manometer"`, `materialtyp='geraet_sn'`, SN `1308409`
als erste `geraet_instanz`-Zeile an der betroffenen Objektposition angelegt
(Karte 14).
### Bewusst NICHT verändert (Nutzer-Entscheidung)
- **151 "Rollenpflaster"** (ohne Größenangabe, neben 53 "gross", 106
"schmal", 107 "breit"): wird in 2 Vorlagen/Objekten (Rucksack PAX SEG,
Rettungsrucksack) genutzt, keine Größe aus dem Kontext ableitbar
bleibt eigenständig, bis geklärt ist, welcher Größe die bestehenden
Verwendungen entsprechen.
- **102 "Beatmunsmaske"** (Tippfehler, neben 161/162/163 "Beatmungsmasken
S/M/L"): wird in Vorlage/Objekt/Kontroll-Historie genutzt (Rettungsrucksack
Standard), aber unklar welcher Größe die bestehende Verwendung entspricht
Nutzer-Feedback: "Schreibfehler, müssen wir uns nochmal anschauen". Noch
offen, bei nächster Gelegenheit klären und nachziehen.
### Bewusst als eigenständig bestätigt (kein Fund, nur Ähnlichkeits-Rauschen)
Güdeltubus/Laryntubus Gr. 25, Flexüle-Farbvarianten, Spritzen-Größen (2er/5er/
10er/20er), Endotubus-Größen (3,08,0), "Größe 1/3/4/5" alles legitime,
unterschiedliche Produktvarianten, keine Dubletten.