description: This profile defines a practitioner administration details structure that includes core localisation concepts for use in an Australian context. package_name: hl7.fhir.au.base derivation: constraint name: AUBasePractitioner type: Practitioner elements: identifier: index: 0 slicing: rules: open discriminator: - {path: type, type: pattern} - {path: system, type: value} min: null slices: hpii: match: type: coding: - {code: NPI, system: 'http://terminology.hl7.org/CodeSystem/v2-0203'} system: http://ns.electronichealth.net.au/id/hi/hpii/1.0 schema: short: Healthcare Provider Identifier – Individual (HPI-I) constraint: inv-hpii-0: {human: HPI-I shall be 16 digits, severity: error, expression: 'value.matches(''^([0-9]{16})$'')', requirements: The value shall be 16 digits.} inv-hpii-1: {human: HPI-I prefix shall be 800361, severity: error, expression: value.startsWith('800361')} inv-hpii-2: {human: HPI-I shall pass the 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())+(select(value.substring(10,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)', requirements: HPI-I shall pass the Luhn algorithm check} index: 1 elements: type: short: Coded identifier type for HPI-I binding: {strength: required, valueSet: 'http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203'} pattern: type: CodeableConcept value: coding: - {code: NPI, system: 'http://terminology.hl7.org/CodeSystem/v2-0203'} index: 2 elements: text: pattern: {type: String, value: HPI-I} index: 3 system: short: Namespace for HPI-I pattern: {type: Uri, value: 'http://ns.electronichealth.net.au/id/hi/hpii/1.0'} index: 4 value: {short: HPI-I number, maxLength: 16, index: 5} required: [value, system] medicarePrescriberNumber: match: type: coding: - {code: PRES, system: 'http://terminology.hl7.org.au/CodeSystem/v2-0203'} system: http://ns.electronichealth.net.au/id/medicare-prescriber-number schema: short: Medicare Prescriber Number index: 6 elements: type: short: Coded identifier type for prescriber number binding: {strength: required, valueSet: 'http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203'} pattern: type: CodeableConcept value: coding: - {code: PRES, system: 'http://terminology.hl7.org.au/CodeSystem/v2-0203'} index: 7 elements: text: pattern: {type: String, value: Prescriber Number} index: 8 system: short: Namespace for prescriber number pattern: {type: Uri, value: 'http://ns.electronichealth.net.au/id/medicare-prescriber-number'} index: 9 value: {short: Medicare Prescriber number, index: 10} required: [value, system] careAgencyEmployeeIdentifier: match: {type: null, system: 'http://ns.electronichealth.net.au/id/pcehr/caei/1.0'} schema: short: Care Agency Employee (CAE) Identifier constraint: inv-caei-0: {human: CAE identifier shall be 16 digits, severity: error, expression: 'value.matches(''^([0-9]{16})$'')', requirements: The value shall be 16 digits.} inv-caei-1: {human: CAE identifier prefix shall be 900360, severity: error, expression: value.startsWith('900360')} inv-caei-2: {human: CAE identifier shall pass the 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())+(select(value.substring(10,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this<5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)'} index: 11 elements: type: short: Identifier type for CAE identifier binding: {strength: required, valueSet: 'http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203'} index: 12 elements: text: pattern: {type: String, value: Care Agency Employee Identifier} index: 13 system: short: Namespace for CAE identifier pattern: {type: Uri, value: 'http://ns.electronichealth.net.au/id/pcehr/caei/1.0'} index: 14 value: {short: CAE identifier number, index: 15} required: [value, system] ahpraRegistration: match: type: coding: - {code: AHPRA, system: 'http://terminology.hl7.org.au/CodeSystem/v2-0203'} system: http://hl7.org.au/id/ahpra-registration-number schema: short: Australian Health Practitioner Regulation Agency (AHPRA) registration as identifier constraint: inv-ahpra-0: {human: 'AHPRA identifier shall be 3 uppercase letters, followed by 10 digits', severity: error, expression: 'value.matches(''^[A-Z]{3}[0-9]{10}$'')'} index: 16 elements: type: binding: {strength: required, valueSet: 'http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203'} pattern: type: CodeableConcept value: coding: - {code: AHPRA, system: 'http://terminology.hl7.org.au/CodeSystem/v2-0203'} index: 17 elements: text: pattern: {type: String, value: AHPRA Registration Number} index: 18 required: [text] system: pattern: {type: Uri, value: 'http://hl7.org.au/id/ahpra-registration-number'} index: 19 value: {index: 20} required: [value, type, system] qualification: index: 21 slicing: rules: open discriminator: - {path: identifier.system, type: value} min: null slices: ahpraRegistration: match: identifier: {system: 'http://hl7.org.au/id/ahpra-registration-number'} schema: short: Australian Health Practitioner Regulation Agency (AHPRA) qualification details index: 22 elements: identifier: short: AHPRA Registration Number constraint: inv-ahpra-1: {human: 'AHPRA registration value shall be 3 uppercase letters, followed by 10 digits', severity: error, expression: 'value.matches(''^[A-Z]{3}[0-9]{10}$'')'} index: 23 elements: type: short: Coded identifier type for AHPRA registration number binding: {strength: required, valueSet: 'http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203'} pattern: type: CodeableConcept value: coding: - {code: AHPRA, system: 'http://terminology.hl7.org.au/CodeSystem/v2-0203'} index: 24 elements: text: pattern: {type: String, value: AHPRA Registration Number} index: 25 required: [text] system: short: Namespace for AHPRA registration number pattern: {type: Uri, value: 'http://hl7.org.au/id/ahpra-registration-number'} index: 26 value: {short: AHPRA registration number, index: 27} required: [value, type, system] code: short: AHPRA codings index: 28 elements: text: {short: AHPRA Registration Role, index: 29} required: [text] issuer: index: 30 elements: display: pattern: {type: String, value: AHPRA} index: 31 required: [display] required: [issuer, identifier] communication: binding: {strength: extensible, valueSet: 'https://healthterminologies.gov.au/fhir/ValueSet/common-languages-australia-2'} index: 32 package_version: 2.0.0 class: profile kind: resource url: http://hl7.org.au/fhir/StructureDefinition/au-practitioner base: http://hl7.org/fhir/StructureDefinition/Practitioner version: 2.0.1