FHIR:Vprepub-1.0 FHIR Error handling examples: verschil tussen versies

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen
Niek van Galen (overleg | bijdragen)
k Niek van Galen heeft de pagina MedMij:Vprepub/FHIR Error handling examples hernoemd naar MedMij:V2020.01/FHIR Error handling examples zonder een doorverwijzing achter te laten: Tekst vervangen - "Vprepub" door "V2020.01"
k Tekst vervangen - "__NUMBEREDHEADINGS__" door ""
 
(18 tussenliggende versies door 4 gebruikers niet weergegeven)
Regel 1: Regel 1:
__NOINDEX__
__NOINDEX__
__NUMBEREDHEADINGS__
 
{{DISPLAYTITLE:FHIR IG Error handling examples}}
{{DISPLAYTITLE:FHIR IG Error handling examples}}
{{MedMij:Vprepub/Issuebox_FHIR_IG}}
=Error handling examples=
=Error handling examples=
This page provides guidance on how a server could handle errors. Examples are provided in XML format but could have been in JSON format as well. Please note: these examples are not considered to be part of the normative content of the implementation guide.  
This page provides guidance on how a server could handle errors. Examples are provided in XML format but could have been in JSON format as well. Please note: these examples are not considered to be part of the normative content of the implementation guide.  


==All interactions==
==All interactions==
===Not authorized===
{| class="wikitable"
|-
| '''Scenario'''
| Not authorized.
|-
| '''Request'''
| <pre> GET [base]/Practitioner/86475712701</pre>
|-
| '''Response'''
|
* HTTP 401 Unauthorized
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|security}} or if applicable a more specific child code.
|}
{{Collapse top|XML contents - response}}
<syntaxhighlight lang="xml">
<OperationOutcome xmlns="http://hl7.org/fhir">
    <id value="01464674-b4b6-11eb-8529-0242ac130003" />
    <text>
    ...
    </text>
    <issue>
        <severity value="error"/>
        <code value="security"/>
        <details>
            <text value="Not authorized to access this resource"/>
        </details>
    </issue>
</OperationOutcome>
</syntaxhighlight>
{{Collapse bottom}}
===Invalid authorization===
===Invalid authorization===
{| class="wikitable"  
{| class="wikitable"  
Regel 18: Regel 48:
| '''Response'''
| '''Response'''
|  
|  
* HTTP 401 Unauthorized
* HTTP 403 Forbidden
* OperationOutcome with <code>code</code> set to "''security''" or if applicable a more specific child code.  
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|security}} or if applicable a more specific child code.  
|}
|}
{{Collapse top|XML contents - response}}
{{Collapse top|XML contents - response}}
Regel 32: Regel 62:
         <code value="security"/>
         <code value="security"/>
         <details>
         <details>
             <text value="User authentication failed."/>
             <text value="Read access forbidden"/>
         </details>
         </details>
     </issue>
     </issue>
Regel 38: Regel 68:
</syntaxhighlight>
</syntaxhighlight>
{{Collapse bottom}}
{{Collapse bottom}}
===Resource is not supported===
===Resource is not supported===
{| class="wikitable"  
{| class="wikitable"  
Regel 50: Regel 81:
|
|
* HTTP 404 Not Found
* HTTP 404 Not Found
* OperationOutcome with <code>code</code> set to "''not-supported''"
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|not-supported}}.
|}
|}


Regel 70: Regel 101:
</syntaxhighlight>
</syntaxhighlight>
{{Collapse bottom}}
{{Collapse bottom}}
==Search==
==Search==
===Unkown or unsupported search parameter value===
===Unkown or unsupported search parameter value===
Regel 84: Regel 116:
|
|
* HTTP 200 OK
* HTTP 200 OK
* Empty Bundle of <code>type</code> "''searchset''"
* Empty Bundle of {{fhir|.type}} {{term|searchset}}.
* OperationOutcome in Bundle as an entry marked with <code>Bundle.entry.search.mode</code> of "''outcome''"
* OperationOutcome in Bundle as an entry marked with {{fhir|Bundle.entry.search.mode}} set to {{term|outcome}}.
* OperationOutcome with <code>code</code> set to "''not-found''" and <code>severity</code> not set to "''fatal''" or "''error''"
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|not-found}} and {{fhir|OperationOutcome.severity}} not set to {{term|fatal}} or {{term|error}}.
|}
|}
{{Collapse top|XML contents - response}}
{{Collapse top|XML contents - response}}
Regel 135: Regel 167:
|-
|-
| '''Response'''
| '''Response'''
| * HTTP Status code 404 Not Found<br />* OperationOutcome
|  
* HTTP 400 Bad Request
* OperationOutcome. There are various issue type codes that could be used, depending on the nature of the error.
|}
|}
{{Collapse top|XML contents - response}}
{{Collapse top|XML contents - response}}
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Regel 160: Regel 195:
|-
|-
| '''Scenario'''
| '''Scenario'''
| The id is not known by the server
| The id is not known by the server.
|-
|-
| '''Request'''
| '''Request'''
Regel 166: Regel 201:
|-
|-
| '''Response'''
| '''Response'''
| * HTTP Status code 404 Not Found<br />* OperationOutcome
|  
* HTTP 404 Not Found
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|not-found}}.
|}
|}
{{Collapse top|XML contents - response}}
{{Collapse top|XML contents - response}}
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Regel 197: Regel 235:
|  
|  
* HTTP 400 Bad Request
* HTTP 400 Bad Request
OperationOutcome with <code>code</code> set to "''invalid''"
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|invalid}}.
|}
|}


Regel 232: Regel 270:
</syntaxhighlight>
</syntaxhighlight>
{{Collapse bottom}}
{{Collapse bottom}}
===Resource syntax or data is incorrect or invalid===
 
===Resource syntax or data is incorrect, invalid or unsupported===
{| class="wikitable"  
{| class="wikitable"  
|-
|-
| '''Scenario'''
| '''Scenario'''
| Resource syntax or data is incorrect or invalid.
| Resource syntax or data is incorrect, invalid or unsupported.
|-
|-
| '''Request'''
| '''Request'''
Regel 243: Regel 282:
| '''Response'''
| '''Response'''
|  
|  
* HTTP 400 Bad Request or HTTP 422 Uprocessable Entity
* HTTP 400 Bad Request or HTTP 422 Unprocessable Entity
* OperationOutcome with <code>code</code> set to "''invalid''" or a more specific child code.
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|invalid}} or a more specific child code.
|}
|}
{{Collapse top|XML contents - request}}
{{Collapse top|XML contents - request}}
Regel 281: Regel 320:
         <diagnostics value="value.empty() or system.exists()" />
         <diagnostics value="value.empty() or system.exists()" />
         <location value="Patient.telecom[0]" />
         <location value="Patient.telecom[0]" />
    </issue>
</OperationOutcome>
</syntaxhighlight>
{{Collapse bottom}}
{| class="wikitable"
|-
| '''Scenario'''
| Resource syntax or data is incorrect, invalid or unsupported.
|-
| '''Request'''
| <pre> POST [base]/Observation</pre>
|-
| '''Response'''
|
* HTTP 400 Bad Request or HTTP 422 Unprocessable Entity
* OperationOutcome with {{fhir|OperationOutcome.issue.code}} set to {{term|invalid}} or a more specific child code.
|}
{{Collapse top|XML contents - request}}
<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<Observation xmlns="http://hl7.org/fhir">
    <id value="example"/>
    ...
    <category>
        <coding>
            <system value="http://hl7.org/fhir/observation-category"/>
            <code value="vital-signs"/>
            <display value="Vital Signs"/>
        </coding>
    </category>
    <code>
        <coding>
            <system value="http://loinc.org"/>
            <code value="39156-5"/>
            <display value="Body mass index (BMI)"/>
        </coding>
    </code>
    ...
</Observation>
</syntaxhighlight>
{{Collapse bottom}}
{{Collapse top|XML contents - response}}
<syntaxhighlight lang="xml">
<OperationOutcome xmlns="http://hl7.org/fhir">
    <id value="c8bc9de0-5141-40dd-9a06-7134109d8ce0" />
    <text>
    ...
    </text>
    <issue>
        <severity value="error" />
        <code value="not-supported" />
        <details>
            <text value="Unsupported code value" />
        </details>
        <location value="Observation.code[0]" />
     </issue>
     </issue>
</OperationOutcome>
</OperationOutcome>
</syntaxhighlight>
</syntaxhighlight>
{{Collapse bottom}}
{{Collapse bottom}}

Huidige versie van 23 okt 2026 12:39


1 Error handling examples[bewerken]

This page provides guidance on how a server could handle errors. Examples are provided in XML format but could have been in JSON format as well. Please note: these examples are not considered to be part of the normative content of the implementation guide.

1.1 All interactions[bewerken]

1.1.1 Not authorized[bewerken]

Scenario Not authorized.
Request
 GET [base]/Practitioner/86475712701
Response
  • HTTP 401 Unauthorized
  • OperationOutcome with OperationOutcome.issue.code set to security or if applicable a more specific child code.

1.1.2 Invalid authorization[bewerken]

Scenario Invalid authorization.
Request
 GET [base]/Patient/20118482245
Response
  • HTTP 403 Forbidden
  • OperationOutcome with OperationOutcome.issue.code set to security or if applicable a more specific child code.

1.1.3 Resource is not supported[bewerken]

Scenario The Resource is not supported by the resource server.
Request
GET [base]/Questionnaire
Response
  • HTTP 404 Not Found
  • OperationOutcome with OperationOutcome.issue.code set to not-supported.

1.2 Search[bewerken]

1.2.1 Unkown or unsupported search parameter value[bewerken]

Scenario

Unknown or unsupported search parameter value. In this example scenario, the Consent endpoint is supported. Although a system has implemented support for the HCIM TreatmentDirective (category=http://snomed.info/sct|11291000146105) it has not implemented the HCIM AdvanceDirective (category=http://snomed.info/sct|11341000146107).

Request
GET [base]/Consent?category=http://snomed.info/sct|11341000146107
Response
  • HTTP 200 OK
  • Empty Bundle of .type searchset.
  • OperationOutcome in Bundle as an entry marked with Bundle.entry.search.mode set to outcome.
  • OperationOutcome with OperationOutcome.issue.code set to not-found and OperationOutcome.severity not set to fatal or error.

1.2.2 Syntactically incorrect parameter[bewerken]

Scenario Syntactically incorrect parameter in the search request.
Request
 GET [base]/Procedure?patient:john
Response
  • HTTP 400 Bad Request
  • OperationOutcome. There are various issue type codes that could be used, depending on the nature of the error.

1.3 Read[bewerken]

1.3.1 Request on an unknown id[bewerken]

Scenario The id is not known by the server.
Request
GET [base]/Patient/wrong-id
Response
  • HTTP 404 Not Found
  • OperationOutcome with OperationOutcome.issue.code set to not-found.

1.4 Create/Update[bewerken]

1.4.1 No or incorrect Resource id[bewerken]

Scenario Update an existing Patient resource, using a wrong id in the Resource.
Request
 PUT [base]/Patient/34235234
Response
  • HTTP 400 Bad Request
  • OperationOutcome with OperationOutcome.issue.code set to invalid.

1.4.2 Resource syntax or data is incorrect, invalid or unsupported[bewerken]

Scenario Resource syntax or data is incorrect, invalid or unsupported.
Request
 POST [base]/Patient
Response
  • HTTP 400 Bad Request or HTTP 422 Unprocessable Entity
  • OperationOutcome with OperationOutcome.issue.code set to invalid or a more specific child code.
Scenario Resource syntax or data is incorrect, invalid or unsupported.
Request
 POST [base]/Observation
Response
  • HTTP 400 Bad Request or HTTP 422 Unprocessable Entity
  • OperationOutcome with OperationOutcome.issue.code set to invalid or a more specific child code.