Files
MABEA/ergebnisse/material_bereinigung_log.md
T
patrickandClaude Sonnet 5 13ff2838fa
CI / backend-tests (push) Failing after 1m18s
CI / frontend-build (push) Successful in 24s
Materialstamm: Blutdruckmanschette ALT geklärt + Zuständigkeitsliste mit Suche
89 "Blutdruckmanschette" <- 91 "Blutdruckmanschette ALT" zusammengelegt
(152 Materialien). Echter Konflikt an 7 Objekten geprüft und dokumentiert -
kein Datenverlust (Konfliktzeilen alle im Default-Zustand, einziger echter
Historie-Treffer korrekt umgehängt statt gelöscht).

ZustaendigkeitSection: gleiches zweispaltiges Layout mit Suche wie Material-/
Objektliste. screenshots/ ins .gitignore (lokale Debug-Bilder, nicht für
den Remote gedacht).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-05 00:10:22 +02:00

101 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 (19 Paare, 172 → 153 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 |
| Beatmungsmasken S | Beatmunsmaske | Excel-Kontext + Nutzer-Bestätigung, siehe Nachtrag unten |
| Rollenpflaster gross | Rollenpflaster | Kein Größenhinweis, Default-Entscheidung, siehe Nachtrag unten |
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).
### Nachtrag 2026-09-04 (später): "Beatmunsmaske" geklärt
**161 "Beatmungsmasken S"****102 "Beatmunsmaske"** zusammengelegt (154
Materialien). Klärung über Original-Excel (`Rettungsrucksack.xlsx`, Zeile 50):
"Beatmunsmaske" steht dort direkt nach "Beatmungsbeutel Kind" im
Kinder-Abschnitt der Liste Nutzer bestätigt Größe S. Andere Rucksäcke
führen "Beatmungsmaske S/M/L" bereits einzeln, S/M/L bleiben eigenständige
Materialien (keine Zusammenlegung der Größen selbst).
### Nachtrag 2026-09-04 (später): "Rollenpflaster" 151 geklärt
**53 "Rollenpflaster gross"****151 "Rollenpflaster"** zusammengelegt (153
Materialien). Original-Excel (Rettungsrucksack.xlsx Zeile 10, Rucksack PAX
SEG.xlsx Zeile 20) nutzt in beiden Fällen unspezifiziertes "Rollenpflaster"
ohne Größenangabe kein Kontexthinweis auf schmal/breit/gross. "Rollenpflaster
gross" stammt aus Handball Rucksack.xlsx (Zeile 64), "schmal"/"breit" (106/107)
aus keiner der drei Repo-Excel-Dateien. Nutzer-Entscheidung mangels Evidenz:
Default auf "gross".
### Nachtrag 2026-09-04 (später): Nachkontrolle + Whitespace-Trim
Nach allen Merges erneute Prüfung (153 Materialien): keine exakten Dubletten,
keine `materialtyp`-Fehler mehr. 6 Namen hatten führende/nachgestellte
Leerzeichen (Elastische Binde, Plastiktüten, Absaugkatheter weiß,
Kindermanschette, Dreieckstücher, Masken) getrimmt, rein kosmetisch, keine
Referenzen betroffen.
## 2026-09-05
Nachkontrolle (153 → 152 Materialien) nach neuen Objektanlagen (GA San,
Karte "Rettungsrucksack Standart... 6 Stück"). Fuzzy-Check erneut gelaufen,
alle bisher bestätigten Größenvarianten (Güdeltubus/Laryntubus/
Endotrachealtubus/Spritzen/Beatmungsmasken) weiterhin unauffällig.
**89 "Blutdruckmanschette" ← 91 "Blutdruckmanschette ALT"** zusammengelegt.
Echter Konflikt: beide Varianten waren bereits an denselben Objekten (Vorlage
2, Objekte 2 sowie die 6 neuen GA-San-Rucksäcke 49) gleichzeitig vorhanden
Konfliktzeilen wurden gelöscht statt umgehängt (UNIQUE(objekt_id,
material_id)). Vor dem Merge geprüft: der einzige Historie-Treffer zu
Material 91 war ein `kontrollposition`-Eintrag (istmenge 1/sollmenge 1,
2026-09-03), der korrekt auf 89 umgehängt wurde (kontrollposition hat kein
UNIQUE-Constraint, kein Löschfall). Die gelöschten `objektposition`-Zeilen
standen alle im Default (istmenge 0, keine Ablauf/Charge/SN/Override)
kein Datenverlust.
### 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.