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é PDF
  • signatureValid – všechny podpisy jsou platné a kvalifikované
  • timeStampValid – všechny podpisy mají kvalifikované časové razítko
  • dataValid – všechny nesené dávky DASTA4/FHIR jsou validní; je false i tehdy, když objekt žádnou dávku neobsahuje
  • signer – kdo a kdy podepsal
  • documentTimestamp – 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)
Příznaky 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
    
  

OpenAPI specifikace

OpenAPI specifikace tohoto rozhraní je k dispozici na adrese https://dasta4.cz/openapi/v1.json.