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
For implementing NVI (Network of Involved Care Providers - see detailed description), we have chosen to use a simple JSON-based REST API instead of FHIR resources. This decision was made to simplify the implementation and reduce complexity while still meeting the core requirements of tracking which organizations have data about a patient in specific care contexts.
The NVI API is defined using OpenAPI 3.0.2 specification (you may render this using swagger.editor.html). The API provides a straightforward interface for managing the network of involved care providers using standard REST operations.
The API manages resources that represent the relationship between:
The API supports the following care contexts (zorgContext), each represented by a SNOMED CT code:
http://snomed.info/sct|721912009
- Medication summary sectionhttp://snomed.info/sct|371530004
- Imaging reporthttp://snomed.info/sct|77465005
- Patient summary documenthttp://snomed.info/sct|721963009
- Immunization summary documenthttp://snomed.info/sct|782671000000103
- Multidisciplinary care managementThe API supports the following organization types (OrganisatieType):
2.16.840.1.113883.2.4.15.1060|H1
- Huisartsinstelling (General Practitioner)2.16.840.1.113883.2.4.15.1060|V4
- Ziekenhuis (Hospital)2.16.840.1.113883.2.4.15.1060|A1
- Apotheekinstelling (Pharmacy)2.16.840.1.113883.2.4.15.1060|X3
- Verplegings- of verzorgingsinstelling (Nursing/Care Institution)2.16.840.1.113883.2.4.15.1060|L1
- Laboratorium (Laboratory)2.16.840.1.113883.2.4.15.1060|G5
- Geestelijke Gezondheidszorg (Mental Health Care)2.16.840.1.113883.5.1008|OTH
- Overige (Other)Registers a new care provider relationship in the NVI network.
Request Body:
{
"pseudoBsn": "string",
"zorgContext": "SNOMED_CT_CODE",
"ura": "string",
"organizationType": "ORGANIZATION_TYPE_CODE"
}
Removes a care provider relationship from the NVI network.
Query Parameters:
pseudoBsn
(required): The pseudonymized patient identifierzorgContext
(required): The care context SNOMED CT codeura
(required): The organization identifierorganizationType
(required): The organization type codeReturns HTTP 204 (No Content) on successful deletion.
Queries the NVI network to find which organizations have data for a patient in a specific care context.
Query Parameters:
pseudoBsn
(required): The pseudonymized patient identifierzorgContext
(required): The care context SNOMED CT codeorganizationType
(required): The organization type codeResponse:
{
"datalocations": [
{
"created": "2024-01-01T10:00:00Z",
"pseudoBsn": "string",
"zorgContext": "SNOMED_CT_CODE",
"ura": "string",
"organizationType": "ORGANIZATION_TYPE_CODE"
}
]
}
Returns HTTP 200 (OK) with an array of matching data locations.
The initial implementation uses plain BSN (Burgerservicenummer) for simplicity. In a later stage, this will be replaced with pseudoBsn to enhance patient privacy. The pseudonymization layer will ensure that patient identities are protected while still allowing organizations to coordinate care.
Authentication and authorization is described in the GF Authorization. The requirements for the NVI API are:
While this API uses a simple JSON format rather than FHIR, it can still integrate with FHIR-based systems through appropriate adapters or transformation layers. Organizations using FHIR internally can map between their FHIR resources and the NVI API as needed.
Potential future enhancements to the API include:
Scenario: Dr. Smith, a cardiologist at Hospital A, is treating a patient who was recently referred from another hospital. She needs to know what imaging data (X-rays, CT scans, MRIs) might be available from other healthcare providers to avoid unnecessary duplicate examinations and to get a complete picture of the patient's medical history.
Process:
id_token
from the DEZI authentication. A GET is send request to find all organizations that have imaging data for this patient:
GET /api?pseudoBsn=<patient-id>&zorgContext=http://snomed.info/sct|371530004
Where:
pseudoBsn
: The patient's pseudonymized BSNzorgContext
: SNOMED code for "Imaging report" (371530004){
"datalocations": [
{
"created": "2024-01-15T14:30:00Z",
"pseudoBsn": "<patient-id>",
"zorgContext": "http://snomed.info/sct|371530004",
"ura": "URA-HOSPITAL-B",
"organizationType": "2.16.840.1.113883.2.4.15.1060|V4"
},
{
"created": "2024-02-20T09:15:00Z",
"pseudoBsn": "<patient-id>",
"zorgContext": "http://snomed.info/sct|371530004",
"ura": "URA-HOSPITAL-C",
"organizationType": "2.16.840.1.113883.2.4.15.1060|V4"
}
]
}
Benefits: