11 KiB
NacistPredpis — Funkční SOAP klient pro IS eRecept SÚKL
Status
OVĚŘENO FUNKČNÍ — 6. dubna 2026
Odpověď serveru: HTTP 200, velikost: ~3.7 KB
Schéma ověřeno proti: schema1.xsd verze 202501A (dokumentace SÚKL 2025-04-24)
Debug ověřen z: MedicusDebug/eR_SuklMesage_bf002578-*.mime
Co tato operace dělá
NacistPredpis je SOAP operace IS eRecept (SÚKL), která vrátí kompletní detail jednoho konkrétního receptu podle jeho ID.
Vrací vše: pacienta (jméno, adresa, rodné číslo, ZP), lékaře, ordinaci, předepsaný lék (ATC, dávkování, úhrada), stav receptu, výdej z lékárny.
Typické použití: lékař si zobrazí detail receptu, který sám vystavil, nebo ověří zda byl vydán.
Klíčové informace
Endpoint (produkce)
https://lekar-soap.erecept.sukl.cz/cuer/Lekar
Tato operace je na starším endpointu
/cuer/Lekar— bez číslice 2. OperaceNacistLekovyZaznamje naopak na/cuer/Lekar2.
Endpoint (testovací prostředí)
https://lekar-soap.test-erecept.sukl.cz/cuer/Lekar
SOAPAction
"NacistPredpis"
XML namespace
http://www.sukl.cz/erp/201704
Starší namespace z roku 2017 — tato operace existuje od počátku IS eRecept. Na rozdíl od
NacistLekovyZaznam(namespace201912) zde zůstává201704.
Porovnání s NacistLekovyZaznam
| NacistPredpis | NacistLekovyZaznam | |
|---|---|---|
| Namespace | 201704 |
201912 |
| Endpoint | /cuer/Lekar |
/cuer/Lekar2 |
| SOAPAction | NacistPredpis |
NacistLekovyZaznam |
| Identifikace | ID receptu (alfanumerický kód) | jméno + datum narození pacienta |
| Výsledek | detail jednoho receptu | celý lékový záznam pacienta (roky) |
| Velikost odpovědi | ~3.7 KB | ~227 KB |
Autentizace (dvojitá — stejná jako u všech operací)
1. Klientský certifikát (TLS mutual auth)
- Soubor:
AMBSUKL214235369G_31DEC2024.pfx - Formát: PKCS#12 (
.pfx) - Knihovna:
requests-pkcs12→Pkcs12Adapter
2. HTTP Basic Auth
- Uživatel: UUID lékaře
- Heslo: osobní heslo lékaře do portálu eRecept
Struktura SOAP dotazu
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<NacteniPredpisuDotaz xmlns="http://www.sukl.cz/erp/201704">
<Doklad>
<Pristupujici>
<Uzivatel>E08C89C6-2B1A-4EBA-8ED9-4E3E63618379</Uzivatel> <!-- UUID lékaře -->
<Pracoviste>00214235367</Pracoviste> <!-- IČP pracoviště -->
</Pristupujici>
<Identifikator>
<ID_Dokladu>PPIBVF93285E</ID_Dokladu> <!-- ID receptu, 12–25 znaků -->
<!-- alternativně: -->
<!-- <ID_Podani>uuid-guid-formát</ID_Podani> -->
</Identifikator>
</Doklad>
<Zprava>
<ID_Zpravy>bf002578-4e0d-48f9-86b4-ea3e21f280ec</ID_Zpravy>
<Verze>202501A</Verze>
<Odeslano>2026-04-06T07:24:04+00:00</Odeslano>
<SW_Klienta>MEDICUS_____</SW_Klienta>
</Zprava>
</NacteniPredpisuDotaz>
</soapenv:Body>
</soapenv:Envelope>
Parametry dotazu (ověřeno proti schema1.xsd verze 202501A)
| Element | Povinný | Omezení | Poznámka |
|---|---|---|---|
Uzivatel |
✅ ano | UUID formát | UUID lékaře přidělené SÚKL |
Pracoviste |
✅ ano | — | IČP pracoviště lékaře |
ID_Dokladu |
❌ volitelný* | 12–25 znaků | alfanumerický kód receptu |
ID_Podani |
❌ volitelný* | UUID formát (36 znaků) | alternativní identifikátor podání |
ID_Zpravy |
✅ ano | UUID formát | nové UUID pro každý dotaz |
Verze |
✅ ano | — | aktuálně 202501A |
Odeslano |
✅ ano | ISO 8601 | čas odeslání s časovou zónou |
SW_Klienta |
✅ ano | přesně 12 znaků | doplnit mezerami |
*Uvést právě jedno z:
ID_DokladuneboID_Podani— viz chybový kód L001.
Formát ID receptu (ID_Dokladu)
Alfanumerický kód délky 12–25 znaků, např. PPIBVF93285E.
- Nesmí obsahovat písmena O (zaměnitelné s nulou), I (zaměnitelné s jedničkou), Y, Z
- Nesmí obsahovat malá písmena ani diakritiku
- Lékař jej vidí na průvodce receptu / v Medicusu
Struktura odpovědi (ověřeno proti schema1.xsd verze 202501A)
NacteniPredpisuOdpoved
├── Doklad
│ ├── ID_Dokladu alfanumerický kód receptu
│ ├── DatumVystaveni datum
│ ├── PlatnostDo datum
│ ├── VypisDo datum — volitelný (prodloužená platnost výpisem)
│ ├── Akutni boolean — volitelný
│ ├── Rodina boolean — volitelný
│ ├── Preshranicni boolean — volitelný
│ ├── Opakovani int — volitelný (opakovací předpis)
│ │
│ ├── Pacient
│ │ ├── Totoznost
│ │ │ ├── Jmeno (Prijmeni, Jmena)
│ │ │ ├── DatumNarozeni
│ │ │ ├── Adresa (ulice, číslo, obec, PSC, okres...)
│ │ │ └── ROB způsob ztotožnění: ECD / JPDN / JPDNA
│ │ ├── CP číslo pojištěnce (rodné číslo)
│ │ ├── ZP Kod + Nazev zdravotní pojišťovny
│ │ ├── Telefon volitelný
│ │ ├── Notifikace SMS / Email — volitelný
│ │ └── Pohlavi M / Z — volitelný
│ │
│ ├── Predepisujici
│ │ ├── Lekar Kod (UUID) + Jmeno
│ │ ├── ICZ 8 číslic
│ │ ├── ICP 8 číslic
│ │ ├── PZS Kod + Nazev + IC + Telefon + Adresa
│ │ ├── Telefon
│ │ ├── Email volitelný
│ │ └── Odbornost Kod + Nazev
│ │
│ ├── Doporucujici volitelný — doporučující lékař
│ │ ├── Jmeno
│ │ ├── PZS
│ │ └── Odbornost
│ │
│ ├── Revize volitelný — schválení revizním lékařem ZP
│ │
│ ├── PLP[] předepsané léčivé přípravky (1 nebo více)
│ │ ├── Mnozstvi int, 1–9999
│ │ ├── Navod dávkování, max 80 znaků (např. "1-1-0")
│ │ ├── Uhrada ZAKLADNI / ZVYSENA / NEHRAZENY
│ │ ├── HVLPReg volitelný — registrovaný lék
│ │ │ ├── Kod SÚKL kód (7 číslic, např. "0087076")
│ │ │ ├── ATC ATC kód (např. "R05CB15")
│ │ │ ├── Nazev např. "ERDOMED"
│ │ │ ├── Forma léková forma (např. "CPS DUR")
│ │ │ ├── Sila síla (např. "300MG")
│ │ │ ├── CestaPodani např. "POR"
│ │ │ └── Baleni počet kusů v balení
│ │ ├── HVLPNereg volitelný — neregistrovaný HVLP
│ │ ├── IPLP volitelný — individuálně připravovaný LP
│ │ ├── INN volitelný — generický název
│ │ ├── Prekroceni boolean — překročení limitu
│ │ ├── ID_LP_Zdroj int — ID zdroje LP
│ │ └── ID_LP UUID položky předpisu
│ │
│ ├── Pozn poznámka, max 1000 znaků — volitelný
│ ├── Stav stav receptu (viz níže)
│ │
│ ├── Vydej[] volitelný — výdeje z lékáren (zkrácená forma)
│ │ ├── ID_Dokladu ID výdeje
│ │ ├── ID_Dokladu_ERP ID receptu (zpětný odkaz)
│ │ ├── DatumVydeje datum
│ │ ├── NazevPZS název lékárny
│ │ ├── JmenoVydavajiciho jméno lékárníka (může být "skryto")
│ │ ├── VLP[] vydané léčivé přípravky
│ │ │ ├── Mnozstvi
│ │ │ ├── Nazev plný název léku (např. "ERDOMED 300MG CPS DUR 20")
│ │ │ ├── Kod SÚKL kód
│ │ │ ├── Navod
│ │ │ └── IdLpErp UUID zpětný odkaz na PLP
│ │ ├── Zmena datetime
│ │ └── Zalozeni datetime
│ │
│ ├── Zmena datetime — poslední změna receptu
│ ├── Zalozeni datetime — vytvoření receptu
│ ├── DruhPojisteni VEREJNE / OSTATNI — volitelný
│ ├── ModryPruh boolean — volitelný (omamné látky)
│ ├── Papirovy boolean — volitelný
│ └── ZapocitatelnyDoplatekZbyvaDoLimitu decimal — zbývající limit doplatků pacienta
│
└── Zprava
├── ID_Zpravy nové UUID od serveru
├── Verze
├── Odeslano
├── ID_Podani echo ID podání
└── Prijato datetime — čas přijetí na serveru
Hodnoty stavu receptu (Stav)
| Hodnota | Popis |
|---|---|
KE_SCHVALENI |
čeká na schválení revizním lékařem ZP |
ZAMITNUTY |
zamítnut |
PREDEPSANY |
vystaven, čeká na výdej |
PRIPRAVOVANY |
lékárna si ho načetla, připravuje výdej |
CASTECNE_VYDANY |
vydán částečně (opakovací předpis) |
PLNE_VYDANY |
kompletně vydán ✅ |
NEDOKONCENY_VYDEJ |
výdej nedokončen |
UZAVRENY |
uzavřen, nelze měnit |
Hodnoty způsobu ztotožnění (ROB)
| Hodnota | Popis |
|---|---|
ECD |
elektronicky čitelný doklad (občanský průkaz/pas) |
JPDN |
jednoznačný dle jména, příjmení, data a adresy |
JPDNA |
jednoznačný dle jména, příjmení a data (bez adresy) |
HTTP hlavičky
headers = {
"Content-Type": 'text/xml; charset="UTF-8"',
"SOAPAction": '"NacistPredpis"', # uvozovky jsou součástí hodnoty!
"User-Agent": "Medicus"
}
Závislosti (Python)
requests
requests-pkcs12
Soubor skriptu
NacistPredpis_FUNKCNI.py — funkční implementace, ověřeno 6. 4. 2026.
Zdroje dokumentace SÚKL
| Soubor | Datum | Obsah |
|---|---|---|
MedicusDebug/eR_PostData.xml |
2026-04-05 | reálný dotaz z Medicusu |
MedicusDebug/eR_SuklMesage_*.mime |
2026-04-05 | HTTP hlavičky + tělo dotazu |
MedicusDebug/eR_SuklMesage_*_Resp.xml |
2026-04-05 | reálná odpověď serveru |
CUERLekar.wsdl |
2025-04-24 | definice operace NacistPredpis |
schema1.xsd |
2025-04-24 | kompletní XSD schéma dotazu i odpovědi |