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>
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# 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.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á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
|
||||
```sql
|
||||
-- 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
|
||||
Reference in New Issue
Block a user