US Quality Core Implementation Guide
0.1.0 - cibuild

US Quality Core Implementation Guide, published by ASTP. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/FHIR/us-quality-core/ and changes regularly. See the Directory of published versions

## Resource Profile: US Quality Core Practitioner

Official URL: http://fhir.org/guides/astp/us-quality-core/StructureDefinition/us-quality-core-practitioner | Version: 0.1.0
Active as of 2026-03-31 | Computable Name: USQualityCorePractitioner

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

Usage

See the patterns page for implementation and usage patterns.

### Examples

Referring Practitioner Example

USCDI+ Quality Elements:

- identifier: (USCDI+ Quality) An identifier for the person as this agent
- identifier.system: (USCDI+ Quality) The namespace for the identifier value
- identifier.value: (USCDI+ Quality) The value that is unique
- identifier:NPI: (USCDI+ Quality) An identifier for the person as this agent
- identifier:NPI.system: (USCDI+ Quality) The namespace for the identifier value
- identifier:NPI.value: (USCDI+ Quality) The value that is unique
- identifier:ein: (USCDI+ Quality) 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:ein.value: (USCDI+ Quality) The value that is unique
- name: (USCDI+ Quality) The name(s) associated with the practitioner
- name.family: (USCDI+ Quality) Family name (often called 'Surname')
- telecom: (USCDI+ Quality) A contact detail for the practitioner (that apply to all roles)
- telecom.system: (USCDI+ Quality) phone \| fax \| email \| pager \| url \| sms \| other
- telecom.value: (USCDI+ Quality) The actual contact point details
- address: (USCDI+ Quality) Address(es) of the practitioner
- address.line: (USCDI+ Quality) Street name, number, direction & P.O. Box etc.
- address.city: (USCDI+ Quality) Name of city, town etc.
- address.state: (USCDI+ Quality) Sub-unit of country (abbreviations ok)
- address.postalCode: (USCDI+ Quality) US Zip Codes
- address.country: (USCDI+ Quality) Country (e.g. can be ISO 3166 2 or 3 letter code)

Usages:

- Refer to this Profile: US Quality Core AdverseEvent, US Quality Core CareTeam, US Quality Core Claim, US Quality Core ClaimResponse... Show 19 more, US Quality Core Communication, US Quality Core CommunicationRequest, US Quality Core DiagnosticReport Profile for Laboratory Results Reporting, US Quality Core DiagnosticReport Profile for Report and Note Exchange, US Quality Core Encounter, US Quality Core Flag, US Quality Core ImagingStudy, US Quality Core Medication Not Requested, US Quality Core MedicationRequest, US Quality Core MedicationStatement, US Quality Core NonPatient Observation, US Quality Core Observation Screening Assessment, US Quality Core Observation Cancelled, US Quality Core PractitionerRole, US Quality Core Procedure, US Quality Core QuestionnaireResponse, US Quality Core Service Not Requested, US Quality Core ServiceRequest and US Quality Core Simple Observation
- Examples for this Profile: Practitioner/example
- CapabilityStatements using this Profile: US Quality Core Client CapabilityStatement and US Quality Core Server CapabilityStatement

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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 | (USCDI+ Quality) An identifier for the person as this agent Slice: Unordered, Open by pattern:$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 | (USCDI+ Quality) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (USCDI+ Quality) The value that is unique Example General: 123456
identifier:NPI | S Σ C | 0..* | Identifier | (USCDI+ Quality) 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
type |  | 0..1 | CodeableConcept | Description of identifier
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 | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value | Σ | 1..1 | string | (USCDI+ Quality) The value that is unique Example General: 123456
identifier:ein | S Σ | 0..1 | Identifier | (USCDI+ Quality) 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
type |  | 0..1 | CodeableConcept | Description of identifier
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 | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value | Σ | 1..1 | string | (USCDI+ Quality) The value that is unique Example General: 123456
name | S Σ | 1..* | HumanName | (USCDI+ Quality) 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 | (USCDI+ Quality) Family name (often called 'Surname')
telecom | S Σ | 0..* | ContactPoint | (USCDI+ Quality) A contact detail for the practitioner (that apply to all roles)
system | S Σ C | 0..1 | code | (USCDI+ Quality) phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | S Σ | 0..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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
city | S Σ | 0..1 | string | (USCDI+ Quality) Name of city, town etc. Example General: Erewhon
state | S Σ | 0..1 | string | (USCDI+ Quality) Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.
postalCode | S Σ | 0..1 | string | (USCDI+ Quality) US Zip Codes Example General: 9132
country | S Σ | 0..1 | string | (USCDI+ Quality) 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 | 📦6.1.0 | US Core v6.1

#### 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)`

This structure is derived from USCorePractitionerProfile

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 | (USCDI+ Quality) An identifier for the person as this agent Slice: Unordered, Open by pattern:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
system |  | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value
value |  | 1..1 | string | (USCDI+ Quality) The value that is unique
identifier:NPI | C | 0..* | Identifier | (USCDI+ Quality) An identifier for the person as this agent Required Pattern: At least the following
system |  | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value |  | 1..1 | string | (USCDI+ Quality) The value that is unique
identifier:ein |  | 0..1 | Identifier | (USCDI+ Quality) 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 | usual | official | temp | secondary | old (If known)
value |  | 1..1 | string | (USCDI+ Quality) The value that is unique
name |  | 1..* | HumanName | (USCDI+ Quality) The name(s) associated with the practitioner
family |  | 1..1 | string | (USCDI+ Quality) Family name (often called 'Surname')
telecom |  | 0..* | ContactPoint | (USCDI+ Quality) A contact detail for the practitioner (that apply to all roles)
system |  | 0..1 | code | (USCDI+ Quality) phone | fax | email | pager | url | sms | other
value |  | 0..1 | string | (USCDI+ Quality) The actual contact point details
address |  | 0..* | Address | (USCDI+ Quality) Address(es) of the practitioner
line |  | 0..4 | string | (USCDI+ Quality) Street name, number, direction & P.O. Box etc.
city |  | 0..1 | string | (USCDI+ Quality) Name of city, town etc.
state |  | 0..1 | string | (USCDI+ Quality) Sub-unit of country (abbreviations ok)
postalCode |  | 0..1 | string | (USCDI+ Quality) US Zip Codes
country |  | 0..1 | string | (USCDI+ Quality) Country (e.g. can be ISO 3166 2 or 3 letter code)
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 | (USCDI+ Quality) An identifier for the person as this agent Slice: Unordered, Open by pattern:$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 | (USCDI+ Quality) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 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 | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value | Σ | 1..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 Slice: Unordered, Open by value:url
use | ?!Σ | 1..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 | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value | Σ | 1..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | S Σ | 0..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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
city | S Σ | 0..1 | string | (USCDI+ Quality) Name of city, town etc. Example General: Erewhon
district | Σ | 0..1 | string | District name (aka county) Example General: Madison
state | S Σ | 0..1 | string | (USCDI+ Quality) Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.
postalCode | S Σ | 0..1 | string | (USCDI+ Quality) US Zip Codes Example General: 9132
country | S Σ | 0..1 | string | (USCDI+ Quality) 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 | 📦6.1.0 | US Core v6.1
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)`

This structure is derived from USCorePractitionerProfile

Summary

Mandatory: 2 elements(3 nested mandatory elements)

Slices

This structure defines the following Slices:

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

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 | (USCDI+ Quality) An identifier for the person as this agent Slice: Unordered, Open by pattern:$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 | (USCDI+ Quality) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (USCDI+ Quality) The value that is unique Example General: 123456
identifier:NPI | S Σ C | 0..* | Identifier | (USCDI+ Quality) 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
type |  | 0..1 | CodeableConcept | Description of identifier
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 | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value | Σ | 1..1 | string | (USCDI+ Quality) The value that is unique Example General: 123456
identifier:ein | S Σ | 0..1 | Identifier | (USCDI+ Quality) 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
type |  | 0..1 | CodeableConcept | Description of identifier
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 | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
system | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value | Σ | 1..1 | string | (USCDI+ Quality) The value that is unique Example General: 123456
name | S Σ | 1..* | HumanName | (USCDI+ Quality) 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 | (USCDI+ Quality) Family name (often called 'Surname')
telecom | S Σ | 0..* | ContactPoint | (USCDI+ Quality) A contact detail for the practitioner (that apply to all roles)
system | S Σ C | 0..1 | code | (USCDI+ Quality) phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | S Σ | 0..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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
city | S Σ | 0..1 | string | (USCDI+ Quality) Name of city, town etc. Example General: Erewhon
state | S Σ | 0..1 | string | (USCDI+ Quality) Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.
postalCode | S Σ | 0..1 | string | (USCDI+ Quality) US Zip Codes Example General: 9132
country | S Σ | 0..1 | string | (USCDI+ Quality) 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 | 📦6.1.0 | US Core v6.1

#### 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

This structure is derived from USCorePractitionerProfile

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 | (USCDI+ Quality) An identifier for the person as this agent Slice: Unordered, Open by pattern:$this
identifier:All Slices |  |  |  | Content/Rules for all slices
system |  | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value
value |  | 1..1 | string | (USCDI+ Quality) The value that is unique
identifier:NPI | C | 0..* | Identifier | (USCDI+ Quality) An identifier for the person as this agent Required Pattern: At least the following
system |  | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value |  | 1..1 | string | (USCDI+ Quality) The value that is unique
identifier:ein |  | 0..1 | Identifier | (USCDI+ Quality) 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 | usual | official | temp | secondary | old (If known)
value |  | 1..1 | string | (USCDI+ Quality) The value that is unique
name |  | 1..* | HumanName | (USCDI+ Quality) The name(s) associated with the practitioner
family |  | 1..1 | string | (USCDI+ Quality) Family name (often called 'Surname')
telecom |  | 0..* | ContactPoint | (USCDI+ Quality) A contact detail for the practitioner (that apply to all roles)
system |  | 0..1 | code | (USCDI+ Quality) phone | fax | email | pager | url | sms | other
value |  | 0..1 | string | (USCDI+ Quality) The actual contact point details
address |  | 0..* | Address | (USCDI+ Quality) Address(es) of the practitioner
line |  | 0..4 | string | (USCDI+ Quality) Street name, number, direction & P.O. Box etc.
city |  | 0..1 | string | (USCDI+ Quality) Name of city, town etc.
state |  | 0..1 | string | (USCDI+ Quality) Sub-unit of country (abbreviations ok)
postalCode |  | 0..1 | string | (USCDI+ Quality) US Zip Codes
country |  | 0..1 | string | (USCDI+ Quality) Country (e.g. can be ISO 3166 2 or 3 letter code)
Documentation for this format

Snapshot 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
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 | (USCDI+ Quality) An identifier for the person as this agent Slice: Unordered, Open by pattern:$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 | (USCDI+ Quality) The namespace for the identifier value Example General: http://www.acme.com/identifiers/patient
value | S Σ | 1..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 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 | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: http://hl7.org/fhir/sid/us-npi
value | Σ | 1..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 Slice: Unordered, Open by value:url
use | ?!Σ | 1..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 | Σ | 1..1 | uri | (USCDI+ Quality) The namespace for the identifier value Fixed Value: urn:oid:2.16.840.1.113883.4.4
value | Σ | 1..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point.
value | S Σ | 0..1 | string | (USCDI+ Quality) 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 | (USCDI+ Quality) 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 | (USCDI+ Quality) 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
city | S Σ | 0..1 | string | (USCDI+ Quality) Name of city, town etc. Example General: Erewhon
district | Σ | 0..1 | string | District name (aka county) Example General: Madison
state | S Σ | 0..1 | string | (USCDI+ Quality) Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes.
postalCode | S Σ | 0..1 | string | (USCDI+ Quality) US Zip Codes Example General: 9132
country | S Σ | 0..1 | string | (USCDI+ Quality) 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 | 📦6.1.0 | US Core v6.1
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)`

This structure is derived from USCorePractitionerProfile

Summary

Mandatory: 2 elements(3 nested mandatory elements)

Slices

This structure defines the following Slices:

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

Other representations of profile: CSV, Excel, Schematron