import uuid from datetime import datetime, timezone from requests import Session from requests_pkcs12 import Pkcs12Adapter # --- Konfigurace --- PFX_FILE = r"C:\Users\vlado\PycharmProjects\Recepty\AMBSUKL214235369G_31DEC2024.pfx" PFX_PASSWORD = "Vlado7309208104++" API_USER = "e08c89c6-2b1a-4eba-8ed9-4e3e63618379" API_PASS = "Buzalka@Vladimir2025" UZIVATEL = "E08C89C6-2B1A-4EBA-8ED9-4E3E63618379" PRACOVISTE = "00214235367" ENDPOINT = "https://lekar-soap.erecept.sukl.cz/cuer/Lekar2" NAMESPACE = "http://www.sukl.cz/erp/201912" # --- Pacient --- PRIJMENI = "Buzalka" JMENA = "Vladimír" DATUM_NAROZENI = "1973-09-20" # --- Doklad totožnosti --- # DruhDokladu: "ID" = občanský průkaz, "P" = cestovní pas # CisloDokladu: číslo dokladu, max 9 znaků (jen číslice) DRUH_DOKLADU = "ID" CISLO_DOKLADU = "" # <-- sem vyplnit číslo občanského průkazu pacienta POCET_ZNAKU_ATC = 7 # pouze 5 nebo 7 POCET_MESICU = 60 # max 99, volitelné def nacist_lekovy_zaznam_s_obcankou(): if not CISLO_DOKLADU: print("CHYBA: Není vyplněno CISLO_DOKLADU!") return sess = Session() sess.mount("https://", Pkcs12Adapter(pkcs12_filename=PFX_FILE, pkcs12_password=PFX_PASSWORD)) sess.auth = (API_USER, API_PASS) id_zpravy = str(uuid.uuid4()) odeslano = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S+00:00") soap_body = ( '' '' '' f'' f'' f'' f'{UZIVATEL}' f'{PRACOVISTE}' f'' f'{POCET_ZNAKU_ATC}' f'{POCET_MESICU}' f'' f'' f'{PRIJMENI}{JMENA}' f'{DATUM_NAROZENI}' f'{DRUH_DOKLADU}' f'{CISLO_DOKLADU}' f'' f'' f'' f'' f'{id_zpravy}' f'202501A' f'{odeslano}' f'MEDICUS_____' f'' f'' '' '' ) headers = { "Content-Type": 'text/xml; charset="UTF-8"', "SOAPAction": '"NacistLekovyZaznam"', "User-Agent": "Medicus" } print(f"Pacient: {PRIJMENI} {JMENA}, nar. {DATUM_NAROZENI}") print(f"Doklad: {DRUH_DOKLADU} {CISLO_DOKLADU}") print(f"Volám: {ENDPOINT}\n") resp = sess.post(ENDPOINT, data=soap_body.encode("utf-8"), headers=headers, timeout=15) print(f"HTTP {resp.status_code} | {len(resp.content)} bytů\n") print(resp.text) if __name__ == "__main__": nacist_lekovy_zaznam_s_obcankou()