Netherlands - Generic Functions for data exchange Implementation Guide
0.3.0 - ci-build Netherlands

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.3.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

## Resource Profile: NL Generic Functions Endpoint Profile

Official URL: http://nuts-foundation.github.io/nl-generic-functions-ig/StructureDefinition/nl-gf-endpoint | Version: 0.3.0
Draft as of 2026-01-28 | Computable Name: NlGfEndpoint

The technical details of an endpoint that can be used for electronic services, such as for web services providing access to FHIR resources.

Usages:

- Examples for this Profile: FHIR STU3 Endpoint, FHIR Endpoint 2, FHIR Endpoint 3, FHIR Endpoint 1... Show 14 more, FHIR STU3 Endpoint, FHIR R4 Endpoint, FHIR Endpoint 2, FHIR Endpoint 1, FHIR Endpoint 2, DICOM-WADO-RS Endpoint, FHIR STU3 Endpoint, FHIR R4 Endpoint, FHIR STU3 Endpoint, DICOM-WADO-RS Endpoint, FHIR Endpoint 1, FHIR Endpoint 1, FHIR Endpoint 2 and FHIR Endpoint 3
- CapabilityStatements using this Profile: Administration Directory for Administration Client, Administration Directory for Update Client, Query Directory for Query Client for only Read operations and Query Directory for Query Client

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint | The technical details of an endpoint that can be used for electronic services
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible)
managingOrganization | Σ | 1..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
payloadType | Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: NL GF Data exchange capabilities (extensible)
address | Σ | 1..1 | url | The technical base address for connecting to this endpoint
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std.
Endpoint.payloadType | Base | extensible | NL GF Data exchange capabilities | 📦0.3.0 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

This structure is derived from Endpoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint | The technical details of an endpoint that can be used for electronic services
implicitRules |  | 0..0 |  | A set of rules under which this content was created
modifierExtension |  | 0..0 |  | Extension
managingOrganization |  | 1..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
payloadType |  | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: NL GF Data exchange capabilities (extensible)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Endpoint.payloadType | Base | extensible | NL GF Data exchange capabilities | 📦0.3.0 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint | The technical details of an endpoint that can be used for electronic services
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
identifier | Σ | 0..* | Identifier | Identifies this endpoint across multiple systems
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible)
name | Σ | 0..1 | string | A name that this endpoint can be identified by
managingOrganization | Σ | 1..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
contact |  | 0..* | ContactPoint | Contact details for source (e.g. troubleshooting)
period | Σ | 0..1 | Period | Interval the endpoint is expected to be operational
payloadType | Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: NL GF Data exchange capabilities (extensible)
payloadMimeType | Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
address | Σ | 1..1 | url | The technical base address for connecting to this endpoint
header |  | 0..* | string | Usage depends on the channel type
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Endpoint.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std.
Endpoint.payloadType | Base | extensible | NL GF Data exchange capabilities | 📦0.3.0 | This IG
Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Endpoint

Summary

Mandatory: 1 element
Prohibited: 2 elements

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint | The technical details of an endpoint that can be used for electronic services
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible)
managingOrganization | Σ | 1..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
payloadType | Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: NL GF Data exchange capabilities (extensible)
address | Σ | 1..1 | url | The technical base address for connecting to this endpoint
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std.
Endpoint.payloadType | Base | extensible | NL GF Data exchange capabilities | 📦0.3.0 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

Differential View

This structure is derived from Endpoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint | The technical details of an endpoint that can be used for electronic services
implicitRules |  | 0..0 |  | A set of rules under which this content was created
modifierExtension |  | 0..0 |  | Extension
managingOrganization |  | 1..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
payloadType |  | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: NL GF Data exchange capabilities (extensible)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Endpoint.payloadType | Base | extensible | NL GF Data exchange capabilities | 📦0.3.0 | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint | The technical details of an endpoint that can be used for electronic services
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
identifier | Σ | 0..* | Identifier | Identifies this endpoint across multiple systems
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible)
name | Σ | 0..1 | string | A name that this endpoint can be identified by
managingOrganization | Σ | 1..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
contact |  | 0..* | ContactPoint | Contact details for source (e.g. troubleshooting)
period | Σ | 0..1 | Period | Interval the endpoint is expected to be operational
payloadType | Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: NL GF Data exchange capabilities (extensible)
payloadMimeType | Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
address | Σ | 1..1 | url | The technical base address for connecting to this endpoint
header |  | 0..* | string | Usage depends on the channel type
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Endpoint.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std.
Endpoint.payloadType | Base | extensible | NL GF Data exchange capabilities | 📦0.3.0 | This IG
Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Endpoint

Summary

Mandatory: 1 element
Prohibited: 2 elements

Other representations of profile: CSV, Excel, Schematron