2.5 KiB
2.5 KiB
QRPlatbaApp – QR kód pro platby
Přehled
Aplikace generuje QR kódy pro platby pacientů v ordinaci. Údaje o pacientovi jsou předávány z Medicusu, aplikace zobrazí okno s výběrem položky k úhradě a generuje QR kód ve formátu SPAYD (Czech Payment Standard).
Soubory
| Soubor | Popis |
|---|---|
QRPlatbaApp.py |
Hlavní skript (customtkinter GUI) |
QRPlatbaApp.spec |
PyInstaller konfigurace |
qrcode.ico |
Ikona EXE |
dist/QRPlatbaApp.exe |
Spustitelný EXE |
QRPlatby/ |
Uložené QR kódy (PNG) |
Konfigurace v Medicusu
V menu Konfigurace > Externí programy:
| Položka | Hodnota |
|---|---|
| Program | U:\OrdinaceProjekt\Medicus\Externi\QRCode\dist\QRPlatbaApp.exe |
| Příkazový řádek | "U:\OrdinaceProjekt\Medicus\Externi\QRCode\dist\QRPlatbaApp.exe" %JMENO% %PRIJMENI% %RODCIS% |
| Pacient | ✓ |
| Menu | QR Platba |
Důležité technické detaily
Rodné číslo
Medicus předává RC s lomítkem (např. 730928/104). Skript lomítko automaticky odstraní — variabilní symbol ve SPAYD formátu musí být max 10 číslic:
RODCIS = sys.argv[3].replace("/", "")
Argumenty z Medicusu
JMENO = sys.argv[1]
PRIJMENI = sys.argv[2]
RODCIS = sys.argv[3].replace("/", "")
Ceník
Načítá se ze stored procedure Medicus DB:
cur.execute("SELECT V.KOD, V.NAZEV, V.CENA FROM VLV_SEL(NULL, NULL, NULL) V ORDER BY V.KOD")
SPAYD formát
SPD*1.0*ACC:CZ7520100000002800046620*AM:500.00*CC:CZK*X-VS:7309281045*MSG:Buzalka%20Vladimír%20–%20Poplatek
| Pole | Popis |
|---|---|
ACC |
IBAN bankovního účtu |
AM |
Částka (Kč) |
CC |
Měna (CZK) |
X-VS |
Variabilní symbol = RC bez lomítka (max 10 číslic) |
MSG |
Jméno pacienta + položka |
Bankovní účty
ACCOUNTS = {
"2100046291/2010": "CZ1720100000002100046291",
"2800046620/2010": "CZ7520100000002800046620",
}
Výstup
QR kódy PNG se ukládají do U:\OrdinaceProjekt\Medicus\Externi\QRCode\QRPlatby\.
Error handling
Jakákoliv výjimka zobrazí dialog a pošle email na vladimir.buzalka@buzalka.cz s traceback a údaji pacienta. Implementováno přes Knihovny/EmailMessagingGraph.py.
Firebird DB připojení
DB_DSN = r'localhost:c:\medicus 3\data\medicus.fdb'
DB_USER = 'SYSDBA'
DB_PASSWORD = 'masterkey'
DB_CHARSET = 'win1250'
Rebuild EXE
cd U:\OrdinaceProjekt\Medicus\Externi\QRCode
pyinstaller QRPlatbaApp.spec