Netherlands - Generic Functions for data exchange Implementation Guide
0.2.0 - ci-build
Netherlands - Generic Functions for data exchange Implementation Guide, published by Stichting Nuts. This guide is not an authorized publication; it is the continuous build for version 0.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/nuts-foundation/nl-generic-functions-ig/ and changes regularly. See the Directory of published versions
The Care Services expose an Administration Directory as a FHIR service, as described in:
This Administration Directory might be the internal FHIR service of the supplier. To prevent leakage of FHIR resources, the internal FHIR service requires protection. This is commonly realized through an AAA (Authentication, Authorization, and Accounting) proxy.
The proxy can be either:
To implement this protection mechanism, the NUTS software needs to provide two API requests:
This API is invoked before the request is executed to the internal FHIR service. It:
Example:
Organization
Organization?identifier=ura|24173480
This API is invoked before the request is executed to the internal FHIR service. It:
Example:
system/Organization.rs?identifier=ura|24173480
system/Location.rs?managingOrganization=Organization/24173480
system/Practitioner.rs?_has:PractitionerRole:practitioner:organization=Organization/24173480
system/PractitionerRole.rs?organization=Organization/24173480
system/HealthcareService.rs?_has:Location:location:managingOrganization=Organization/24173480
This API is invoked when the proxy is responding to the incoming request. It:
This two-phase approach ensures that:
The complete OpenAPI specification for these endpoints is available here: Care Services Proxy OpenAPI Specification
Request:
POST /authorization/search-narrowing
Content-Type: application/json
{
"use_case": "mCSD",
"query": "Organization?name=Example&_id=123",
"method": "GET",
"requester": {
"organization_identifier": "ura|24173480"
}
}
Response:
{
"allowed": true,
"narrowed_scope": "Organization?identifier=ura|24173480",
"original_scope": "Organization",
"applied_filters": [
{
"parameter": "identifier",
"value": "ura|24173480"
}
]
}
Request:
POST /authorization/scopes
Content-Type: application/json
{
"use_case": "mCSD",
"requester": {
"organization_identifier": "ura|24173480"
}
}
Response: ```json { "scopes": [ "system/Organization.rs?identifier=ura|24173480", "system/Location.rs?managingOrganization=Organization/24173480", "system/Practitioner.rs?_has:PractitionerRole:practitioner:organization=Organization/24173480", "system/PractitionerRole.rs?organization=Organization/24173480", "system/HealthcareService.rs?_has:Location:location:managingOrganization=Organization/24173480" ], "scope_details": [ { "scope": "system/Organization.rs?identifier=ura|24173480", "description": "Read and search access to Organization resources", "constraints": ["identifier=ura|24173480", "type=prov"] } ], "expiry": "2024-12-31T23:59:59Z" }