Z230
This commit is contained in:
@@ -518,5 +518,21 @@
|
||||
{
|
||||
"original": "5951231044 2026-04-21 Vašinová, Jiřina [PZ ortopedie] [13–21APR2026 impl. TEP coxae l.dx., koxartróza l.dx. KL IV.].pdf",
|
||||
"corrected": "5951231044 2026-04-21 Vašinová, Jiřina [PZ ortopedie] [13–21APR2026 impl. TEP coxae l.dx., koxartróza l.dx., indikace KLL VII_10].pdf"
|
||||
},
|
||||
{
|
||||
"original": "480416072 2026-03-09 Štrup, Petr [žádanka OZP] [žádanka o vyšetření zdravotního stavu pro průkaz OZP, komplexní vyšetření 958 Kč].pdf",
|
||||
"corrected": "480416072 2026-03-09 Štrup, Petr [žádanka IPZS] [žádanka o vyšetření zdravotního stavu pro průkaz OZP, komplexní vyšetření 958 Kč].pdf"
|
||||
},
|
||||
{
|
||||
"original": "9301280417 2026-03-25 Vaňous, Jakub [žádost o předání zdravotních informací] [registrace u MUDr. Panáčkové, žádost o zaslání dokumentace].pdf",
|
||||
"corrected": "9301280417 2026-03-25 Vaňous, Jakub [žádost o předání zdravotních informací] [ResTrial s.r.o.].pdf"
|
||||
},
|
||||
{
|
||||
"original": "Binder1.pdf",
|
||||
"corrected": "8056010149 2026-04-28 [výbìr nekompletních zpráv] [od pacientky].pdf"
|
||||
},
|
||||
{
|
||||
"original": "6709150613 2026-04-28 Rutrle, Petr [LZ ORL] [PVS - v.s m. Menier, t.č hypaksuis perc. apicochlearis].pdf",
|
||||
"corrected": "6709150613 2026-04-28 Rutrle, Petr [LZ ORL] [PVS - v.s m. Menier, t.č hypakusis perc. apicochlearis, doporučena hyperbarická komora].pdf"
|
||||
}
|
||||
]
|
||||
@@ -260,6 +260,7 @@ def extract_info(pdf_path: Path) -> dict:
|
||||
)
|
||||
|
||||
print(" Volám Claude Vision API...")
|
||||
try:
|
||||
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
|
||||
response = client.messages.create(
|
||||
model="claude-sonnet-4-6",
|
||||
@@ -282,6 +283,9 @@ def extract_info(pdf_path: Path) -> dict:
|
||||
except json.JSONDecodeError:
|
||||
print(f" VAROVÁNÍ: nelze parsovat JSON: {raw!r}")
|
||||
return {"nazev_souboru": None, "raw": raw}
|
||||
except Exception as e:
|
||||
print(f" VAROVÁNÍ: Claude API selhalo ({e}) — otevírám dialog pro ruční vyplnění.")
|
||||
return {"nazev_souboru": None}
|
||||
|
||||
|
||||
# ─── Subprocess helpers ───────────────────────────────────────────────────────
|
||||
@@ -311,7 +315,8 @@ def run_rename_dialog(nazev: str, info_lines: list, below_y: int = None) -> str
|
||||
args = [sys.executable, str(RENAME_DIALOG), str(tmp)]
|
||||
if below_y is not None:
|
||||
args.append(f"--below-y={below_y}")
|
||||
proc = subprocess.run(args, capture_output=True, text=True, encoding="utf-8")
|
||||
env = {**os.environ, "PYTHONIOENCODING": "utf-8", "PYTHONUTF8": "1"}
|
||||
proc = subprocess.run(args, capture_output=True, text=True, encoding="utf-8", env=env)
|
||||
tmp.unlink(missing_ok=True)
|
||||
out = proc.stdout.strip()
|
||||
return json.loads(out).get("value") if out else None
|
||||
|
||||
@@ -6,10 +6,21 @@ JSON vstup: { "nazev": "...", "info_lines": [...] }
|
||||
JSON výstup: { "value": "..." } nebo { "value": null }
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
import tkinter as tk
|
||||
|
||||
if sys.platform == "win32":
|
||||
try:
|
||||
from ctypes import windll
|
||||
windll.shcore.SetProcessDpiAwareness(1)
|
||||
except Exception:
|
||||
pass
|
||||
import io
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
|
||||
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace")
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
@@ -27,6 +38,7 @@ def main():
|
||||
root.resizable(True, False)
|
||||
root.attributes("-topmost", True)
|
||||
root.tk.call("encoding", "system", "utf-8")
|
||||
os.environ.setdefault("TCL_ENCODING", "utf-8")
|
||||
|
||||
pad = {"padx": 12, "pady": 6}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user