4.7 KiB
Dekurzy report – dokumentace
Co report dělá
Generuje Excel soubor s přehledem všech dekurzů z ordinace MUDr. Buzalkové za zadané období. Hlavní list Dekurz zobrazuje každý dekurz jako jeden řádek. Čísla v sloupcích jsou klikatelné hyperlinkové zkratky, které přeskočí na příslušný detailní list (Recepty, Výkony, Soubory apod.).
Spuštění
python dekurz_report.py
Vstupní parametry (nastavit přímo v souboru):
| Proměnná | Výchozí hodnota | Popis |
|---|---|---|
DATUM_OD |
2025-01-01 |
Začátek období |
DATUM_DO |
dnešní datum | Konec období (automaticky) |
VYSTUPNI_ADRESAR |
u:\Dropbox\Ordinace\Reporty |
Kam se ukládá |
NAZEV_REPORTU |
Dekurzy |
Část názvu souboru |
Výstupní soubor: YYYY-MM-DD HH-MM-SS Dekurzy.xlsx
Starý soubor se stejným názvem je automaticky smazán.
Zdroj dat
Databáze Firebird: localhost:c:\medicus 3\data\medicus.fdb
Připojení: SYSDBA / masterkey, charset win1250
Hlavní dotaz
SELECT d.DATUM, d.CAS, u.ZKRATKA, k.PRIJMENI, k.JMENO, k.RODCIS, k.POJ, d.DEKURS
FROM DEKURS d
JOIN KAR k ON k.IDPAC = d.IDPAC
LEFT JOIN UZIVATEL u ON u.IDUZI = d.IDUZI
WHERE d.DATUM >= '2025-01-01' AND d.DATUM <= dnes
ORDER BY d.DATUM DESC, d.CAS DESC, k.PRIJMENI, k.JMENO
Řazení: nejnovější záznamy nahoře.
Jak funguje parsování RTF bookmarků
Každý dekurz je uložen jako RTF blob ve sloupci DEKURS.DEKURS.
Medicus do RTF hlavičky zapisuje bookmarky – hypertextové odkazy na propojené záznamy:
{\info{\bookmarks "ATORIS","Rec:322528",17;"01543","VykA:189603",8}}
Formát: "název","TYP:ID",číslo_stylu
Skript parsuje regex "([^"]+)","([A-Za-z]+):(\d+)" a extrahuje typ a ID záznamu.
Typy bookmarků a jejich tabulky
| Bookmark | List v Excelu | Tabulka v DB | PK | Zobrazované sloupce |
|---|---|---|---|---|
Rec |
Recepty | RECEPT |
ID |
LEK, DSIG (lék, dávkování) |
VykA |
Výkony | DOKLADD |
ID |
KOD, DDGN (kód výkonu, diagnóza) |
Files |
Soubory | FILES |
ID |
FILENAME, DATUM |
MEDLAB |
MedLab | HISTDOC |
ID |
DATUM, TYP (žádanka do laboratoře) |
Lab |
Lab | LABVH |
IDVH |
DATUM, CISLO (výsledky laboratoře) |
Ock |
Očkování | OCKZAZ |
ID |
DATUM, LATKA (vakcína) |
Nes |
Neschop. | NES |
ID |
ZACNES, KONNES (od – do) |
Lec |
Léčiva | LECD |
ID |
KOD, DATOSE (léčivo podané v ordinaci) |
SpecVys |
SpecVys | SPECVYS |
IDSPECVYS |
TYP, DATUM (Tonotrack, holter…) |
PlaPac |
Platby | PLA |
IDPLA |
DATUM, CENA, DOKLAD |
| ostatní | Ostatní | – | – | TYP, ID, Název (formuláře, poukazy…) |
Ostatní typy (méně časté):
ORTOPE – ePoukaz na ortopedickou pomůcku
ZDRINF – Žádost o předání zdravotních informací
PROHLAS – Prohlášení
POTDPN – Potvrzení DPN
MOTORVO – Posudek motorového vozidla
LAZPEC – Lázně
VypZdrD – Výpis ze zdravotní dokumentace
VYMLIST – Výměnný list
PouRTG – Poukaz RTG
ZPUPRN – Způsobilost k práci/řízení
EPOSMRO – ePosudek MRO
ZNESUP – Potvrzení neschopnosti uchazeče o zaměstnání
Všechny výše uvedené jdou do listu Ostatní s uvedením typu, ID a názvu.
Struktura Excel souboru
List Dekurz (hlavní)
| Sloupec | Zdroj | Popis |
|---|---|---|
| Datum | DEKURS.DATUM |
Datum dekurzu |
| Čas | DEKURS.CAS |
Čas (HH:MM) |
| Lékař | UZIVATEL.ZKRATKA |
MBU / VBU / ISE |
| Jméno | KAR.PRIJMENI + JMENO |
Formát: Příjmení, I. |
| Rodné číslo | KAR.RODCIS |
|
| Pojišťovna | KAR.POJ |
Kód pojišťovny (111, 201…) |
| Rec … PlaPac | RTF bookmark | Počet záznamů – klikací hyperlink na detailní list |
| Ostatní | RTF bookmark | Počet ostatních typů – hyperlink na list Ostatní |
Detailní listy
Každý list má:
- Záhlaví s vlastní barevnou kombinací
- Sloupce: Datum, Jméno + specifické sloupce dle typu
- Střídání bílých a barevných řádků
- Tenké šedé ohraničení všech buněk
- Zmrazený první řádek
- Autofiltr
Technické poznámky
- Firebird limit
IN (...)je 1500 hodnot – dotazy na detaily se automaticky dělí do dávek po 1000 - RTF blob je čten přes
blob.read()nebo přímo jako string - Jméno pacienta:
Příjmení, I.(iniciála prvního písmene jména) - Chybová hláška
BlobReader.close: invalid BLOB handleje neškodná – GC uzavírá handlery po odpojení DB
Scheduled Task
Spouštěcí příkaz:
python "C:\Users\vlado\PycharmProjects\Medicus\MedicusWithClaudeDekurz\dekurz_report.py"
Doporučené spouštění: každý den ráno (např. 6:00), aby byl vždy čerstvý soubor v Dropboxu.