Validatie
Validatie kan op verschillende zaken betrekking hebben en op verschillende momenten plaatsvinden. we kunnen onderscheid maken tussen:
- Deelnemer validatie - De controle van de data door de deelnemer zelf.
- Structuur validatie - De controle van het bericht of deze kan worden verwerkt in het juiste format. (controle XML of JSON).
- FHIR validatie - De controle van het bericht of dit kan worden verwerkt door de FHIR library.
- NICE validatie - De inhoudelijke controle van de data op basis van de regels van NICE.
Deelnemer validatie
Uit een haalbaarheidsstudie is gebleken dat de deelnemers zelf in controle willen blijven over de data. met name om een goedkeuring uit te spreken of de data correct is. Ook werd de meerwaarde gezien van het snel kunnen versturen van data. Zeker in deze tijden met de COVID-19 registratie. Op de vraag of bijvoorbeeld de opnamegegevens achteraf nog vaak aangepast worden, werd gedacht van niet. Dit maakt dat wij (NICE / RIVM) denken dat deze informatie geschikt zou kunnen zijn voor de SARI-Surveillance. We zullen de verschillende versies van data bewaren, zodat we hier meer onderzoek naar kunnen doen.
Elke QuestionnaireResponse zal worden voorzien van een item genaamd “isgevalideerd” als boolean (true/false). Hiermee kan worden aangegeven of de data die in de betreffende questionnaireresponse is opgenomen, is gecontrolleerd door de deelnemer.
Structuur validatie
Dit is de controle of het aangeleverde bericht voldoet aan de standaarden XML of JSON. Wanneer er een fout in het bericht zit, waardoor het geen valide XML of JSON is dan zal de server een foutmelding geven en het bericht verder niet verwerken.
Wanneer een bericht wordt ingediend wat invalide XML of JSON bevat, wordt een error gegeven van het type processing. In dit geval is een bericht ingediend waarbij op rij 12, kolom 5 een element stond wat niet was afgesloten met een “>” (oftewel: ">").
<OperationOutcome xmlns="http://hl7.org/fhir">
<issue>
<severity value="error"></severity>
<code value="processing"></code>
<diagnostics value="Failed to parse request body as XML resource. Error was: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[12,5] Message: Element type "entry" must be followed by either attribute specifications, ">" or "/>"."></diagnostics>
</issue>
</OperationOutcome>
FHIR validatie
Wanneer het bericht valide is qua structuur, dan wordt het door de server geparsed naar FHIR objecten, wanneer de library (HAPI FHIR) een fout constateert, dan zal de server een outcome response geven.
NICE validate
De FHIR validatie wordt vervolgens nog aangevuld door de NICE validatie. Hierbij worden de controles, die zijn opgesteld voor een dataset uitgevoerd op het bericht. Hierbij moet rekening worden gehouden dat de berichten op meerdere momenten moeten worden vestuurd en dus dat mogelijk niet alle data compleet is.
Indien een bericht OK wordt aangeleverd en een bestaand record is aangepast, zal de FHIR server een lege body terug geven met HTTP code 200. Indien een nieuw record is aangemaakt, wordt HTTP code 201 gegeven.
responseCode 200
OF
responseCode 201
Voorbeeld fout NOG INVOEGEN wanneer NICE validatie aan staat
$validate
Een van de door FHIR gedefinieerde operations is $validate. Met deze operatie kan een resource gevalideerd worden, zonder dat deze op de server wordt opgeslagen. De response is een Outcome, waarin alle bevindingen worden weergegeven.
Resources die gevalideerd kunnen worden, zijn Bundle en QuestionnaireResponse.
Bundle | |||
---|---|---|---|
profile inclusief version | Met behulp van het profiel kunnen we bepalen volgens welke definitie is aangeleverd. | geweigerd. | Voorbeeld NOG INVOEGEN |