England Pathology and Laboratory Medicine (PaLM) Technical Framework
0.1.0 - ci-build United Kingdom flag

England Pathology and Laboratory Medicine (PaLM) Technical Framework - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: PractitionerRole

Official URL: https://examplesihe.org.uk/StructureDefinition/PractitionerRole Version: 0.1.0
Draft as of 2026-11-04 Computable Name: PractitionerRole

Care Services A practitioner working for an organisation. The requester of a laboratory order: NHS England's Pathology Laboratory Reporting API finds the ODS code of the requesting organisation through ServiceRequest.requester → PractitionerRole.organization → Organization.identifier.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRoleEuCore Roles/organizations the practitioner is associated with
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(Practitioner) The practitioner providing services for the organization
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(Organization) The organization where the practitioner performs the role
PractitionerRole.organization.identifier This element is included in summaries. 0..1 OrganisationCode Logical reference, when literal reference is not known

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
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 PractitionerRoleEuCore

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRoleEuCore Roles/organizations the practitioner is associated with
PractitionerRole.practitioner This element must be supported. 1..1 Reference(Practitioner) The practitioner providing services for the organization
PractitionerRole.organization This element must be supported. 1..1 Reference(Organization) The organization where the practitioner performs the role
PractitionerRole.organization.identifier 0..1 OrganisationCode Logical reference, when literal reference is not known

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRoleEuCore Roles/organizations the practitioner is associated with
PractitionerRole.id This element is included in summaries. 0..1 id Logical id of this artifact
PractitionerRole.meta This element is included in summaries. 0..1 Meta Metadata about the resource
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
PractitionerRole.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
PractitionerRole.contained 0..* Resource Contained, inline Resources
PractitionerRole.extension 0..* Extension Additional content defined by implementations
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.identifier This element is included in summaries. 0..* Identifier Business identifier
PractitionerRole.active This element is included in summaries. 0..1 boolean Whether this practitioner role record is in active use
PractitionerRole.period This element is included in summaries. 0..1 Period The period during which the practitioner is authorized to perform in these role(s)
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(Practitioner) The practitioner providing services for the organization
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(Organization) The organization where the practitioner performs the role
PractitionerRole.organization.id 0..1 string Unique id for inter-element referencing
PractitionerRole.organization.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
PractitionerRole.organization.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
PractitionerRole.organization.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
PractitionerRole.organization.identifier This element is included in summaries. 0..1 OrganisationCode Logical reference, when literal reference is not known
PractitionerRole.organization.display This element is included in summaries. 0..1 string Text alternative for the resource
PractitionerRole.code This element is included in summaries. 0..* CodeableConcept Roles which this practitioner may perform.
Binding: PractitionerRole (example): The role a person plays representing an organization.
PractitionerRole.specialty This element is included in summaries. 0..* CodeableConcept Specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
PractitionerRole.location This element is included in summaries. 0..* Reference(Location) The location(s) at which this practitioner provides care
PractitionerRole.healthcareService 0..* Reference(HealthcareService) The list of healthcare services that this worker provides for this role's Organization/Location(s)
PractitionerRole.telecom This element is included in summaries. 0..* ContactPoint Contact details that are specific to the role, location, or service
PractitionerRole.availableTime 0..* BackboneElement Times the Service Site is available
PractitionerRole.availableTime.id 0..1 string Unique id for inter-element referencing
PractitionerRole.availableTime.extension 0..* Extension Additional content defined by implementations
PractitionerRole.availableTime.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
PractitionerRole.availableTime.daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
PractitionerRole.availableTime.allDay 0..1 boolean Always available? e.g. 24 hour service
PractitionerRole.availableTime.availableStartTime 0..1 time Opening time of day (ignored if allDay = true)
PractitionerRole.availableTime.availableEndTime 0..1 time Closing time of day (ignored if allDay = true)
PractitionerRole.notAvailable 0..* BackboneElement Not available during this time due to provided reason
PractitionerRole.notAvailable.id 0..1 string Unique id for inter-element referencing
PractitionerRole.notAvailable.extension 0..* Extension Additional content defined by implementations
PractitionerRole.notAvailable.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
PractitionerRole.notAvailable.description 1..1 string Reason presented to the user explaining why time not available
PractitionerRole.notAvailable.during 0..1 Period Service not available from this date
PractitionerRole.availabilityExceptions 0..1 string Description of availability exceptions
PractitionerRole.endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.language Base preferred Common Languages 📍4.0.1 FHIR Std.
PractitionerRole.organization.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
PractitionerRole.code Base example Practitioner role 📍4.0.1 FHIR Std.
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍4.0.1 FHIR Std.
PractitionerRole.availableTime.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRoleEuCore Roles/organizations the practitioner is associated with
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(Practitioner) The practitioner providing services for the organization
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(Organization) The organization where the practitioner performs the role
PractitionerRole.organization.identifier This element is included in summaries. 0..1 OrganisationCode Logical reference, when literal reference is not known

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
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 PractitionerRoleEuCore

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRoleEuCore Roles/organizations the practitioner is associated with
PractitionerRole.practitioner This element must be supported. 1..1 Reference(Practitioner) The practitioner providing services for the organization
PractitionerRole.organization This element must be supported. 1..1 Reference(Organization) The organization where the practitioner performs the role
PractitionerRole.organization.identifier 0..1 OrganisationCode Logical reference, when literal reference is not known

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: doco
PractitionerRole 0..* PractitionerRoleEuCore Roles/organizations the practitioner is associated with
PractitionerRole.id This element is included in summaries. 0..1 id Logical id of this artifact
PractitionerRole.meta This element is included in summaries. 0..1 Meta Metadata about the resource
PractitionerRole.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
PractitionerRole.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
PractitionerRole.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
PractitionerRole.contained 0..* Resource Contained, inline Resources
PractitionerRole.extension 0..* Extension Additional content defined by implementations
PractitionerRole.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
PractitionerRole.identifier This element is included in summaries. 0..* Identifier Business identifier
PractitionerRole.active This element is included in summaries. 0..1 boolean Whether this practitioner role record is in active use
PractitionerRole.period This element is included in summaries. 0..1 Period The period during which the practitioner is authorized to perform in these role(s)
PractitionerRole.practitioner This element must be supported. This element is included in summaries. 1..1 Reference(Practitioner) The practitioner providing services for the organization
PractitionerRole.organization This element must be supported. This element is included in summaries. 1..1 Reference(Organization) The organization where the practitioner performs the role
PractitionerRole.organization.id 0..1 string Unique id for inter-element referencing
PractitionerRole.organization.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
PractitionerRole.organization.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
PractitionerRole.organization.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
PractitionerRole.organization.identifier This element is included in summaries. 0..1 OrganisationCode Logical reference, when literal reference is not known
PractitionerRole.organization.display This element is included in summaries. 0..1 string Text alternative for the resource
PractitionerRole.code This element is included in summaries. 0..* CodeableConcept Roles which this practitioner may perform.
Binding: PractitionerRole (example): The role a person plays representing an organization.
PractitionerRole.specialty This element is included in summaries. 0..* CodeableConcept Specialty of the practitioner
Binding: PracticeSettingCodeValueSet (preferred): Specific specialty associated with the agency.
PractitionerRole.location This element is included in summaries. 0..* Reference(Location) The location(s) at which this practitioner provides care
PractitionerRole.healthcareService 0..* Reference(HealthcareService) The list of healthcare services that this worker provides for this role's Organization/Location(s)
PractitionerRole.telecom This element is included in summaries. 0..* ContactPoint Contact details that are specific to the role, location, or service
PractitionerRole.availableTime 0..* BackboneElement Times the Service Site is available
PractitionerRole.availableTime.id 0..1 string Unique id for inter-element referencing
PractitionerRole.availableTime.extension 0..* Extension Additional content defined by implementations
PractitionerRole.availableTime.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
PractitionerRole.availableTime.daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
PractitionerRole.availableTime.allDay 0..1 boolean Always available? e.g. 24 hour service
PractitionerRole.availableTime.availableStartTime 0..1 time Opening time of day (ignored if allDay = true)
PractitionerRole.availableTime.availableEndTime 0..1 time Closing time of day (ignored if allDay = true)
PractitionerRole.notAvailable 0..* BackboneElement Not available during this time due to provided reason
PractitionerRole.notAvailable.id 0..1 string Unique id for inter-element referencing
PractitionerRole.notAvailable.extension 0..* Extension Additional content defined by implementations
PractitionerRole.notAvailable.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
PractitionerRole.notAvailable.description 1..1 string Reason presented to the user explaining why time not available
PractitionerRole.notAvailable.during 0..1 Period Service not available from this date
PractitionerRole.availabilityExceptions 0..1 string Description of availability exceptions
PractitionerRole.endpoint 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
PractitionerRole.language Base preferred Common Languages 📍4.0.1 FHIR Std.
PractitionerRole.organization.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
PractitionerRole.code Base example Practitioner role 📍4.0.1 FHIR Std.
PractitionerRole.specialty Base preferred Practice Setting Code Value Set 📍4.0.1 FHIR Std.
PractitionerRole.availableTime.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
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()

 

Other representations of profile: CSV, Excel, Schematron