Stav addinu: v běžném provozu
Počet uživatelů (úřadů): 10+

PZP

Portál zdravotních pojišťoven, zkráceně Portál ZP, je internetová aplikace, která umožňuje uživatelům pohodlné, snadné, rychlé a bezpečné vyřízení agendy s 5 zdravotními pojišťovnami z 7, které působí na českém trhu veřejného zdravotního pojištění. Má sloužit především ke komunikaci mezi zdravotní pojišťovnou a lékařem, zaměstnavatelem nebo klasickým pojištěncem. Prostřednictvím tohoto portálu pak zdravotní pojišťovny získávají určité informace od svých klientů. Jedná se o informace, jako například hlášení o platbách zdravotního pojištění, vyúčtování zdravotní péče od lékařů a tak podobně.

V Portálu ZP jsou od 1. 10. 2012 sdruženy tyto pojišťovny:

  • Zaměstnanecká pojišťovna Škoda (209)
  • Česká průmyslová zdravotní pojišťovna (205)
  • Oborová zdravotní pojišťovna zaměstnanců bank, pojišťoven a stavebnictví (207)
  • Revírní bratrská pokladna, zdravotní pojišťovna (213)
  • Vojenská zdravotní pojišťovna ČR (201)

Subjekt

Subjekt je daná osoba vyskytující se v registru.

Stavy subjektu

Subjekt nabývá jedné z uvedených hodnot:

Empty – žádný stav

Není klientem –  subjekt není klientem u PZP

Error – nastala obecná chyba

Data odeslány – odeslaný požadavek

Odpověď dorazila – přišla odpověď

Nestaženo – nepřišla odpověď (Timeout)

Naimportováno – odpověď naimportována

Druhá fáze

Validuje všechny subjekty. Poté odešle jednotlivé hromadné součinnosti (dále jen HS) na PZP.

Vstupní parametry

EndPoint : URL adresa, na které služby běží

Serial number of the certificate for the client signing: certifikát pro přihlášení

 

Detailní popis pro zpracovaní jednoho subjektu v HS:

  • Pokud má subjekt jiný stav než Empty, přeskakuje se
  • Kontrola či má subjekt Rodné číslo(dále jen RČ) a správný počet znaku, probíhá validace, atd..
  • V případě chybějících nebo nevalidních informací je subjekt přepnut na stav Error s popisem chyby
  • Následuje vložení subjektu do schránky (každý subjekt má svoje pořadí začínající od 0 pro každpu HS)
  • Do žádosti se o subjektu posílají tyto data: RČ, Jméno, Příjmení, číslo spisu, pořadí a prohlášení

Ukončení Fáze

K ukončení dochází po zapsání data prvního odesláni do Ticket.Kind. Když nejsou žádná data k odeslání, HS se přepne do čtvrté fáze(všechny subjekty mají stav Error).

Odeslání komunikace

Ze schránky se vytvoří XML dokument, uložený na cestě HS/ RequestMessages/ SchrankaZadost.xml. Poté se vytvoří komunikace a přiloží se k ní SchrankaZadost.xml. Komunikace se podepíše certifikátem a následovně odešle. Odpověď z komunikace je synchronní, čili máme hned odpověď. Spolu s odpovědí komunikace přijde soubor „exe_protokol.xml“. Jestliže chybí soubor nebo dojde k nějaké chybě, HS skončí v druhé fázi Errorem. Soubor „exe_protokol.xml“ obsahuje informace v jaké pojišťovně mají nějakou informaci o daném subjektu. Při odesláni komunikace se pošle dotaz automaticky na všechny pojišťovny se subjekty, které jsou tam evidovány. Každý dotaz na pojišťovnu má svoje IDpodani. Když u dané pojišťovny není subjekt evidován tak systém nevrátí žádnou odpověď (s výjimkou pojišťovny 205, ta vrátí odpověď, že klient není evidován).

Zpracovaní protokolu a uložení to tabulky LustracePZP

Protokol má Element SkupinaPolozek, kde v každé položce jsou informace k jednomu subjektu.

Pro každou položku se vybere RČ subjektu a vyberou se všechny pojišťovny u kterých má subjekt nějakou informaci (Atribut – Pojistenec „ANO“). Jestli nikde není veden, změní se stav subjektu na „Není klientem“. Pokud je někde uveden, tak se pro každou pojišťovnu vytvoří záznam v tabulce LustracePZP (současně se tato informace zaloguje). Do informací o subjektu se zapíše, u jaké pojišťovny je subjekt veden ve formátu {Zkratka P} – IdPodáni. Také se změní stav subjektu na Data odeslány.

Tabulka LustracePZP

Do tabulky se zapíše:

IDHS, HSFolder tvoří cesta k HS, IDspis, IdKlient, Zp je zkratka pojištovny, RequestDate se rovná aktuálnímu času.
IdPodani toto Id přijde s odpovědí v souboru „exe_protokol.xml.

Třetí fáze

Addin načte nové zprávy ze schránky PZP a uloží je do adresáře.

Vstupní parametry

EndPoint : URL adresa, na které služby běží

Serial number of the certificate for the client signing: certifikát pro přihlášení

Resend messages afer x days: Pokud nepřijde odpověď po x daných dnech po odeslaní dotaz se odešle znovu

Import messages after x days: Pokud nepřijde odpověď do x daných dní od založení HS tak se začne importovat

Stahovat jen odpovědi uvedené v tabulce LustracePZP: Jestli je v schránce PZP odpověď ale v tabulce LustracePZP není o ní záznam, tak si ji addin nevšímá (označí ji jako přečtenou až když bude v Timeoutu). Toto nastavení je přimárně určeno pro více úřadu využívajících jednu schránku PZP.

Receive only New Messages: Stahují se pouze nové zprávy (nepřečtené)

 

Popis:

Addin si stáhne všechny zprávy ze schránky dle nastavení (jen nepřečtené nebo všechny). K přihlášení je potřebný certifikát. V případe žádné odpovědi addin končí.  Když bude služba nedostupná nebo se nepodaří získat data z XML souboru addin končí chybou s jejím popisem. V případě chybného XML se soubor uloží do složky HS/Error_Phase3. V XML komunikaci jsou uvedeni pouze ID zpráv. Na základe těchto ID si pak stáhneme všechny nové zprávy i se všemi přílohami.

Postup zpracovaní správy:

  • Jestli správa nemá žádnou přílohu vloží se do seznamu přečtených sprav
  • Když se zpráva špatná, nepodaří se deserializace – chybné XML, uloží se do HS/Error_Phase3 a vloží se do seznamu přečtených zpráv.
  • Zpráva obsahuje IdPodani. Na základe toho se vyberou všechny záznamy v tabuli LustracePZP

Pokud není v tabulce LustracePZP informace o podaní jsou dvě možnosti zpracovaní, dle nastavení a to stahovat jen odpovědi uvedené v tabulce LustracePZP.

  1. Pokud je nastavené na „False“ tak se správa uloží do HS/Error_Phase3 a vloží se do seznamu přečtených zpráv
  2. Je-li nastavené „True“, pak se správa vloží se do seznamu přečtených zpráv jen v případě Timeoutu. Každá zpráva má datum odeslaní, podání a Timeout (počet dnů), které jsou v nastavení addinu (Import messages after x days)

Je-li nějaký záznam v tabulce LustracePZP systém zkontroluje, zda existuje HS (HSFolder). Všechny záznamy pod stejným IdPodání mají také stejnou cestu HS. Když neexistuje, tak se všem záznamům nastaví stav Error a Zprávu ve tvaru požadavku na bližší info. Zpráva se pote vloží se do seznamu přečtených zpráv.

Když HS existuje na dané cestě, vyhledají se všechny HS ve třetí fázi. Jestli HS není ve třetí fázi, dohledá se ve fázi druhé (mohou být přesunuty pro přeposlání požadavku). Jestli není ani v druhé  nebo třetí fázi, zpráva se vloží do seznamu přečtených zpráv. HS sice existuje ale může být v Erroru nebo ve čtvrté, páté fázi (Zpráva přišla po Timeoutu).

Pokud se HS nachází v druhé nebo třetí fázi uloží se odpověď do HS/ ResponseMessages/. Poté se všem subjektům v HS, kteří jsou v odpovědi změní stav na Odpověď dorazila“. U informací o subjektu je uvedená cesta odpovědi, pokud je jich více tak jsou odděleny znakem ;. Následovně se aktualizují záznamy v LustracePZP (Response_Date= now). Daná HS se přepne do čtvrté fáze Ready.

Seznam zpráv, který se má označit za přečtený se odešle do schránky PZP.

Timeoutování Lustrací:

Vyberou se všechny HS v třetí fázi Ready a u každé HS se kontroluje Timeout (Datum odeslání je v Ticket.Kind). Timeout je nastaven dle: Import messages after x days

Je-li stav Timeout, HS se přepne do čtvrté fáze Ready s popisem „Vypršel časový limit pro lustraci-> Importuji“

Všem subjektům, které mají stav Data odeslány se změní stav na Nestaženo

Přeposílání dotazů:

Přeposílání je uděláno dle nastavení Resend messages afer x days. Vyberou se všechny HS v třetí fázi a pokud nepřišla žádná odpověď, přepošle se požadavek. Přeposlání spočívá v přepnutí HS do druhé fáze a nastavením všech subjektů, kteří mají stav „Data odeslány“ na stav Empty.

Čtvrtá fáze

Addin načte výsledky z třetí fáze, které jsou ve formě XML. Poté se tyto hodnoty uloží do databáze. Jedná se primárně o majetkové hodnoty.

Vstupní parametry

Úkol pro:  [[vyřizuje]]          

Slučovat úkony:   false             

Importovat Adresu : false

Typ zaměstnavatele dohledat na ARESu: false

Úkol v prípade nevrácené odpovedi: [[nic]]

Generovat nový požadavek na lustraci v případě Timeoutu: false

Číslovat nový požadavek na lustraci: false

 

Addin začne tím, že či načte všechny odpovědi na cestě HS/ResponseMessages/…

Poté začne zpracovávat jednolité subjekty v HS, které mají stav Odpověď dorazila“, „Není klientem“, “Error“,“Nestaženo. Některé subjekty ještě možná čekají na odpověď.

Postup zpracovaní subjektu:

  • Pokud je subjekt právnická osoba vytvoří se negativní odpověď typu Lustrace právnických osob není podporována“
  • Je možné že podaní nebylo přijato. Tedy bude také negativní odpověď „U subjektu nastala chyba v lustrování. Nedorazila odpověď z 2. fáze. Problém s usnesením…?“
  • Když je subjekt v Error-u obdržíte taktéž negativní odpověď s popisem
  • Pokud má subjekt stav Nestaženo vytvoří se negativní odpověď „U subjektu se nestáhla odpověď“. Jestli se nestáhne odpověď tak se automaticky vytvoří úkol u spisu (kontroluje, zda úkol již existuje – záleží na nastaveni). Poté dle Timeout je možné vygenerovat nový požadavek na subjekt (dle nastavení). Také je možné nastavit, zda číslovat požadavek. Tento požadavek bude mít v poznámce text „Požadavek byl vygenerován automatickým procesem z důvodu nepřijaté odpovědi z PZP“
  • Jinak se začneou zpracovávat odpovědi pro subjekt

Postup zpracovaní odpovědi k subjektu:

Ze všech odpovědí se vyberou pouze informace pro daný subjekt a mezi nimi se vybere jen validní majetková hodnota. Validní majetková hodnota je tehdy, když Datum „Do“ je null nebo v budoucnosti.

Pokud se mezi odpovědmi nenajde žádná majetková hodnota tak se zkontroluje Informace o subjektu. Pokud má subjekt Informace prázdné, není uvedený u žádné pojišťovny, tak se importuje Negativní odpověď typu Uvedená osoba není pojštěna v žádné pojšťovně PZP. I když nemá subjekt validní majetkovou hodnotu, tak se zpracuje (některé pojišťovny posílají informaci o tom, že u nich není pojištěný). Dle nastavení je možné importovat adresu. Adresa se importuje do tabule KlaAdresy. Nejdříve se zkontroluje, zda neexistuje v databázi na základe hodnot: klaZdrojZjisteni je “Adresa dle PZP“, klaPSC, klaMesto, klaUlice, klaIDklient. Jestli neexistuje Importuje se nová s popisem =Adresa dle PZP: a také se vloží klaZadáno.

Možnosti Importu výsledků lustrací, když nemá plátce pojistného, ale je klientem

  • Pokud vrátí informaci, že osoba není u nich pojištěna, importuje se negativní odpověď s popisem
  • Jestli odpověď obsahuje text: povinny nemá uvedeného plátce pojistného, tak se importuje nová pozitivní odpověď s tímto textem. (nebo existující)

Možnosti Importu výsledků lustrací, když má plátce pojistného

Projdou se všechny příjmy subjektu

  1. Pokud je u příjmu alespoň jeden zaměstnavatel. Dle nastavení je možné zaměstnavatele dohledat přes systém ARES. Bez nastavení dohledání je zaměstnavatel veden jako Právnická osoba. Je možné že, se zaměstnavatele nepodaří dohledat nebo skončí chybou. V tomto případě se vytvoří úkol s popisem. Dále se zkontroluje, zda majetková hodnota existuje a je stále platná. Jestli je platná výsledek je beze změny a také se vytvoří úkol (popřípadě změní). V opačném případě se vytvoří nová majetková hodnota příjmu, tj. Pozitivní výsledek s úkolem.

Majetková hodnota přijmu se vloží to tabulky ExMajetkoveHodnotyPrijmy s hodnotami:

mhIDVlastnik, mhtyp=“ MZDA_PLAT“, popis, poznámka, datumKontrolyBlokace =Now, mhprIDPlactePrijmu, mhprIDAdresPlatcePrijmu, mhrPlatne=true, mhprZadal =“import EvolioServer PZP“, mhprZadano =Now, mhprZamestaniOd, mhrpTyp=“ NEPREDNOSTNI

  1. Pokud není uveden žádný zaměstnavatel, jedná se tak o úřad práce, mateřskou, samoplátce, atd…. Nejprve se kontroluje zda je příjem v databázi a je platný. Když je výsledek platný, je beze změny a také se vytvoří úkol. Pokud neexistuje, tak se importuje nový příjem do tabulky ExMajetkoveHodnotyPrijmy s hodnotami výše uvedenými. Změní se jen mhtyp na JINY_PRIJEM, popřípadě na DUCHOD jestli se jedná o typ majetkové hodnoty důchod. Vznikne tedy Pozitivní výsledek s úkolem

Závěrečné vytvoření výsledku lustrace

  • Kontrola platnosti přijmu v databázi a z odpovědí

Addin získá všechny příjmy subjektu a porovná je s uvedenými příjmy v odpovědích, porovnává se podle popisu. Pokud v databázi příjem neexistuje odznačí se mhrpPlatne a upraví se mhrpUpravil=“import EvolioServer PZP“, mhrpUpraveno =Now. Jestliže nemá uvedeného zaměstnavatele a je v databázi, tak se příjem označí za platný. Když má příjem uvedeného zaměstnavatele tak se zkontroluje, zda je IČO zaměstnavatele stejné v databázi tak v odpovědi. Pokud ne tak se odznačí mhprPlatne a mhrpUpravil=“import EvolioServer PZP“, mhrpUpraveno =Now. Je také totiž možné že změnil zaměstnavatele.

  • Vytvoření Výsledku lustrace

Dle nastavení addinu je možné sloučit úkony nebo taky ne. Sloučení úkonu znamená, že kdyby klient podnikal ale zároveň byl i na mateřské tak se vytvoří jen jeden výsledek lustrace. Při pozitivní odpovědi se ještě zkontroluje, zda v databázi je na spis navázaný úkol Povinný nemá uvedeného plátce pojistného.  Vytvoří se jen v případě neexistence. Poté se nastaví stav subjektu na Naimportováno“.

Ukončení Adinu

Po naimportováni všech odpovědí addin zkontroluje stavy všech subjektů. Jestli nějaký subjekt je ve stavu „Data odeslány“ přepne HS do třetí fáze Waiting. V opačném případě jsou všechny odpovědi naimportovány a addinu jde do páté fáze Ready.