Interfaces Lokalisatie Server
Lokalisatie Interface
Deze interface is slechts bedoeld voor gebruik door VZVZ-componenten, en kan niet (rechtstreeks) worden gebruikt door GBx-applicaties.
Verkrijgen van informatie over bronnen
Feature | |
---|---|
Type | Service |
Versie | 1.0.3 |
Systeemrolcode | - |
Groep | Lokalisatie |
Gepubliceerd |
|
Delta | Toegevoegd dat uitgaande requests en ontvangen responses ook moeten worden gelogd in de componentenlog. |
Use case |
Feature | Versie | Dependency | Aanbieder | Afnemer |
---|---|---|---|---|
1.0.3 | - | >=* | ||
1.0.3 | AORTA-ID HTTP Header | >=1.0.0 | >=1.0.0 | |
1.0.3 | >=1.* | - |
Inhoud en formaat van een getSourceInfoRequest
Middels deze interactie kan worden bepaald welke GBZ-applicaties beschikken over bepaalde patiëntgegevens. Tevens wordt hierbij informatie geretourneerd over of de betreffende patiënt toestemming heeft gegeven aan de zorgaanbieder om de gegevens beschikbaar te stellen voor opvraag door derden.
Een getSourceInfoRequest wordt op de volgende wijze verzonden:
POST [base endpointadres]/getSourceInfo/v1
Bij het verzenden van een getSourceInfoRequest dienen de volgende HTTP headers te worden meegezonden:
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.
Content-Type: application/json; charset=utf-8
Het technische formaat van de HTTP body van een getSourceInfoRequest is:
{
"source": [
"",
""
],
"requester": {
"applicationId": "",
"subject": "",
"role": "",
"actor": ""
},
"patient": "",
"dataCategory": [
{
"code": "",
"codeSystem": ""
}
],
"purposeOfUse": ""
}
Input parameters:
Name | Cardinality | Type | Toelichting |
source | 0..n | String | Identificatie van de bron, waarvoor de toets moet worden uitgevoerd. Toegestane vullingen (indien aanwezig):
Formaat van een URA:
Formaat van een applicatie-id:
|
requester | 1..1 | Object met attributen | |
requester.applicationId | 1..1 | String | ID van de GBx-applicatie van waaruit de opvrager acteert. Toegestane vullingen:
Formaat van een applicatie-id:
|
requester.subject | 1..1 | ID van de verantwoordelijke persoon. Toegestane vullingen:
Formaat van een UZI-nummer:
| |
requester.role | 1..1 | Rolcode van de verantwoordelijke persoon. Toegestane vullingen:
Formaat van een UZI-rolcode:
| |
requester.actor | 0..1 | ID van de acterende persoon. Verplicht aanwezig, indien de acterende persoon iemand anders is dan de verantwoordelijke persoon. Toegestane vullingen:
Formaat van een UZI-nummer:
| |
patient | 1..1 | String | Het ID van de patiënt, d.w.z. de persoon waarop de gegevens, die worden uitgewisseld, betrekking hebben. Formaat (één van de volgende):
|
dataCategory | 1..n | String | Gegevenssoort of bouwsteentype. |
dataCategory.codeSystem | 1..1 | String | Mogelijke waarden:
|
dataCategory.code | 1..1 | String | Mogelijke waarden:
|
purposeOfUse | 1..1 | String | Een aanduiding van de situatie waarin de (beoogde) interactie plaatsvindt, "normaal" of "nood". |
Inhoud en formaat van een getSourceInfoResponse
Bij het verzenden van een getSourceInfoResponse dienen de volgende HTTP headers te worden meegezonden:
Content-Type: application/json; charset=utf-8
Het technische formaat van de HTTP body van een getSourceInfoResponse is:
{
"source-info": [
{
"applicationId": "",
"dataCategory": [
{
"code": "",
"codeSystem": "",
"consent": ""
}
]
}
]
}
Output parameters, nul of meerdere sourceInfo objecten. Inhoud van een sourceInfo object:
Name | Cardinality | Type | Toelichting |
applicationId | 1..1 | string | Het app-id van de GBx-applicatie die over de gevraagde gegevens beschikt. Het betreft het app-id zonder aanduiding van een namingsystem of root OID. |
dataCategory | 0..n | String | Gegevenssoort of bouwsteentype. |
dataCategory.codeSystem | 1..1 | String | Mogelijke waarden:
|
dataCategory.code | 1..1 | String | Mogelijke waarden:
|
dataCategory.consent | 1..1 | String | De waarde van de toestemming van de patiënt. Mogelijke waarden:
|
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.
Stap | Omschrijving | Uitkomst |
---|---|---|
1 | Het systeem ontvangt een verzoek en start de verwerking. | 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. | ||
2 | Het systeem toetst of het verzoek voldoet aan de interface specificatie. | Ongeldig verzoek statuscode 400 Bad Request |
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
3 | Ontvangen request bevat ID('s) van te bevragen source(s):
Het verkregen antwoord van Mitz geldt voor alle GBZ-applicaties van de aangeduide zorgaanbieder, die voor patiënt toestemming zijn gemigreerd naar Mitz. Voor eventueel niet-gemigreerde GBZ-applicaties (van de aangeduide zorgaanbieder) kan de toestemming niet worden vastgesteld (consent=”Unknown”). Het systeem bepaalt de juiste waarde van de consent voor elk van de gevraagde dataCategories. | Mitz migratie status kan niet worden vastgesteld statuscode 500 |
Status van toestemming in Mitz kan niet worden vastgesteld statuscode 500 | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
4 | Ontvangen request bevat géén ID('s) van te bevragen source(s):
Het systeem voegt de verkregen informatie samen. Voor appID’s die zijn verkregen van Mitz krijgt consent de waarde “Permit”. Voor appID’s die zijn verkregen uit de VWI, en die niet zijn gemigreerd naar Mitz, krijgt consent de waarde “Unknown”. Het systeem bepaalt de juiste waarde van de consent voor elk van de gevraagde dataCategories. | VWI-bronnen kunnen niet worden bepaald statuscode 500 |
Mitz migratie status kan niet worden vastgesteld statuscode 500 | ||
Mitz-bronnen kunnen niet worden bepaald statuscode 500 | ||
Toets bij Actualiteitsregister kon niet worden uitgevoerd Het systeem logt deze gebeurtenis, en gaat verder met de verwerking. | ||
Het systeem genereert de vereiste response en gaat verder met de exit stap van de main flow. | ||
5 | De GBx-applicatie van de requester (geïdentificeerd door requester.applicationId) wordt, indien aanwezig, uit de verkregen informatie weggehaald. | |
6 <exit> | Het systeem retourneert een response naar de primaire actor. | Verwerking succesvol statuscode 200 OK |
Aanvullende eisen
AOF-I.GEN.110.v1 - Gebruik van veilig intern netwerk
De interface wordt aangeboden op een beveiligd besloten netwerk dat ter beschikking staat voor communicatie tussen componenten onderling, en tussen componenten en de ZIM.
AOF-I.GEN.150.v1 - Gebruik van HTTP
HTTP-requests en -responses op deze interface worden verzonden conform HTTP versie 1.1.
Alle HTTP-verkeer wordt verzonden binnen een TLS verbinding.
AOF-I.GEN.200.v1 - TLS verbindingen
TLS clients en TLS servers dienen tenminste TLS versie 1.2 te ondersteunen en mogen hierbij slechts gebruik maken van algoritmeselecties uit de categorie "Goed", zoals genoemd in bijlage C van de ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS).
Bij het opzetten van een verbinding dient gebruik te worden gemaakt van de sterkste algoritmeselectie die door beide partijen wordt ondersteund. TLS clients en TLS servers maken bij voorkeur echter gebruik van een hogere TLS versie dan 1.2.
Binnen TLS verbindingen dienen tijdelijke sleutels te worden toegepast, die elke 5 minuten worden ververst door middel van TLS Secure Renegotiation.
TLS verbindingen worden opgezet middels PKIo servercertificaten of, voor zorgaanbieders, m.b.v. UZI-servercertificaten.
AOF-I.GEN.250.v1 - Systeem Authenticatie (mTLS)
Indien uitwisseling plaatsvindt binnen TLS verbindingen, dan dient op deze interface gebruik te worden gemaakt van tweezijdige authenticatie (mutual TLS, mTLS), waarbij de TLS client en de TLS server zich wederzijds authenticeren.
AOF-I.GEN.450.v1 - Verkrijgen base-URL van component
Deze interface wordt geboden door een component die is opgenomen in het AORTA Stelseltoken. In de specificaties is aangegeven welke component het betreft.
Wanneer deze interface wordt gebruikt via HTTP, dan mag deze slechts worden gericht aan de base-URL van een server/component die deze rol blijkens het AORTA Stelseltoken vervuld.
Het geldende AORTA Stelseltoken dient periodiek te worden opgehaald via de AORTA Stelsel Metadata Interface. De aangeven caching directives dienen hierbij te worden gevolgd.