Canadian Baseline
1.1.0 - CI Build Canada flag

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

Resource Profile: PractitionerRole Profile (General)

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-practitionerrole Version: 1.1.0
Draft as of 2023-10-26 Computable Name: PractitionerRoleProfile

Proposed constraints and extensions on the PractitionerRole Resource for general use.

CA Baseline PractitionerRole Profile

This PractitionerRole profile sets minimum expectations for the PractitionerRole resource to record, search and fetch the recording of the location and types of services that Practitioner is able to provide for an organization.

This profile defines localization concepts for use in an Canadian context.

Differences from US Core

Note: This profile was generated from HL7 PractitionerRole StructureDefinition and constrained during a review of US Core R4 equivalent profile(s) and a review against Canadian sources.

The following differences are noted from the US Core R4 PractitionerRole Profile:

  • MS Differences: US Core R4 PractitionerRole profile includes additional MS constraints on identifier, organization, code, location, telecom.system, telecom.value, and endpoint.
  • Cardinality Differences: None
  • Terminology Differences: US Core binds PractitionerRole.code to their National Uniform Claim Committet (NUCC) Taxonomy, and binds PractitionerRole.specialty to their Healthcare Provider Taxonomy valueset. Both are expected to be realm specific.
  • Invariant Differences: US Core R4 PractitionerRole profile includes an additional invariant necessitating a reference to practitioner, org, healthcareService, or location be present

Mandatory Data Elements

All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number.

Most elements in FHIR specification have a minimum cardinality of 0, which means that they may be missing from a resource when it is exchanged between systems.

In this Canadian Baseline PractitionerRole Profile all elements are optional, i.e., there is no element with a minimum cardinality of 1. However, some optional elements (e.g., identifier, telecom) have required components that MUST be present if that optional element is provided.

Data Absent Reason

In situations where the minimum cardinality of an element or attribute is 1 and information is missing and the Responder knows the precise reason for the absence of data, Responders SHALL send the reason for the missing information using values (such as NullFlavor) from the value set where they exist or using the DataAbsentReason extension.

Must Support Data Elements

Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way (see Must Support definition).

The following elements are marked as Must Support in the PractitionerRole profile:

Must Support elements:

  • reference to a practitioner
  • contact detail (e.g. a telephone number or an email address) - inclusive of telecom system
  • specialty

Best Practices/"Should" Support

identifier: It is recommended to have an identifier associated with PractitionerRole to assist in searches, however not every implementation (especially legacy implementations that combined both concepts of practitioner & practitionerRole) will include an identifier practitioner role. Given the scope and principles of the CA Baseline, the cardinality on this element was relaxed back to its base cardinality after receiving community feedback from FHIR IGuides that could not support the expectation in their existing implementation(s).

Invariants

The invariant necessitating either code or specialty be present was removed after review against Canadian FHIR rpracititoner registry implementations identified challenges with some legacy systems (registry and otherwise) that have cpmmon use cases for PractitionerRole that do not include specialty or code.

Usage Note

This PractitionerRole profile is intended for general use, e.g. to be included into a Bundle along with the Practitioner resource.

Usage:

Formal Views of Profile Content

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

This structure is derived from PractitionerRole

NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole 0..* PractitionerRole PractitionerRole Generic Profile
... identifier 0..* IdentifierCABaseline An identifier intended for computation
... practitioner 0..1 Reference(Practitioner Profile (General)) Practitioner that is able to provide the defined services for the organization.
... code 0..* CodeableConcept HealthcareProviderRoleType
Binding: HealthcareProviderRoleType (preferred): A role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services. Examples: Registered Nurse, Chiropractor, Physician, Custodial Care Clinic.

... telecom 0..* ContactPoint Contact details that are specific to the role/location/service
.... system S 0..1 code phone | fax | email | pager | url | sms | other
.... value 1..1 string The actual contact point details

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
PractitionerRole.codepreferredHealthcareProviderRoleType
https://fhir.infoway-inforoute.ca/ValueSet/healthcareproviderroletype
from this IG
PractitionerRole.specialtypreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole 0..* PractitionerRole PractitionerRole Generic Profile
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* IdentifierCABaseline An identifier intended for computation
... code Σ 0..* CodeableConcept HealthcareProviderRoleType
Binding: HealthcareProviderRoleType (preferred): A role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services. Examples: Registered Nurse, Chiropractor, Physician, Custodial Care Clinic.


... specialty Σ 0..* CodeableConcept PractitionerSpecialty
Binding: PractitionerSpecialty (preferred): Defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient.


... telecom Σ 0..* ContactPoint Contact details that are specific to the role/location/service
.... system SΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value Σ 1..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
PractitionerRole.codepreferredHealthcareProviderRoleType
https://fhir.infoway-inforoute.ca/ValueSet/healthcareproviderroletype
from this IG
PractitionerRole.specialtypreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG
PractitionerRole.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
PractitionerRole.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPractitionerRoleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPractitionerRoleIf 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-4errorPractitionerRoleIf 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-5errorPractitionerRoleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePractitionerRoleA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole 0..* PractitionerRole PractitionerRole Generic Profile
... 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
... 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..* IdentifierCABaseline An identifier intended for computation
... 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(Practitioner Profile (General)) Practitioner that is able to provide the defined services for the organization.
... organization Σ 0..1 Reference(Organization) Organization where the roles are available
... code Σ 0..* CodeableConcept HealthcareProviderRoleType
Binding: HealthcareProviderRoleType (preferred): A role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services. Examples: Registered Nurse, Chiropractor, Physician, Custodial Care Clinic.


... specialty Σ 0..* CodeableConcept PractitionerSpecialty
Binding: PractitionerSpecialty (preferred): Defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient.


... location Σ 0..* Reference(Location) The location(s) at which this practitioner provides care
... healthcareService 0..* Reference(HealthcareService) 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
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... system SΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value Σ 1..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
.... period Σ 0..1 Period Time period when the contact point was/is in use
... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
PractitionerRole.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
PractitionerRole.codepreferredHealthcareProviderRoleType
https://fhir.infoway-inforoute.ca/ValueSet/healthcareproviderroletype
from this IG
PractitionerRole.specialtypreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG
PractitionerRole.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
PractitionerRole.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
PractitionerRole.availableTime.daysOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPractitionerRoleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPractitionerRoleIf 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-4errorPractitionerRoleIf 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-5errorPractitionerRoleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePractitionerRoleA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from PractitionerRole

Differential View

This structure is derived from PractitionerRole

NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole 0..* PractitionerRole PractitionerRole Generic Profile
... identifier 0..* IdentifierCABaseline An identifier intended for computation
... practitioner 0..1 Reference(Practitioner Profile (General)) Practitioner that is able to provide the defined services for the organization.
... code 0..* CodeableConcept HealthcareProviderRoleType
Binding: HealthcareProviderRoleType (preferred): A role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services. Examples: Registered Nurse, Chiropractor, Physician, Custodial Care Clinic.

... telecom 0..* ContactPoint Contact details that are specific to the role/location/service
.... system S 0..1 code phone | fax | email | pager | url | sms | other
.... value 1..1 string The actual contact point details

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
PractitionerRole.codepreferredHealthcareProviderRoleType
https://fhir.infoway-inforoute.ca/ValueSet/healthcareproviderroletype
from this IG
PractitionerRole.specialtypreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole 0..* PractitionerRole PractitionerRole Generic Profile
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* IdentifierCABaseline An identifier intended for computation
... code Σ 0..* CodeableConcept HealthcareProviderRoleType
Binding: HealthcareProviderRoleType (preferred): A role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services. Examples: Registered Nurse, Chiropractor, Physician, Custodial Care Clinic.


... specialty Σ 0..* CodeableConcept PractitionerSpecialty
Binding: PractitionerSpecialty (preferred): Defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient.


... telecom Σ 0..* ContactPoint Contact details that are specific to the role/location/service
.... system SΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value Σ 1..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
PractitionerRole.codepreferredHealthcareProviderRoleType
https://fhir.infoway-inforoute.ca/ValueSet/healthcareproviderroletype
from this IG
PractitionerRole.specialtypreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG
PractitionerRole.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
PractitionerRole.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPractitionerRoleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPractitionerRoleIf 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-4errorPractitionerRoleIf 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-5errorPractitionerRoleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePractitionerRoleA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole 0..* PractitionerRole PractitionerRole Generic Profile
... 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
... 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..* IdentifierCABaseline An identifier intended for computation
... 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(Practitioner Profile (General)) Practitioner that is able to provide the defined services for the organization.
... organization Σ 0..1 Reference(Organization) Organization where the roles are available
... code Σ 0..* CodeableConcept HealthcareProviderRoleType
Binding: HealthcareProviderRoleType (preferred): A role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services. Examples: Registered Nurse, Chiropractor, Physician, Custodial Care Clinic.


... specialty Σ 0..* CodeableConcept PractitionerSpecialty
Binding: PractitionerSpecialty (preferred): Defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient.


... location Σ 0..* Reference(Location) The location(s) at which this practitioner provides care
... healthcareService 0..* Reference(HealthcareService) 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
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... system SΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.

.... value Σ 1..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.

.... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
.... period Σ 0..1 Period Time period when the contact point was/is in use
... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
PractitionerRole.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
PractitionerRole.codepreferredHealthcareProviderRoleType
https://fhir.infoway-inforoute.ca/ValueSet/healthcareproviderroletype
from this IG
PractitionerRole.specialtypreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG
PractitionerRole.telecom.systemrequiredContactPointSystem
http://hl7.org/fhir/ValueSet/contact-point-system|4.0.1
from the FHIR Standard
PractitionerRole.telecom.userequiredContactPointUse
http://hl7.org/fhir/ValueSet/contact-point-use|4.0.1
from the FHIR Standard
PractitionerRole.availableTime.daysOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPractitionerRoleIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPractitionerRoleIf 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-4errorPractitionerRoleIf 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-5errorPractitionerRoleIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePractitionerRoleA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust 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

Notes:

Identifiers

Multiple types of provider identifiers may be used in PractitionerRole.identifier element in the Canadian context:

  • Provincial health plan provider/ Billing number
  • Licence Number
  • Medical Doctor Number

Implementers may use other identifiers to capture in a more specific way such as internal provider number, jurisdictions providing credentials. The full list of possible identifier types is in Canadian URI Registry

In some cases, the same license number can be used as the provider identifier and provider's qualification identifier.

Telecom

A provider may have multiple ways to be contacted with different uses or applicable periods. This PractitionerRole profile allows multiple contact points (e.g. a telephone number or an email address) by which the individual may be contacted.

To indicate the preferred way to contact use Practitioner.telecom.rank attribute (i.e., the ContactPoint.rank component) that specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values.

Role

Roles which this practitioner is authorized to perform for the organization are defined by Canadian HealthcareProviderRoleType value set as the coded representation of the provider's credentials. Credential defines a role type that is used to categorize an entity that delivers health care in an expected and professional manner to an entity in need of health care services.

The binding strength for the PractitionerRole.code element is Preferred meaning that implementers are encouraged to draw codes from the specified code system for interoperability purposes but are not required to do so to be considered conformant.

Specialty

Specific specialty of the practitioner defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient. This profile recommends to use Canadian PractitionerSpecialty value set for speciality codes.

The binding strength for the PractitionerRole.speciality element is Preferred meaning that implementers are encouraged to draw codes from the specified code system for interoperability purposes but are not required to do so to be considered conformant.