Files
recept/CLAUDE.md
T
administrator 3423fbb982 Přidání CLAUDE.md — kontext projektu pro Claude Code
Obsahuje info o infrastruktuře, MySQL schématu, NacistPredpis pipeline,
eRecept autentizaci a VZP Point skriptech.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 07:27:06 +02:00

4.5 KiB

CLAUDE.md — kontext projektu Recepty

Uživatel

Vladimír Buzalka, lékař. Pracuje v ordinaci MUDr. Michaela Buzalková, Praha, Lovosická 440/40, PSČ 19000.

  • UUID lékaře eRecept SÚKL: e08c89c6-2b1a-4eba-8ed9-4e3e63618379
  • IČZ: 09305000, IČP: 09305001
  • Komunikuje česky

Důležitá pravidla

  • Vždy pracovat v hlavním adresáři projektu C:\Users\vlado\PycharmProjects\Recepty, nikdy ve worktree.
  • Soubory editovat přímo v projektu, ne v .claude/worktrees/.

Infrastruktura

  • MySQL: 192.168.1.76, db medicus, user root
  • Firebird (Medicus): localhost:c:\medicus 3\data\medicus.fdb, user SYSDBA
  • Dropbox root: zjistit přes Knihovny/najdi_dropbox.pyget_dropbox_root()
  • Python venv: .venv/Scripts/python

Struktura projektu

Recepty/
├── Knihovny/
│   └── najdi_dropbox.py       ← get_dropbox_root() — vždy použít pro Dropbox cestu
├── LékovýZáznamWithClaude/    ← NacistLekovyZaznam (endpoint /cuer/Lekar2, ns 201912)
│   ├── 07StahnoutVsechny.py   ← hromadné stažení lékových záznamů pacientů
│   └── xml_archive/
├── NačteníPředpisuWithClaude/ ← NacistPredpis (endpoint /cuer/Lekar, ns 201704)
│   ├── 10_StahnoutXML.py      ← stahování XML receptů z SÚKL
│   ├── 11_ParseXML.py         ← parsování XML → MySQL (recept_doklad, recept_plp, recept_vydej)
│   └── Testy/                 ← starší skripty (08, 09)
├── StahovánízVZPWithClaude/   ← VZP Point číselníky
├── Dotazy/                    ← analytické skripty a Excel reporty
└── CLAUDE.md                  ← tento soubor

MySQL schéma (db medicus)

Lékový záznam (z NacistLekovyZaznam)

  • pacient — registrovaní pacienti ordinace (idpac z Medicusu)
  • zprava — jedno volání API = jedna zpráva
  • predpis + predpis_slozka — předepsané léky; id_lp_predpis = UUID léku
  • vydej + vydej_slozka — vydané léky z lékárny
  • predepisujici — lékaři (lekar_kod=UUID, IČZ, IČP, adresa)
  • vydavajici — lékárníci a lékárny

Detail receptu (z NacistPredpis)

  • recept_doklad — jeden řádek na recept (id_dokladu = ERP kód, např. PPM4DJXHESOU)
    • stav, stav_terminal, platnost, pacient snapshot, předepisující
    • stav_terminal=1 = terminální (PLNE_VYDANY / ZRUSENY / expirovaný) → nepřestahovat
  • recept_plp — PLP položky receptu; id_lp = predpis.id_lp_predpis (JOIN lékový záznam ↔ detail)
  • recept_vydej — výdeje z XML sekce Vydej; PK (id_vydeje, id_lp_predpis)
    • kritická tabulka — výdeje jsou zde dříve než v tabulce vydej (která čeká na 07)

VZP číselník

  • vzp_pracoviste — IČP → odbornost, název pracoviště (import_vzp_pracoviste.py, týdně)

Klíčové JOINy

-- lékový záznam + detail receptu + výdej z NacistPredpis
predpis.id_lp_predpis = recept_plp.id_lp         recept_doklad (stav receptu)
predpis.id_lp_predpis = recept_vydej.id_lp_predpis   výdej (lékárna, datum, lék)

NacistPredpis pipeline

xml_archive umístění (od 22. 4. 2026): {get_dropbox_root()}/Ordinace/Dokumentace_ke_zpracování/Zúčtovací zprávy/NačteníPředpisuWithClaude/xml_archive/

Správné pořadí:

10_StahnoutXML.py → 11_ParseXML.py → 10_StahnoutXML.py → ...

Bez 11 po 10 se terminální recepty znovu stahují (stav_terminal zůstane 0).

Zdroj ID_Dokladu: Firebird, tabulka recept_epodani.erp


eRecept SÚKL autentizace

  • mTLS certifikát: AMBSUKL214235369G_31DEC2024.pfx (platný do 31. 12. 2026)
  • HTTP Basic user: UUID lékaře (malými písmeny)
  • Namespace NacistLekovyZaznam: http://www.sukl.cz/erp/201912
  • Namespace NacistPredpis: http://www.sukl.cz/erp/201704
  • Verze zprávy: 202501A

VZP Point — stahování zpráv

Projekt: U:\OrdinaceProjekt\Insurance\StahováníZpráv\, každá pojišťovna má podsložku (111 VZP\ atd.).

  • 01_prihlaseni.py — přihlášení certifikátem, uloží cookies
  • 02_stahuj_vse.py — jednorázové stažení všech zpráv
  • 03_stahuj_nove.py — rozdílové stažení (zastaví se při první existující)
  • Playwright launch_persistent_context, channel="chrome", _delete_chrome_cert_policy() před spuštěním

Dotazy / reporty

  • Dotazy/report_predepsane_leky.py — Excel report předepsaných léků (jeden řádek = jeden lék)
    • Spuštění: python report_predepsane_leky.py 2026
    • Po uložení automaticky otevře Excel