API
Příklad použití: v prohlížeči Chrome klikněte pravým tlačítkem myši a zvolte Inspect - Prozkoumat. Následně zkopírujte do konzole uvedený příklad.Metoda validate
Pomocí metody HTTP POST zašlete bajty DASTA4/LCLPPOL souboru k validaci. Vrácen bude JSON objekt s popisem nalezených chyb. Metodu lze použít pro validaci položky nastavení LISu - vytvořte LCLPPOL soubor, který obsahuje právě jednu větu - validovanou položku.
let msg=await (await fetch("https://dasta4.cz/test_data/lclppol_demo.xml")).bytes();
let report=await (await fetch("https://dasta4.cz/api/validate", {method:'POST', body:msg})).json();
console.log(report.violations.map(o=>o.message+' ('+o.severity+', '+o.field+')').join('\n'))
curl:
curl -X POST -H "Content-Type: application/xml" --data-binary @a.xml https://dasta4.cz/api/validate
Očekávaný výsledek:
Odlišné jednotky/přepočet: njl=kU/l, NCLPPOL.njedn=U/l v položce '19274 H_ADAMTS13 Inhibitor (kodlok=1454, prepfak=0,001)'. Očekávaný přepočet: 1000 (9, lclppol.VETA[1])
Záznam '19274 H_ADAMTS13 Inhibitor (kodlok=1454)' má hodnotu klicproc='IA' (3, lclppol.VETA[1])
Metoda protocol
Pomocí metody HTTP POST zašlete bajty celého objektu – podepsaného PDF, PDF s dokumentovým časovým razítkem, DASTA4/FHIR souboru, nebo kontejneru ASiC/ZIP (podpisy XAdES/CAdES, EvidenceRecord, nebo prostá data s EvidenceRecordem). Je to API podoba stránky Validátor: server objekt rozbalí do všech úrovní (přílohy PDF, CMS, ZIP/ASiC, vnořené DASTA4/FHIR), ověří digitální podpisy a časová razítka podle EU DSS, propojí je s EvidenceRecordy dle RFC4998, provaliduje každou nalezenou dávku a sestaví časovou osu klinických událostí.Formát objektu se určuje podle přípony v parametru
filename. Bez něj se odhaduje z obsahu (%PDF, PK, {) – u podepsaného PDF parametr uvádějte, jinak hrozí, že se objekt zpracuje jako XML.
Vrácen bude JSON objekt s protokolem v poli
protocolHtml a se strojově čitelnými příznaky:
hasSignature– objekt obsahuje podepsané PDFsignatureValid– všechny podpisy jsou platné a kvalifikovanétimeStampValid– všechny podpisy mají kvalifikované časové razítkodataValid– všechny nesené dávky DASTA4/FHIR jsou validní; jefalsei tehdy, když objekt žádnou dávku neobsahujesigner– kdo a kdy podepsaldocumentTimestamp– vydavatel a čas dokumentového časového razítka nebo EvidenceRecordu, který objekt chrání bez podpisu;null, když žádné neníerror– text výjimky, pokud zpracování selhalo (HTTP status zůstává 200)
signatureValid, timeStampValid, signer a documentTimestamp popisují nosič důkazu nejvýše v hierarchii (kořenový objekt, jinak první nalezený); u kontejneru s více podepsanými dokumenty je úplný obraz jen v protocolHtml.
let msg=await (await fetch("https://dasta4.cz/test_data/signed_er.pdf")).bytes();
let res=await (await fetch("https://dasta4.cz/api/protocol?filename=signed_er.pdf", {method:'POST', body:msg})).json();
console.log(res.hasSignature, res.signatureValid, res.timeStampValid, res.dataValid, res.signer);
document.write(res.protocolHtml);
curl:
curl -X POST --data-binary @signed_er.pdf "https://dasta4.cz/api/protocol?filename=signed_er.pdf"
Metoda convert
Pomocí metody HTTP POST zašlete bajty DASTA/FHIR souboru k převodu. V URL specifikujte cílový formát (ds3, ds4 nebo fhir.r4). Vrácen bude převedený soubor.
let msg=await (await fetch("https://dasta4.cz/test_data/ku_o_rdg.xml")).bytes();
let res=await fetch("https://dasta4.cz/api/convert/fhir.r4", {method:'POST', body:msg});
let a=document.createElement('a');
a.href=URL.createObjectURL(await res.blob());
a.download="converted.xml";
a.click();
curl:
curl -X POST -H "Content-Type: application/xml" --data-binary @a.xml https://dasta4.cz/api/convert/ds3 --output a.ds3.xml