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

Netherlands - Generic Functions for data exchange Implementation Guide, published by Ministerie van Volksgezondheid, Welzijn en Sport. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/minvws/generiekefuncties-docs/ and changes regularly. See the Directory of published versions

## Resource Profile: NL Generic Functions Location Profile

Official URL: http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-location | Version: 0.1.0
Draft as of 2026-03-05 | Computable Name: NlGfLocation

Physical location details for healthcare services, organizations, and practitioners.

Usages:

- Refer to this Profile: Location for Task in STU3
- Examples for this Profile: Main Building, Verpleeghuis Weltevree, Main Building and Verpleeghuis Weltevree
- 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
--- | --- | --- | --- | ---
Location |  | 0..* | NlcoreHealthcareProvider | HealthcareProvider / OrganizationLocation This profile also complies with the profile mCSD Location
Slices for identifier | Σ | 1..* | Identifier | Unique code or number identifying the location to its users Slice: Unordered, Open by profile:$this
identifier:AssignedId | Σ | 1..1 | AuthorAssignedIdentifier | Unique code or number identifying the location to its users
status | ?!Σ | 1..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use.
name | Σ | 1..1 | string | LocationName
type | Σ | 1..* | CodeableConcept | Type of function performed Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
Slices for telecom |  | 0..* | ContactPoint | ContactInformation Slice: Unordered, Open by profile:$this
telecom:telephoneNumbers | C N | 0..* | NlcoreContactInformationTelephoneNumbers | TelephoneNumbers Constraints: cpt-2
telecom:emailAddresses | C N | 0..* | NlcoreContactInformationEmailAddresses | EmailAddresses Constraints: cpt-2
managingOrganization | Σ | 1..1 | Reference(NL Generic Functions Organization Profile) | Organization responsible for provisioning and upkeep
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Location.status | Base | required | LocationStatus | 📍4.0.1 | FHIR Std.
Location.type | Base | extensible | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.0

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | Location.telecom:telephoneNumbers, Location.telecom:emailAddresses | A system is required if a value is provided. | `value.empty() or system.exists()`
dom-2 | error | Location | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Location | 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 | Location | 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 | Location | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Location | 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 NlcoreHealthcareProvider

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Location |  | 0..* | NlcoreHealthcareProvider | HealthcareProvider / OrganizationLocation This profile also complies with the profile mCSD Location
implicitRules |  | 0..0 |  | A set of rules under which this content was created
modifierExtension |  | 0..0 |  | Extension
Slices for identifier |  | 1..* | Identifier | Unique code or number identifying the location to its users Slice: Unordered, Open by profile:$this
identifier:AssignedId |  | 1..1 | AuthorAssignedIdentifier | Unique code or number identifying the location to its users
status |  | 1..1 | code | active | suspended | inactive
name |  | 1..1 | string | LocationName
type |  | 1..* | CodeableConcept | Type of function performed
managingOrganization |  | 1..1 | Reference(NL Generic Functions Organization Profile) | Organization responsible for provisioning and upkeep
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Location |  | 0..* | NlcoreHealthcareProvider | HealthcareProvider / OrganizationLocation This profile also complies with the profile mCSD Location
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
Slices for identifier | Σ | 1..* | Identifier | Unique code or number identifying the location to its users Slice: Unordered, Open by profile:$this
identifier:AssignedId | Σ | 1..1 | AuthorAssignedIdentifier | Unique code or number identifying the location to its users
status | ?!Σ | 1..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use.
operationalStatus | Σ | 0..1 | Coding | The operational status of the location (typically only for a bed/room) Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).
name | Σ | 1..1 | string | LocationName
alias |  | 0..* | string | A list of alternate names that the location is known as, or was known as, in the past
description | Σ | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name
mode | Σ | 0..1 | code | instance | kind Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.
type | Σ | 1..* | CodeableConcept | Type of function performed Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
Slices for telecom |  | 0..* | ContactPoint | ContactInformation Slice: Unordered, Open by profile:$this
telecom:telephoneNumbers | C N | 0..* | NlcoreContactInformationTelephoneNumbers | TelephoneNumbers Constraints: cpt-2
telecom:emailAddresses | C N | 0..* | NlcoreContactInformationEmailAddresses | EmailAddresses Constraints: cpt-2
address |  | 0..1 | NlcoreAddressInformation | AddressInformation
physicalType | Σ | 0..1 | CodeableConcept | Physical form of the location Binding: LocationType (example): Physical form of the location.
position |  | 0..1 | BackboneElement | The absolute geographic location
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
longitude |  | 1..1 | decimal | Longitude with WGS84 datum
latitude |  | 1..1 | decimal | Latitude with WGS84 datum
altitude |  | 0..1 | decimal | Altitude with WGS84 datum
managingOrganization | Σ | 1..1 | Reference(NL Generic Functions Organization Profile) | Organization responsible for provisioning and upkeep
partOf |  | 0..1 | Reference(Location | nl core HealthcareProvider) | Another Location this one is physically a part of
hoursOfOperation |  | 0..* | BackboneElement | What days/times during a week is this location usually open
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
daysOfWeek |  | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
allDay |  | 0..1 | boolean | The Location is open all day
openingTime |  | 0..1 | time | Time that the Location opens
closingTime |  | 0..1 | time | Time that the Location closes
availabilityExceptions |  | 0..1 | string | Description of availability exceptions
endpoint |  | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the location
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Location.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Location.status | Base | required | LocationStatus | 📍4.0.1 | FHIR Std.
Location.operationalStatus | Base | preferred | hl7VS-bedStatus | 📦2.0.0 | THO v7.0
Location.mode | Base | required | LocationMode | 📍4.0.1 | FHIR Std.
Location.type | Base | extensible | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.0
Location.physicalType | Base | example | Location type | 📦4.0.1 | FHIR Std.
Location.hoursOfOperation.​daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | Location.telecom:telephoneNumbers, Location.telecom:emailAddresses | A system is required if a value is provided. | `value.empty() or system.exists()`
dom-2 | error | Location | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Location | 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 | Location | 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 | Location | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Location | 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 NlcoreHealthcareProvider

Summary

Mandatory: 6 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

- Author Assigned Identifier (http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-authorassignedidentifier)
- NL Generic Functions Organization Profile (http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-organization)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Location.identifier

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Location |  | 0..* | NlcoreHealthcareProvider | HealthcareProvider / OrganizationLocation This profile also complies with the profile mCSD Location
Slices for identifier | Σ | 1..* | Identifier | Unique code or number identifying the location to its users Slice: Unordered, Open by profile:$this
identifier:AssignedId | Σ | 1..1 | AuthorAssignedIdentifier | Unique code or number identifying the location to its users
status | ?!Σ | 1..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use.
name | Σ | 1..1 | string | LocationName
type | Σ | 1..* | CodeableConcept | Type of function performed Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
Slices for telecom |  | 0..* | ContactPoint | ContactInformation Slice: Unordered, Open by profile:$this
telecom:telephoneNumbers | C N | 0..* | NlcoreContactInformationTelephoneNumbers | TelephoneNumbers Constraints: cpt-2
telecom:emailAddresses | C N | 0..* | NlcoreContactInformationEmailAddresses | EmailAddresses Constraints: cpt-2
managingOrganization | Σ | 1..1 | Reference(NL Generic Functions Organization Profile) | Organization responsible for provisioning and upkeep
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Location.status | Base | required | LocationStatus | 📍4.0.1 | FHIR Std.
Location.type | Base | extensible | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.0

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | Location.telecom:telephoneNumbers, Location.telecom:emailAddresses | A system is required if a value is provided. | `value.empty() or system.exists()`
dom-2 | error | Location | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Location | 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 | Location | 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 | Location | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Location | 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 NlcoreHealthcareProvider

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Location |  | 0..* | NlcoreHealthcareProvider | HealthcareProvider / OrganizationLocation This profile also complies with the profile mCSD Location
implicitRules |  | 0..0 |  | A set of rules under which this content was created
modifierExtension |  | 0..0 |  | Extension
Slices for identifier |  | 1..* | Identifier | Unique code or number identifying the location to its users Slice: Unordered, Open by profile:$this
identifier:AssignedId |  | 1..1 | AuthorAssignedIdentifier | Unique code or number identifying the location to its users
status |  | 1..1 | code | active | suspended | inactive
name |  | 1..1 | string | LocationName
type |  | 1..* | CodeableConcept | Type of function performed
managingOrganization |  | 1..1 | Reference(NL Generic Functions Organization Profile) | Organization responsible for provisioning and upkeep
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Location |  | 0..* | NlcoreHealthcareProvider | HealthcareProvider / OrganizationLocation This profile also complies with the profile mCSD Location
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
Slices for identifier | Σ | 1..* | Identifier | Unique code or number identifying the location to its users Slice: Unordered, Open by profile:$this
identifier:AssignedId | Σ | 1..1 | AuthorAssignedIdentifier | Unique code or number identifying the location to its users
status | ?!Σ | 1..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use.
operationalStatus | Σ | 0..1 | Coding | The operational status of the location (typically only for a bed/room) Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).
name | Σ | 1..1 | string | LocationName
alias |  | 0..* | string | A list of alternate names that the location is known as, or was known as, in the past
description | Σ | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name
mode | Σ | 0..1 | code | instance | kind Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.
type | Σ | 1..* | CodeableConcept | Type of function performed Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
Slices for telecom |  | 0..* | ContactPoint | ContactInformation Slice: Unordered, Open by profile:$this
telecom:telephoneNumbers | C N | 0..* | NlcoreContactInformationTelephoneNumbers | TelephoneNumbers Constraints: cpt-2
telecom:emailAddresses | C N | 0..* | NlcoreContactInformationEmailAddresses | EmailAddresses Constraints: cpt-2
address |  | 0..1 | NlcoreAddressInformation | AddressInformation
physicalType | Σ | 0..1 | CodeableConcept | Physical form of the location Binding: LocationType (example): Physical form of the location.
position |  | 0..1 | BackboneElement | The absolute geographic location
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
longitude |  | 1..1 | decimal | Longitude with WGS84 datum
latitude |  | 1..1 | decimal | Latitude with WGS84 datum
altitude |  | 0..1 | decimal | Altitude with WGS84 datum
managingOrganization | Σ | 1..1 | Reference(NL Generic Functions Organization Profile) | Organization responsible for provisioning and upkeep
partOf |  | 0..1 | Reference(Location | nl core HealthcareProvider) | Another Location this one is physically a part of
hoursOfOperation |  | 0..* | BackboneElement | What days/times during a week is this location usually open
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
daysOfWeek |  | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
allDay |  | 0..1 | boolean | The Location is open all day
openingTime |  | 0..1 | time | Time that the Location opens
closingTime |  | 0..1 | time | Time that the Location closes
availabilityExceptions |  | 0..1 | string | Description of availability exceptions
endpoint |  | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the location
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Location.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Location.status | Base | required | LocationStatus | 📍4.0.1 | FHIR Std.
Location.operationalStatus | Base | preferred | hl7VS-bedStatus | 📦2.0.0 | THO v7.0
Location.mode | Base | required | LocationMode | 📍4.0.1 | FHIR Std.
Location.type | Base | extensible | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.0
Location.physicalType | Base | example | Location type | 📦4.0.1 | FHIR Std.
Location.hoursOfOperation.​daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
cpt-2 | error | Location.telecom:telephoneNumbers, Location.telecom:emailAddresses | A system is required if a value is provided. | `value.empty() or system.exists()`
dom-2 | error | Location | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Location | 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 | Location | 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 | Location | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Location | 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 NlcoreHealthcareProvider

Summary

Mandatory: 6 elements
Prohibited: 2 elements

Structures

This structure refers to these other structures:

- Author Assigned Identifier (http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-authorassignedidentifier)
- NL Generic Functions Organization Profile (http://minvws.github.io/generiekefuncties-docs/StructureDefinition/nl-gf-organization)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Location.identifier

Other representations of profile: CSV, Excel, Schematron