3423fbb982
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>
4.5 KiB
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, dbmedicus, userroot - Firebird (Medicus):
localhost:c:\medicus 3\data\medicus.fdb, userSYSDBA - Dropbox root: zjistit přes
Knihovny/najdi_dropbox.py→get_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ávapredpis+predpis_slozka— předepsané léky;id_lp_predpis= UUID lékuvydej+vydej_slozka— vydané léky z lékárnypredepisujici— 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)
- kritická tabulka — výdeje jsou zde dříve než v tabulce
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ží cookies02_stahuj_vse.py— jednorázové stažení všech zpráv03_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
- Spuštění: