PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.au.base@2.0.0
    http://hl7.org.au/fhir/StructureDefinition/au-practitioner
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