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
101 lines
5.3 KiB
Markdown
101 lines
5.3 KiB
Markdown
# 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 4–9) 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. 2–5, Flexüle-Farbvarianten, Spritzen-Größen (2er/5er/
|
||
10er/20er), Endotubus-Größen (3,0–8,0), "Größe 1/3/4/5" – alles legitime,
|
||
unterschiedliche Produktvarianten, keine Dubletten.
|