description: This profile defines a practitioner administration details structure that includes core localisation concepts for use in an Australian context. package_name: rs/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://hl7.org/fhir/v2/0203'} system: http://ns.electronichealth.net.au/id/hi/hpii/1.0 schema: short: Healthcare Provider Identifier – Individual (HPI-I) constraint: inv-hpii-value-0: {human: HPI-I shall be an exactly 16 digit number, severity: error, expression: 'value.matches(''^([0-9]{16})$'')', requirements: The value shall be a 16 digit number.} inv-hpii-value-1: {human: HPI-I prefix is 800361, severity: error, expression: value.startsWith('800361')} inv-hpii-value-2: {human: The 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)', requirements: HPI-I shall pass the Luhn algorithm check} index: 1 elements: type: short: Coded identifier type for HPI-I pattern: type: CodeableConcept value: coding: - {code: NPI, system: 'http://hl7.org/fhir/v2/0203'} type: CodeableConcept index: 2 elements: text: pattern: {type: string, value: HPI-I} type: string index: 3 system: short: Namespace for HPI-I pattern: {type: uri, value: 'http://ns.electronichealth.net.au/id/hi/hpii/1.0'} type: uri index: 4 value: {short: HPI-I number, maxLength: 16, index: 5} required: [system, value] medicarePrescriberNumber: match: type: coding: - {code: PRES, system: 'http://hl7.org.au/fhir/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 pattern: type: CodeableConcept value: coding: - {code: PRES, system: 'http://hl7.org.au/fhir/v2/0203'} type: CodeableConcept index: 7 elements: text: pattern: {type: string, value: Prescriber Number} type: string index: 8 system: short: Namespace for prescriber number pattern: {type: uri, value: 'http://ns.electronichealth.net.au/id/medicare-prescriber-number'} type: uri index: 9 value: {short: Medicare Prescriber number, index: 10} required: [system, value] 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-value-0: {human: CAE identifier shall be an exactly 16 digit number, severity: error, expression: 'value.matches(''^([0-9]{16})$'')', requirements: The value shall be a 16 digit number.} inv-caei-value-1: {human: CAE identifier shall contain a prefix of 900360, severity: error, expression: value.startsWith('900360')} inv-caei-value-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 index: 12 elements: text: pattern: {type: string, value: Care Agency Employee Identifier} type: string index: 13 system: short: Namespace for CAE identifier pattern: {type: uri, value: 'http://ns.electronichealth.net.au/id/pcehr/caei/1.0'} type: uri index: 14 value: {short: CAE identifier number, index: 15} required: [system, value] ahpraRegistration: match: type: coding: - {code: AHPRA, system: 'http://hl7.org.au/fhir/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-value-id-0: {human: 'The AHPRA identifier value shall start with 3 uppercase letters, followed by 10 digits.', severity: error, expression: 'value.matches(''^[A-Z]{3}[0-9]{10}$'')'} index: 16 elements: type: pattern: type: CodeableConcept value: coding: - {code: AHPRA, system: 'http://hl7.org.au/fhir/v2/0203'} type: CodeableConcept index: 17 elements: text: pattern: {type: string, value: AHPRA Registration Number} type: string index: 18 required: [text] system: pattern: {type: uri, value: 'http://hl7.org.au/id/ahpra-registration-number'} type: uri index: 19 value: {index: 20} required: [system, type, value] 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-qual-value-0: {human: 'The AHPRA registration value shall start with 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 pattern: type: CodeableConcept value: coding: - {code: AHPRA, system: 'http://hl7.org.au/fhir/v2/0203'} type: CodeableConcept index: 24 elements: text: pattern: {type: string, value: AHPRA Registration Number} type: string index: 25 required: [text] system: short: Namespace for AHPRA registration number pattern: {type: uri, value: 'http://hl7.org.au/id/ahpra-registration-number'} type: uri index: 26 value: {short: AHPRA registration number, index: 27} required: [system, type, value] 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} type: string index: 31 required: [display] required: [identifier, issuer] communication: {index: 32} package_version: 1.1.1 class: profile kind: resource url: http://hl7.org.au/fhir/StructureDefinition/au-practitioner base: http://hl7.org/fhir/StructureDefinition/Practitioner version: 1.1.1