Files
fio/QRPlatba/README.md
T
administrator 89511c500f Add QR payment generator with live Medicus price list
- New QRPlatba/ module: standalone app for generating SPAYD QR payment codes
- Live price list loaded directly from Medicus Firebird DB (VLV_SEL), sorted by KOD
- Patient data (name, surname, RC) passed as arguments from Medicus button
- Auto-generates QR on load and refreshes on every dropdown change
- Account selector dropdown (two FIO accounts with IBAN)
- Save button exports QR as PNG next to the EXE (sys.executable-relative path)
- SPAYD format: ACC, AM, CC, X-VS (rodné číslo), MSG (patient + item)
- README.md with full documentation, Medicus button command, DB schema
- Add .gitignore (excludes build/, dist/, .venv/, .idea/, .claude/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 20:07:10 +01:00

3.6 KiB
Raw Blame History

QRPlatbaApp Generátor QR plateb pro ordinaci MUDr. Buzalková

Aplikace pro generování QR kódů plateb dle standardu SPAYD / ČBA přímo z prostředí Medicus 3. Ceník se načítá živě z databáze Medicusu, takže jakákoliv změna cen v Medicusu se okamžitě projeví.


Funkce

  • Načítá ceník přímo z databáze Medicus (Firebird) vždy aktuální ceny
  • Pacientské údaje (jméno, příjmení, rodné číslo) přijímá jako argumenty z tlačítka Medicusu
  • QR kód se zobrazí automaticky po otevření okna
  • QR kód se obnoví při každé změně položky nebo čísla účtu
  • Výběr ze dvou bankovních účtů (dropdown)
  • Tlačítko Uložit QR kód uloží PNG soubor do složky QRPlatby/
  • Variabilní symbol = rodné číslo pacienta
  • Zpráva příjemci = Příjmení Jméno Název položky

Spuštění z Medicusu

Příkaz pro tlačítko v Medicusu:

"U:\PycharmProjects\FIO\.venv\Scripts\pythonw.exe" "U:\PycharmProjects\FIO\QRPlatba\QRPlatbaApp.py" "%JMENO%" "%PRIJMENI%" "%RODCISN%"

pythonw.exe se používá místo python.exe, aby se nezobrazovalo černé konzolové okno.


Struktura projektu

QRPlatba/
├── QRPlatbaApp.py     # Hlavní aplikace
├── README.md          # Tato dokumentace
└── QRPlatby/          # Výstupní složka pro uložené QR kódy (PNG)

Závislosti

Nainstalovat přes pip do projektového venv:

pip install customtkinter pillow qrcode fdb
Balíček Účel
customtkinter Moderní GUI (tmavý/světlý režim)
pillow Práce s obrázky (zobrazení QR v okně)
qrcode Generování QR kódů
fdb Připojení k Firebird databázi (Medicus)

Databázové připojení

Aplikace se připojuje k lokální Firebird databázi Medicusu:

Parametr Hodnota
DSN localhost:c:\medicus 3\data\medicus.fdb
Uživatel SYSDBA
Charset win1250
View VLV_SEL ceník výkonů

Položky jsou seřazeny podle pole KOD (pořadové číslo v ceníku Medicusu).


Formát QR kódu (SPAYD)

QR kód odpovídá standardu Short Payment Descriptor (SPAYD) dle specifikace České bankovní asociace.

Příklad vygenerovaného řetězce:

SPD*1.0*ACC:CZ1720100000002100046291*AM:600.00*CC:CZK*X-VS:486122443*MSG:Abohamda%20Horia%20%E2%80%93%20O%C4%8Dkov%C3%A1n%C3%AD%20ch%C5%99ipka%20(VAXIGRIP)
Pole Obsah
ACC IBAN cílového účtu
AM Částka v Kč
CC Měna (vždy CZK)
X-VS Variabilní symbol = rodné číslo
MSG Příjmení Jméno Název položky

Bankovní účty

Číslo účtu IBAN
2100046291/2010 CZ1720100000002100046291
2800046620/2010 CZ7520100000002800046620

Uložené QR kódy

Soubory se ukládají do složky QRPlatby/ ve formátu:

Příjmení_Jméno_YYYYMMDD_HHMMSS.png

Příklad: Abohamda_Horia_20260325_143022.png


© Ordinace MUDr. Buzalková | QR Platba dle ČBA v1.2