Rozhranie: ZS03_12 Hlásenie o ukončenej kúpeľnej liečbe

Typ záznamu ZS03_12

Rozhranie platí od roku 2019

Položky:

KÓD POLOŽKY ID POVINNÁ DÁTOVÝ TYP ROZSAH OM NÁZOV POLOŽKY MODUL RIADOK STLPEC RO
ROK_SPRAC ÁNO ÁNO varchar 4   Rok spracovania 0_ZS_03_12 1 1  
MESIAC_SPRAC ÁNO ÁNO varchar 2   Mesiac spracovania 0_ZS_03_12 2 1  
ICO ÁNO ÁNO varchar 8   Identifikačné číslo organizácie 0_ZS_03_12 3 1  
IDENTIFZAR ÁNO ÁNO varchar 8   Identifikátor zariadenia 0_ZS_03_12 4 1  
KUPLIECEBNA     integer 2   Kúpeľná liečebňa 0_ZS_03_12 6 1  
ZOSTAVIL     varchar 150   Správu vyplnil (meno lekára) 0_ZS_03_12 7 1  
EMAIL     varchar 128   e-mail 0_ZS_03_12 8 1  
TELEFON     varchar 35   Číslo telefónu 0_ZS_03_12 9 1  
STAROSTL_DRUH   ÁNO varchar 1   Druh starostlivosti 1 1 1  
POIST_PLATCA   ÁNO varchar 2   Poisťovňa / platca 1 2 1  
PACRC   ÁNO varchar 10   Rodné číslo pacienta 2 1 1  
KOD_STAT     varchar 3   Kód krajiny trvalého bydliska 2 7 1  
PRAC_STAV     varchar 1   Pracovný stav 2 8 1  
PACOBEC_ST     varchar 12   Trvalé bydlisko pacienta 2 5 1  
PB_OBEC_ST     varchar 12   Prechodné bydlisko pacienta 2 6 1  
POC_DNI     integer 3   Dĺžka pobytu (v dňoch) 3 1 1  
UHRADA_VZP     varchar 1   Úhrada z verejného zdravotného poistenia 3 2 1  
INDIK_SKUPINA     varchar 4   Indikačná skupina 3 3 1  
VYSL_LIECENIA   ÁNO varchar 1   Výsledok liečenia 3 5 1  
PACDATVYK   ÁNO date     Dátum ukončenia kúpeľnej liečby 3 6 1  
ROK_UKONCENIA     varchar 4   Rok ukončenia kúpeľnej liečby 3 7 1 ÁNO
PACDATNAR     date     Dátum narodenia pacienta 2 3 1 ÁNO
PACVEK     integer 3   Vek pacienta 2 4 1 ÁNO
PACPOHLAVIE     varchar 1   Pohlavie pacienta 2 2 1 ÁNO
ZARIADENIE_NAZOV     varchar 150   Názov zariadenia 0_ZS_03_12 5 1 ÁNO
DIAGNOZA_5     varchar 5   Diagnóza_5 3 4 1  
XMLHLASENIE_ID     varchar 256   Identifikátor hlásenia/výkazu podľa SJ 90 1 1  
XMLHLASENIE_VER     integer 3   Verzia hlásenia/výkazu podľa SJ 90 2 1  

Legenda k tabuľke Položky:

Názov stĺpca Popis
KÓD POLOŽKY Kód položky
ID Označenie identifikačnej položky (ak má príznak ÁNO, je identifikačná)
POVINNÁ Označenie povinnej položky (ak má príznak ÁNO, je povinná)
DÁTOVÝ TYP Formát položky
ROZSAH Číselný rozsah (počet znakov) položky
OM Označenie otvoreného modulu, v ktorom sa daná položka nachádza
NÁZOV POLOŽKY Názov položky
MODUL Číslo modulu, v ktorom sa daná položka nachádza vo web formulári
RIADOK číslo riadku daného modulu, v ktorom sa položka nachádza vo web formulári
STĹPEC Číslo stĺpca daného modulu, v ktorom sa položka nachádza vo web formulári
RO Označenie dopočítanej položky – nie je súčasťou XSD schémy, ale sa priamo dopočítava v ISZI (ak má príznak ÁNO je dopočítaná)

Kontroly:

PORADIE TEXT OZNAMU LOGICKÝ VÝRAZ MODUL INDEXY PREMENNÉ KONTEXT VAR
100 "Ak položka Druh starostlivosti = '1, 2, 5, 7', potom vek musí byť >= 18. " CHECK (IF (NOT ISNULL(M1R1S1) AND M1R1S1== '1' OR M1R1S1== '2' OR M1R1S1== '5' OR M1R1S1 == '7', M2R4S1 >= 18, TRUE)) 1     M2R4S1  
101 "Ak položka Druh starostlivosti ='1', potom položka Poisťovňa/platca môže mať len kód 44, 55, 70 alebo 75!" CHECK (IF (NOT ISNULL(M1R1S1) AND M1R1S1== '1', NOT ISNULL(M1R2S1) AND M1R2S1 == '44' OR M1R2S1 == '55' OR M1R2S1 == '70' OR M1R2S1 == '75', TRUE)) 1     M1R2S1  
102 "Ak položka Druh starostlivosti ='2', potom položka Poisťovňa/platca môže mať len kód 24, 25, 27 alebo 88!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '2', NOT ISNULL(R2S1) AND R2S1 == '24' OR R2S1 == '25' OR R2S1 == '27' OR R2S1 == '88', TRUE)) 1     R2S1  
103 "Ak položka Druh starostlivosti ='3', potom položka Poisťovňa/platca môže mať len kód 24, 25, 27 alebo 88!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '3', NOT ISNULL(R2S1) AND R2S1 == '24' OR R2S1 == '25' OR R2S1 == '27' OR R2S1 == '88', TRUE)) 1     R2S1  
104 "Ak položka Druh starostlivosti ='4', potom položka Poisťovňa/platca môže mať len kód 99!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '4', NOT ISNULL(R2S1) AND R2S1== '99' , TRUE) ) 1     R2S1  
105 "Ak položka Druh starostlivosti ='5', potom položka Poisťovňa/platca môže mať len kód 24, 25, 27 alebo 88!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '5', NOT ISNULL(R2S1) AND R2S1 == '24' OR R2S1 == '25' OR R2S1 == '27' OR R2S1 == '88', TRUE) ) 1     R2S1  
106 "Ak položka Druh starostlivosti ='6', potom položka Poisťovňa/platca môže mať len kód 99!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '6', NOT ISNULL(R2S1) AND R2S1== '99' , TRUE) ) 1     R2S1  
107 "Ak položka Druh starostlivosti ='7', potom položka Poisťovňa/platca môže mať len kód 66!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '7', NOT ISNULL(R2S1) AND R2S1== '66' , TRUE) ) 1     R2S1  
108 "Ak položka Druh starostlivosti ='8', potom položka Poisťovňa/platca môže mať len kód 24, 25, 27 alebo 88!" CHECK (IF (NOT ISNULL(R1S1) AND R1S1== '8', NOT ISNULL(R2S1) AND R2S1 == '24' OR R2S1 == '25' OR R2S1 == '27' OR R2S1 == '88', TRUE) ) 1     R2S1  
109 "Ak položka Platca = '44, 55, 66, 70, 75', potom vek musí byť >= 18." CHECK(IF(((NOT ISNULL(M1R2S1)) AND ((M1R2S1 == '44') OR (M1R2S1 == '55') OR (M1R2S1== '66') OR (M1R2S1 == '70') OR (M1R2S1 == '75'))), ((NOT ISNULL(M2R4S1)) AND (M2R4S1 >= 18)), TRUE)) 1     M2R4S1  
110 "Ak položka Poisťovňa/platca = '88', potom položka Druh starostlivosti môže byť len '2', '3', '5' alebo '8' ." CHECK(IF(NOT ISNULL(M1R2S1) AND M1R2S1 == '88', NOT ISNULL(M1R1S1) AND M1R1S1=='2' OR M1R1S1=='3' OR M1R1S1=='5' OR M1R1S1=='8', TRUE)) 1     M1R1S1  
111 "Ak položka Poisťovňa/platca = '66', potom položka Druh starostlivosti musí byť = '7'." CHECK ( IF ( NOT ISNULL(R2S1) AND R2S1== '66', NOT ISNULL(R1S1) AND R1S1== '7', TRUE) ) 1     R1S1  
112 "'Ak položka Platca = '99', potom položka Druh starostlivosti musí byť = '4' alebo '6'" CHECK(IF(((NOT ISNULL(M1R2S1)) AND (M1R2S1 == '99')), ((NOT ISNULL(M1R1S1)) AND ((M1R1S1=='4')OR(M1R1S1=='6'))), TRUE)) 1     M1R1S1  
120 "'Ak položka Kód krajiny <> '703', potom položka poisťovňa Platca musí byť <> '44,55,70,75'" CHECK(IF((NOT ISNULL(M2R7S1) AND (M2R7S1 <> '703')),(NOT ISNULL(M1R2S1) AND ((M1R2S1 <> '44') AND (M1R2S1 <> '55') AND (M1R2S1 <> '70') AND (M1R2S1 <> '75'))), TRUE)) 1     M1R2S1  
200 "Kód krajiny trvalého pobytu nesmie byť prázdny!" CHECK(NOT ISNULL(M2R7S1)) 2     M2R7S1  
201 "Položka Pracovný stav môže mať kód 0 - dieťa/žiak/študent len u pacientov do 30 rokov!" CHECK ( IF( (NOT ISNULL(M2R8S1)) AND (M2R8S1 == '0'), ((NOT ISNULL(M2R4S1)) AND (M2R4S1 <= 29)), TRUE)) 2     M2R8S1  
202 "Vek pacienta musí byť vyšší ako 0 rokov!" CHECK( NOT ISNULL(M2R4S1) AND M2R4S1<>777) 2     M2R4S1  
203 "Položka pracovný stav musí byť vyplnená!" CHECK (NOT ISNULL (M2R8S1)) 2     M2R8S1  
204 "Ak je kód krajiny´703´ , pracovný stav ´1´ platí pre vek od 18 do 70 rokov." CHECK(IF(M2R7S1=='703' AND NOT ISNULL(M2R8S1) AND M2R8S1=='1', 18 <= (M2R4S1) AND (M2R4S1)<70, TRUE)) 2     M2R8S1  
205 "Rodné číslo pacienta je nekorektne zadané - vek pacienta nie je dopočítaný!" CHECK (NOT ISNULL (M2R4S1)) 2     M2R4S1  
206 "Pozor! Treba overiť, či vek pacienta je naozaj nad 100 rokov!" CHECK(IF(R4S1<>'999' AND R4S1<>'777' AND NOT ISNULL(M2R4S1), (M2R4S1<>999) AND M2R4S1<100 , TRUE)) 2     M2R4S1 ÁNO
208 "Kód trvalého bydliska musí byť vždy vyplnený. Ak tento údaj nie je známy uvediete kód 'SK0000000000'. Cudzincovi, ktorý nemá v SR trvalé bydlisko uvediete kód 'SKZZZZZZZZZZ'."!" CHECK (NOT ISNULL(M2R5S1)) 2     M2R5S1  
209 "Ak kód obce trvalého bydliska je ´SKZZZZZZZZZZ´, potom pacientom je cudzinec - kód krajiny je rôzny od ´703´." CHECK(IF(M2R5S1=='SKZZZZZZZZZZ', M2R7S1<>'703', TRUE)) 2     M2R5S1;M2R7S1  
210 "'Ak položka Kód krajiny = '703', potom položka poisťovňa Platca = '88,99,24,25,27,44,55,70,75'" CHECK(IF(((NOT ISNULL(M2R7S1)) AND (M2R7S1 == '703')), ((NOT ISNULL(M1R2S1)) AND ((M1R2S1 == '88') OR (M1R2S1 == '99') OR (M1R2S1 == '24') OR (M1R2S1 == '25') OR (M1R2S1 == '27') OR (M1R2S1 == '66') OR (M1R2S1 == '44') OR (M1R2S1 == '55') OR (M1R2S1 == '70') OR (M1R2S1 == '75'))), TRUE)) 2     M1R2S1  
211 "Kód trvalého bydliska ´SK0000000000´ môže mať len občan Slovenska (kód krajiny je ´703´)." CHECK(IF(M2R5S1=='SK0000000000', M2R7S1=='703', TRUE)) 2     M2R5S1; M2R7S1  
212 "Ak je pacientom cudzinec (kód krajiny je rôzny od ´703´), potom kód trvalého bydliska musí byť ´SKZZZZZZZZZZ´." CHECK(IF(M2R7S1<>'703', M2R5S1=='SKZZZZZZZZZZ', TRUE)) 2     M2R7S1; M2R5S1  
213 "Položka Pracovný stav môže mať kód 5 - dôchodca /kyňa/ starobný /á/ len u pacientov nad 45 rokov!" CHECK ( IF (M2R8S1 == '5', M2R4S1 >= 45, TRUE)) 2     M2R8S1  
214 "Ak položka Vek pacienta >= 70 rokov, potom položka Pracovný stav musí mať kód ´5´!" CHECK ( IF ( M2R4S1 >= 70, M2R8S1 == '5', TRUE)) 2     M2R8S1  
215 "Položka Pracovný stav môže mať kód 4 - dôchodca /kyňa/ invalidný /á/ len u pacientov od 18 do 70 rokov!" CHECK (IF (M2R8S1=='4', 18 <= (M2R4S1) AND (M2R4S1) < 70, TRUE)) 2     M2R8S1  
216 "Ak položka Vek pacienta < 16 rokov, potom položka Pracovný stav musí mať kód 0!" CHECK (IF (M2R4S1 < 16, M2R8S1==0, TRUE)) 2     M2R8S1  
300 "Overiť, či je dĺžka pobytu nad 100 dní!" CHECK(M3R1S1<100) 3     M3R1S1 ÁNO
301 "'Ak položka Indikačná skupina = <2101-3005> potom položka Vek musí byť < 18" Check(IF(((NOT ISNULL(M3R3S1)) AND ((M3R3S1 >= '2101') AND (M3R3S1 <= '3005'))) , ((NOT ISNULL(M2R4S1)) AND (M2R4S1 < 18)), TRUE)) 3     M2R4S1  
302 "'Dátum ukončenia liečby nesmie byť prázdny " CHECK((NOT ISNULL(M3R6S1))) 3     M3R6S1  
303 "Ak je dĺžka pobytu 1 deň, výsledok liečenia nemôže byť 1(=zdravotný stav zlepšený) !" CHECK( IF(M3R1S1==1, M3R5S1<>1, TRUE )) 3     M3R5S1  
304 "Ak položka Druh starostlivosti má kódy '4', '6' alebo '7', potom položka Úhrada z verejného zdravotného poistenia sa nevypĺňa!" Check( IF (NOT ISNULL(M1R1S1) AND M1R1S1== '7' OR M1R1S1== '4' OR M1R1S1=='6', ISNULL(M3R2S1), TRUE)) 3     M3R2S1  
305 "'Ak položka Druh starostlivosti = '7', potom položka Diagnóza musí zostať prázdna!" Check (IF (NOT ISNULL(M1R1S1) AND M1R1S1 == '7', ISNULL(M3R4S1) ,TRUE ) ) 3     M3R4S1  
306 "Ak položka Druh starostlivosti <> '7', potom položka Diagnóza nesmie zostať prázdna!" Check ( IF ( ISNULL(R4S1), ( NOT ISNULL(M1R1S1) AND M1R1S1 == 7),TRUE) ) 3     M3R4S1  
307 "'Ak položka Druh starostlivosti = '3' alebo '8' potom položka Pracovný stav = '0' a Indikačná skupina = <2101-3005> a Vek < 18" CHECK(IF(((NOT ISNULL(M1R1S1)) AND ((M1R1S1 == '3') OR (M1R1S1 == '8'))),((NOT ISNULL(M2R8S1)) AND (M2R8S1 == '0') AND ((M3R3S1 >= '2101') AND (M3R3S1 <= '3005')) AND (NOT ISNULL(M2R4S1) AND (M2R4S1 < 18))), TRUE)) 3        
308 "'Ak položka Druh starostlivosti = '7', potom položka Indikačná skupina musí zostať prázdna!" Check(IF(((NOT ISNULL(M1R1S1)) AND (M1R1S1 == '7')),(ISNULL(M3R3S1)),TRUE)) 3     M3R3S1  
309 "Ak položka Druh starostlivosti <> '7', potom položka Indikačná skupina nesmie zostať prázdna!" Check (IF (((NOT ISNULL(M1R1S1)) AND (M1R1S1 <> '7')), (NOT ISNULL(M3R3S1)), TRUE)) 3     M3R3S1  
311 "'Ak položka Druh starostlivosti = '4','6' a Platca = '99' potom položka Úhrada z verejného zdravotného poistenia musí byť prázdna." Check(IF((((M1R1S1 == '4') OR (M1R1S1 == '6')) AND (M1R2S1 == '99')),(ISNULL(M3R2S1)), TRUE)) 3     M3R2S1  
312 "Medzimodulová kontrola: Rok spracovania sa musí rovnať roku ukončenia kúpeľnej liečby. /M3R7=M0_ZS_03_12R1/" CHECK(M3R7S1==M0_ZS_03_12R1S1) 3     M0_ZS_03_12R1S1  
313 "Dĺžka pobytu nemôže byť 0!" CHECK(M3R1S1>0) 3     M3R1S1  
314 "Položka Dĺžka pobytu nesmie byť prázdna!" CHECK(NOT ISNULL(M3R1S1)) 3     M3R1S1  
315 "'Ak položka Indikačná skupina = <0101-1210> potom položka Vek musí byť >= 18" Check(IF(((NOT ISNULL(M3R3S1)) AND ((M3R3S1 >= '0101') AND (M3R3S1 <= '1210'))) , ((NOT ISNULL(M2R4S1)) AND (M2R4S1 >= 18)), TRUE)) 3     M2R4S1  
316 "Ak položka Druh starostlivosti má kód '7', potom položka Výsledok liečenia musí byť '9'." Check ( IF ( NOT ISNULL(M1R1S1) AND M1R1S1 == '7', NOT ISNULL(M3R5S1) AND M3R5S1=='9', TRUE)) 3        
317 "Ak položka Indikačná skupina = <2501-2509>, potom položka Vek musí byť v intervale od 3 do 18 rokov." CHECK (IF(((NOT ISNULL(M3R3S1)) AND ((M3R3S1 >= '2501') AND (M3R3S1 <= '2509'))) , ((NOT ISNULL(M2R4S1)) AND (M2R4S1 >= 3) AND (M2R4S1 <= 18)), TRUE)) 3     M2R4S1 ÁNO
318 Modul 3: Kombinácia údajov '%s' a '%s' na riadku R2 a R3, Úhrada z verejného zdravotného poistenia a Indikačná skupina, nie je povolená. /INDIK_SKUP, UHRADA_VZP/. check(getFunction("validations/ZS03_12/Check_UHRADA_VZP_and_INDIK_SKUP_2019.js")( getValueCM("3", "UHRADA_VZP", null), getValueCM("3", "INDIK_SKUPINA", null) ), msgText(getValueCM("3", "UHRADA_VZP", "?"), getValueCM("3", "INDIK_SKUPINA", "????")), [{moduleItem: "UHRADA_VZP"}, {moduleItem: "INDIK_SKUPINA"}]) 3     R2S1,R3S1  
600 Modul 2: Overte korektnosť rodného čísla pacienta na preklepy na riadku R1. /PACRC/. So zle uvedeným rodným číslom súvisí aj možnosť zlého dopočítania dátumu narodenia, veku, či pohlavia pacienta. check(getFunction("common/IsRCCorrect_v2.js")("0_ZS_03_12", "ROK_SPRAC", "2", "PACRC") , msgText(), [{moduleItem: "PACRC"}]) 2     R1S1 ÁNO
900 "Položka Úhrada z verejného zdravotného poistenia môže zostať prázdna len vtedy, ak Poisťovňa/platca má kód 66 alebo 99!" CHECK(IF(ISNULL(M3R2S1), M1R2S1=='66' OR M1R2S1=='99', TRUE))     M3R2S1; M1R2S1  

Vzájomné dynamické obmedzenia položiek (množina povolených hodnôt obmedzovanej položky je daná hodnotou obmedzujúcej položky):


Obmedzujúca položka: STAROSTL_DRUH
Obmedzovaná položka: POIST_PLATCA
Obmedzujúca položka Obmedzujúca hodnota Obmedzovaná položka Povolená hodnota
STAROSTL_DRUH 2 POIST_PLATCA 24
STAROSTL_DRUH 3 POIST_PLATCA 24
STAROSTL_DRUH 5 POIST_PLATCA 24
STAROSTL_DRUH 8 POIST_PLATCA 24
STAROSTL_DRUH 2 POIST_PLATCA 25
STAROSTL_DRUH 3 POIST_PLATCA 25
STAROSTL_DRUH 5 POIST_PLATCA 25
STAROSTL_DRUH 8 POIST_PLATCA 25
STAROSTL_DRUH 2 POIST_PLATCA 27
STAROSTL_DRUH 3 POIST_PLATCA 27
STAROSTL_DRUH 5 POIST_PLATCA 27
STAROSTL_DRUH 8 POIST_PLATCA 27
STAROSTL_DRUH 1 POIST_PLATCA 44
STAROSTL_DRUH 1 POIST_PLATCA 55
STAROSTL_DRUH 7 POIST_PLATCA 66
STAROSTL_DRUH 1 POIST_PLATCA 70
STAROSTL_DRUH 1 POIST_PLATCA 75
STAROSTL_DRUH 2 POIST_PLATCA 88
STAROSTL_DRUH 3 POIST_PLATCA 88
STAROSTL_DRUH 5 POIST_PLATCA 88
STAROSTL_DRUH 8 POIST_PLATCA 88
STAROSTL_DRUH 4 POIST_PLATCA 99
STAROSTL_DRUH 6 POIST_PLATCA 99