Datový standard DS4 - základní podmínky pro
validaci
Tento dokument obsahuje výpis z pokynů a podmínek, které jsou součástí textového popisu bloků datového standardu DS4, ale nejsou vyjádřeny formalizovaně pomocí pomoci XML Schema 1.0 (https://www.w3.org/2001/XMLSchema)
Předpokládá se v něm, že podmínky zapsané v XML souborech budou nejprve zkontrolovány automaticky parserem, který načítá XML soubor datového standardu verze 4.
Další obecné podmínky
a požadavky pro validaci datových souborů DS4
- podporovat DS4 od verze 4.19.01 výše
- podporovat NČLP od verze 2.68.01 výše
- podporovat XML schémata pro DS4 od verze 4.19.01 a výše
- hlídat vztah mezi číslem verze DS a číslem verze NČLP
- hlídat vztah mezi číslem verze DS a čísly verzí použitých schémat
- kontrolovat atributy navázané na číselníky - zda uvedená hodnota existuje v číselníku příslušné verze, u číselníků NCLPPOL a NCLPSKAL upozornit, pokud je použitá hodnota neaktuální nebo obsoletní
K výše uváděnému viz též: "Seznam verzí DS4 a jim odpovídající verze NČLP a XSD schémat".
Chybové hlášky validačního nástroje by měly obsahovat identifikaci místa, kde chyba nastala (např. číslo řádku a sloupce ve validovaném souboru), závažnost chyby a uživatelsky srozumitelný popis chyby, ke které došlo (lze odvodit z obsahu sloupce "Podmínka")
Popis
obsahu sloupců níže uvedených tabulek
# |
Datum |
Podmínka |
Level |
Profil |
|
||||
# - pořadové číslo podmínky
v rámci tabulky
Datum - datum přidání podmínky
do tabulky nebo datum poslední změny podmínky
Podmínka - formalizované vyjádření
podmínky
Level - závažnost chyby, pokud
není podmínka splněna
Tabulka závažnosti
chyby (sloupec Level):
Level |
Závažnost
chyby |
9 |
Kritická
chyba |
7 |
Velmi
závažná chyba |
5 |
Podstatná
chyba |
3 |
Varování |
1 |
Nepodstatný
nedostatek |
Profil - pokud je "profil" vyplněn, vztahuje se podmínka pouze na specifickou oblast DS4
Profil |
Název
profilu |
PS |
Patient
Summary |
Seznam bloků, pro které jsou nyní zpracovány podmínky pro
validaci
(stav k upgrade
DS 4.19.03 - 12/2019)
Výpisy z pokynů jednotlivých datových
bloků - je k dispozici
vždy pod tabulkou příslušného bloku
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
"typ"
musí být z číselníku "TAB_TA" |
7 |
|
2 |
2019-11-13 |
pokud je
vyplněn "ind_kont", musí mít hodnotu "K" |
7 |
|
3 |
2019-11-13 |
pokud
"ind_kont" = "K", pak "typ" musí být 1 nebo 2 |
3 |
|
4 |
2019-11-13 |
pokud
"typ" = 1 nebo 2, pak nesmí být vyplněn "o_jmeno",
"o_prijmeni", "o_titul_pred", "o_titul_za" |
3 |
|
5 |
2019-11-13 |
pokud
"stat" = "CZE" nebo prázdný, musí mít "psc"
délku 5 znaků a nesmí obsahovat mezeru |
3 |
|
6 |
2019-11-13 |
pokud
"typ" není "3", nesmí být vyplněn "vztah" |
3 |
|
7 |
2019-11-13 |
pokud
"typ" není "K", nesmí být vyplněn "k_osoba_klic" |
3 |
|
8 |
2019-11-13 |
pokud
je vyplněn "k_osoba_klic", musí být z číselníku "EVZTAH",
položka "klic" |
5 |
PS |
9 |
2019-12-19 |
pokud
"typ" není "K" nebo není vyplněn
"k_osoba_klic", nesmí být vyplněn "k_osoba_text" |
3 |
PS |
10 |
2019-11-13 |
pokud
je vyplněn "k_osoba_text", musí být z číselníku "EVZTAH",
položka "nazev" |
5 |
PS |
11 |
2019-12-19 |
pokud
"typ" není "K" nebo není vyplněn
"k_osoba_klic", nesmí být vyplněn "k_osoba_pozn" |
3 |
PS |
12 |
2019-11-13 |
pokud
"typ" není "K", nesmí být vyplněn "k_osoba_typ" |
3 |
PS |
13 |
2019-11-13 |
pokud
"typ" není 4, G, M nebo C, pak nesmí být vyplněn "icl",
"id_zp" |
3 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
pokud
je vyplněn "id_zp", musí to být řetězec číslic délky 9 nebo 10
znaků |
5 |
|
2 |
2019-11-13 |
pokud
je vyplněn “odbornost“, musí být z číselníku VZP “ODBORN“, položka “kod“ |
5 |
|
3 |
2019-11-13 |
pokud
je vyplněn “role_klic“, musí být z číselníku“EZDRROLE“, položka “klic“ |
5 |
PS |
4 |
2019-11-13 |
pokud
je vyplněn“role_text“, musí být z číselníku“EZDRROLE“, položka “nazev“ |
5 |
PS |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-12-19 |
hodnota elementu musí být datum ve formátu odpovídající hodnotě atributu "format" - viz format - pokyny |
7 |
|
2 |
2019-12-19 |
pokud
je vyplněn "format" musí být z množiny {"D",
"DT", "DTS", "MR", "R"} |
7 |
|
3 |
2019-12-19 |
“typ“
musí být z číselníku “LVTZDCUN“, položka “klic“ |
5 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-12-19 |
hodnota elementu musí být datum ve formátu odpovídající hodnotě atributu "format" - viz format - pokyny |
7 |
|
2 |
2019-11-13 |
pokud
je vyplněn "format" musí být z množiny {"D",
"DT", "DTS", "MR", "R"} |
7 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
pokud "typ_cispol" = "N", pak “klic_nclp“ musí být z číselníku “NCLPPOL“, položka “klic“ |
7 |
|
2 |
2019-11-13 |
pokud "typ_cispol" = "L", pak "klic_nclp" musí být v rozmezí "25000" - "49999" |
7 |
|
3 |
2019-11-13 |
pokud je vyplněn “nclp_verze“, musí být z číselníku “V_NCLP“,
položka “klic“ |
5 |
|
4 |
2019-12-19 |
položka NČLP musí být platná a aktuální (ve verzi NČLP, která je uvedena ve validovaném souboru) - v záznamu z číselníku “NCLPPOL“ pro klíč "klic_nclp" musí být "aktual" = 1 (2=obsoletní, 3=neaktuální) a "dat_prov" v elementu "ku_z" musí být v intervalu "plati_od", "plati_do" (pokud není "plati_do" zadáno, musí být "dat_prov" v elementu "ku_z" >= "plati_od") Podmínku je třeba vyhodnotit s ohledem na verzi NČLP - viz "nclp_verze" |
3 |
|
5 |
2019-11-13 |
pokud je vyplněn “nclp_verze“, měl by být "klic_nclp" v
některém z intervalů uvedených v číselníku "V_NCLP", položka
"rozsah_kl" (pokud ne, mělo by se objevit varování o použití
položky z lokálního rozšíření NČLP) |
3 |
|
6 |
2019-11-13 |
pokud je vyplněn “klic_nclp_o“, musí být z číselníku “NCLPPOL“,
položka “klic“ |
5 |
|
7 |
2019-11-13 |
pokud je vyplněn "klic_nclp_o", neměl by být v rozmezí "25000" - "49999" (pokud ano, mělo by se objevit varování o použití položky z lokálního rozšíření NČLP) |
3 |
|
8 |
2019-11-13 |
"typ_cispol" by neměl mít hodnotu "L" (pokud ano, mělo by se objevit varování o použití položky z lokálního rozšíření NČLP) |
3 |
|
9 |
2019-11-13 |
“typpol_fh“ musí být z číselníku “NCLPFH“, položka
“klic“ |
5 |
|
10 |
2019-11-13 |
"typpol_fh" by měl být shodný s hodnotou atributu "formh" v číselníku NCLPPOL (pro záznam s klíčem “klic_nclp“) |
3 |
|
11 |
2019-11-13 |
pokud je vyplněn “spec_proc“, musí být z číselníku
“NCLPPROC“, položka “klic“ |
5 |
|
12 |
2019-11-13 |
pokud je vyplněn “kolize“, musí být z číselníku “NCLPMTV“,
položka “klico“ |
5 |
|
13 |
2019-11-13 |
pokud je vyplněn “syst_klic“, musí být z číselníku
“NCLPSYST“, položka “klic“ |
7 |
|
14 |
2019-11-13 |
pokud je vyplněn “komp_klic“, musí být z číselníku
“NCLPKOMP“, položka “klic“ |
7 |
|
15 |
2019-11-13 |
- pokud je
"typpol_fh" z množiny "0,1,2,3,4,5,6, T, E", musí
ku_z_lab obsahovat blok "vrn" - pokud je
"typpol_fh" z množiny "F,FR ", musí ku_z_lab obsahovat
blok "vrf" - pokud je
"typpol_fh" z množiny "S,SR ", musí ku_z_lab obsahovat
blok "vrs" - pokud je
"typpol_fh" = "X", musí ku_z_lab obsahovat blok
"vrx" - pokud je
"typpol_fh" = "B", musí ku_z_lab obsahovat blok
"vrb" - pokud je
"typpol_fh" = "R", musí ku_z_lab obsahovat blok
"vrr" - pokud je
"typpol_fh" = "P", musí ku_z_lab obsahovat blok
"vrp" - pokud je
"typpol_fh" = "D", musí ku_z_lab obsahovat blok
"vrd" - pokud je
"typpol_fh" = "K", musí ku_z_lab obsahovat blok
"vrk" - pokud je
"typpol_fh" = "O", musí ku_z_lab obsahovat blok
"vro" - pokud je
"typpol_fh" = "Z", musí ku_z_lab obsahovat blok
"vrz" |
7 |
|
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“prepfak“ musí být číslo, pokud je v desetinném tvaru, musí být desetinný oddělovač čárka |
7 |
|
2 |
2019-12-19 |
“typpol_fh_lclp“ musí být z číselníku “NCLPFH“, položka “klic“ |
5 |
|
3 |
2019-11-13 |
"jednotka_lclp" by měla být z číselníku NCLPJEDN, položka "n20l" (případně "n20") |
3 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“klic_nclp“ musí být z číselníku “NCLPPOL“, položka “klic“, navíc položka "vznik" v číselníku “NCLPPOL“ musí mít hodnotu "Q" |
7 |
*skala, skala_lok
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“typ“ musí být z číselníku “LVVIST“, položka “klic“ |
5 |
|
2 |
2019-11-13 |
pokud je vyplněn “atribut“, musí být z číselníku “LVVISA“,
položka “klic“ |
5 |
|
3 |
2019-11-13 |
pokud je vyplněn “udalost“, musí být z číselníku
“NCLPUVIS“, položka “klic“ |
5 |
|
4 |
2019-11-13 |
pokud je vyplněn “algoritmus“, musí být z číselníku
“NCLPAVIS“, položka “klic“ |
5 |
|
5 |
2019-11-13 |
pokud je vyplněn “atribut“ a "atribut = U", musí být
vyplněna "udalost" |
5 |
|
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“latka_kod“, musí být z číselníku “NCMPATMP“, položka “klic“ |
5 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“vl_kod“, musí být z číselníku “NCMPAGV“, položka “klic“ |
5 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“hodnota_kod“, musí být z číselníku “NCLPMTV“, položka “klico“ |
5 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
pokud je vyplněn “spec_kod“, musí být z číselníku “NCMPSPM“, položka “klic“ |
5 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“agens_kod“, musí být z číselníku “NCMPAG“, položka “klic“ |
5 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“formrm“, musí být z číselníku “NCLPFRM",
položka “klic“ |
5 |
|
2 |
2019-11-13 |
"jednotka" by měla být shodná s jednotkou v NČLP (v nadřazeném bloku ku_z_lab zjistit "klic_nclp", ten najít v čís. NCLPPOL a zjistit hodnotu atributu "njedn") |
3 |
# |
Datum |
Podmínka |
Level |
Profil |
1 |
2019-11-13 |
“hodnota1_klic“ musí být z číselníku “NCLPMTV“, položka “klico“ |
5 |
|
2 |
2019-11-13 |
“hodnota2_cislo“ musí být číslo, pokud je v desetinném tvaru, musí být desetinný oddělovač čárka |
5 |
|
3 |
2019-11-13 |
pokud je
vyplněn “hodnota2_klic“, musí být z číselníku “NCLPMTV“, položka “klico“ |
5 |