Server Response

Server responses

Wanneer er een FHIR request wordt gemaakt naar de server, kan de server afhankelijk van het request verschillend reageren. Op deze pagina wordt uitgelegd wat de mogelijk reacties zijn op de requests. Hierbij rekenening houdend met de FHIR standaard en de afwijkeningen daarvan.

Prefer: return

Wanneer er een request naar een FHIR server wordt gestuurd, dan zal de server een antwoord geven. Positief of negatief. Default zal er een standaard FHIR server bij een posifief antwoord alleen maar een HTTP 200 (OK) of HTTP 201 (Created) worden teruggestuurd. Het is echter mogelijk om meer informatie van de server te verkrijgen door het toevoegen van een request header. Fhir kent drie opties voor de header Prefer; namelijk:

  • Prefer: return=minimal. Wanneer deze header in het request wordt gebruikt, zal er geen response body by succesvolle operaties worden gestuurd (dus bij HTTP 200 en 201).
  • Prefer: return=representation. Met deze header in het request zal er in de response body de resource zoals deze is opgeslagen in de fhir-server worden terug gestuurd. LET OP: Op dit moment is deze optie niet ondersteund!.
  • Prefer: return=OperationOutcome. Met deze header in het reqeust zal er een OperationOutcome (https://www.hl7.org/fhir/operationoutcome.html) in de response body worden opgestuurd. In een operationOutcome worden issues gedefinieerd met verschillende niveau’s van severity (https://www.hl7.org/fhir/valueset-issue-severity.html). ‘AANGERADEN’

Note: De NICE FHIR zal default, bij het ontbreken van deze header de optie Prefer: return=OperationOutcome. Dit geeft meer informatie over de verwerking.

HTTP 200 OK

De FHIR server zal een HTTP 200 OK als response terugsturen wanneer het request met succes is verwerkt en als de resource is geupdated. In de responsebody zit een OperationOutcome,bijv:

<OperationOutcome xmlns="http://hl7.org/fhir">
    <issue>
        <severity value="success"></severity>
        <code value="processing"></code>
        <diagnostics value="De bundle is met succes verwerkt.
    </issue>
</OperationOutcome>

HTTP 201 CREATED

De FHIR server zal een HTTP 201 Created als response terugsturen wanneer het request een nieuwe resource bevatte en dat deze met succes is aangemaakt. De responsebody zal hetzelfde zijn als in het voorbeeld bij http 200.

HTTP 202 ACCEPTED

De FHIR server van NICE zal altijd proberen het bericht zoveel mogelijk te verwerken todat er reden zijn dit niet meer te doen. Dit zal vooral te maken hebben met het ontbreken van verplichte velden, welke gebruikt worden om de primary key mee samen te stellen. Bijvoorbeeld stel dat er in een bundle een MDS QR en een SOFA QR met meerdere sofa -dage (=records_ wordt opgestuurd. De MDS QR kan zonder problemen worden verwerkt. Maar in één van sofa items (=sofa rerord) ontbreekt een sofa_dag. Dan zal de server hier een issue van maken met warning als waarde voorseverity.

<OperationOutcome xmlns="http://hl7.org/fhir">
    <issue>
        <severity value="success"></severity>
        <code value="processing"></code>
        <diagnostics value="De bundle is met succes verwerkt.
    </issue>
    <issue>
        <severity value="warning"></severity>
        <code value="processing"></code>
        <diagnostics value="Omdat een veplicht item met linkId {0} ontbrak. Omdat dit onderdeel is van de primary key kan dit item {1} (record) niet worden verwerkt."></diagnostics>
    </issue>
</OperationOutcome>

Wanneer de server constateerd dat er in de issuelijst een warning of een error zit, zal deze ipv een HTTP 200 OK een HTTP 202 Accepted sturen zodat het duidelijk is dat er iets niet helemaal is verwerkt en welke in een volgende aanlevering zou kunnen worden verbeterd.

HTTP 400 Bad request

Wanneer de server een request binnen krijgt die het niet kan verwerken, zal deze reageren met HTTP 400 Bad request. Dit kan betekenen dat het geen goede xml of json is, maar ook indien een verplicht veld (bijv onderdeel van een primary key ontbreekt. In de responsebody zal een outcome staan met een melding waarom het een ‘bad request’ is.

HTTP 401 Not authenticated

Er wordt geen of geen geldig certificaat bij het request aangeboden. En daarom mag er geen request worden verstuurd. Een gebruik van een client-certificaat is verplicht.

HTTP 403 Forbidden

Een forbidden response kan worden verstuurd indien het ziekenhuisnummer (hospno) in het request niet overeenkomt met het ziekenhuisnummer dat is gebruikt bij de registratie bij het certificaat.

Beta server

Op de beta server is de errorHandler op strict gezet, wat maakt dat deze het format van het FHIR bericht nauwkeurig controleerd en stop indien er een probleem is gevonden.