notebookvb

This commit is contained in:
2026-04-22 07:25:00 +02:00
parent ef7c5d77dc
commit 58026d944e
10053 changed files with 227 additions and 10730 deletions
+94
View File
@@ -0,0 +1,94 @@
"""
Report: předepsané léky — jeden řádek na lék.
Výstup: report_predepsane_leky_RRRR.xlsx
Spuštění:
python report_predepsane_leky.py # aktuální rok
python report_predepsane_leky.py 2025 # jiný rok
"""
import sys
import io
from datetime import date
from pathlib import Path
import pymysql
import pymysql.cursors
import openpyxl
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
DB = dict(
host="192.168.1.76",
user="root",
password="Vlado9674+",
database="medicus",
charset="utf8mb4",
cursorclass=pymysql.cursors.DictCursor,
)
ROK = int(sys.argv[1]) if len(sys.argv) > 1 else date.today().year
SQL = """
SELECT
p.datum_vystaveni,
pac.prijmeni,
pac.jmena,
pac.datum_narozeni,
rd.cp,
rd.zp_nazev,
p.nazev AS predepsany_lek,
p.atc,
p.forma,
p.sila,
p.baleni,
p.mnozstvi,
p.navod,
p.typ_leku,
rp.uhrada,
rp.prekroceni,
rd.stav,
rd.platnost_do,
rd.opakovani,
rd.akutni,
rd.modry_pruh,
rd.pozn AS poznamka_na_receptu,
v.datum_vydeje,
v.nazev AS vydany_lek,
v.mnozstvi AS vydane_mnozstvi,
vyd.pzs_nazev AS lekarna,
p.id_lp_predpis,
rd.id_dokladu
FROM predpis p
JOIN zprava z ON z.id = p.zprava_id
JOIN pacient pac ON pac.id = z.pacient_id
LEFT JOIN recept_plp rp ON rp.id_lp = p.id_lp_predpis
LEFT JOIN recept_doklad rd ON rd.id_dokladu = rp.id_dokladu
LEFT JOIN vydej v ON v.id_lp_predpis = p.id_lp_predpis
LEFT JOIN vydavajici vyd ON vyd.lekarnik_kod = v.kod_vydavajiciho
WHERE YEAR(p.datum_vystaveni) = %s
ORDER BY p.datum_vystaveni DESC, pac.prijmeni, pac.jmena, p.nazev
"""
conn = pymysql.connect(**DB)
with conn.cursor() as cur:
cur.execute(SQL, (ROK,))
rows = cur.fetchall()
conn.close()
print(f"Načteno {len(rows)} řádků za rok {ROK}")
wb = openpyxl.Workbook()
ws = wb.active
ws.title = f"Předpisy {ROK}"
if rows:
ws.append(list(rows[0].keys()))
for row in rows:
ws.append([str(v) if v is not None else "" for v in row.values()])
out = Path(__file__).parent / f"report_predepsane_leky_{ROK}.xlsx"
wb.save(out)
print(f"Uloženo: {out}")
import os
os.startfile(out)
Binary file not shown.