notebookvb
This commit is contained in:
@@ -0,0 +1,723 @@
|
||||
# PrůzkumDatabáze – poznámky pro Clauda
|
||||
|
||||
Průzkum Medicus Firebird DB, doplněk k `MedicusWithClaude/CLAUDE_NOTES.md`.
|
||||
Aktualizováno: 2026-05-16
|
||||
|
||||
---
|
||||
|
||||
## Celkový přehled
|
||||
|
||||
- **993 tabulek** (Firebird 2.5 HQbird, charset win1250)
|
||||
- Přímý přístup přes MCP nástroje: `execute_query`, `get_table_columns`, `list_tables`
|
||||
- Základní info o DB, RTF formátu a importu viz [`MedicusWithClaude/CLAUDE_NOTES.md`](../MedicusWithClaude/CLAUDE_NOTES.md)
|
||||
- SQL dotazy a schéma fakturace viz [`MedicusWithClaudeSelects/`](../MedicusWithClaudeSelects/)
|
||||
|
||||
### Správné připojení (MCP server `U:\OrdinaceProjekt\mcp_firebird.py`)
|
||||
|
||||
```python
|
||||
fdb.connect(
|
||||
dsn=r'reporter:c:\medicus\medicus.fdb',
|
||||
user='SYSDBA', password='masterkey', charset='win1250'
|
||||
)
|
||||
```
|
||||
|
||||
⚠️ Pozor: dříve chybně nastaveno na `localhost:c:\medicus 3\data\medicus.fdb` (port 3070) — to ukazovalo na starou zálohu s daty do 2026-04-20. Opraveno 2026-05-19.
|
||||
|
||||
---
|
||||
|
||||
## Statistiky klíčových tabulek (stav 2026-05-16)
|
||||
|
||||
| Tabulka | Záznamů | Obsah |
|
||||
|---|---|---|
|
||||
| KAR | 6 319 | Kartotéka pacientů |
|
||||
| DEKURS | 172 068 | Záznamy z návštěv (RTF blob) |
|
||||
| RECEPT | 191 820 | E-recepty (od 1997) |
|
||||
| DOKLADD | 98 321 | Výkony – detail |
|
||||
| DOKLADH | 54 436 | Výkony – záhlaví |
|
||||
| HISTDOC | 32 689 | Dokumenty (poukazy, posudky…) |
|
||||
| OCKZAZ | 9 746 | Záznamy podaných vakcín |
|
||||
| PREH | 11 885 | Preventivní prohlídky a měření |
|
||||
| VZPARC | 1 954 | Výkonové dávky pojišťovnám |
|
||||
| NES | 4 318 | Neschopenky (od 2008) |
|
||||
| LECH | 4 247 | Lékový doklad – záhlaví |
|
||||
| LECD | 4 413 | Lékový doklad – detail (léky) |
|
||||
| OCKPRI | 1 397 | Plánovaná očkování |
|
||||
| FAK | 844 | Faktury pojišťovnám |
|
||||
| MEDIKACE | 252 | Aktuální medikace pacientů |
|
||||
| DISPAC | 2 | Dispenzarizace pacientů |
|
||||
| ICP | 11 | Pracoviště ordinace (IČP) |
|
||||
| ICZ | 11 | Zdravotnické zařízení (IČZ) |
|
||||
| LOG | 2 812 283 | Audit log — kdo, kdy, co otevřel/změnil |
|
||||
| ZURNAL | 795 220 | Starší audit log (do 2019, nahrazen tabulkou LOG) |
|
||||
| PZT | 600 341 | Číselník zdravotnických prostředků (ZP) — 46 151 platných, zbytek historické |
|
||||
| LABVD | 526 500 | Laboratorní hodnoty – detail |
|
||||
| DOCLIST | 466 837 | Univerzální index dokumentů — rozcestník přes DEKURS, RECEPT, HISTDOC, LABVH, LEKZPRAVY, NES, OCKZAZ, PREH, FILES, SPECVYS |
|
||||
| LEKY | 429 658 | Číselník léků SÚKL |
|
||||
| DEKLINK | 298 823 | Vazby dekurzů na jiné záznamy |
|
||||
| RECEPT_EPODANI | 64 154 | Stav e-podání receptů |
|
||||
| REGISTR | 1 999 | Registrace pacientů u pojišťovny |
|
||||
| POU | 0 | Poukazy (prázdná) |
|
||||
| SMS | 0 | SMS zprávy (prázdná) |
|
||||
|
||||
---
|
||||
|
||||
## LOG – audit log
|
||||
|
||||
**2 812 283 záznamů** — každý přístup nebo změna záznamu v Medicusu se sem zapíše. Aktivně roste, poslední záznam 2026-05-15.
|
||||
|
||||
### Roční objem
|
||||
|
||||
| Rok | Záznamů |
|
||||
|---|---|
|
||||
| 2024 | 325 435 |
|
||||
| 2025 | 432 479 |
|
||||
| 2026 | 146 377 (do 15.5.) |
|
||||
|
||||
Průměr ~380 000/rok. Za 10 let (do 2036) odhadem ~6,6M řádků, ~600–800 MB s indexy.
|
||||
|
||||
### Struktura
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| DATUM | datum akce |
|
||||
| CAS | čas akce |
|
||||
| UZIVATEL | zkratka uživatele (JOU, SES, MBU, VBU…) |
|
||||
| IDPAC | ID pacienta |
|
||||
| TABULKA | číslo tabulky → mapování přes LOGTABLES |
|
||||
| IDREC | ID záznamu v dané tabulce |
|
||||
| AKCE | `V` = View (otevření), `U` = Update (změna) |
|
||||
| DETAIL | detail akce (většinou NULL) |
|
||||
|
||||
### LOGTABLES – mapování čísel na tabulky (výběr)
|
||||
|
||||
| ID | Tabulka | Popis |
|
||||
|---|---|---|
|
||||
| 1 | KAR | Identifikace |
|
||||
| 2 | REGISTR | Registrace |
|
||||
| 3 | KARUZIV | Ošetřující lékaři |
|
||||
| 7 | DEKURS | Ambulantní záznamy |
|
||||
| 8 | ANAMNEZA | Anamnéza |
|
||||
| 9 | MEDIKACE | Medikace |
|
||||
| 10 | RECEPT | Recepty |
|
||||
| 11 | OCKZAZ | Očkování |
|
||||
| 12 | NES | Neschopenky |
|
||||
| 15 | PREH | Prohlídky |
|
||||
| 16 | HISTDOC | Žádanky, Posudky, Formuláře |
|
||||
| 10000 | *(otevření karty pacienta)* | speciální kód, není v LOGTABLES |
|
||||
|
||||
### Pozor při dotazování
|
||||
LOG timeoutuje bez filtru — vždy používat `WHERE DATUM = '...'` nebo `WHERE ID BETWEEN x AND y`. `ORDER BY ID DESC` na celé tabulce také timeoutuje.
|
||||
|
||||
---
|
||||
|
||||
## PZT – číselník zdravotnických prostředků
|
||||
|
||||
**600 341 záznamů** celkem — z toho **46 151 platných** (PLATIDO >= 2026-01-01), **554 190 historických**. Data od 2007. Medicus stahuje aktualizace číselníku od pojišťoven/SÚKL.
|
||||
|
||||
Stejná logika jako tabulka LEKY — jen pro zdravotnické prostředky místo léků.
|
||||
|
||||
### Klíčové sloupce (dle oficiální metodiky VZP, verze 1143, platnost 1.5.2026)
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| KOD | kód ZP (7 znaků) |
|
||||
| PKOD | původní kód ZP přidělený VZP ČR |
|
||||
| NAZ | název ZP |
|
||||
| DOP | doplněk názvu ZP |
|
||||
| PRO | preskripční označení: **P** = předepisuje se na Poukaz, **M** = zvlášť účtovaný materiál (ZUM) |
|
||||
| TYP | typ skupiny ZP (kódové označení skupiny) |
|
||||
| MJD | počet měrných jednotek v balení |
|
||||
| MJ | měrná jednotka |
|
||||
| TBAL | typ balení (ks, bal…) |
|
||||
| VYR | výrobce (zkratka) |
|
||||
| ZEM | země výroby |
|
||||
| OHL | název Ohlašovatele |
|
||||
| MAXI | maximální úhrada pojišťovnou — odpovídá UHR1 (1. úhradová sazba) |
|
||||
| LIM | příznak schválené úhrady (LIM1) — 'Z' = vyžaduje schválení pojišťovnou |
|
||||
| OME | specializace předepisujícího lékaře (OME1) |
|
||||
| UHR2 | 2. úhradová sazba |
|
||||
| LIM2 | příznak schválené úhrady pro 2. sazbu |
|
||||
| OME2 | specializace lékaře pro 2. sazbu |
|
||||
| UHR3 | 3. úhradová sazba |
|
||||
| LIM3 | příznak schválené úhrady pro 3. sazbu |
|
||||
| OME3 | specializace lékaře pro 3. sazbu |
|
||||
| MFC | maximální konečná cena ke spotřebiteli |
|
||||
| DNC | písemné ujednání o ceně: prázdné = není DNC, 1 = DNC, 2 = DNC se závazkem, 3 = cenová soutěž |
|
||||
| UHS | úhradová skupina |
|
||||
| UPO | způsob úhrady pojišťovnou: **I** = plně hrazený, **R** = zapůjčovaný ZP, prázdné = nezapůjčovaný |
|
||||
| UHP | úhrada v procentech |
|
||||
| UDOKS | počet MJ za UDO |
|
||||
| UDO | užitná doba (v měsících) |
|
||||
| SKP | skupina postižení |
|
||||
| DAT | datum změny záznamu |
|
||||
| KAT | kategorie |
|
||||
| PLATIOD / PLATIDO | platnost položky v číselníku |
|
||||
| RP1–RP5 | dodatečné sloupce (pravděpodobně referenční ceny) |
|
||||
| IS_CG | příznak (patrně IS_CGM — kontinuální monitorace glukózy) |
|
||||
|
||||
### OME – zkratky odborností oprávněných předepsat ZP
|
||||
|
||||
91 různých kombinací. Výběr zkratek:
|
||||
|
||||
| Zkratka | Odbornost |
|
||||
|---|---|
|
||||
| PRL | Praktický lékař |
|
||||
| LEKAR | Jakýkoliv lékař |
|
||||
| DIA | Diabetologie |
|
||||
| NEU | Neurologie |
|
||||
| ORT | Ortopedie |
|
||||
| REH | Rehabilitace |
|
||||
| CHI | Chirurgie |
|
||||
| GYN | Gynekologie |
|
||||
| ONK | Onkologie |
|
||||
| URN | Urologie |
|
||||
| KAR | Kardiologie |
|
||||
| PNE | Pneumologie |
|
||||
| DER | Dermatologie |
|
||||
| GER | Geriatrie |
|
||||
| PED | Pediatrie |
|
||||
| ORL | ORL |
|
||||
| PSY | Psychiatrie |
|
||||
| INT | Interna |
|
||||
| S5 | Specifická kategorie (sestra/soc. péče?) |
|
||||
| DLE ZÁKONA | Speciální režim (vozíky, lůžka…) |
|
||||
|
||||
Poznámka: `PRL` se vyskytuje pouze v kombinaci s dalšími odbornostmi — praktický lékař nikdy není jediným předepisujícím.
|
||||
|
||||
---
|
||||
|
||||
## ZURNAL – starý audit log (nepoužívaná)
|
||||
|
||||
**795 220 záznamů**, data od 2012-02-22 do **2019-04-17** — poté se přestala plnit.
|
||||
|
||||
Starší verze tabulky LOG, stejná struktura (DATUM, CAS, TABULKA, UZIVATEL, AKCE, KEYFIELD, ID1…). Medicus ji nahradil tabulkou LOG někdy kolem roku 2019. Dnes je mrtvá, pouze historická data.
|
||||
|
||||
---
|
||||
|
||||
## RECEPT – e-recepty
|
||||
|
||||
**191 820 záznamů**, od 1997-05-06 do současnosti. 1 261 stornovaných.
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| IDPAC | FK → KAR |
|
||||
| DATUM | datum vystavení |
|
||||
| KOD | kód léku (SÚKL, 7 znaků) |
|
||||
| LEK | název léku |
|
||||
| POJ | pojišťovna (111, 205, 207…) |
|
||||
| DGN | diagnóza |
|
||||
| TYP | typ receptu (1 = běžný) |
|
||||
| STORNO | 'F' = platný, 'T' = stornovaný |
|
||||
| CISRECEPT | číslo receptu (po e-podání) |
|
||||
| IDUZI | kdo vystavil |
|
||||
| ICP | IČP ordinace |
|
||||
| UHRADA | způsob úhrady |
|
||||
| PLATIDO | platnost do |
|
||||
| ES_STAV | stav e-receptu (eRecept systém) |
|
||||
|
||||
Poznámka: Tabulka obsahuje jak tištěné, tak e-recepty. Pole `CISRECEPT` je NULL u starších papírových.
|
||||
|
||||
---
|
||||
|
||||
## LECH / LECD – lékové doklady pro pojišťovnu
|
||||
|
||||
Dvojice podobná DOKLADH/DOKLADD — ale pro léky vykazované pojišťovně (oddělená agenda od receptů).
|
||||
|
||||
### LECH – záhlaví (4 247 záznamů)
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| IDLEC | primární klíč |
|
||||
| POJ | pojišťovna |
|
||||
| ICZ | IČZ ordinace (09305001) |
|
||||
| RODCIS | rodné číslo pacienta |
|
||||
| HODB | hlavní odbornost (001) |
|
||||
| HDGN | hlavní diagnóza |
|
||||
| TYP | typ ('A' = ambulantní) |
|
||||
| STAV | stav (0 = otevřen) |
|
||||
| DAVKA | číslo dávky |
|
||||
|
||||
### LECD – detail / jednotlivé léky (4 413 záznamů)
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| IDLEC | FK → LECH |
|
||||
| RODCIS | rodné číslo |
|
||||
| DATOSE | datum ošetření |
|
||||
| KOD | kód léku (SÚKL) |
|
||||
| POCET | počet balení |
|
||||
| CENA | cena (Kč) |
|
||||
| KAT | kategorie ('I' = imunizace, NULL = běžný) |
|
||||
| IDUZI | který lékař |
|
||||
|
||||
---
|
||||
|
||||
## DOKLADH / DOKLADD – výkony
|
||||
|
||||
Hlavní záhlaví/detail pro výkony vykazované pojišťovnám.
|
||||
|
||||
### DOKLADH – záhlaví (54 436 záznamů)
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| IDHLAV | primární klíč |
|
||||
| POJ | pojišťovna |
|
||||
| ICZ | IČZ ordinace |
|
||||
| RODCIS | rodné číslo pacienta |
|
||||
| HODB | hlavní odbornost (001 = praktický lékař) |
|
||||
| HDGN | hlavní diagnóza |
|
||||
| VDGN1–6 | vedlejší diagnózy |
|
||||
| TYP | typ dokladu ('A' = ambulantní) |
|
||||
| STAV | stav (0 = otevřen) |
|
||||
| ROK | rok |
|
||||
| EICZ | IČZ odesílajícího lékaře (NULL = vlastní) |
|
||||
| EODZ | odbornost odesílajícího |
|
||||
| DAVKA | číslo dávky |
|
||||
|
||||
### DOKLADD – detail výkony (98 321 záznamů)
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| IDHLAV | FK → DOKLADH |
|
||||
| RODCIS | rodné číslo pacienta |
|
||||
| DATOSE | datum ošetření |
|
||||
| KOD | kód výkonu (5 znaků, např. '01022') |
|
||||
| POCVYK | počet provedení výkonu |
|
||||
| DDGN | diagnóza výkonu |
|
||||
| ODB | odbornost |
|
||||
| BODY | počet bodů výkonu |
|
||||
| CENABOD | cena v bodech (Kč) |
|
||||
| CENAMAT | cena materiálu (Kč) |
|
||||
| CENAPAU | paušál (Kč) |
|
||||
| KAT | kategorie ('N' = nevykazovat, 'K' = kapitace, 'A' = agregace) |
|
||||
| IDUZI | který lékař |
|
||||
| IDHLAV | FK → DOKLADH |
|
||||
|
||||
Schéma: `DOKLADH ←IDHLAV→ DOKLADD` (1:N)
|
||||
|
||||
---
|
||||
|
||||
## PREH – preventivní prohlídky a měření
|
||||
|
||||
**11 885 záznamů** — ukládá měřené hodnoty při prohlídce (výška, váha, tlak, puls…).
|
||||
|
||||
### Klíčové sloupce
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| IDPRE | primární klíč |
|
||||
| IDPAC | FK → KAR |
|
||||
| IDUZI | kdo zaznamenal |
|
||||
| IDPREINI | typ prohlídky (viz PREINIH) |
|
||||
| DATUM | datum prohlídky |
|
||||
| VYSKA | výška (cm) |
|
||||
| VAHA | váha (kg) |
|
||||
| TLAKSYS | systolický tlak (mmHg) |
|
||||
| TLAKDIA | diastolický tlak (mmHg) |
|
||||
| PULS | puls (tepy/min) |
|
||||
| CHOLESTEROL | hladina cholesterolu |
|
||||
| SATURACE | saturace kyslíkem |
|
||||
| TEPLOTA | teplota |
|
||||
| BRICHO | obvod břicha |
|
||||
| TERMIN | plánovaný příští termín |
|
||||
| TYP | typ záznamu (0 = standardní) |
|
||||
|
||||
### PREINIH – typy prohlídek (7 záznamů)
|
||||
|
||||
| IDPREINI | NAZEV |
|
||||
|---|---|
|
||||
| 24 | Prohlídka (Dekurs) — **5 665 záznamů** |
|
||||
| 25 | Výška a váha — **3 813 záznamů** |
|
||||
| 26 | Tlak a puls — **2 062 záznamů** |
|
||||
| 27 | Prohlídka - tlak — 341 záznamů |
|
||||
| 28 | Diabetologická prohlídka — 4 záznamy |
|
||||
| 29 | Předoperační vyšetření — 0 |
|
||||
| 30 | Předoperační vyšetření — 0 |
|
||||
|
||||
---
|
||||
|
||||
## HISTDOC – dokumenty a doklady
|
||||
|
||||
**32 689 záznamů** — evidence vydaných dokladů, poukazů, posudků. Typ dokladu určuje sloupec `TYP`.
|
||||
|
||||
### Typy TYP (nejčastější)
|
||||
|
||||
| TYP | Počet | Popis |
|
||||
|---|---|---|
|
||||
| POUV_1 | 15 861 | Poukaz na vyšetření – typ 1 |
|
||||
| POUV_3 | 6 279 | Poukaz na vyšetření – typ 3 |
|
||||
| MEDLAB | 2 396 | Laboratorní žádanka |
|
||||
| MOTORVO | 1 535 | Posudek způsobilosti k řízení MV |
|
||||
| ORTOP | 1 003 | Ortopedický poukaz |
|
||||
| POTDPN | 901 | Potvrzení DPN (pracovní neschopnost) |
|
||||
| Cov19Ts | 900 | Covid-19 test |
|
||||
| ORTOPE | 891 | Ortopedický poukaz (e-verze) |
|
||||
| COV19 | 595 | Covid-19 certifikát |
|
||||
| LAZPEC | 517 | Žádost o lázeňskou péči |
|
||||
| VYMLIST | 362 | Výměnný list |
|
||||
| ZDRSTA5 | 340 | Zdravotní stav (typ 5) |
|
||||
| PROHLAS | 151 | Prohlášení pacienta |
|
||||
| ZPUPRN | 136 | Způsobilost (pracovní náplň?) |
|
||||
| SANIT | 107 | Sanitní transport |
|
||||
| ZBROJPR | 58 | Zbrojní průkaz |
|
||||
| HlaOseL | 95 | Hlášení ošetřujícího lékaře |
|
||||
|
||||
### Klíčové sloupce
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| TYP | typ dokladu (viz tabulka výše) |
|
||||
| DATUM | datum vydání |
|
||||
| IDPACI | FK → KAR (pacienti) |
|
||||
| IDUZIV | FK → UZIVATEL (kdo vytvořil) |
|
||||
| STAV | stav ('Z' = zpracován, NULL = otevřen) |
|
||||
| DATA | blob – data dokladu |
|
||||
| IDDOKLAD | vazba na DOKLADH (pro výkony) |
|
||||
| IDHLAV | vazba na záhlaví dokladu |
|
||||
|
||||
---
|
||||
|
||||
## DOCLIST – univerzální index dokumentů
|
||||
|
||||
**466 837 záznamů** (stav 2026-05-16) — aktivně se plní, průměr ~3 700 záznamů/měsíc.
|
||||
Slouží jako rozcestník: jeden řádek = jeden dokument v jiné tabulce. Neobsahuje samotná data, jen odkaz.
|
||||
|
||||
Poznámka: jeden záznam má datum 2029-11-21 (ID 566201, FILES, "PZ chirurgie.pdf") — patrně překlep při ručním zadání.
|
||||
|
||||
### Klíčové sloupce
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| DATUM | datum záznamu |
|
||||
| TABULKA | zdrojová tabulka (viz níže) |
|
||||
| IDREC | ID záznamu v té zdrojové tabulce |
|
||||
| TYP | typ dokumentu (kód, viz níže) |
|
||||
| POPIS | popis (u DEKURS = čas uložení, u FILES = název souboru, u LEKZPRAVY = "Lékařská zpráva"…) |
|
||||
| IDPAC | FK → KAR |
|
||||
| IDODDEL | oddělení (2 = ordinace, -1 = vnější/bez oddělení) |
|
||||
|
||||
### Kombinace TYP + TABULKA (kompletní přehled)
|
||||
|
||||
| TYP | TABULKA | Počet | Popis |
|
||||
|---|---|---|---|
|
||||
| 1 | DEKURS | 174 927 | Záznamy z návštěv |
|
||||
| 1 | FILES | 11 715 | Přílohy a soubory |
|
||||
| 3 | HISTDOC | 32 940 | Poukazy, posudky, žádanky |
|
||||
| 3 | HISTDOC_REP | 3 | Repliky histdoc (neznámé, 3 záznamy) |
|
||||
| 6 | LABVH | 20 249 | Laboratorní výsledky – záhlaví |
|
||||
| 7 | RECEPT | 191 137 | E-recepty |
|
||||
| 8 | OCKZAZ | 7 911 | Očkování |
|
||||
| 9 | PREH | 12 027 | Preventivní prohlídky a měření |
|
||||
| 10 | NES | 3 744 | Neschopenky |
|
||||
| 17 | SPECVYS | 746 | Specializované výsledky (tabulka zatím neprozkoumaná) |
|
||||
| 24 | FILES | 227 | Přílohy jiného typu |
|
||||
| 30 | LEKZPRAVY | 13 878 | Lékařské zprávy (tabulka zatím neprozkoumaná) |
|
||||
|
||||
### Tabulky zatím nepopsané v NOTES.md (zjištěno přes DOCLIST)
|
||||
|
||||
- **LABVH** — laboratorní výsledky záhlaví (LABVD je detail, LABVH záhlaví — viz DOCLIST TYP=6)
|
||||
- **LEKZPRAVY** — lékařské zprávy (TYP=30, 13 878 záznamů)
|
||||
- **SPECVYS** — specializované výsledky (TYP=17, 746 záznamů)
|
||||
- **HISTDOC_REP** — repliky histdoc (TYP=3, pouze 3 záznamy)
|
||||
- **FILES** — přílohy/PDF (různé typy — TYP=1 i TYP=24)
|
||||
|
||||
### Aktivita po měsících (2025–2026)
|
||||
|
||||
| Měsíc | Záznamů |
|
||||
|---|---|
|
||||
| 2025-01 | 3 117 |
|
||||
| 2025-02 | 2 812 |
|
||||
| 2025-03 | 4 433 |
|
||||
| 2025-04 | 3 881 |
|
||||
| 2025-05 | 4 097 |
|
||||
| 2025-06 | 3 320 |
|
||||
| 2025-07 | 3 644 |
|
||||
| 2025-08 | 2 801 |
|
||||
| 2025-09 | 4 053 |
|
||||
| 2025-10 | 4 506 |
|
||||
| 2025-11 | 4 023 |
|
||||
| 2025-12 | 3 619 |
|
||||
| 2026-01 | 4 133 |
|
||||
| 2026-02 | 3 473 |
|
||||
| 2026-03 | 4 438 |
|
||||
| 2026-04 | 3 770 |
|
||||
| 2026-05 | 1 001 *(do 17.5.)* |
|
||||
|
||||
---
|
||||
|
||||
## OCKZAZ – záznamy podaných vakcín
|
||||
|
||||
**9 746 záznamů** — každá aplikace vakcíny jednomu pacientovi.
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| IDPAC | FK → KAR |
|
||||
| DATUM | datum aplikace |
|
||||
| ZKRATKA | kód SÚKL vakcíny (7 znaků) |
|
||||
| LATKA | obchodní název (např. 'FSME-IMMUN 0,5 ML') |
|
||||
| NAZEV | název onemocnění/typ (např. 'Klíšťová encefalitida') |
|
||||
| KODMZ | kód MZ (např. 'KENC', 'TETP', 'HEAB') |
|
||||
| IDUZI | kdo aplikoval |
|
||||
| EXPIRE | expirace vakcíny |
|
||||
| PRISTE | plánovaná příští dávka |
|
||||
| PRISTE_OD / PRISTE_DO | interval pro příští dávku |
|
||||
| EOCK | příznak e-očkování |
|
||||
| CHYBA | chyba při e-podání |
|
||||
|
||||
Nejčastější vakcíny (z ukázky): Klíšťová encefalitida (FSME-IMMUN), Tetanus (VACTETA), Hepatitida A+B (TWINRIX).
|
||||
|
||||
---
|
||||
|
||||
## NES – neschopenky (pracovní neschopnosti)
|
||||
|
||||
**4 318 záznamů** (od 2008-02-02), 4 stornované. Datum KONNES může být NULL (dosud trvá).
|
||||
Výskyt data "2109-01-28" v MAX — patrně technické datum "dosud trvá" = 2109.
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| IDPAC | FK → KAR |
|
||||
| ZACNES | začátek neschopnosti |
|
||||
| KONNES | konec neschopnosti (NULL = stále trvá) |
|
||||
| CISNES | číslo neschopenky |
|
||||
| DIAGNO | diagnóza |
|
||||
| IDUZI | který lékař |
|
||||
| STORNO | 'F' = platná, 'T' = stornovaná |
|
||||
| STORNO | příznak storna |
|
||||
| ECN | číslo e-neschopenky |
|
||||
| EPODANI | stav e-podání |
|
||||
|
||||
---
|
||||
|
||||
## MEDIKACE – aktuální medikace
|
||||
|
||||
**252 záznamů** — záznamy o lécích předepsaných jako dlouhodobá/trvalá medikace (ne každý recept, jen ty označené jako medikace).
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| ID | primární klíč |
|
||||
| IDPAC | FK → KAR |
|
||||
| IDUZI | kdo zaznamenal |
|
||||
| DATUM | datum záznamu |
|
||||
| PLATI_OD | platnost od |
|
||||
| PLATI_DO | platnost do (NULL = dosud) |
|
||||
| KOD | kód SÚKL léku |
|
||||
| NAZ | název léku |
|
||||
| UHRADA | způsob úhrady ('C' = plně hrazeno, 'J' = částečně) |
|
||||
|
||||
---
|
||||
|
||||
## ICP / ICZ – pracoviště a zdravotnické zařízení
|
||||
|
||||
**11 záznamů** v obou tabulkách — identifikátory ordinace pro různé pojišťovny.
|
||||
|
||||
### ICP (pracoviště)
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| IDICP | primární klíč |
|
||||
| IDICZ | FK → ICZ |
|
||||
| NAZEV | název ('Ordinace', 'Smluvní pracoviště…') |
|
||||
| ICP | IČP = 09305001 (naše ordinace) |
|
||||
| ODB | odbornost = 001 (praktický lékař) |
|
||||
| DPECE | druh péče |
|
||||
|
||||
Poznámka: Všech 11 záznamů má stejný ICP 09305001 a ODB 001 — liší se jen IDICP/IDICZ (pro různé pojišťovny).
|
||||
|
||||
---
|
||||
|
||||
## Schéma vazeb (rozšířené)
|
||||
|
||||
```
|
||||
KAR (kartotéka)
|
||||
├──IDPAC──► DEKURS (záznamy z návštěv, RTF)
|
||||
├──IDPAC──► RECEPT (e-recepty)
|
||||
├──IDPAC──► MEDIKACE (trvalá medikace)
|
||||
├──IDPAC──► NES (neschopenky)
|
||||
├──IDPAC──► OCKZAZ (podané vakcíny)
|
||||
├──IDPAC──► OCKPRI (plánovaná očkování)
|
||||
├──IDPAC──► PREH (měření: tlak, váha, výška…)
|
||||
├──IDPAC──► FILES (přílohy/PDF, v ext. FDB)
|
||||
├──IDPAC──► HISTDOC (poukazy, posudky, žádanky)
|
||||
├──IDPAC──► REGISTR (registrace u pojišťovny)
|
||||
├──IDPAC──► KARUZIV (ošetřující lékař)
|
||||
├──RODCIS──► DOKLADH ──► DOKLADD (výkony – záhlaví/detail)
|
||||
└──RODCIS──► LECH ──► LECD (lékové doklady)
|
||||
|
||||
FAK (faktury)
|
||||
├──IDFAK──► FAKDET (detail per lékař)
|
||||
├──IDFAK──► FAKDAV (dávky ve faktuře)
|
||||
└──IDFAK──► PORTAL (e-podání – výkonové dávky DP98)
|
||||
|
||||
VZPARC (výkonové dávky – klíčové pro hledání výkonů per pacient)
|
||||
PREINIH (typy prohlídek: 24=Dekurs, 25=Výška/váha, 26=Tlak/puls…)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Poznámky k průzkumu
|
||||
|
||||
### RECEPT vs LECD – kdy co použít
|
||||
- **RECEPT** = všechny recepty vystavené pacientovi (191 820 záznamů) — pro analýzu předepisování
|
||||
- **LECD** = léky vykázané pojišťovně (4 413 záznamů) — pro fakturaci
|
||||
|
||||
### DOKLADD vs VZPARC – kdy co použít
|
||||
- **DOKLADD** = výkony v DB (98 321), vč. nevykázaných — pro analýzu péče
|
||||
- **VZPARC** = odeslaná výkonová data pojišťovně (CP852 kódování!) — pro fakturaci, VŽDY používat pro hledání PP
|
||||
|
||||
### PREH – víc záznamů na jednu návštěvu
|
||||
Jedna návštěva = typicky 2 záznamy v PREH: IDPREINI=25 (výška+váha) + IDPREINI=26 (tlak+puls).
|
||||
|
||||
### NES – datum 2109
|
||||
MAX(KONNES) = 2109-01-28 — Medicus ukládá "dosud trvající" neschopenky s datem daleko v budoucnosti. Při filtrování "aktuálních" NES používat: `KONNES IS NULL OR KONNES > dnes`.
|
||||
|
||||
### HISTDOC – nejpoužívanější typy
|
||||
POUV_1 a POUV_3 dominují (celkem 22 140 = 68 % všech dokumentů) — jsou to poukazy na odborná vyšetření.
|
||||
|
||||
### ORTOP vs ORTOPE – poukazy na ZP (zdravotnické prostředky)
|
||||
|
||||
- **ORTOP** = papírový ortopedický poukaz — data do konce 2021
|
||||
- **ORTOPE** = elektronický poukaz na ZP — od 2022 (891 → 2022: 12, 2023: 220, 2024: 287, 2025: 288, 2026: 113 k 5/2026)
|
||||
|
||||
Detaily ZP nejsou v samostatné tabulce — jsou uloženy v **HISTDOC.DATA jako blob ve formátu key=value**:
|
||||
|
||||
```
|
||||
ICZ=09305000
|
||||
ICP=09305001
|
||||
POJ=I:111
|
||||
Dgn=N394
|
||||
Kod=5009790
|
||||
Nazev=VLOŽKY ABSORPČNÍ MOLICARE LADY 4,5 KAPKY
|
||||
Pocet=C:4.00
|
||||
Cena=C:418.40
|
||||
Dopl=C:73.84
|
||||
DoplnekNazvu=934ML,14KS
|
||||
DatPlat=D:17.06.2026
|
||||
Notifikace=736734018
|
||||
Stav=PREDEPSANY
|
||||
Omezeni=GER, GYN, PED, NEF, NEU, PRL, SLO, CHI, URN, SDP
|
||||
UHS=02.01.01.01
|
||||
...
|
||||
```
|
||||
|
||||
Typové prefixy hodnot: `C:` = decimal, `I:` = integer, `D:` = datum (DD.MM.YYYY), `$:~\b` = prázdné.
|
||||
|
||||
**Napojení na pacienta a lékaře:**
|
||||
```sql
|
||||
SELECT h.DATUM, k.PRIJMENI, k.JMENO, k.RODCIS, u.PRIJMENI AS LEKAR,
|
||||
CAST(h.DATA AS VARCHAR(8000)) AS DATA_TEXT
|
||||
FROM HISTDOC h
|
||||
JOIN KAR k ON h.IDPACI = k.IDPAC
|
||||
JOIN UZIVATEL u ON h.IDUZIV = u.IDUZI
|
||||
WHERE h.TYP = 'ORTOPE'
|
||||
ORDER BY h.DATUM
|
||||
```
|
||||
|
||||
**Sloupec Doklad** (alfanumerický kód v Medicus UI jako "QVNZEGR2B") — je v tabulce **HISTDOC_EPOUKAZ.ID_DOKLADU**. JOIN přes `IDHISTDOC = HISTDOC.ID`.
|
||||
|
||||
### HISTDOC_EPOUKAZ — e-podání poukazu pojišťovně
|
||||
|
||||
Vznikne až při odeslání poukazu elektronicky. Analogie k RECEPT_EPODANI.
|
||||
|
||||
| Sloupec | Popis |
|
||||
|---|---|
|
||||
| IDHISTDOC | FK → HISTDOC.ID |
|
||||
| ID_DOKLADU | kód Dokladu z Medicus UI (9 znaků, např. `MGAS9PQWS`) |
|
||||
| ID_ZP | UUID přidělený pojišťovnou |
|
||||
| ODESLANO | datetime odeslání |
|
||||
| VYDANO | datetime vydání pojišťovnou (NULL = zatím čeká) |
|
||||
| CHYBA | `T` = chyba při podání, `F` = OK |
|
||||
| SCHVALENI | `N` = neschváleno, `A` = schváleno |
|
||||
| ID_DOKLADU_VYDEJ | kód při vydání (NULL dokud nevydáno) |
|
||||
|
||||
Pozor: LEFT JOIN — poukaz může existovat bez záznamu v HISTDOC_EPOUKAZ (neodeslané).
|
||||
|
||||
Tabulka EPOUKAZ (bez prefixu HISTDOC) — **prázdná, nepoužívaná**.
|
||||
|
||||
**Skript pro export:** `Medicus/MedicusWithClaudeZP/prehled_zp.py` → výstup `Přehled_ZP.xlsx`
|
||||
- List 1 „Všechny záznamy" — vše včetně Doklad, Odesláno, Vydáno, Chyba, ID ZP
|
||||
- List 2 „Přehled Medicus" — sloupce shodné s Medicus UI (Datum, Kód, Název, Počet, Cena, Pojišťovna, IČZ, RC, Příjmení, Jméno, Vystavil, Doklad)
|
||||
|
||||
### HISTDOC + HISTDOCVYK – předepsané PZT (zdravotnické prostředky)
|
||||
Dvojice tabulek pro poukazy na ZP (analogie DOKLADH/DOKLADD):
|
||||
- **HISTDOC** = záhlaví poukazu (IDPACI, DATUM, TYP)
|
||||
- **HISTDOCVYK** = detail položky (KOD → PZT.KOD, POCET, CENA, FK přes `ID`)
|
||||
|
||||
Typy poukazů v HISTDOC: `POUV_1`, `POUV_3`, `ORTOP` (papírový), `ORTOPE` (e-poukaz). Od roku 2026 se ORTOP nepoužívá — vše přes ORTOPE. E-podání sleduje HISTDOC_EPOUKAZ (obsahuje `ID_ZP` = UUID z pojišťovny, `ODESLANO`, `VYDANO`).
|
||||
|
||||
Kategorie předepisovaného ZP (zjištěno z dat 2026): inkontinenční pomůcky (Tena, Molicare, Depend), kompresní punčochy (Maxis, Avicenum), stomické pomůcky (Aurum, Comfeel, Welland), mobilní pomůcky (chodítka, nástavce WC).
|
||||
|
||||
JOIN pro report: `HISTDOC h JOIN HISTDOCVYK v ON v.ID = h.ID JOIN PZT p ON p.KOD = v.KOD WHERE h.TYP IN ('POUV_1','POUV_3','ORTOP','ORTOPE')`
|
||||
|
||||
Poznámka: PZT číselník má historické záznamy — při joinu bez filtru platnosti může vrátit více názvů pro jeden kód (použít `MAX(p.NAZ)` nebo filtrovat `p.PLATIDO >= aktuální_datum`).
|
||||
|
||||
---
|
||||
|
||||
## TODO pro Claude Code
|
||||
|
||||
### 1. Report předepsaných poukazů a ZP
|
||||
|
||||
Naprogramovat periodický report (Python skript nebo HTML) předepsaných zdravotnických prostředků a poukazů z Medicus DB.
|
||||
|
||||
**Zdroj dat:**
|
||||
```sql
|
||||
SELECT h.DATUM, k.JMENO || ' ' || k.PRIJMENI AS PACIENT, h.TYP AS TYP_POUKAZU,
|
||||
v.KOD, MAX(p.NAZ) AS NAZEV_ZP, v.POCET, v.CENA
|
||||
FROM HISTDOC h
|
||||
JOIN KAR k ON k.IDKAR = h.IDPACI
|
||||
JOIN HISTDOCVYK v ON v.ID = h.ID
|
||||
JOIN PZT p ON p.KOD = v.KOD
|
||||
WHERE h.TYP IN ('POUV_1', 'POUV_3', 'ORTOP', 'ORTOPE')
|
||||
AND h.DATUM BETWEEN :datum_od AND :datum_do
|
||||
GROUP BY h.DATUM, k.JMENO, k.PRIJMENI, h.TYP, v.KOD, v.POCET, v.CENA
|
||||
ORDER BY h.DATUM DESC
|
||||
```
|
||||
|
||||
**Požadavky na report:**
|
||||
- Parametry: datum od/do (default = aktuální měsíc)
|
||||
- Seskupení: volitelně podle typu poukazu nebo kategorie ZP
|
||||
- Součty: celková cena za období, počet poukazů per pacient
|
||||
- Formát výstupu: Excel (.xlsx) nebo HTML s tiskem
|
||||
- Volitelně: srovnání s předchozím obdobím (měsíc/rok)
|
||||
- Připojení k DB přes MCP medicus-firebird nebo přímý Firebird driver (fdb / firebird-driver)
|
||||
|
||||
**Kontext:**
|
||||
- Tabulka KAR: IDKAR = primární klíč, JMENO + PRIJMENI = jméno pacienta
|
||||
- PZT číselník má historické záznamy — JOIN bezpečně přes `MAX(p.NAZ)` nebo `GROUP BY`
|
||||
- Sloupec HISTDOC.IDPACI = FK → KAR.IDKAR
|
||||
|
||||
---
|
||||
|
||||
## MCP nástroje — přehled (stav 2026-05-19)
|
||||
|
||||
### Původní nástroje
|
||||
| Nástroj | Popis |
|
||||
|---|---|
|
||||
| `execute_query(sql, params?)` | Libovolný SQL dotaz (SELECT/INSERT/UPDATE/DELETE) |
|
||||
| `list_tables()` | Seznam všech 993 tabulek |
|
||||
| `get_table_columns(table)` | Seznam sloupců tabulky (jen názvy) |
|
||||
| `get_schema()` | Kompletní schéma — všechny tabulky + sloupce |
|
||||
|
||||
### Nové nástroje (přidáno 2026-05-19)
|
||||
| Nástroj | Popis |
|
||||
|---|---|
|
||||
| `get_patient(idpac)` | Základní info o pacientovi z KAR — jmeno, prijmeni, rc, datnar, pojistovna |
|
||||
| `search_patients(query)` | Hledání pacienta podle příjmení/jména/RC, max 50 výsledků |
|
||||
| `get_patient_timeline(idpac, datum_od?, datum_do?)` | Chronologický přehled z DOCLIST — všechny záznamy pacienta |
|
||||
| `parse_histdoc_data(idhistdoc)` | Dekóduje DATA blob z HISTDOC — vrátí dict {Kod, Nazev, Pocet, Cena, Stav, Doklad…} |
|
||||
| `get_table_info(table)` | Rozšířené info o tabulce — typy sloupců, nullable, PK, počet záznamů |
|
||||
| `safe_query(sql, params?)` | SELECT s ochranou — varuje pro velké tabulky bez WHERE, limit 500 řádků |
|
||||
|
||||
### Velké tabulky vyžadující WHERE (safe_query varuje automaticky)
|
||||
LOG, ZURNAL, LABVD, DOCLIST, PZT, LEKY, DEKLINK
|
||||
|
||||
### Ještě neimplementováno
|
||||
- `decode_blob` (RTF → čistý text) pro DEKURS, ANAMNEZA
|
||||
- CP852 dekódování pro VZPARC
|
||||
Reference in New Issue
Block a user