2.3 KiB
2.3 KiB
60 ScansProcessing
Agent pro zpracování naskenovaných lékařských zpráv (PDF i JPG/PNG).
Hlavní skript
Extract_pacient_info_v1.0.py
Verze: 1.0 | Datum: 2026-06-02 | Autor: Vladimír Bužalka
Spuštění: python Extract_pacient_info_v1.0.py (bez argumentů = celá složka KeZpracování)
Workflow:
- Načte soubory z
KeZpracování/ - Claude Vision API (sonnet-4-6) — 1. volání s obrázkem: extrahuje jméno, RČ, datum, typ dokumentu, poznámku, navržený název, rotaci
- Claude API — 2. volání (jen text): vygeneruje 5 variant názvu dle naming_rules.md, deduplikuje vůči 1. návrhu
- Ověří pacienta v Medicus Firebird (tabulka KAR); fuzzy matching RČ + fallback na jméno
- Zkontroluje duplicity v archivu
Dokumentace_zpracovaná/ - Zobrazí hlavní viewer (tkinter, celá šířka monitoru):
- Horní část: náhled originálu | náhled vybrané duplicity | seznam duplicit (Text widget s wrappingem)
- Spodní panel: info o pacientovi | textbox pro název (multiline, bílý) | návrhy pojmenování
- Po schválení názvu nabídne 5 kompresních variant (300/200/150/120/96 DPI) k výběru
- Uloží vybranou variantu do
Zpracováno/, smaže originál - Opravy názvů se ukládají do
corrections.jsonjako few-shot příklady (jen pokud se liší od všech navržených variant)
EKG větev: PDFCreator metadata → rotace o 90° → Tesseract OCR → Medicus ověření
Formát názvu souboru: viz naming_rules.md
Konfigurační soubory
| Soubor | Účel |
|---|---|
naming_rules.md |
Pravidla pro pojmenování — předávají se Claudovi v každém volání |
corrections.json |
Few-shot příklady korekcí názvů z minulých běhů |
layout_settings.json |
Pozice a rozměry oken podle hostname počítače |
Složky
| Složka | Účel |
|---|---|
KeZpracování/ |
Vstupní skeny (PDF, JPG, PNG) |
Zpracováno/ |
Správně pojmenované PDF po schválení |
Dokumentace_zpracovaná/ |
Finální archiv (Dropbox) — prohledává se kvůli duplicitám |
Testy/ |
Archiv starších verzí skriptů |
Konfigurace
- API klíč:
Medevio/.env→ANTHROPIC_API_KEY - Medicus Firebird:
reporter:c:\medicus\medicus.fdb(SYSDBA) - Layout oken:
layout_settings.json— klíč = hostname.upper() (aktuálně:Z230)