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

ZPMV

Zdravotní pojišťovna ministerstva vnitra ČR je zdravotní pojišťovna, a byla založena ke dni 1. 10. 1992 rozhodnutím Ministerstva práce a sociálních věcí České republiky. Aktuálně se jedná se o druhou největší zdravotní pojišťovnu v České republice. Pojišťovna má přiřazen kód 211.

Tento addin vyhledává zvolené subjekty v databázi pojišťovny a získává z ní informace.

Subjekt

Subjekt je daná osoba vyskytující se v databázi zdravotní pojišťovny ministerstva vnitra ČR.

Stavy subjektu

Subjekty mohou mít stav podle toho jak je úspěšná komunikace se serverem. A to mohou být následující:

Empty – žádný stav

NegativeError –  nevyplněné potřebné údaje v dané fázi

Error – nastala obecná chyba

Received – Obdržena odpověď z úřadu

Done – všechny odpovědi jsou naimportováni

Druhá fáze

Druhá fáze je u tohoto addinu sloučena s třetí fází. Addin načte všechny HS, které jsou připraveny na druhou fázi ze zadaného adresáře. Poté odešle jednotlivé HS na ZPMV.

Vstupní parametry

Přihlašovací jméno
Úřad IČO – kdo se do dané služby přihlašuje
Přihlašovací heslo
Adresa služby – nachází se na https://eforms.zpmvcr.cz/eServicesNES 
Oprávněni dotazu – podle § 33, § 34 a § 262a, odst. 3 zák. č. 120/2001 Sb., exekučního řádu ve znění pozdějších předpisů a dle § 139 o.s.ř.

Po přihlášení se na základě hromadné součinnosti spustí proces ProcessLustrationSubject hlášením„Zpracovavám subjekt {subject.Subject}“. Lustrace probíhá na základě rodného čísla, které je převáděno do číselného formátu. Pokud nastane situace subject.BirthNumber = null, systém zobrazí „Subjekt nemá uvedeno rodné číslo. Nemůžeme lustrovat na ZPMV“ a provede return. Jinak se provede zápis následujících hodnot
rozhodneDatum = DateTime.Now,
cisloPojistence = rc,
jmeno = subject.Name,
prijmeni = subject.Surname,
identCislo = subject.CaseID.ToString(),
a přidá daný subjekt do fronty. Addin totiž neodesílá jednotlivé subjekty, ale odesílá až „balík“ subjektů na ZPMV, pokud je subjektů více.

Další proces v pořadí je ProcessLustrationDone, který zajišťuje činnost odeslání požadavku, ale také kontroluje seznam čekajících subjektů. Jestliže service.subjectsList.Count() = 0 tedy není žádný subjekt k odeslání provede „Není žádny subjekt na odesláni“, „Ukončuji adin.“ Pokud tedy jsou nějaké subjekty v seznamu vypíše addin „Jsou zpracováni všechny subjekty“, „Posílam request…“ a provede lustraci na straně pojišťovny.
Po přijetí odpovědi povede uložení „Ukládám odpověď na disk“ a soubor XML projde serializecí, aby mohla být data zpracována addinem. Identifikace subjektu a jeho přiřazení umožňují položky „{subject.Name}_{subject.Surname}.xml“ z XML a taktéž „{subject.Name}_{subject.Surname}.html“ z HTML souborů. Na chybu upozorní addin „Nastala chyba pri spracovaní subjektu s RC {FO.Cpoj}“, nebo může nastat obecná chyba a u této chyby „Nastala chyba pri spracování odpovedi.“ zůstane addin v druhé fázi a nastaví výsledek na Error.

Odpověď v HTML

 

Odpověď v XML

Čtvrtá fáze

Tato fáze provádí zpracování odpovědi z ZPMV a úpravu dle potřeb serveru Evolio. Když nastane stav Done, addin automaticky ukončí činnost.

Importér

Importér zajišťuje hlavní činnost při čtení přijatých dokumentů a následného zpacování.  Nejdříve importér provede načtení XML souboru, aby mohl výsledek lustrace přiřadit k určitému subjektu, neboť bylo na ZPMV odesláno více subjektů určených k lustraci najednou. To se provádí pomocí řádku „{ subject.Name}_{ subject.Surname}.xml“ v XML odpovědi.
Pokud chybí soubor XML zobrazí se „Nenašla sa xml odpověd“, „Lustrace nemůže pokračovat.“,stav se změní na Error a vytvoří se chybový úkon „Úkol pro při chybě“.
Deserializaci souboru značí „Zpracovávam XML soubor“. Stejně tak i zde může dojít k chybě v případě že response = null tak odpoví addin „Nepovedla se deserializace xml odpovědi“, k čemuž mohlo dojít buď chybnou deserializací nebo zpracováním souboru. Stav se změní na Error a vytvoří se chybový úkon „Úkol pro při chybě“.

V případě že vše proběhlo v pořádku importér prochází odpověď u daného subjektu a hledá jako první Info !string.IsNullOrEmpty(response.Info) && response.Info.Contains(„povinný není k rozhodnému datu pojištěncem ZP MV ČR“), obsahuje-li odpověď toto, pak lustrace končí a zobrazí „211 – Povinný není pojištěncem ZP MV ČR“  lustrace skončí na výsledku Error a stavu Done. Následuje vyhledávání Typu, když prijem.Typ =“povinný je zaměstnanec“ tak lustrovaný subjekt je zaměstnanec, jinak se uloží JinýPříjem. Import u zaměstnance a jiného příjmu probíhá odlišně.

Import zaměstnance

U zaměstnance dochází ke kontrole zaměstnavatele dle PSČ a IČO. Pokud není nalezen dochází k založení zaměstnavatele s informacemi IČO, Jméno, Typ Firmy a  Zadal, vyhledání informací o typu firmy probíhá pomocí ARESu  dle nastavení. Následuje vložení adresy: Ulice, Město, PSČ, ZdrojZjištění zadáno,Popis a Zadal.Jestliže v databázi byl úspěšně zaměstnavatel uložen, pracuje se s ním dále jako by byl již předtím v databázi. Když nedojde k vytvoření zaměstnavatele, Addin zobrazí chybu „Nepodařilo se vytvořit Zaměstnavatele“ a ukončí lustraci chybou.
Dále u zaměstnavatele se kontroluje validace majetkových hodnot ve sloupcích mhIDVlastnik, mhprIDPlatcePrijmu mhprPlatny, mhprPopis, v případě že jsou platná je výsledek Beze změny, jinak musí být vytvořena nová majetková hodnota s upravenými vlastnostmi:
mhIDVlastnik
 mhprIDPlatcePrijmu
mhprPlatny
mhprPopis
mhprZamestnanyOd
mhTyp=„MZDA_PLAT“
mhprTyp = „NEPREDNOSTNI“
mhprZadano
mhprZadal

a výsledkem je Nová. Poté dochází k poslední lustraci, kvůli více záznamům zaměstnavatele v databázi. Data nejsou k dispozici a lustrace končí, jinak se přiřadí majetková hodnota prvnímu zaměstnavateli a k výsledku se přidá text „Na základě IČO z odpovědi bylo nalezeno vícero subjektů v Evolio Serveru!“ a poté taktéž import zaměstnance skončí.

Import JinýPříjem

U JinýPříjem je import jednodušší, probíhá pouze jeden rozhodovací proces. A to zda je majetková hodnota v databázi validní dle záznamů mhIDVlastnik, mhprIDPlatcePrijmu, mhprPlatny a mhprPopis. Pokud je validní, výsledkem lustrace je stav Beze změny a ukončení. Naopak  když hodnoty validní nejsou, provede se zápis nových majetkových hodnot do databáze
mhIDVlastnik
 mhprIDPlatcePrijmu
mhprPlatny
mhprPopis
mhprZamestnanyOd
mhTyp– Když se jedná o důchod pak zápis hodnoty „DUCHOD“  jinak „JINY_PRIJEM“
mhprTyp = „NEPREDNOSTNI“
mhprZadano
mhprZadal

po úspěšném zápisu hodnot se změní stav na Nový a import JinýPříjem je tímto ukončen.

Po provedení jednoho z importů následuje poslední činnost importéru a taktéž čtvrté fáze. Tím je sloučení úkonů, to zajišťuje položka joinActs. Po spuštění, provede sloučení textů všech příjmů a vytvoří pouze jeden výsledek. Pokud je vypnutá, pro každý příjem vytvoří samostatný výsledek lustrace. Následuje změna stavu lustrovaného subjektu na Done a ukončení všech procesů addinu, neboť již nemá pokračování.