Interfaces Resource Broker VnC
De waarde van de base-URL ( [base] ) van de FHIR endpoints die de Resource Broker VnC biedt , dient voor alle FHIR-interacties gelijk te zijn aan "https://<FQDN>{</path extension>}/fhir/<fhir-version>". De waarde van <fhir-version> is dan bijvoorbeeld "R4" of "R5".
Verzending & Consolidatie Interface
Deze interface is slechts bedoeld voor gebruik door VZVZ-componenten, en kan niet (rechtstreeks) worden gebruikt door GBx-applicaties.
De Verzending & Consolidatie Interface ondersteunt de volgende versies van het AORTA access_token:
versie 1.1 (AoF 0.6)
versie 2.0 (AoF 0.7)
versie 3.*
versie 4.*
Reguliere FHIR-interactie
Feature | |
---|---|
Type | Abstracte Service |
Versie | 1.5.1 |
Systeemrolcode | - |
Groep | Broker |
Gepubliceerd |
|
Delta | De base-URL van de Transformatie Server dient te worden verkregen uit het AORTA Stelseltoken. |
Use case |
Feature | Versie | Dependency | Aanbieder | Afnemer |
---|---|---|---|---|
1.5.1 | >=1.* | >=1.* |
De Verzending & Consolidatie Interface is voor reguliere FHIR-interacties (search, read, update, batch/transaction) nagenoeg gelijk aan de AORTA FHIR Resource Interface. 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 gelden voor alle interacties de volgende extra headers:
Conditionele request header:
DigiD-Authenticatie: Bearer <authenticatietoken>
Een request die is gestuurd door een patiënt (via MedMij of een GBP) dient altijd een DigiD-Authenticatie header te bevatten.
Vooralsnog hoeven slechts JWT-based access_tokens, en SAML-based authenticatietokens te worden ondersteund.
Een token dat wordt meegezonden is in sommige gevallen een XML SAMLv2 Assertion, en in andere situaties een JSON Web Token (JWT). Een JWT bestaat uit een aantal base64 strings, die aan elkaar zijn gekoppeld met punten. Omdat een base64url geëncodeerde SAMLv2 Assertion geen punten kan bevatten, is de ontvanger altijd in staat om het type token bepalen.
Een SAML Assertion dient altijd base64url te worden gecodeerd conform RFC 4648.
HTTP statuscodes
HTTP statuscodes die kunnen worden geretourneerd zijn opgenomen in onderstaande tabel.
Omdat bepaalde Confluence macro’s nog niet worden ondersteund in de publicatie omgeving, bevat de tabel, in de publicatieomgeving, ook informatie over de wijze waarop de betreffende interface wordt geïmplementeerd in de server component. De statuscodes die kunnen worden geretourneerd zijn opgenomen in de kolom “Uitkomst”. De overige informatie mag worden genegeerd.
AOF.UCe.VAL.100.v1 - Toetsing type content | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem ontvangt een verzoek en start de verwerking. Het systeem toetst of het gevraagde type content (Accept header) en het gehanteerde type content (Content-Type header) worden ondersteund. NB. wanneer het verzoek wordt ontvangen van een component van VZVZ, dan hoeft geen toets op type content te worden uitgevoerd. | Gevraagd type content niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
AOF.UCe.VAL.250.v1 - Toetsing van een intern RB-request | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
NB. wanneer het verzoek via een intern netwerk wordt ontvangen, en van een component van VZVZ, dan hoeft deze toets niet te worden uitgevoerd. Welke tokens van toepassing zijn is beschreven in de interface specificaties die horen bij deze use case. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response 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". NB. wanneer het verzoek via een intern netwerk wordt ontvangen, en van een component van VZVZ, dan hoeft deze toets niet te worden uitgevoerd. Welke tokens van toepassing zijn is beschreven in de interface specificaties die horen bij deze use case. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
1 | Indien
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 response 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. | ||
2 | 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 Er is bijvoorbeeld een probleem met het FQDN dat is opgenomen in de audience van het AORTA access_token. Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden. statuscode 500 Internal Server Error |
Het systeem 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. | ||
Interactie kon niet worden geïnitieerd Er is bijvoorbeeld een probleem met de scope van het AORTA access_token, waardoor het systeem een interactie niet kan opbouwen. Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden. statuscode 500 Internal Server Error | ||
Het systeem gaat verder met de volgende interactie of GBx-applicatie. | ||
3 | Voor elke ontvangen response worden de volgende stappen doorlopen:
Indien geen (tijdige) response wordt ontvangen, dan worden bovenstaand stappen niet doorlopen en genereert het systeem zelfstandig de vereiste foutresponse. | Malafide inhoud Het systeem logt de gebeurtenis, negeert de betreffende response en gaat verder met de volgende interactie of GBx-applicatie. |
Geen (tijdig) antwoord van GBx-applicatie statuscode 504 Gateway Timeout | ||
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
4 | 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. | |
5 | 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. | |
6 <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
Feature | |
---|---|
Type | Service |
Versie | 1.4.1 |
Systeemrolcode | - |
Groep | Broker |
Gepubliceerd |
|
Delta | De base-URL van de Transformatie Server dient te worden verkregen uit het AORTA Stelseltoken. |
Use case |
Feature | Versie | Dependency | Aanbieder | Afnemer |
---|---|---|---|---|
1.4.1 | >=* | >=* | ||
1.4.1 | AORTA-ID HTTP Header | >=1.0.0 | >=1.0.0 | |
1.4.1 | Authorization HTTP Header | >=1.0.0 | >=1.0.0 | |
1.4.1 | >=* | - | ||
1.4.1 | >=* | - | ||
1.4.1 | >=1.0.0 | - |
Via een get-aorta-data request kunnen gegevens worden opgehaald bij GBZ-applicaties die zijn aangesloten op het AORTA netwerk.
Het technische formaat van een protocol-agnostisch get-aorta-data request is:
POST [base endpointadres]/get-aorta-data/v1
Authorization: Bearer <AORTA access_token>
Content-Type: application/json; charset=utf-8
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>
{
"protocol": "",
"context": "",
"destination": "",
"effective-time": ["",""],
"therapy-identifier": "",
"classifier": "",
"instance-identifier": ""
}
Bij het verzenden van een protocol-agnostisch get-aorta-data request dienen de volgende HTTP headers te worden meegezonden:
Feature | Authorization HTTP Header |
---|---|
Type | Subfeature |
Versie | 1.0.0 |
Systeemrolcode | - |
Groep | HTTP Headers |
Gepubliceerd |
|
Delta | Initiële versie van feature. |
Authorization: Bearer <AORTA access_token>
Een AORTA access_token is altijd een JSON Web Token (JWT).
Een JWT bestaat uit een aantal base64 strings, die aan elkaar zijn gekoppeld met punten. Indien een token een SAML Assertion zou zijn, dan dient het altijd base64url te worden gecodeerd conform RFC 4648. Omdat een base64url geëncodeerde SAMLv2 Assertion geen punten kan bevatten, is de ontvanger altijd in staat om het type token bepalen.
In het token, dat wordt ontvangen in een Authorization header, is informatie opgenomen over welke type inhoudelijk token het betreft en welke versie, dus bijvoorbeeld dat het gaat om een AORTA access_token.
Content-Type: application/json; charset=utf-8
Feature | AORTA-ID HTTP Header |
---|---|
Type | Subfeature |
Versie | 1.0.0 |
Systeemrolcode | - |
Groep | HTTP Headers |
Gepubliceerd |
|
Delta | Initiële versie van feature. |
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>
Het initialRequestID attribuut bevat het ID van het allereerste request in de hele keten en dient te worden opgenomen in de logbestanden van alle partijen in de keten, zodat bij foutopsporing de verschillende logbestanden aan elkaar kunnen worden gerelateerd.
Het requestID is voor iedere request message uniek. In requests wordt deze gegenereerd door de client. Ook het requestID dient te worden opgenomen in de verschillende logbestanden, zodat altijd duidelijk is op welk bericht een log entry van toepassing is.
Input parameters:
Name | Cardinality | Type | Toelichting |
protocol | 1..1 | String | Het gevraagde protocol in de response. Mogelijke waarden:
|
context | 1..1 | String | AORTA contextcode waarbinnen de operation wordt uitgevoerd. Bijvoorbeeld:
|
destination | 0..1 | String | 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 | 0..1 | String array | De periode waarop een geregistreerd gegeven betrekking heeft (bijv. medisch of logistiek relevant is). Bijvoorbeeld:
|
therapy-identifier | 0..1 | String | Een business identifier van een specifieke behandeling. Bijvoorbeeld:
|
classifier | 0..1 | String | Typering van bijv. het soort medicatie, observaties, diagnoses of problemen. Bijvoorbeeld:
|
instance-identifier | 0..1 | String | Een business identifier van een specifieke bouwsteen instantie. Bijvoorbeeld:
|
Het technische formaat van een get-aorta-data response is:
200 OK
Content-Type: application/json; charset=utf-8
{
"format": "",
"result": ""
}
Bij het verzenden van een protocol-agnostische get-aorta-data response dienen de volgende HTTP headers te worden meegezonden:
Content-Type: application/json; charset=utf-8
Output parameters:
Name | Cardinality | Type | Toelichting |
format | 1..1 | Lege string of een string met waarde escape of base64. | Gehanteerde encodering voor |
result | 0..1 | String waarop de benodigde escaping is toegepast, of die base64 geëncodeerde data bevat. | Wanneer om een FHIR-result wordt gevraagd, dan zal result een FHIR Bundle bevatte van het type = searchset. Wanneer om een v3-response wordt gevraagd, dan zal result een batchAntwoord (MCCI_IN200101) bevatten, met daarin het resultaat van een verzameling bouwsteenspecifieke queries. Elke bouwsteenspecifieke query antwoord is dan als volledige interactie onder de batchwrapper opgenomen. |
HTTP statuscodes
HTTP statuscodes die kunnen worden geretourneerd zijn opgenomen in onderstaande tabel.
Omdat bepaalde Confluence macro’s nog niet worden ondersteund in de publicatie omgeving, bevat de tabel, in de publicatieomgeving, ook informatie over de wijze waarop de betreffende interface wordt geïmplementeerd in de server component. De statuscodes die kunnen worden geretourneerd zijn opgenomen in de kolom “Uitkomst”. De overige informatie mag worden genegeerd.
AOF.UCe.VAL.100.v1 - Toetsing type content | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem ontvangt een verzoek en start de verwerking. Het systeem toetst of het gevraagde type content (Accept header) en het gehanteerde type content (Content-Type header) worden ondersteund. NB. wanneer het verzoek wordt ontvangen van een component van VZVZ, dan hoeft geen toets op type content te worden uitgevoerd. | Gevraagd type content niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
AOF.UCe.VAL.250.v1 - Toetsing van een intern RB-request | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
NB. wanneer het verzoek via een intern netwerk wordt ontvangen, en van een component van VZVZ, dan hoeft deze toets niet te worden uitgevoerd. Welke tokens van toepassing zijn is beschreven in de interface specificaties die horen bij deze use case. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response 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". NB. wanneer het verzoek via een intern netwerk wordt ontvangen, en van een component van VZVZ, dan hoeft deze toets niet te worden uitgevoerd. Welke tokens van toepassing zijn is beschreven in de interface specificaties die horen bij deze use case. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
1 | Indien
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 response 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. | ||
2 | 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 Er is bijvoorbeeld een probleem met het FQDN dat is opgenomen in de audience van het AORTA access_token. Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden. statuscode 500 Internal Server Error |
Het systeem 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. | ||
Interactie kon niet worden geïnitieerd Er is bijvoorbeeld een probleem met de scope van het AORTA access_token, waardoor het systeem een interactie niet kan opbouwen. Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden. statuscode 500 Internal Server Error | ||
Het systeem gaat verder met de volgende interactie of GBx-applicatie. | ||
3 | Voor elke ontvangen response worden de volgende stappen doorlopen:
Indien geen (tijdige) response wordt ontvangen, dan worden bovenstaand stappen niet doorlopen en genereert het systeem zelfstandig de vereiste foutresponse. | Malafide inhoud Het systeem logt de gebeurtenis, negeert de betreffende response en gaat verder met de volgende interactie of GBx-applicatie. |
Geen (tijdig) antwoord van GBx-applicatie statuscode 504 Gateway Timeout | ||
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
4 | 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. | |
5 | 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. | |
6 <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 |
AOF.UCe.VAL.100.v1 - Toetsing type content | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem ontvangt een verzoek en start de verwerking. Het systeem toetst of het gevraagde type content (Accept header) en het gehanteerde type content (Content-Type header) worden ondersteund. NB. wanneer het verzoek wordt ontvangen van een component van VZVZ, dan hoeft geen toets op type content te worden uitgevoerd. | Gevraagd type content niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
1 | Het systeem controleert de geldigheid van het AORTA access_token, zoals omschreven in de toelichting Controle en gebruik van het access_token. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
2 | Het systeem toetst of het verzoek voldoet aan de interface specificatie. | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
3 | Indien het request een pull-interactie betreft: Het systeem verifieert of de gevraagde gegevens mogen worden opgeleverd, zoals omschreven in de "Toelichting beschikbaarstelling". Het systeem verwerkt de interactie conform de implementatiehandleiding, zoals benoemd in de sectie Informatiestandaard specifieke verwerking van requests. Het systeem zorgt ervoor dat bij eventueel op te leveren Patient resource instances de identifier is gevuld met het BSN van de betroffen persoon, zoals beschreven in de “Toelichting vulling BSN bij opleveren van gegevens”. Indien het request een verzoek om (een) PDF/A document(en) betreft: Het systeem zorgt ervoor dat slechts (referenties naar) documenten worden geretourneerd die behoren tot de set van ondersteunde mimetypes. Het systeem zorgt ervoor dat wordt voldaan aan de “Toelichting vulling content.attachment.url". | Gevraagde gegevens mogen niet worden opgeleverd statuscode 403 Forbidden
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
4 | Indien het request een push-interactie betreft: Het systeem verifieert of de interactie mag worden verwerkt. Het systeem verwerkt de interactie conform de implementatiehandleiding, zoals benoemd in de sectie Informatiestandaard specifieke verwerking van requests. Het systeem verwerkt bij eventueel ontvangen Patient resource instances ook de identifier die is gevuld met het BSN van de betroffen persoon, zoals beschreven in de “Toelichting vulling BSN bij ontvangen van gegevens”. | Onjuiste autorisatie statuscode 403 Forbidden
|
5 <exit> | Het systeem retourneert een response naar de primaire actor. | Verwerking succesvol statuscode 200 OK
Voor bovenstaande criteria geldt dat ze
|
Verwerking succesvol - resource instance gecreëerd statuscode 201 Created |
push-aorta-data
Feature | |
---|---|
Type | Service |
Versie | 1.2.1 |
Systeemrolcode | - |
Groep | Broker |
Gepubliceerd |
|
Delta | De base-URL van de Transformatie Server dient te worden verkregen uit het AORTA Stelseltoken. |
Use case |
Feature | Versie | Dependency | Aanbieder | Afnemer |
---|---|---|---|---|
1.2.1 | >=* | >=* | ||
1.2.1 | AORTA-ID HTTP Header | >=1.0.0 | >=1.0.0 | |
1.2.1 | Authorization HTTP Header | >=1.0.0 | >=1.0.0 | |
1.2.1 | >=* | - | ||
1.2.1 | >=* | - | ||
1.2.1 | >=1.0.0 | - |
Via een push-aorta-data request kunnen gegevens worden verzonden naar GBZ-applicaties die zijn aangesloten op het AORTA netwerk.
Het technische formaat van een protocol-agnostisch push-aorta-data request is:
POST [base endpointadres]/push-aorta-data/v1
Authorization: Bearer <AORTA access_token>
Content-Type: application/json; charset=utf-8
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>
{
"protocol":"",
"context":""
"destination":"",
"format": "",
"data": ""
}
Bij het verzenden van een protocol-agnostisch push-aorta-data request dienen de volgende HTTP headers te worden meegezonden:
Feature | Authorization HTTP Header |
---|---|
Type | Subfeature |
Versie | 1.0.0 |
Systeemrolcode | - |
Groep | HTTP Headers |
Gepubliceerd |
|
Delta | Initiële versie van feature. |
Authorization: Bearer <AORTA access_token>
Een AORTA access_token is altijd een JSON Web Token (JWT).
Een JWT bestaat uit een aantal base64 strings, die aan elkaar zijn gekoppeld met punten. Indien een token een SAML Assertion zou zijn, dan dient het altijd base64url te worden gecodeerd conform RFC 4648. Omdat een base64url geëncodeerde SAMLv2 Assertion geen punten kan bevatten, is de ontvanger altijd in staat om het type token bepalen.
In het token, dat wordt ontvangen in een Authorization header, is informatie opgenomen over welke type inhoudelijk token het betreft en welke versie, dus bijvoorbeeld dat het gaat om een AORTA access_token.
Content-Type: application/json; charset=utf-8
Feature | AORTA-ID HTTP Header |
---|---|
Type | Subfeature |
Versie | 1.0.0 |
Systeemrolcode | - |
Groep | HTTP Headers |
Gepubliceerd |
|
Delta | Initiële versie van feature. |
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>
Het initialRequestID attribuut bevat het ID van het allereerste request in de hele keten en dient te worden opgenomen in de logbestanden van alle partijen in de keten, zodat bij foutopsporing de verschillende logbestanden aan elkaar kunnen worden gerelateerd.
Het requestID is voor iedere request message uniek. In requests wordt deze gegenereerd door de client. Ook het requestID dient te worden opgenomen in de verschillende logbestanden, zodat altijd duidelijk is op welk bericht een log entry van toepassing is.
Input parameters:
Name | Cardinality | Type | Toelichting |
protocol | 1..1 | String | Het gehanteerde protocol. Mogelijke waarden:
|
context | 1..1 | String | Code van de context waarbinnen de operation wordt uitgevoerd. Bijvoorbeeld:
|
destination | 1..1 | String | URA van de zorgaanbieder, of het applicatieID van de Resource Server (GBZ-applicatie) waarnaar de gegevens verzonden moeten worden. Formaat:
NB. vooralsnog dient destination gevuld te zijn met een applicatieID. |
format | 1..1 | Lege string of een string met waarde escape of base64. | Gehanteerde encodering voor |
data | 1..1 | String waarop de benodigde escaping is toegepast, of die base64 geëncodeerde data bevat. | De inhoud van de push interactie (v3-request of FHIR-request). |
Het technische formaat van een push-aorta-data response is:
<HTTP statuscode returned by destination>
Content-Type: application/json; charset=utf-8
<any other HTTP headers returned by destination>
{
"format": "",
"result": ""
}
Bij het verzenden van een protocol-agnostische push-aorta-data response dienen de volgende HTTP headers te worden meegezonden:
Content-Type: application/json; charset=utf-8
Output parameters:
Name | Cardinality | Type | Toelichting |
format | 1..1 | Lege string of een string met waarde escape of base64. | Gehanteerde encodering voor |
result | 0..1 | String waarop de benodigde escaping is toegepast, of die base64 geëncodeerde data bevat. | Afhankelijk van de waarde van protocol in het push-aorta-data request betreft het een v3-response of een FHIR-response. |
HTTP statuscodes
HTTP statuscodes die kunnen worden geretourneerd zijn opgenomen in onderstaande tabel.
Omdat bepaalde Confluence macro’s nog niet worden ondersteund in de publicatie omgeving, bevat de tabel, in de publicatieomgeving, ook informatie over de wijze waarop de betreffende interface wordt geïmplementeerd in de server component. De statuscodes die kunnen worden geretourneerd zijn opgenomen in de kolom “Uitkomst”. De overige informatie mag worden genegeerd.
AOF.UCe.VAL.100.v1 - Toetsing type content | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem ontvangt een verzoek en start de verwerking. Het systeem toetst of het gevraagde type content (Accept header) en het gehanteerde type content (Content-Type header) worden ondersteund. NB. wanneer het verzoek wordt ontvangen van een component van VZVZ, dan hoeft geen toets op type content te worden uitgevoerd. | Gevraagd type content niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
AOF.UCe.VAL.250.v1 - Toetsing van een intern RB-request | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem controleert of alle vereiste tokens zijn toegevoegd aan het request | Ontbrekend token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
ii | Het systeem controleert de geldigheid van de meegezonden, van toepassing zijnde, tokens
NB. wanneer het verzoek via een intern netwerk wordt ontvangen, en van een component van VZVZ, dan hoeft deze toets niet te worden uitgevoerd. Welke tokens van toepassing zijn is beschreven in de interface specificaties die horen bij deze use case. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response 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". NB. wanneer het verzoek via een intern netwerk wordt ontvangen, en van een component van VZVZ, dan hoeft deze toets niet te worden uitgevoerd. Welke tokens van toepassing zijn is beschreven in de interface specificaties die horen bij deze use case. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
1 | Indien
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 response 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. | ||
2 | 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 Er is bijvoorbeeld een probleem met het FQDN dat is opgenomen in de audience van het AORTA access_token. Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden. statuscode 500 Internal Server Error |
Het systeem 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. | ||
Interactie kon niet worden geïnitieerd Er is bijvoorbeeld een probleem met de scope van het AORTA access_token, waardoor het systeem een interactie niet kan opbouwen. Het systeem voegt een OperationOutcome toe (issue.severity=”warning”, issue.code "processing") met daarin informatie over de reden. statuscode 500 Internal Server Error | ||
Het systeem gaat verder met de volgende interactie of GBx-applicatie. | ||
3 | Voor elke ontvangen response worden de volgende stappen doorlopen:
Indien geen (tijdige) response wordt ontvangen, dan worden bovenstaand stappen niet doorlopen en genereert het systeem zelfstandig de vereiste foutresponse. | Malafide inhoud Het systeem logt de gebeurtenis, negeert de betreffende response en gaat verder met de volgende interactie of GBx-applicatie. |
Geen (tijdig) antwoord van GBx-applicatie statuscode 504 Gateway Timeout | ||
Transformatie niet geslaagd statuscode 500 Internal Server Error | ||
Het systeem genereert de vereiste foutresponse en gaat verder met de volgende interactie of GBx-applicatie. | ||
4 | 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. | |
5 | 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. | |
6 <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 |
AOF.UCe.VAL.100.v1 - Toetsing type content | Uitkomst | |
---|---|---|
Stap | Omschrijving | |
i | Het systeem ontvangt een verzoek en start de verwerking. Het systeem toetst of het gevraagde type content (Accept header) en het gehanteerde type content (Content-Type header) worden ondersteund. NB. wanneer het verzoek wordt ontvangen van een component van VZVZ, dan hoeft geen toets op type content te worden uitgevoerd. | Gevraagd type content niet ondersteund statuscode 406 Not Acceptable |
Gehanteerd type content niet ondersteund statuscode 415 Unsupported Media Type | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. |
Stap | Omschrijving | Uitkomst |
---|---|---|
1 | Het systeem controleert de geldigheid van het AORTA access_token, zoals omschreven in de toelichting Controle en gebruik van het access_token. | Ongeldig token statuscode 401 Unauthorized
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
2 | Het systeem toetst of het verzoek voldoet aan de interface specificatie. | Ongeldig FHIR-verzoek statuscode 400 Bad Request
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
3 | Indien het request een pull-interactie betreft: Het systeem verifieert of de gevraagde gegevens mogen worden opgeleverd, zoals omschreven in de "Toelichting beschikbaarstelling". Het systeem verwerkt de interactie conform de implementatiehandleiding, zoals benoemd in de sectie Informatiestandaard specifieke verwerking van requests. Het systeem zorgt ervoor dat bij eventueel op te leveren Patient resource instances de identifier is gevuld met het BSN van de betroffen persoon, zoals beschreven in de “Toelichting vulling BSN bij opleveren van gegevens”. Indien het request een verzoek om (een) PDF/A document(en) betreft: Het systeem zorgt ervoor dat slechts (referenties naar) documenten worden geretourneerd die behoren tot de set van ondersteunde mimetypes. Het systeem zorgt ervoor dat wordt voldaan aan de “Toelichting vulling content.attachment.url". | Gevraagde gegevens mogen niet worden opgeleverd statuscode 403 Forbidden
|
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
4 | Indien het request een push-interactie betreft: Het systeem verifieert of de interactie mag worden verwerkt. Het systeem verwerkt de interactie conform de implementatiehandleiding, zoals benoemd in de sectie Informatiestandaard specifieke verwerking van requests. Het systeem verwerkt bij eventueel ontvangen Patient resource instances ook de identifier die is gevuld met het BSN van de betroffen persoon, zoals beschreven in de “Toelichting vulling BSN bij ontvangen van gegevens”. | Onjuiste autorisatie statuscode 403 Forbidden
|
5 <exit> | Het systeem retourneert een response naar de primaire actor. | Verwerking succesvol statuscode 200 OK
Voor bovenstaande criteria geldt dat ze
|
Verwerking succesvol - resource instance gecreëerd statuscode 201 Created |