QI-Core Implementation Guide
8.0.0-ballot - STU 8 - ballot

QI-Core Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 8.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-qi-core/ and changes regularly. See the Directory of published versions

## Resource Profile: QICore Practitioner

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-practitioner | Version: 8.0.0-ballot
Standards status: Trial-use Active as of 2018-08-22 | Maturity Level: 4 | Computable Name: QICorePractitioner

Profile of Practitioner for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

"Must Have", "QI Elements" and "primary code path" are defined in the QI-Core Must Support section.
Must Have:

- name: The name(s) associated with the practitioner
- identifier: (QI) An identifier for the person as this agent

QI Elements:

- identifier.use: (QI) usual | official | temp | secondary | old (If known)
- identifier(NPI): (QI) An identifier for the person as this agent
- identifier.value: (QI) The value that is unique
- identifier(ein): (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect.
- identifier.system: (QI) The namespace for the identifier value

Usage

See the patterns page for implementation and usage patterns.

### Examples

Referring Practitioner Example

Usages:

- Refer to this Profile: QICore AdverseEvent, QICore CareTeam, QICore Claim, QICore ClaimResponse... Show 16 more, QICore Communication, QICore CommunicationRequest, QICore DiagnosticReport Profile for Laboratory Results Reporting, QICore DiagnosticReport Profile for Report and Note Exchange, QICore Encounter, QICore Flag, QICore ImagingStudy, QICore MedicationRequest, QICore MedicationStatement, QICore NonPatient Observation, QICore Observation Screening Assessment, QICore PractitionerRole, QICore Procedure, QICore QuestionnaireResponse, QICore ServiceRequest and QICore Simple Observation
- Examples for this Profile: Practitioner/example

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile | A person with a formal responsibility in the provisioning of healthcare or related services
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
Slices for identifier | S Σ | 1..* | Identifier | (QI) An identifier for the person as this agent Slice: Unordered, Open by value:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
identifier:NPI | S Σ C | 0..* | Identifier | (QI) An identifier for the person as this agent Constraints: us-core-16, us-core-17 Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
identifier:ein | S Σ | 0..1 | Identifier | (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
use | ?!Σ | 1..1 | code | (QI) usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
name | S Σ | 1..* | HumanName | The name(s) associated with the practitioner
use | ?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name.
family | S Σ | 1..1 | string | Family name (often called 'Surname')
telecom | S Σ | 0..* | ContactPoint | A contact detail for the practitioner (that apply to all roles)
system | S Σ C | 0..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | S Σ | 0..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.
address | S Σ | 0..* | Address | Address(es) of the practitioner
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home
line | S Σ | 0..4 | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street Example US Core: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example US Core: EVERYTOWN
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. Example US Core: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example US Core: 74047
country | S Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Practitioner.identifier.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:NPI.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:ein.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​use | Base | required | AddressUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​state | Base | extensible | USPS Two Letter Alphabetic Codes | 📦1.0.0 | THO v6.5

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Practitioner | 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()`
us-core-16 | error | Practitioner.identifier:NPI | NPI must be 10 digits | `value.matches('^[0-9]{10}$')`
us-core-17 | error | Practitioner.identifier:NPI | NPI check digit must be valid (Luhn algorithm check) | `(((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile | A person with a formal responsibility in the provisioning of healthcare or related services
Slices for identifier |  | 1..* | Identifier | (QI) An identifier for the person as this agent Slice: Unordered, Open by value:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
system |  | 1..1 | uri | (QI) The namespace for the identifier value
value |  | 1..1 | string | (QI) The value that is unique
identifier:NPI | C | 0..* | Identifier | (QI) An identifier for the person as this agent Required Pattern: At least the following
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
identifier:ein |  | 0..1 | Identifier | (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect. Required Pattern: At least the following
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
use |  | 1..1 | code | (QI) usual | official | temp | secondary | old (If known)
value |  | 1..1 | string | (QI) The value that is unique
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile | A person with a formal responsibility in the provisioning of healthcare or related services
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 This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
Slices for identifier | S Σ | 1..* | Identifier | (QI) An identifier for the person as this agent Slice: Unordered, Open by value:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
identifier:NPI | S Σ C | 0..* | Identifier | (QI) An identifier for the person as this agent Constraints: us-core-16, us-core-17 Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
identifier:ein | S Σ | 0..1 | Identifier | (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 1..1 | code | (QI) usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
active | Σ | 0..1 | boolean | Whether this practitioner's record is in active use
name | S Σ | 1..* | HumanName | The name(s) associated with the practitioner
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name.
text | Σ | 0..1 | string | Text representation of the full name
family | S Σ | 1..1 | string | Family name (often called 'Surname')
given | Σ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name
prefix | Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name
suffix | Σ | 0..* | string | Parts that come after the name This repeating element order: Suffixes appear in the correct order for presenting the name
period | Σ | 0..1 | Period | Time period when name was/is in use
telecom | S Σ | 0..* | ContactPoint | A contact detail for the practitioner (that apply to all roles)
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 | S Σ | 0..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
address | S Σ | 0..* | Address | Address(es) of the practitioner
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home
type | Σ | 0..1 | code | postal | physical | both Binding: AddressType (required): The type of an address (physical / postal). Example General: both
text | Σ | 0..1 | string | Text representation of the address Example General: 137 Nowhere Street, Erewhon 9132
line | S Σ | 0..4 | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street Example US Core: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example US Core: EVERYTOWN
district | Σ | 0..1 | string | District name (aka county) Example General: Madison
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. Example US Core: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example US Core: 74047
country | S Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code)
period | Σ | 0..1 | Period | Time period when address was/is in use Example General: {"start":"2010-03-23","end":"2010-07-01"}
gender | Σ | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
birthDate | Σ | 0..1 | date | The date on which the practitioner was born
photo |  | 0..* | Attachment | Image of the person
qualification |  | 0..* | BackboneElement | Certification, licenses, or training pertaining to the provision of care
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
identifier |  | 0..* | Identifier | An identifier for this qualification for the practitioner
code |  | 1..1 | CodeableConcept | Coded representation of the qualification Binding: v2 table 0360, Version 2.7 (example): Specific qualification the practitioner has to provide a service.
period |  | 0..1 | Period | Period during which the qualification is valid
issuer |  | 0..1 | Reference(Organization) | Organization that regulates and issues the qualification
communication |  | 0..* | CodeableConcept | A language the practitioner can use in patient communication Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Practitioner.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Practitioner.identifier.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier.​type | Base | extensible | IdentifierType | 📦4.0.1 | FHIR Std.
Practitioner.identifier:NPI.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:NPI.​type | Base | extensible | IdentifierType | 📦4.0.1 | FHIR Std.
Practitioner.identifier:ein.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:ein.​type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.
Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​use | Base | required | AddressUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​type | Base | required | AddressType | 📍4.0.1 | FHIR Std.
Practitioner.address.​state | Base | extensible | USPS Two Letter Alphabetic Codes | 📦1.0.0 | THO v6.5
Practitioner.gender | Base | required | AdministrativeGender | 📍4.0.1 | FHIR Std.
Practitioner.qualification.​code | Base | example | v2 table 0360, Version 2.7 | 📦0360 | FHIR Std.
Practitioner.communication | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Practitioner | 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()`
us-core-16 | error | Practitioner.identifier:NPI | NPI must be 10 digits | `value.matches('^[0-9]{10}$')`
us-core-17 | error | Practitioner.identifier:NPI | NPI check digit must be valid (Luhn algorithm check) | `(((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)`

Summary

Mandatory: 1 element(4 nested mandatory elements)

Slices

This structure defines the following Slices:

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

Maturity: 4

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile | A person with a formal responsibility in the provisioning of healthcare or related services
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
Slices for identifier | S Σ | 1..* | Identifier | (QI) An identifier for the person as this agent Slice: Unordered, Open by value:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
identifier:NPI | S Σ C | 0..* | Identifier | (QI) An identifier for the person as this agent Constraints: us-core-16, us-core-17 Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
identifier:ein | S Σ | 0..1 | Identifier | (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
use | ?!Σ | 1..1 | code | (QI) usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
name | S Σ | 1..* | HumanName | The name(s) associated with the practitioner
use | ?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name.
family | S Σ | 1..1 | string | Family name (often called 'Surname')
telecom | S Σ | 0..* | ContactPoint | A contact detail for the practitioner (that apply to all roles)
system | S Σ C | 0..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | S Σ | 0..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.
address | S Σ | 0..* | Address | Address(es) of the practitioner
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home
line | S Σ | 0..4 | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street Example US Core: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example US Core: EVERYTOWN
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. Example US Core: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example US Core: 74047
country | S Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Practitioner.identifier.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:NPI.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:ein.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​use | Base | required | AddressUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​state | Base | extensible | USPS Two Letter Alphabetic Codes | 📦1.0.0 | THO v6.5

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Practitioner | 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()`
us-core-16 | error | Practitioner.identifier:NPI | NPI must be 10 digits | `value.matches('^[0-9]{10}$')`
us-core-17 | error | Practitioner.identifier:NPI | NPI check digit must be valid (Luhn algorithm check) | `(((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)`

Differential View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile | A person with a formal responsibility in the provisioning of healthcare or related services
Slices for identifier |  | 1..* | Identifier | (QI) An identifier for the person as this agent Slice: Unordered, Open by value:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
system |  | 1..1 | uri | (QI) The namespace for the identifier value
value |  | 1..1 | string | (QI) The value that is unique
identifier:NPI | C | 0..* | Identifier | (QI) An identifier for the person as this agent Required Pattern: At least the following
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
identifier:ein |  | 0..1 | Identifier | (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect. Required Pattern: At least the following
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
use |  | 1..1 | code | (QI) usual | official | temp | secondary | old (If known)
value |  | 1..1 | string | (QI) The value that is unique
Documentation for this format

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile | A person with a formal responsibility in the provisioning of healthcare or related services
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 This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
Slices for identifier | S Σ | 1..* | Identifier | (QI) An identifier for the person as this agent Slice: Unordered, Open by value:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
identifier:NPI | S Σ C | 0..* | Identifier | (QI) An identifier for the person as this agent Constraints: us-core-16, us-core-17 Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | S Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
identifier:ein | S Σ | 0..1 | Identifier | (QI) There is not a general Tax Identifier Numer (TIN) OID. There is an SSN, a PTIN, and an ITIN, but no TIN generally. So the only slice specified here is EIN, if consumers determine a need for an SSN, submit a comment to that effect. Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
use |  | 0..1 | code | usual | official | temp | secondary | old (If known)
type |  | 0..1 | CodeableConcept | Description of identifier
system |  | 1..1 | uri | The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value |  | 0..1 | string | The value that is unique
period |  | 0..1 | Period | Time period when id is/was valid for use
assigner |  | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 1..1 | code | (QI) usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
system | Σ | 1..1 | uri | (QI) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | Σ | 1..1 | string | (QI) The value that is unique Example General: 123456
period | Σ | 0..1 | Period | Time period when id is/was valid for use
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text)
active | Σ | 0..1 | boolean | Whether this practitioner's record is in active use
name | S Σ | 1..* | HumanName | The name(s) associated with the practitioner
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | usual | official | temp | nickname | anonymous | old | maiden Binding: NameUse (required): The use of a human name.
text | Σ | 0..1 | string | Text representation of the full name
family | S Σ | 1..1 | string | Family name (often called 'Surname')
given | Σ | 0..* | string | Given names (not always 'first'). Includes middle names This repeating element order: Given Names appear in the correct order for presenting the name
prefix | Σ | 0..* | string | Parts that come before the name This repeating element order: Prefixes appear in the correct order for presenting the name
suffix | Σ | 0..* | string | Parts that come after the name This repeating element order: Suffixes appear in the correct order for presenting the name
period | Σ | 0..1 | Period | Time period when name was/is in use
telecom | S Σ | 0..* | ContactPoint | A contact detail for the practitioner (that apply to all roles)
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 | S Σ | 0..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
address | S Σ | 0..* | Address | Address(es) of the practitioner
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home
type | Σ | 0..1 | code | postal | physical | both Binding: AddressType (required): The type of an address (physical / postal). Example General: both
text | Σ | 0..1 | string | Text representation of the address Example General: 137 Nowhere Street, Erewhon 9132
line | S Σ | 0..4 | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street Example US Core: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example US Core: EVERYTOWN
district | Σ | 0..1 | string | District name (aka county) Example General: Madison
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. Example US Core: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example US Core: 74047
country | S Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code)
period | Σ | 0..1 | Period | Time period when address was/is in use Example General: {"start":"2010-03-23","end":"2010-07-01"}
gender | Σ | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
birthDate | Σ | 0..1 | date | The date on which the practitioner was born
photo |  | 0..* | Attachment | Image of the person
qualification |  | 0..* | BackboneElement | Certification, licenses, or training pertaining to the provision of care
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
identifier |  | 0..* | Identifier | An identifier for this qualification for the practitioner
code |  | 1..1 | CodeableConcept | Coded representation of the qualification Binding: v2 table 0360, Version 2.7 (example): Specific qualification the practitioner has to provide a service.
period |  | 0..1 | Period | Period during which the qualification is valid
issuer |  | 0..1 | Reference(Organization) | Organization that regulates and issues the qualification
communication |  | 0..* | CodeableConcept | A language the practitioner can use in patient communication Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Practitioner.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Practitioner.identifier.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier.​type | Base | extensible | IdentifierType | 📦4.0.1 | FHIR Std.
Practitioner.identifier:NPI.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:NPI.​type | Base | extensible | IdentifierType | 📦4.0.1 | FHIR Std.
Practitioner.identifier:ein.​use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std.
Practitioner.identifier:ein.​type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std.
Practitioner.name.use | Base | required | NameUse | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std.
Practitioner.telecom.​use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​use | Base | required | AddressUse | 📍4.0.1 | FHIR Std.
Practitioner.address.​type | Base | required | AddressType | 📍4.0.1 | FHIR Std.
Practitioner.address.​state | Base | extensible | USPS Two Letter Alphabetic Codes | 📦1.0.0 | THO v6.5
Practitioner.gender | Base | required | AdministrativeGender | 📍4.0.1 | FHIR Std.
Practitioner.qualification.​code | Base | example | v2 table 0360, Version 2.7 | 📦0360 | FHIR Std.
Practitioner.communication | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Practitioner | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Practitioner | 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 | Practitioner | 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 | Practitioner | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Practitioner | 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()`
us-core-16 | error | Practitioner.identifier:NPI | NPI must be 10 digits | `value.matches('^[0-9]{10}$')`
us-core-17 | error | Practitioner.identifier:NPI | NPI check digit must be valid (Luhn algorithm check) | `(((select(value.substring(0,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger()) + 24)mod 10=0)`

Summary

Mandatory: 1 element(4 nested mandatory elements)

Slices

This structure defines the following Slices:

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

Maturity: 4

Other representations of profile: CSV, Excel, Schematron