Da Vinci - Coverage Requirements Discovery
2.2.0-snapshot - STU 2.2 Peer Review

Da Vinci - Coverage Requirements Discovery, published by HL7 International / Financial Management. This guide is not an authorized publication; it is the continuous build for version 2.2.0-snapshot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/davinci-crd/ and changes regularly. See the Directory of published versions

## Resource Profile: CRD Practitioner

Official URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner | Version: 2.2.0-snapshot | Highlight text changes?
Standards status: Trial-use Active as of 2026-02-19 | Maturity Level: 4 | Computable Name: CRDPractitioner
Other Identifiers: OID:2.16.840.1.113883.4.642.40.18.42.53

This profile specifies additional constraints on the US Core Practitioner profile to support coverage requirements discovery.

Usages:

- Refer to this Profile: CRD Base Appointment, CRD Communication Request, CRD Device Request, CRD Medication Request... Show 5 more, CRD Nutrition Order, CRD Service Request, CRD Dispatch Task, CRD Questionnaire Task and CRD Vision Prescription

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(7.0.0) | A person with a formal responsibility in the provisioning of healthcare or related services This profile also complies with the profiles US Core Practitioner Profile (6.1.0) and US Core Practitioner Profile (3.1.1)
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 | An identifier for the person as this agent Slice: Unordered, Open by pattern:$this
identifier:NPI | S Σ C | 0..* | Identifier | 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)
identifier:tin | S Σ | 0..1 | Identifier | U.S. Personal Tax Id Number 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)
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 General: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example General: EVERYTOWN
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: UspsTwoLetterAlphabeticCodes (7.0.0) (extensible): Two letter USPS alphabetic codes. Example General: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example General: 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.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 | 📍7.0.0 | US Core v7.0

#### 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(7.0.0) | A person with a formal responsibility in the provisioning of healthcare or related services This profile also complies with the profiles US Core Practitioner Profile (6.1.0) and US Core Practitioner Profile (3.1.1)
Slices for identifier |  |  |  | Content/Rules for all slices
identifier:tin | S | 0..1 | Identifier | U.S. Personal Tax Id Number 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
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile(7.0.0) | A person with a formal responsibility in the provisioning of healthcare or related services This profile also complies with the profiles US Core Practitioner Profile (6.1.0) and US Core Practitioner Profile (3.1.1)
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 | An identifier for the person as this agent Slice: Unordered, Open by pattern:$this
identifier:NPI | S Σ C | 0..* | Identifier | 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)
identifier:tin | S Σ | 0..1 | Identifier | U.S. Personal Tax Id Number 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)
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 General: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example General: EVERYTOWN
district | Σ | 0..1 | string | District name (aka county) Example General: Madison
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: UspsTwoLetterAlphabeticCodes (7.0.0) (extensible): Two letter USPS alphabetic codes. Example General: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example General: 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.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 | 📍7.0.0 | US Core v7.0
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

Must-Support: 1 element

Maturity: 4

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile(7.0.0) | A person with a formal responsibility in the provisioning of healthcare or related services This profile also complies with the profiles US Core Practitioner Profile (6.1.0) and US Core Practitioner Profile (3.1.1)
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 | An identifier for the person as this agent Slice: Unordered, Open by pattern:$this
identifier:NPI | S Σ C | 0..* | Identifier | 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)
identifier:tin | S Σ | 0..1 | Identifier | U.S. Personal Tax Id Number 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)
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 General: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example General: EVERYTOWN
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: UspsTwoLetterAlphabeticCodes (7.0.0) (extensible): Two letter USPS alphabetic codes. Example General: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example General: 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.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 | 📍7.0.0 | US Core v7.0

#### 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(7.0.0) | A person with a formal responsibility in the provisioning of healthcare or related services This profile also complies with the profiles US Core Practitioner Profile (6.1.0) and US Core Practitioner Profile (3.1.1)
Slices for identifier |  |  |  | Content/Rules for all slices
identifier:tin | S | 0..1 | Identifier | U.S. Personal Tax Id Number 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
Documentation for this format

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Practitioner |  | 0..* | USCorePractitionerProfile(7.0.0) | A person with a formal responsibility in the provisioning of healthcare or related services This profile also complies with the profiles US Core Practitioner Profile (6.1.0) and US Core Practitioner Profile (3.1.1)
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 | An identifier for the person as this agent Slice: Unordered, Open by pattern:$this
identifier:NPI | S Σ C | 0..* | Identifier | 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)
identifier:tin | S Σ | 0..1 | Identifier | U.S. Personal Tax Id Number 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)
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 General: 49 MEADOW ST
city | S Σ | 0..1 | string | Name of city, town etc. Example General: Erewhon Example General: EVERYTOWN
district | Σ | 0..1 | string | District name (aka county) Example General: Madison
state | S Σ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: UspsTwoLetterAlphabeticCodes (7.0.0) (extensible): Two letter USPS alphabetic codes. Example General: OK
postalCode | S Σ | 0..1 | string | US Zip Codes Example General: 9132 Example General: 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.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 | 📍7.0.0 | US Core v7.0
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

Must-Support: 1 element

Maturity: 4

Other representations of profile: CSV, Excel, Schematron