description: This profile sets minimum expectations for the Practitioner resource to record, search, and fetch basic demographics and other administrative information about an individual practitioner to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets **SHALL** be present and constrains the way the elements are used and constrains the way the elements are used when using the profile. It provides the floor for standards development for specific use cases. package_name: rs/hl7.fhir.us.core derivation: constraint name: USCorePractitionerProfile type: Practitioner elements: identifier: mustSupport: true index: 0 elements: system: {type: uri, mustSupport: true, index: 1} value: {type: string, mustSupport: true, index: 2} required: [system, value] slicing: rules: open discriminator: - {path: $this, type: pattern} min: 1 slices: NPI: match: {system: 'http://hl7.org/fhir/sid/us-npi'} schema: constraint: us-core-16: {human: NPI must be 10 digits, severity: error, expression: 'value.matches(''^[0-9]{10}$'')'} us-core-17: {human: NPI check digit must be valid (Luhn algorithm check), severity: error, expression: '(((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)'} mustSupport: true pattern: type: Identifier value: {system: 'http://hl7.org/fhir/sid/us-npi'} type: Identifier index: 3 name: mustSupport: true index: 4 elements: family: {type: string, mustSupport: true, index: 5} required: [family] telecom: mustSupport: true index: 6 elements: system: {mustSupport: true, index: 7} value: {mustSupport: true, index: 8} address: short: Address(es) of the practitioner mustSupport: true index: 9 elements: line: {type: string, mustSupport: true, array: true, max: 4, index: 10} city: {type: string, mustSupport: true, index: 11} state: type: string binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/us/core/ValueSet/us-core-usps-state'} mustSupport: true index: 12 postalCode: {type: string, short: US Zip Codes, mustSupport: true, index: 13} country: {type: string, mustSupport: true, index: 14} package_version: 6.1.0-snapshot1 class: profile kind: resource url: http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner base: http://hl7.org/fhir/StructureDefinition/Practitioner version: 6.1.0-snapshot1 required: [identifier, name]