- 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>
3.6 KiB
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.exese používá místopython.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