Interfaces Resource Broker ZA-in
AORTA FHIR Resource Broker Interface
AOF.RB-I.AFR.050.v1
De AORTA FHIR Resource Broker Interface ondersteunt de volgende versies van het AORTA access_token:
versie 2.0 (AoF 0.7)
versie 3.0 (AoF 0.8)
Reguliere FHIR-interacties
Feature | |
---|---|
Type | Abstracte Service |
Versie | 1.2.0 |
Groep | Broker |
Gepubliceerd |
|
Delta | Opnemen OperationOutcomes (fatal en error) in messageLog en GBZ-log. |
Use case |
Feature | Versie | Dependency | Aanbieder | Afnemer |
---|---|---|---|---|
1.2.0 | * | * | ||
1.2.0 | AORTA-ID HTTP Header | * | * | |
1.2.0 | AORTA-Version HTTP Header | * | * | |
1.2.0 | Authorization HTTP Header | * | * | |
1.2.0 | * | - | ||
1.2.0 | 3 | - | ||
1.2.0 | * | - |
AOF.RB-I.AFR.100.v4
De AORTA FHIR Resource Broker Interface is, voor reguliere FHIR-interacties (search, read, update, batch/transaction) nagenoeg gelijk aan de AORTA FHIR Resource Interface, inclusief de gehanteerde HTTP-headers. Dit geldt zowel voor het generieke deel van de interface als voor de AORTA FHIR * interacties. In deze sectie worden daarom slechts de afwijkingen hierop beschreven.
M.b.t. de HTTP-headers die worden gebruikt geldt voor alle interacties de volgende uitzonderingen:
De
AORTA-Version
header is optioneel en mag worden weggelaten
De waarde van de base-URL van de FHIR endpoints die de Resource Broker biedt t.b.v. de AORTA FHIR Resource Broker Interface ( [base]
dus ), dient voor alle FHIR-interacties gelijk te zijn aan:
https://<FQDN>{</path extension>}/fhir/<fhir-version>/<aorta-interface-version>
De waarde van <fhir-version> is dan bijvoorbeeld "STU3", "R4" of "R5".
De waarde van <aorta-interface-version> is de major versie van de AORTA FHIR Resource Broker Interface, bijvoorbeeld “v1”.
Operation $is-allowed maakt geen deel uit van deze interface.
HTTP statuscodes
HTTP statuscodes die kunnen worden geretourneerd zijn:
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem ontvangt een verzoek en start de verwerking. | Gevraagd type content of AORTA acceptVersion niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content of AORTA contentVersion niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
| Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem toetst of het request geen malafide inhoud bevat (zie FHIR security, input validation). | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Het system bepaalt, m.b.v. de interactietabel en m.b.v. de _vrb_ter_scope claim in het AORTA access_token, welk interactie-id van toepassing is op het ontvangen request. Zie ook de toelichting "Bepalen van het interactie-id". | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
iii | Het systeem toetst of het verzoek voldoet aan de interface specificatie. Hierbij moet ook worden voldaan aan de toelichting "Controle van batch en transaction requests". | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem controleert of het ontvangen resource request is toegestaan binnen de scope van het access_token. Zie ook de toelichting "Controle of request binnen scope valt" en de toelichting "Controle van batch en transaction requests". | Scope is niet toereikend statuscode 403 Forbidden
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
2 | Het systeem
| |
3 | Het systeem ontvangt een response. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem toetst of eventueel aanwezige BSN's uit het opgeleverde resultaat overeenkomen met het BSN dat is opgenomen in de | BSN in resultaat komt niet overeen met access_token statuscode 500 Internal Server Error
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Indien de response moet worden geretourneerd aan MedMij, dan verwijderd het systeem alle aanwezige BSN's uit de op te leveren response. | |
iii | Het systeem voert de filtering uit zoals beschreven in de toelichting "Filtering HTTP-response". |
Stap | Omschrijving | Uitkomst |
---|---|---|
4 <exit> | Het systeem retourneert een response naar de primaire actor. | Verwerking succesvol statuscode 200 OK |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem ontvangt een verzoek en start de verwerking. | Gevraagd type content of AORTA acceptVersion niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content of AORTA contentVersion niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
| Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
iii | Indien van toepassing: Het systeem controleert de samenhang tussen het AORTA access_token en het DigiD authenticatietoken, zoals omschreven in de de sectie "Toetsing van samenhang tussen tokens". | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
2 | Bij ontvangst van get-aorta-data request: Het systeem achterhaald, m.b.v. de AORTA Token Interface (middels een AORTA Token Request), welke interactie(s) moet(en) worden geïnitieerd, en bij welke GBx-applicatie(s). | Interactie(s) en/of GBx-applicaties kunnen niet worden vastgesteld statuscode 500 Internal Server Error |
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
Géén GBx-applicatie gevonden Het systeem gaat direct naar stap 5 (samenstellen van response) van de main flow. | ||
3 | Voor elke GBx-applicatie, waar één of meerdere interacties moeten worden geïnitieerd, worden voor iedere te initieren interactie de volgende stappen doorlopen:
| Ongeldige adressering Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden en gaat verder met de volgende interactie of GBx-applicatie. In geval van foutieve informatie in het request of token wordt geretourneerd: statuscode 400 Bad Request In geval van een interne fout in het systeem wordt geretourneerd: statuscode 500 Internal Server Error |
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
Interactie kon niet worden geïnitieerd Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden en gaat verder met de volgende interactie of GBx-applicatie. In geval van foutieve informatie in het request of token wordt geretourneerd: statuscode 400 Bad Request In geval van een interne fout in het systeem wordt geretourneerd: statuscode 500 Internal Server Error | ||
4 | Voor elke ontvangen response worden de volgende stappen doorlopen:
| Malafide inhoud Het systeem logt de gebeurtenis, negeert de betreffende response en gaat verder met de volgende interactie of GBx-applicatie. |
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
5 | Het systeem consolideert alle ontvangen responses, zoals omschreven in de toelichting "Consolideren van de responses naar één FHIR-result" of, wanneer één v3-response moet worden opgeleverd, in AORTA documentatie voor v3-uitwisseling. | |
6 | Bij opleveren van een FHIR-result: het systeem overschrijft eventuele URL's in het opgeleverde resultaat
De juiste Resource Broker XXX-in wordt bepaald o.b.v. de inhoud van de vrb_client_id claim in het AORTA access_token. De base URL die hierbij hoort wordt verkregen uit het AORTA Stelseltoken. | |
7 <exit> | Het systeem retourneert een response naar de primaire actor. | Zie de toelichting "Consolideren van de responses naar één FHIR-result". |
Verwerking succesvol statuscode 200 OK
Voor bovenstaande criteria geldt dat ze
Wanneer een feitelijk, door Resource Server, geretourneerde statuscode moet worden toegevoegd aan een response, dan wordt dit gedaan in een OperationOutcome met:
| ||
Verwerking succesvol - resource instance gecreëerd statuscode 201 Created |
$get-aorta-data FHIR-operation
Feature | |
---|---|
Type | Service |
Versie | 1.2.0 |
Groep | Broker |
Gepubliceerd |
|
Delta | Toevoeging geparameteriseerde $get-aorta-data. |
Use case |
Feature | Versie | Dependency | Aanbieder | Afnemer |
---|---|---|---|---|
1.2.0 | 1.2 | 1.2 |
AOF.RB-I.AFR.200.v2
De resource client initieert een custom FHIR operation bij de resource broker en gebruikt hiervoor de HTTP GET Method op de volgende wijze:
GET [base]$get-aorta-data?[context]{&[destination]}{&[effective-time]}{&[therapy-identifier]}{&[classifier]}{&[instance-identifier]}
In Parameters: | |||
Name | Conformance | Type | Toelichting |
context | Verplicht | AORTA contextcode waarbinnen de operation wordt uitgevoerd. Bijvoorbeeld:
| |
destination | Optioneel | URA van de zorgaanbieder die bevraagd moet worden, of het applicatieID van de Resource Server (GBZ-applicatie) die bevraagd moet worden. Wanneer de destination afwezig is, dan worden alle Resource Server waarvoor toestemming is geregistreerd bevraagd. Formaat:
| |
effective-time | Optioneel | De periode waarop een geregistreerd gegeven betrekking heeft (bijv. medisch of logistiek relevant is). Bijvoorbeeld:
| |
therapy-identifier | Optioneel | Een business identifier van een specifieke behandeling. Bijvoorbeeld:
| |
classifier | Optioneel | Typering van bijv. het soort medicatie, observaties, diagnoses of problemen. Bijvoorbeeld:
| |
instance-identifier | Optioneel | Een business identifier van een specifieke bouwsteen instantie. Bijvoorbeeld:
| |
Out Parameters: | |||
Name | Cardinality | Type | Toelichting |
return | 0..1 | Bundle.type = searchset. Note: as this is the only out parameter, it is a resource, and it has the name 'return', the result of this operation is returned directly as a resource. |
HTTP statuscodes
HTTP statuscodes die kunnen worden geretourneerd zijn:
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem ontvangt een verzoek en start de verwerking. | Gevraagd type content of AORTA acceptVersion niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content of AORTA contentVersion niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
| Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem toetst of het request geen malafide inhoud bevat (zie FHIR security, input validation). | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Het system bepaalt, m.b.v. de interactietabel en m.b.v. de _vrb_ter_scope claim in het AORTA access_token, welk interactie-id van toepassing is op het ontvangen request. Zie ook de toelichting "Bepalen van het interactie-id". | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
iii | Het systeem toetst of het verzoek voldoet aan de interface specificatie. Hierbij moet ook worden voldaan aan de toelichting "Controle van batch en transaction requests". | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem controleert of het ontvangen resource request is toegestaan binnen de scope van het access_token. Zie ook de toelichting "Controle of request binnen scope valt" en de toelichting "Controle van batch en transaction requests". | Scope is niet toereikend statuscode 403 Forbidden
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
2 | Het systeem
| |
3 | Het systeem ontvangt een response. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem toetst of eventueel aanwezige BSN's uit het opgeleverde resultaat overeenkomen met het BSN dat is opgenomen in de | BSN in resultaat komt niet overeen met access_token statuscode 500 Internal Server Error
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Indien de response moet worden geretourneerd aan MedMij, dan verwijderd het systeem alle aanwezige BSN's uit de op te leveren response. | |
iii | Het systeem voert de filtering uit zoals beschreven in de toelichting "Filtering HTTP-response". |
Stap | Omschrijving | Uitkomst |
---|---|---|
4 <exit> | Het systeem retourneert een response naar de primaire actor. | Verwerking succesvol statuscode 200 OK |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem ontvangt een verzoek en start de verwerking. | Gevraagd type content of AORTA acceptVersion niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content of AORTA contentVersion niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Extension Stap | Omschrijving | Uitkomst |
---|---|---|
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
| Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
iii | Indien van toepassing: Het systeem controleert de samenhang tussen het AORTA access_token en het DigiD authenticatietoken, zoals omschreven in de de sectie "Toetsing van samenhang tussen tokens". | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
2 | Bij ontvangst van get-aorta-data request: Het systeem achterhaald, m.b.v. de AORTA Token Interface (middels een AORTA Token Request), welke interactie(s) moet(en) worden geïnitieerd, en bij welke GBx-applicatie(s). | Interactie(s) en/of GBx-applicaties kunnen niet worden vastgesteld statuscode 500 Internal Server Error |
Het systeem genereert de vereiste foutresponse en gaat verder met de exit stap van de main flow. | ||
Géén GBx-applicatie gevonden Het systeem gaat direct naar stap 5 (samenstellen van response) van de main flow. | ||
3 | Voor elke GBx-applicatie, waar één of meerdere interacties moeten worden geïnitieerd, worden voor iedere te initieren interactie de volgende stappen doorlopen:
| Ongeldige adressering Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden en gaat verder met de volgende interactie of GBx-applicatie. In geval van foutieve informatie in het request of token wordt geretourneerd: statuscode 400 Bad Request In geval van een interne fout in het systeem wordt geretourneerd: statuscode 500 Internal Server Error |
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
Interactie kon niet worden geïnitieerd Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden en gaat verder met de volgende interactie of GBx-applicatie. In geval van foutieve informatie in het request of token wordt geretourneerd: statuscode 400 Bad Request In geval van een interne fout in het systeem wordt geretourneerd: statuscode 500 Internal Server Error | ||
4 | Voor elke ontvangen response worden de volgende stappen doorlopen:
| Malafide inhoud Het systeem logt de gebeurtenis, negeert de betreffende response en gaat verder met de volgende interactie of GBx-applicatie. |
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
5 | Het systeem consolideert alle ontvangen responses, zoals omschreven in de toelichting "Consolideren van de responses naar één FHIR-result" of, wanneer één v3-response moet worden opgeleverd, in AORTA documentatie voor v3-uitwisseling. | |
6 | Bij opleveren van een FHIR-result: het systeem overschrijft eventuele URL's in het opgeleverde resultaat
De juiste Resource Broker XXX-in wordt bepaald o.b.v. de inhoud van de vrb_client_id claim in het AORTA access_token. De base URL die hierbij hoort wordt verkregen uit het AORTA Stelseltoken. | |
7 <exit> | Het systeem retourneert een response naar de primaire actor. | Zie de toelichting "Consolideren van de responses naar één FHIR-result". |
Verwerking succesvol statuscode 200 OK
Voor bovenstaande criteria geldt dat ze
Wanneer een feitelijk, door Resource Server, geretourneerde statuscode moet worden toegevoegd aan een response, dan wordt dit gedaan in een OperationOutcome met:
| ||
Verwerking succesvol - resource instance gecreëerd statuscode 201 Created |