Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 144 additions & 4 deletions anw/TD-ANWv2024.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@
* [ANW-Regisseur](#anw-regisseur)
* [ANW-Bronhouder](#anw-bronhouder)
* [ANW-Zorgverlener](#anw-zorgverlener)
* [Uitbreidingen](#uitbreidingen)
* [Registeren van metingen](#registeren-van-metingen)
* [Foutafhandeling van registraties naar het brondossier](#foutafhandeling-van-registraties-naar-het-brondossier)
* [TODO](#todo)
<!-- TOC -->

Expand Down Expand Up @@ -62,8 +65,9 @@
### NUTS-adresboek

De regisseur heeft toegang tot het NUTS-adresboek, hierin kunnen de leveranciers voor elke organisatie die onderdeel uit
maken het ANW-netwerk aanduiden dat de betreffende organisatie de service “ANW-Zorgverlener”
en “ANW-Bronhouder” aanbiedt. De regisseur is zelf ook te vinden in het adresboek voor de bronhouder en zorgverlener om toegang
maken het ANW-netwerk aanduiden dat de betreffende organisatie de service “ANW-Zorgverlener”
en “ANW-Bronhouder” aanbiedt. De regisseur is zelf ook te vinden in het adresboek voor de bronhouder en zorgverlener om
toegang
te geven tot deze regisseur met als service “ANW-Regisseur”.

### Regisseur vraagt de cliënt / medewerker gegevens op in alle ECD’s
Expand Down Expand Up @@ -91,7 +95,7 @@ Op basis van het ontvangen access token kan de zorgaanbieder bepalen tot welke e
zijn voor deze usecase de volgende twee: [Endpoints voor data regisseur](#endpoints-voor-data-regisseur)

Als query wordt de query “ANW-zorg” meegegeven. Hiermee kan de zorgaanbieder bepalen welke
cliënten/medewerkers teruggestuurd moeten worden.
cliënten/medewerkers teruggestuurd moeten worden.

Elke leverancier maakt het mogelijk voor organisaties om cliënten als "ANW" cliënt te kenmerken in hun ECD. Afspraak
is dat alleen “In zorg” zijnde cliënten teruggegeven worden voor de ANW-usecase en ook alleen “In dienst (actief
Expand Down Expand Up @@ -692,6 +696,7 @@ Hier staan de verschillende nutsservices die de verschillende partijen moeten re
ze beschikbaar moeten stellen.

### ANW-Regisseur

- Service: **ANW-Regisseur**

| Endpoint | Beschrijving |
Expand All @@ -700,6 +705,7 @@ ze beschikbaar moeten stellen.
| oauth | Volledige URL van de n2n/auth/v1/accesstoken van de nutsnode van de regisseur |

### ANW-Bronhouder

- Service: **ANW-Bronhouder**

| Endpoint | Beschrijving |
Expand All @@ -709,6 +715,7 @@ ze beschikbaar moeten stellen.
| notification | Endpoint waar de notificatie naar toe gestuurd kan worden voor het verzoek om een autorisatie aan te maken voor een “ANW-Zorgverlener” |

### ANW-Zorgverlener

- Service: **ANW-Zorgverlener**

| Endpoint | Beschrijving |
Expand All @@ -717,11 +724,144 @@ ze beschikbaar moeten stellen.
| oauth | Volledige URL van de n2n/auth/v1/accesstoken van de nutsnode van de inzage applicatie |
| notification | Endpoint waar de notificatie naar toe gestuurd kan worden om mee te delen dat er een authorisatie door een “ANW-Bronhouder” is aangemaakt |

# Uitbreidingen

## Registeren van metingen

Eerste uitbreiding op ANW is het registreren van metingen richting het brondossier. Om te registreren is geen
uitbreiding nodig op de bestaande authorization credentials. Vanwege de tekstrapportage is de POST voor observation
toegestaan. Het is aan de
leverancier welke registraties beschikbaar zijn richting het brondossier voor de zorgverlener. Het brondossier
**accepteert te allen tijde** een valide meting volgens de onderstaande Nictiz-profielen. Hoe het brondossier dit
vervolgens
verder verwerkt is aan de leverancier. De registratie zijn losse create requests per meting. Dit gebeurt in dezelfde
stap als het registreren van de tekstrapportage.

| ZIB | Fhir-profiel |
|:--------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Polsfrequentie | [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954945](https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954945) |
| Lichaamstemperatuur | [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954748](https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954748) |
| Lichaamslengte | [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954746](https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954746) |
| Lichaamsgewicht | [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954750](https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954750) |
| Respiration | [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954947](https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954947) |
| Bloeddruk | [https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954945](https://simplifier.net/packages/nictiz.fhir.nl.stu3.zib2017/2.2.10/files/1954945) |

## Foutafhandeling van registraties naar het brondossier

In het geval van een fout bij de registratie antwoord het bronsysteem met een OperationOutcome.
Zie [Fout afhandeling/Handling Errors](https://informatiestandaarden.nictiz.nl/wiki/FHIR:V1.0_FHIR_IG_STU3#Handling_errors)
in de implementatiegids van Nictiz. De [operation outcome](https://hl7.org/fhir/STU3/operationoutcome.html) kan door een
systeem gebruikt worden om aan te geven richting de
zorgverlener wat er fout is gegaan. In het geval van inhoudelijke fouten die niet zijn toegestaan volgens de
Nictiz-profielen geeft de operationoutcome
aan welke fout dit betreft. Zodat de zorgverlener de nodige aanpassing kan doen.

## Relatieve naar volledige URL's
Op het moment worden er relatieve url's gebruikt in de Task van de Regisseur. Deze moeten worden omgezet naar volledige URL's. Hiermee moeten ook de brondossiers en inzage dossier compatible mee zijn.

## Woningtoegang
Voor woningtoegang wordt er gebruik gemaakt van de Location Resource. In de Location resource wordt in het description veld de sleutelcode gevuld als vrije veld met potentionele beschrijving erbij (TODO: bespreken sleutelcode apart in de resource vullen?). Het inzage dossier kan aan deze Location komen doormiddel van dat die in de input zit van de Task. Het is de verantwoordelijkheid van het Brondossier om bij de PUT van de Task die al gebeurd dan ook dit input mee te sturen. Daarnaast moet de bronhouder ook het verifiable credential updaten om ook hier de Location reference bij in te zetten die in de Task wordt gezet. Als voorbeeld hoe dan de PUT in de nieuwe versie eruit komt zien is:
```json
{
"resourceType": "Task",
"id": "af10c4c8-bc4d-40c7-a335-fb63fe7158d3",
"meta": {
"profile": [
"https://nuts.nl/fhir/StructureDefinition/nl-core-authorization-request"
]
},
"intent": "order",
"code": {
"coding": [
{
"code": "ANW-autorisatie-verzoek"
}
]
},
"for": {
"reference": "https://fhirserverbron.example.nl/Patient/{patientId}",
"display": "patient display name"
},
"authoredOn": "2024-01-23T13:23:42.1885689+00:00",
"requester": {
"agent": {
"identifier": {
"system": "http://nuts.nl",
"value": "{DID regiseur}"
},
"display": "Regiseur A"
},
"onBehalfOf": {
"identifier": {
"system": "http://nuts.nl",
"value": "{DID authorizing party}"
},
"display": "Authorizing party C (data owner)"
}
},
"owner": {
"identifier": {
"system": "http://nuts.nl",
"value": "{DID accessing party}"
},
"display": "Accessing party B (data accessor)"
},
"reason": {
"text": "{optional user input of the regisseur}"
},
"restriction": {
"period": {
"start": "2024-01-23T14:23:42.2264869+01:00",
"end": "2024-01-26T13:23:42.2295674+00:00"
},
"recipient": [
{
"reference": "https://fhirserverinzagedossier.example.nl/Practitioner/{practitioner with access Id}",
"display": "anw practitioner display name"
}
]
},
"output": [
{
"type": {
"coding": [
{
"system": "http://nuts.nl",
"code": "vc-id"
}
]
},
"valueString": "did:nuts:EwVMYK2ugaMvRHUbGFBhuyF423JuNQbtpes35eHhkQic#b53bda82-712a-4d20-b673-e67efaf60acc"
}
],
"input": [
{
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/task-input-type",
"code": "location",
"display": "Location"
}
]
},
"valueReference": {
"reference": "https://fhirserverbron.example.nl/Location/{locationId}"
}
}
]
}
```

## Versionering
Voor de bovenstaande doorontwikkelingen wordt als versionering tijdelijk gebruik gemaakt naar een link in het compatibility statement (op te halen op het /metadata endpoint) met daarin een instantiates waarbij een van de waarden deze moet bevatten:
"https://github.com/nuts-foundation/bolts/blob/master/anw/TD-ANWv2024.1.md|1.1". De uiteindelijke versie beheer gaat ook werken met het vullen van de instantiates met een link naar een implementation guide voor elke specifieke rol een URI (bronhouder, inzagedossier, reggiseur). In de doorontwikkeling wordt ook het metadata endpoint verwacht dat die publiekelijk toegankelijk is. Wanneer /metadata niet resolvable is of bevat niet de bovenstaande URI dan draait er een "1.0" versie waarbij de bovenstaande doorontwikkelingen nog niet zijn geimplementeerd.

### TODO

* `userContext` voor het opvragen van de lijst van Patient/Practitioner voor ANW-zorg moet duidelijk gemaakt worden:
`true` of `false`? Mogelijk moet dit om data protection redenen op `true` (immers grote lijst van namen). Voordat dit
duidelijk werd is bij een eerder technisch overleg overeengekomen voorlopig te gaan voor `false`, om (pre-)caching
makkelijker te maken. Bij moment van schrijven op 24 juli 2024 worden de VCs bij alle partijen nog aangemaakt voor
`false`, en vanuit Nedap worden de requests alvast altijd uitgevoerd met een aanwezige user context (in andere
woorden, Nuts-elevatie is verplicht alvorens het regisseursscherm geopend kan worden) en gecached per user.
woorden, Nuts-elevatie is verplicht alvorens het regisseursscherm geopend kan worden) en gecached per user.