Beschrijving
In de interactie met de FHR REST API kunnen zich, naast de fouten die zich voordoen aan de serverzijde, er zich ook fouten voordoen bij de verwerking van de resources door de cliënt van de FHIR REST API. Het is van belang deze fouten te melden, omdat anders de infrastructuur ervan uit kan gaan dat het clientsysteem de informatie correct verwerkt heeft, of correct kan verwerken. De foutafhandeling door de client bestaat uit het aanmaken van een AuditEvent, hiermee maakt de applicatie duidelijk aan de andere applicaties en de beheerder van het domein dat er iets niet goed is gegaan. Het type AuditEvent maakt duidelijk wat er exact aan de hand is. Een applicatie kan een FHIR resource om verschillende redenen niet verwerken. Dit onderscheid is belangrijk, omdat sommige fouten verwacht kunnen zijn en geen aandacht van een beheerder vereisen, terwijl andere type fouten onverwacht zijn en aandacht vereisen.
...
De verschillende type fouten worden gemapped door middel van twee velden. De type en outcome. De data error wordt als een validate type weergegeven. Dit omdat hij verwacht is. De andere twee type fouten vallen onder transmit, omdat het uiteindelijk gaat om het uitwisselen van gegevens. Het onderscheid tussen een terminale error wordt door de outcome weergegeven. Een 4 geeft aan “kleine fout”, 8 “serieuze fout” en 12 “fatale fout”. Een terminale error is een 8 “serieuze fout”, een gegevensverwerkingsfout valt onder een 4 “kleine fout”. Een tijdelijke fout is in principe type 4 “kleine fout”, maar het systeem kan ook besluiten dat het niet in staat is gegevens verder te verwerken en een 12 “fatale fout” te sturen om aan te geven helemaal geen gegevens meer te kunnen verwerken.Hier wordt onderscheid gemaakt tussen drie typen:
- Een tijdelijke fout kan van type 4 (kleine fout) of 12 “fatale fout” indien het systeem tijdelijke beschikbaarheidsproblemen heeft.
- Een gevensverwerkingsprobleem wordt altijd op outcome 4 gemapped.
- Een interne verwerkingsfout die in principe niet aan de input data valt te koppelen wordt altijd outcome 8.
In alle gevallen is het type "transmit"
| Tijdelijke fout | Gegevensverwerkingsfout | Terminale Interne fout |
AuditEvent.type | transmit | verifytransmit | transmit |
AuditEvent.outcome | 4 of 12 | 4 | 8 |
In het codesysteem http://hl7.org/fhir/audit-event-outcome worden de foutcodes als volgt vastgelegd.
Code | Display | Definition |
---|---|---|
0 | Success | The operation completed successfully (whether with warnings or not). |
4 | Minor failure | The action was not successful due to some kind of minor failure (often equivalent to an HTTP 400 response). |
8 | Serious failure | The action was not successful due to some kind of unexpected error (often equivalent to an HTTP 500 response). |
12 | Major failure | An error of such magnitude occurred that the system is no longer available for use (i.e. the system died). |
De action
De action wordt gemapped op R van Read E van Execute, omdat het een verwerking van gegevens betreft die worden gelezen in de FHIR storeapplicatie.
Entity en query
De overige velden wijken niet af van wat verwacht wordt. De entity heeft betrekking op de entity die onverwerkbaar is, indien er in een resultaat (bundle) meerdere enities voorkomen die niet verwerkt kan worden, moet een AuditEvent worden aangemaakt met meerdere entities. Indien er sprake is van een query moet deze in het query veld gevuld worden.
...