Finnish Base Profiles
2.0.0 - release

Publication Build: This will be filled in by the publication tooling

## Resource Profile: FI Base PractitionerRole

Official URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner-role | Version: 2.0.0
Active as of 2025-10-05 | Computable Name: FiBasePractitionerRole

This is the Finnish base profile for the PractitionerRole resource.

Usages:

- Refer to this Profile: FI Base Appointment, FI Base Encounter, FI Base EpisodeOfCare, Fi Base Immunization... Show 21 more, FI Base MedicationAdministration, FI Base MedicationRequest, FI Base MedicationStatement, FI Base Observation, FI Base Patient, Fi Base Procedure, FI Base Provenance, FI Base Schedule, FI Base Appointment, FI Base Encounter, FI Base EpisodeOfCare, Fi Base Immunization, FI Base MedicationAdministration, FI Base MedicationRequest, FI Base MedicationStatement, FI Base Observation, FI Base Patient MedicationRequest, FI Base Patient, Fi Base Procedure, FI Base Provenance and FI Base Schedule
- Examples for this Profile: PractitionerRole/PractitionerRoleGP

### 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
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | Roles/organizations the practitioner is associated with dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: 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 dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
practitioner | Σ | 0..1 | Reference(FI Base Practitioner(2.0.0)) | Practitioner that is able to provide the defined services for the organization ele-1: All FHIR elements must have a @value or children
organization | Σ | 0..1 | Reference(FI Base Organization(2.0.0)) | Organization where the roles are available ele-1: All FHIR elements must have a @value or children
location | Σ | 0..* | Reference(FI Base Location(2.0.0)) | The location(s) at which this practitioner provides care ele-1: All FHIR elements must have a @value or children
healthcareService |  | 0..* | Reference(FI Base HealthcareService(2.0.0)) | The list of healthcare services that this worker provides for this role's Organization/Location(s) ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Constraints

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: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  |  | PractitionerRole |
practitioner |  | 0..1 | Reference(FI Base Practitioner(2.0.0)) | Practitioner that is able to provide the defined services for the organization
organization |  | 0..1 | Reference(FI Base Organization(2.0.0)) | Organization where the roles are available
location |  | 0..* | Reference(FI Base Location(2.0.0)) | The location(s) at which this practitioner provides care
healthcareService |  | 0..* | Reference(FI Base HealthcareService(2.0.0)) | The list of healthcare services that this worker provides for this role's Organization/Location(s)
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | Roles/organizations the practitioner is associated with
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
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
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business Identifiers that are specific to a role/location
active | Σ | 0..1 | boolean | Whether this practitioner role record is in active use
period | Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s)
practitioner | Σ | 0..1 | Reference(FI Base Practitioner(2.0.0)) | Practitioner that is able to provide the defined services for the organization
organization | Σ | 0..1 | Reference(FI Base Organization(2.0.0)) | Organization where the roles are available
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: PractitionerRole (example): The role a person plays representing an organization.
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
location | Σ | 0..* | Reference(FI Base Location(2.0.0)) | The location(s) at which this practitioner provides care
healthcareService |  | 0..* | Reference(FI Base HealthcareService(2.0.0)) | The list of healthcare services that this worker provides for this role's Organization/Location(s)
telecom | Σ | 0..* | ContactPoint | Contact details that are specific to the role/location/service
availableTime |  | 0..* | BackboneElement | Times the Service Site is available
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 | Always available? e.g. 24 hour service
availableStartTime |  | 0..1 | time | Opening time of day (ignored if allDay = true)
availableEndTime |  | 0..1 | time | Closing time of day (ignored if allDay = true)
notAvailable |  | 0..* | BackboneElement | Not available during this time due to provided reason
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
description |  | 1..1 | string | Reason presented to the user explaining why time not available
during |  | 0..1 | Period | Service not available from this date
availabilityExceptions |  | 0..1 | string | Description of availability exceptions
endpoint |  | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
PractitionerRole.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
PractitionerRole.code | example | PractitionerRole `http://hl7.org/fhir/ValueSet/practitioner-role` From the FHIR Standard
PractitionerRole.specialty | preferred | PracticeSettingCodeValueSet `http://hl7.org/fhir/ValueSet/c80-practice-codes` From the FHIR Standard
PractitionerRole.availableTime.daysOfWeek | required | DaysOfWeek `http://hl7.org/fhir/ValueSet/days-of-week|4.0.1` From the FHIR Standard

#### Constraints

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

Summary

Structures

This structure refers to these other structures:

- FI Base Practitioner (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner)
- FI Base Organization (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-organization)
- FI Base Location (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-location)
- FI Base HealthcareService (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-healthcare-service)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | Roles/organizations the practitioner is associated with dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: 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 dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
practitioner | Σ | 0..1 | Reference(FI Base Practitioner(2.0.0)) | Practitioner that is able to provide the defined services for the organization ele-1: All FHIR elements must have a @value or children
organization | Σ | 0..1 | Reference(FI Base Organization(2.0.0)) | Organization where the roles are available ele-1: All FHIR elements must have a @value or children
location | Σ | 0..* | Reference(FI Base Location(2.0.0)) | The location(s) at which this practitioner provides care ele-1: All FHIR elements must have a @value or children
healthcareService |  | 0..* | Reference(FI Base HealthcareService(2.0.0)) | The list of healthcare services that this worker provides for this role's Organization/Location(s) ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Constraints

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: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  |  | PractitionerRole |
practitioner |  | 0..1 | Reference(FI Base Practitioner(2.0.0)) | Practitioner that is able to provide the defined services for the organization
organization |  | 0..1 | Reference(FI Base Organization(2.0.0)) | Organization where the roles are available
location |  | 0..* | Reference(FI Base Location(2.0.0)) | The location(s) at which this practitioner provides care
healthcareService |  | 0..* | Reference(FI Base HealthcareService(2.0.0)) | The list of healthcare services that this worker provides for this role's Organization/Location(s)
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | Roles/organizations the practitioner is associated with
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
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
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business Identifiers that are specific to a role/location
active | Σ | 0..1 | boolean | Whether this practitioner role record is in active use
period | Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s)
practitioner | Σ | 0..1 | Reference(FI Base Practitioner(2.0.0)) | Practitioner that is able to provide the defined services for the organization
organization | Σ | 0..1 | Reference(FI Base Organization(2.0.0)) | Organization where the roles are available
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: PractitionerRole (example): The role a person plays representing an organization.
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
location | Σ | 0..* | Reference(FI Base Location(2.0.0)) | The location(s) at which this practitioner provides care
healthcareService |  | 0..* | Reference(FI Base HealthcareService(2.0.0)) | The list of healthcare services that this worker provides for this role's Organization/Location(s)
telecom | Σ | 0..* | ContactPoint | Contact details that are specific to the role/location/service
availableTime |  | 0..* | BackboneElement | Times the Service Site is available
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 | Always available? e.g. 24 hour service
availableStartTime |  | 0..1 | time | Opening time of day (ignored if allDay = true)
availableEndTime |  | 0..1 | time | Closing time of day (ignored if allDay = true)
notAvailable |  | 0..* | BackboneElement | Not available during this time due to provided reason
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
description |  | 1..1 | string | Reason presented to the user explaining why time not available
during |  | 0..1 | Period | Service not available from this date
availabilityExceptions |  | 0..1 | string | Description of availability exceptions
endpoint |  | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
PractitionerRole.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` From the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
PractitionerRole.code | example | PractitionerRole `http://hl7.org/fhir/ValueSet/practitioner-role` From the FHIR Standard
PractitionerRole.specialty | preferred | PracticeSettingCodeValueSet `http://hl7.org/fhir/ValueSet/c80-practice-codes` From the FHIR Standard
PractitionerRole.availableTime.daysOfWeek | required | DaysOfWeek `http://hl7.org/fhir/ValueSet/days-of-week|4.0.1` From the FHIR Standard

#### Constraints

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

Summary

Structures

This structure refers to these other structures:

- FI Base Practitioner (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-practitioner)
- FI Base Organization (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-organization)
- FI Base Location (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-location)
- FI Base HealthcareService (https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-healthcare-service)

Other representations of profile: CSV, Excel, Schematron