# Tesseract OCR für Laborberichte — Session-Erkenntnisse

## Session: 2026-05-10 — Laborbericht OCR

### Problem
PDF `260507_Labor_Blutwerte_Dermatologie.pdf` ist ein reines Bild-PDF (keine extrahierbaren Text-Elemente). Tabellarische Laborwerte müssen per OCR extrahiert werden.

### Befund
- **PSM=6** (single uniform block): Beste Ergebnisse für tabellarische Daten, aber Werte werden oft fragmentiert extrahiert
- **PSM=11** (sparse text, words as separate lines): Extrahiert jeden Wert als separate Zeile — gut für manuelles Parsing
- **PSM=4** (single column): Gut für strukturierte Formulare, aber bei Tabellen oft ungenau
- **PSM=13** (raw line): Schnellste, niedrigste Qualität

### OCR-Ergebnisse für USZ Laborbericht
Nur 5 von ~25 Werten waren klar lesbar:
- Kreatinin: 97 µmol/l ✓ (Ref: 62-106)
- Hämoglobin: 159 g/l ✓ (Ref: 134-170)
- Erythrozyten: 5.23 x10^12/l ✓ (Ref: 4.2-5.7)
- AST (GOT): un <50 U/l — Unerhøht
- ALT (GPT): un <50 U/l — Unerhøht

**Restliche Werte obscured** — selbst im PDF-Dokument nicht sichtbar, daher auch nicht per OCR extrahierbar.

### Workflow-Empfehlung für Laborberichte
1. Prüfe zuerst ob PDF extrahierbaren Text hat: `pdftotext datei.pdf -`
2. Wenn leer → reines Bild-PDF → OCR nötig
3. Convert to PNG at 300 DPI: PyMuPDF page.to_pixmap() → save as PNG
4. OCR mit Tesseract PSM=6 für tabellarische Daten
5. Bei PSM=6: Werte fragmentiert → PSM=11 versuchen für separate Token
6. Werte manuell aus OCR-Output parsen (Regex für Zahlen + Einheiten)
7. Bei obscured Werten: User informieren dass nicht alle Werte lesbar

### Python-Pfad für OCR-Pakete
```python
# fitz, pytesseract liegen in:
PYTHONPATH = os.path.expanduser("~/.local/lib/python3.12/site-packages")
env = {**os.environ, "PYTHONPATH": PYTHONPATH}
```