HL7 FHIR Implementation Guide: DK Core
3.5.0 - ci-build
HL7 FHIR Implementation Guide: DK Core, published by HL7 Denmark. This guide is not an authorized publication; it is the continuous build for version 3.5.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7dk/dk-core/ and changes regularly. See the Directory of published versions
Official URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-practitioner-role | Version: 3.5.0 | |||
Draft as of 2025-08-20 | Computable Name: DkCorePractitionerRole |
HL7 Denmark core profile for health professional roles
This profile is primarily created for completeness towards International Patient Access (IPA) specification and is subject to undergo more profiling work in the future.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | PractitionerRole | Roles/organizations the practitioner is associated with | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Practitioner Profile) | Practitioner that is able to provide the defined services for the organization |
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Organization Profile) | Organization where the roles are available |
![]() ![]() ![]() |
Σ | 0..* | Reference(Danish Core Location Profile) | The location(s) at which this practitioner provides care |
![]() |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | PractitionerRole | 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 PractitionerRole
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
PractitionerRole | |||
![]() ![]() ![]() |
0..1 | Reference(Danish Core Practitioner Profile) | Practitioner that is able to provide the defined services for the organization | |
![]() ![]() ![]() |
0..1 | Reference(Danish Core Organization Profile) | Organization where the roles are available | |
![]() ![]() ![]() |
0..* | Reference(Danish Core Location Profile) | The location(s) at which this practitioner provides care | |
![]() |
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | PractitionerRole | Roles/organizations the practitioner is associated with | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Business Identifiers that are specific to a role/location | ||||
![]() ![]() ![]() |
Σ | 0..1 | boolean | Whether this practitioner role record is in active use | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s) | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Practitioner Profile) | Practitioner that is able to provide the defined services for the organization | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Organization Profile) | Organization where the roles are available | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: PractitionerRole (example): The role a person plays representing an organization. | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency. | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Danish Core Location Profile) | The location(s) at which this practitioner provides care | ||||
![]() ![]() ![]() |
0..* | Reference(HealthcareService) | The list of healthcare services that this worker provides for this role's Organization/Location(s) | |||||
![]() ![]() ![]() |
Σ | 0..* | ContactPoint | Contact details that are specific to the role/location/service | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Times the Service Site is available | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week. | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | Always available? e.g. 24 hour service | |||||
![]() ![]() ![]() ![]() |
0..1 | time | Opening time of day (ignored if allDay = true) | |||||
![]() ![]() ![]() ![]() |
0..1 | time | Closing time of day (ignored if allDay = true) | |||||
![]() ![]() ![]() |
0..* | BackboneElement | Not available during this time due to provided reason | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | string | Reason presented to the user explaining why time not available | |||||
![]() ![]() ![]() ![]() |
0..1 | Period | Service not available from this date | |||||
![]() ![]() ![]() |
0..1 | string | Description of availability exceptions | |||||
![]() ![]() ![]() |
0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
PractitionerRole.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
PractitionerRole.code | example | PractitionerRolehttp://hl7.org/fhir/ValueSet/practitioner-role From the FHIR Standard | ||||
PractitionerRole.specialty | preferred | PracticeSettingCodeValueSethttp://hl7.org/fhir/ValueSet/c80-practice-codes From the FHIR Standard | ||||
PractitionerRole.availableTime.daysOfWeek | required | DaysOfWeekhttp://hl7.org/fhir/ValueSet/days-of-week|4.0.1 From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | PractitionerRole | 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 PractitionerRole
Key Elements View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | PractitionerRole | Roles/organizations the practitioner is associated with | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Practitioner Profile) | Practitioner that is able to provide the defined services for the organization |
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Organization Profile) | Organization where the roles are available |
![]() ![]() ![]() |
Σ | 0..* | Reference(Danish Core Location Profile) | The location(s) at which this practitioner provides care |
![]() |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | PractitionerRole | 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() |
Differential View
This structure is derived from PractitionerRole
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
PractitionerRole | |||
![]() ![]() ![]() |
0..1 | Reference(Danish Core Practitioner Profile) | Practitioner that is able to provide the defined services for the organization | |
![]() ![]() ![]() |
0..1 | Reference(Danish Core Organization Profile) | Organization where the roles are available | |
![]() ![]() ![]() |
0..* | Reference(Danish Core Location Profile) | The location(s) at which this practitioner provides care | |
![]() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | PractitionerRole | Roles/organizations the practitioner is associated with | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Business Identifiers that are specific to a role/location | ||||
![]() ![]() ![]() |
Σ | 0..1 | boolean | Whether this practitioner role record is in active use | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s) | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Practitioner Profile) | Practitioner that is able to provide the defined services for the organization | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Danish Core Organization Profile) | Organization where the roles are available | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: PractitionerRole (example): The role a person plays representing an organization. | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency. | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Danish Core Location Profile) | The location(s) at which this practitioner provides care | ||||
![]() ![]() ![]() |
0..* | Reference(HealthcareService) | The list of healthcare services that this worker provides for this role's Organization/Location(s) | |||||
![]() ![]() ![]() |
Σ | 0..* | ContactPoint | Contact details that are specific to the role/location/service | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Times the Service Site is available | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week. | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | Always available? e.g. 24 hour service | |||||
![]() ![]() ![]() ![]() |
0..1 | time | Opening time of day (ignored if allDay = true) | |||||
![]() ![]() ![]() ![]() |
0..1 | time | Closing time of day (ignored if allDay = true) | |||||
![]() ![]() ![]() |
0..* | BackboneElement | Not available during this time due to provided reason | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | string | Reason presented to the user explaining why time not available | |||||
![]() ![]() ![]() ![]() |
0..1 | Period | Service not available from this date | |||||
![]() ![]() ![]() |
0..1 | string | Description of availability exceptions | |||||
![]() ![]() ![]() |
0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
PractitionerRole.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
PractitionerRole.code | example | PractitionerRolehttp://hl7.org/fhir/ValueSet/practitioner-role From the FHIR Standard | ||||
PractitionerRole.specialty | preferred | PracticeSettingCodeValueSethttp://hl7.org/fhir/ValueSet/c80-practice-codes From the FHIR Standard | ||||
PractitionerRole.availableTime.daysOfWeek | required | DaysOfWeekhttp://hl7.org/fhir/ValueSet/days-of-week|4.0.1 From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | PractitionerRole | 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 PractitionerRole
Other representations of profile: CSV, Excel, Schematron