15 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
Popis jednotlivých polí odpovědi (zdroj: documentationCuer.html SÚKL 2025-04-24)
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
ID_Dokladu |
string 12–25 | ✅ | Identifikátor dokladu |
DatumVystaveni |
date | ✅ | Datum vystavení eReceptu |
PlatnostDo |
date | ✅ | Datum konce platnosti eReceptu určené při předepsání |
VypisDo |
date | ❌ | Datum prodloužení platnosti eReceptu (lékárna může platnost prodloužit výpisem) |
Akutni |
boolean | ❌ | Symbol Akutní péče nebo Neodkladná péče |
Rodina |
boolean | ❌ | Symbol „Pro potřebu rodiny" nebo „Ad usum proprium" (lékař předepisuje sobě/rodině) |
Preshranicni |
boolean | ❌ | Přeshraniční předpis (nepoužívá se) |
Opakovani |
long | ❌ | Celkový počet výdejů u opakovacích receptů |
Pacient |
nacteni_pacient_type | ✅ | Údaje o pacientovi |
Predepisujici |
nacteni_predepisujici_type | ✅ | Údaje o předepisujícím lékaři |
Doporucujici |
nacteni_doporucujici_type | ❌ | Údaje o doporučujícím lékaři |
Revize |
nacteni_revize_type | ❌ | Schválení revizním lékařem ZP (nepoužívá se) |
PLP |
nacteni_predepsany_lp_erp_type[] | ❌ | Předepsané položky (léky) |
Pozn |
string 1–1000 | ❌ | Poznámka na eReceptu |
UpozornitLekare |
enum | ❌ | Akceptace zpětného předání poznámky z lékárny — viz tabulka níže |
Stav |
enum | ✅ | Stav eReceptu — viz tabulka níže |
Vydej |
nacteni_zkraceny_vydej_erp_doklad_odpoved_type[] | ❌ | Seznam výdejů uskutečněných dosud na tento eRecept |
Zmena |
dateTime | ✅ | Datum a čas poslední změny eReceptu |
Zalozeni |
dateTime | ✅ | Datum a čas založení eReceptu |
DruhPojisteni |
enum | ❌ | Druh pojištění pacienta — viz tabulka níže |
ModryPruh |
boolean | ❌ | Předpis na LP s obsahem vysoce návykové látky (omamné/psychotropní) |
Papirovy |
boolean | ❌ | Digitalizovaný papírový předpis (nepoužívá se) |
ZapocitatelnyDoplatekZbyvaDoLimitu |
decimal 0–999999.99 | ❌ | Částka zbývající do max. ročního limitu započitatelných doplatků pacienta (po překročení limitu ZP hradí doplatky za pacienta) |
Hodnoty stavu receptu (Stav) — enum stav_elektronickeho_receptu
| Hodnota | Popis |
|---|---|
KE_SCHVALENI |
(Nepoužívá se) Ke schválení zdravotní pojišťovnou |
ZAMITNUTY |
(Nepoužívá se) Zamítnutý zdravotní pojišťovnou |
PREDEPSANY |
Předepsaný — výchozí stav po založení, lze provést výdej ✅ |
PRIPRAVOVANY |
Připravovaný — lékárna pracuje na výdeji (připravuje IPLP nebo objednala HVLP u distributora); výdej může provést jen tato lékárna; používá se i pro blokaci při technickém výpadku |
CASTECNE_VYDANY |
Částečně vydaný — výdej proběhl, ale může následovat další (prodloužená platnost nebo opakovací recept s dalšími opakováními) |
PLNE_VYDANY |
Plně vydaný — výdej dokončen, žádný další výdej nenásleduje ✅ |
NEDOKONCENY_VYDEJ |
Nedokončený výdej — lékárna nevydala léčivo, ale zaznamenala doplňující informaci (důvod nevydání); lze použít pouze u prvního takového výdeje |
UZAVRENY |
(Nepoužívá se) Uzavřený |
Hodnoty druhu pojištění (DruhPojisteni) — enum druh_pojisteni
| Hodnota | Popis |
|---|---|
NEZADANO |
Nezadáno |
VEREJNE |
Veřejné zdravotní pojištění (běžný případ v ČR) |
SMLUVNI_PRIPOJISTENI |
Smluvní připojištění |
CESTOVNI_PRIPOJISTENI |
Cestovní zdravotní připojištění |
POJISTENI_EU |
Pojištění EU (pacient z jiného státu EU) |
Hodnoty upozornění lékaře (UpozornitLekare) — enum upozornit_lekare
Lékárník může k výdeji přidat poznámku pro předepisujícího lékaře. Toto pole říká, zda lékař tuto funkci akceptoval a jak urgentně chce být informován.
| Hodnota | Popis |
|---|---|
BEZODKLADNE |
Upozornit lékaře bezodkladně (akceptuje BEZODKLADNE i PRISTI_NAVSTEVA) |
PRISTI_NAVSTEVA |
Upozornit lékaře při příští návštěvě pacienta (akceptuje pouze PRISTI_NAVSTEVA) |
| (neuvedeno) | Lékař neakceptoval zpětné předávání poznámek z lékárny |
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 |