Postupy při tvorbě a hlášení metrik
Metriky vychází z přílohy č. 2 k usnesení vlády 289/2022
Úvod
Níže je popsaná datová struktura jednoho záznamu/transakce pro pilotní sběr metriky využívání vybraných digitálních systémů.
Záznamy z různých agendových systémů či pro různé agendy a služby VS můžete kombinovat do jednoho JSON/XML/CSV souboru.
Nikdy prosím nevytvářejte pro každou transakci samostatný soubor, naopak sdružujte více transakcí do jednoho souboru.
Téma / kořenová entita datové sady: Transakce
Vlastnosti/atributy:
- Identifikátor/označení transakce
- technický název: id
- povinnost vyplnění: povinně
- datový typ: řetězec
- význam: číslo jednací či jiný v agendovém systému použitý identifikátor řízení s občanem/firmou
- Výsledek transakce
- technický název: vysledek
- povinnost vyplnění: povinně
- datový typ: celé číslo
- omezení přípustných hodnot (a jejich význam) – pro pilot jen základní hodnoty (zvolte nejbližší možnou):
- 1 - dokončeno úspěšně
- dokončeno úspěšně, např. poskytnutím služby / splněním povinnosti / schválením/zaevidováním …)
- 2 - dokončeno neúspěšně
- Žádost/řízení neschválena, odmítnuta, nevyhověno apod.
- Výsledný stav
- technický název: stav
- povinnost vyplnění: nepovinně
- datový typ: řetězec
- význam: konkrétní agendově specifický výsledný stav (např. „zamítnuto“ / „stornováno klientem“) anebo stav z agendového systému jednoznačně určující status
- Uživatelská spokojenost
- technický název: spokojenost
- povinnost vyplnění: nepovinně (pokud se spokojenost zjišťuje)
- datový typ: celé číslo
- omezení přípustných hodnot (a jejich význam): známka 1-5 jako ve škole
- Vazba na **orgán veřejné moci**
- technický název: ovm
- povinnost vyplnění: povinně
- datový typ: viz definice **identifikátor OVM**
- význam: identifikátor OVM, které data pro měření poskytuje (konstantní v rámci všech datových souborů poskytovaných daným OVM)
- Vazba na **agendu**
- technický název: agenda
- povinnost vyplnění: povinně
- datový typ: viz definice **kód agendy\\ **
- Vazba na **službu veřejné správy**
- technický název: sluzba
- povinnost vyplnění: nepovinně
- datový typ: řetězec – u služby z RPP/Katalogu služeb podle definice **identifikátor služby**, jinak lze použít pro odlišení např. typu/varianty transakce
- Vazba na vstupní **obslužný kanál**
- technický název: kanal_vstup
- povinnost vyplnění: povinně
- datový typ: viz definice typ obslužného kanálu
- omezení přípustných hodnot: používaný číselník kanálů
- Vazba na výstupní **obslužný kanál**
- technický název: kanal_vystup
- povinnost vyplnění: povinně
- datový typ: viz definice typ obslužného kanálu
- omezení přípustných hodnot: používaný číselník kanálů
- Čas zahájenítechnický název: cas_zahajeni
- povinnost vyplnění: povinně
- datový typ a formát: viz definice Datum a čas
- Čas ukončenítechnický název: cas_ukonceni
- povinnost vyplnění: povinně
- datový typ a formát: viz definice Datum a čas
- Vazba na etapy v rámci transakce
- technický název: etapy
- povinnost vyplnění: nepovinné
- datový typ: seznam (pole) prvků dle datového typu Etapa (viz dále)
Související entita / datový typ: Etapa
Vlastnosti/atributy:
- Identifikátor/označení etapy
- technický název: id
- povinnost vyplnění: povinně
- datový typ: řetězec
- Název etapy
- technický název: nazev
- povinnost vyplnění: povinně
- datový typ: řetězec
- význam: Lidsky čitelné/srozumitelné pojmenování etapy
- Čas zahájení
- technický název: cas
- povinnost vyplnění: povinně
- datový typ a formát: viz definice Datum a čas
- Vazba na **úkon služby veřejné správy**
- technický název: ukon
- povinnost vyplnění: nepovinně (jen pokud je k dispozici a dává smysl)
- datový typ: viz definice: **identifikátor úkonu**
Příklad obsahu XML souboru s 2 transakcemi
Jméno XML souboru musí mít vždy příponu .xml.
<?xml version="1.0" encoding="UTF-8"?>
<root>
<transakce>
<id>234/2022</id>
<vysledek>1</vysledek>
<stav>schvaleno_3</stav>
<spokojenost>2</spokojenost>
<ovm>00007064</ovm>
<agenda>A1046</agenda>
<sluzba>S980</sluzba>
<kanal_vstup>DATOVA_SCHRANKA</kanal_vstup>
<kanal_vystup>DATOVA_SCHRANKA</kanal_vystup>
<cas_zahajeni>2022-05-13T09:00:00</cas_zahajeni>
<cas_ukonceni>2022-05-30T12:03:00</cas_ukonceni>
<etapy>
<etapa>
<id>AB43D-32243</id>
<nazev>přijmutí DS, zavedení do spisovky</nazev>
<cas>2022-05-13T09:00:00</cas>
<ukon>
</ukon>
</etapa>
<etapa>
<id>AB43D-32244</id>
<nazev>posouzeni zadosti</nazev>
<cas>2022-05-15T08:22:00</cas>
<ukon>
</ukon>
</etapa>
</etapy>
</transakce>
<transakce>
<id>235/2022</id>
<vysledek>1</vysledek>
<stav>schvaleno_3</stav>
<spokojenost>2</spokojenost>
<ovm>00007064</ovm>
<agenda>A1046</agenda>
<sluzba>S980</sluzba>
<kanal_vstup>DATOVA_SCHRANKA</kanal_vstup>
<kanal_vystup>DATOVA_SCHRANKA</kanal_vystup>
<cas_zahajeni>2022-05-13T09:00:00</cas_zahajeni>
<cas_ukonceni>2022-05-30T12:03:00</cas_ukonceni>
<etapy>
<etapa>
<id>AB43D-32243</id>
<nazev>přijmutí DS, zavedení do spisovky</nazev>
<cas>2022-05-13T09:00:00</cas>
<ukon>
</ukon>
</etapa>
<etapa>
<id>AB43D-32244</id>
<nazev>posouzeni zadosti</nazev>
<cas>2022-05-15T08:22:00</cas>
<ukon>
</ukon>
</etapa>
</etapy>
</transakce>
</root>
XML schéma
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="transakce">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string" />
<xs:element name="vysledek" type="xs:unsignedByte" />
<xs:element name="stav" type="xs:string" />
<xs:element name="spokojenost" type="xs:unsignedByte" minOccurs="0" />
<xs:element name="ovm" type="xs:integer" />
<xs:element name="agenda" type="xs:string" />
<xs:element name="sluzba" type="xs:string" />
<xs:element name="kanal_vstup" type="xs:string" />
<xs:element name="kanal_vystup" type="xs:string" />
<xs:element name="cas_zahajeni" type="xs:dateTime" />
<xs:element name="cas_ukonceni" type="xs:dateTime" />
<xs:element name="etapy" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="etapa">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string" />
<xs:element name="nazev" type="xs:string" />
<xs:element name="cas" type="xs:dateTime" />
<xs:element name="ukon" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Příklad obsahu JSON souboru s 2 transakcemi
Jméno JSON souboru musí mít vždy příponu .json.
{ "transakce": [ { "id": "234/2022", "vysledek": "1", "stav" : "schvaleno_3", "spokojenost": "2", "ovm": "00007064", "agenda": "A1046", "sluzba": "S980", "kanal_vstup": "DATOVA_SCHRANKA", "kanal_vystup": "DATOVA_SCHRANKA", "cas_zahajeni": "2022-05-13T09:00:00", "cas_ukonceni": "2022-05-30T12:03:00", "etapy": { "etapa": [ { "id": "AB43D-32243", "nazev": "přijmutí DS, zavedení do spisovky", "cas": "2022-05-13T09:00:00", "ukon": "U2343" }, { "id": "AB43D-32244", "nazev": "posouzeni zadosti", "cas": "2022-05-15T08:22:00", "ukon": "" } ] } }, { "id": "235/2022", "vysledek": "1", "stav" : "schvaleno_3", "spokojenost": "2", "ovm": "00007064", "agenda": "A1046", "sluzba": "S980", "kanal_vstup": "DATOVA_SCHRANKA", "kanal_vystup": "DATOVA_SCHRANKA", "cas_zahajeni": "2022-05-13T09:00:00", "cas_ukonceni": "2022-05-30T12:03:00", "etapy": { "etapa": [ { "id": "AB43D-32243", "nazev": "přijmutí DS, zavedení do spisovky", "cas": "2022-05-13T09:00:00", "ukon": "U2343" }, { "id": "AB43D-32244", "nazev": "posouzeni zadosti", "cas": "2022-05-15T08:22:00", "ukon": "" } ] } } ] }
Příklad obsahu CSV souboru s 2 transakcemi
Jméno CSV souboru musí mít vždy příponu .csv.
transakce/id,transakce/vysledek,transakce/stav,transakce/spokojenost,transakce/ovm,transakce/agenda,transakce/sluzba,transakce/kanal_vstup,transakce/kanal_vystup,transakce/cas_zahajeni,transakce/cas_ukonceni,transakce/etapy/etapa/0/id,transakce/etapy/etapa/0/nazev,transakce/etapy/etapa/0/cas,transakce/etapy/etapa/1/id,transakce/etapy/etapa/1/nazev,transakce/etapy/etapa/1/cas
234/2022,1,"schvaleno_3",2, 00007064,A1046,S980,DATOVA_SCHRANKA,DATOVA_SCHRANKA,2022-05-13T09:00:00,2022-05-30T12:03:00,AB43D-32243,"přijmutí DS, zavedení do spisovky",2022-05-13T09:00:00,AB43D-32244,posouzeni zadosti,2022-05-15T08:22:00
235/2022,1,"schvaleno_3",2, 00007064,A1046,S980,DATOVA_SCHRANKA,DATOVA_SCHRANKA,2022-05-13T09:00:00,2022-05-30T12:03:00,AB43D-32243,"přijmutí DS, zavedení do spisovky",2022-05-13T09:00:00,AB43D-32244,posouzeni zadosti,2022-05-15T08:22:00
Zasílání zdrojových dat
Snažili jsme se zvolit nejjednodušší způsob nahrávání, a to pro situaci, kdy budete soubory nahrávat ručně, tak pokud budete mít připraven automatický proces.
K nahrávání se použije oficiální utilita od Microsoftu azcopy.
Utilita je k dispozici pro všechny obvyklé platformy (Win32, Win64, Linux, MacOS)
Jeden z parametrů utility je BLOB SAS URL + token - neboli URL a auth token, kterym server pozná kam nahrát vaše data a že jsou to data od vás.
BLOB SAS URL + token v příkladu: "https:%%//%%ddgdata.blob.core.windows.net/test1?sp=rac&st=2022-05-10T12:55:50Z&se=2022-06-10T20:55:50Z&spr=https&sv=2020-08-04&sr=c&sig=XXX
V příkladu uvedeném níže je neplatný BLOB SAS URL + token, pouze jako příklad. Váš BLOB SAS token vám zašleme datovou schránkou na jméno. Poté ve scriptu pouze nahradíte tento příklad za váš BLOB SAS URL + token.
Postup pro nahrání dat
Stáhnout utilitu azcopy
https:%%//%%docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10(stáhne se zip soubor azcopy_windows_amd64_10.14.1)
Utilita azcopy.exe je uložena v adresáři c:\test
Pomocí dodaného klíče (každý resort bude mít svůj, odpovídající příslušnému containeru v rámci storage account) zkusím uploadovat textový soubor:
C:\test>azcopy copy "c:\test\hello.txt" "https:%%//%%ddgdata.blob.core.windows.net/test1?sp=rac&st=2022-05-10T12:55:50Z&se=2022-06-10T20:55:50Z&spr=https&sv=2020-08-04&sr=c&sig=XXX" –recursive=true
INFO: Proxy detected: https:%%//%%azcopyvnextrelease.blob.core.windows.net → //10.29.98.90:3128
INFO: Scanning…
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
Job 017888f3-0deb-674e-47f4-719ac8f654c6 has started
Log file is located at: C:\Users\mcervenka\.azcopy\017888f3-0deb-674e-47f4-719ac8f654c6.log
INFO: Proxy detected: https:%%//%%ddgdata.blob.core.windows.net → //10.29.98.90:3128
0.0 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total,
Job 017888f3-0deb-674e-47f4-719ac8f654c6 summary
Elapsed Time (Minutes): 0.0336
Number of File Transfers: 1
Number of Folder Property Transfers: 0
Total Number of Transfers: 1
Number of Transfers Completed: 1
Number of Transfers Failed: 0
Number of Transfers Skipped: 0
TotalBytesTransferred: 19
Final Job Status: Completed
Pomocí azcopy mohu zkontrolovat, zda je soubor uložen (pozn. při uploadu souboru stejného názvu dojde k přepsání původního souboru)
C:\test>azcopy list https:%%//%%ddgdata.blob.core.windows.net/test1?sp=rac&st=2022-05-10T12:55:50Z&se=2022-06-10T20:55:50Z&spr=https&sv=2020-08-04&sr=c&sig=XXX
INFO: Proxy detected: https:%%//%%azcopyvnextrelease.blob.core.windows.net → //10.29.98.90:3128
INFO: Proxy detected: https:%%//%%ddgdata.blob.core.windows.net → //10.29.98.90:3128
INFO: hello.txt; Content Length: 19.00 B
Diskuze