<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="au-practitioner" />
  <url value="http://hl7.org.au/fhir/StructureDefinition/au-practitioner" />
  <version value="1.1.0" />
  <name value="AUBasePractitioner" />
  <title value="AU Base Practitioner" />
  <status value="draft" />
  <date value="2017-03-11T06:30:54+00:00" />
  <publisher value="Health Level Seven Australia (Patient Administration WG)" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="http://hl7.org.au" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="This profile defines a practitioner administration details structure that includes core localisation concepts for use in an Australian context." />
  <fhirVersion value="3.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Practitioner" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
  <derivation value="constraint" />
  <snapshot />
  <differential>
    <element id="Practitioner">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="trial-use" />
      </extension>
      <path value="Practitioner" />
      <short value="A practitioner in an Australian healthcare context" />
    </element>
    <element id="Practitioner.identifier">
      <path value="Practitioner.identifier" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="type" />
        </discriminator>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Practitioner.identifier:hpii">
      <path value="Practitioner.identifier" />
      <sliceName value="hpii" />
      <short value="Healthcare Provider Identifier – Individual (HPI-I)" />
      <definition value="National identifier Healthcare Provider Identifier for Individuals (HPI-I)." />
      <max value="1" />
      <constraint>
        <key value="inv-hpii-value-0" />
        <requirements value="The value shall be a 16 digit number." />
        <severity value="error" />
        <human value="HPI-I shall be an exactly 16 digit number" />
        <expression value="value.matches('^([0-9]{16})$')" />
      </constraint>
      <constraint>
        <key value="inv-hpii-value-1" />
        <severity value="error" />
        <human value="HPI-I prefix is 800361" />
        <expression value="value.startsWith('800361')" />
      </constraint>
      <constraint>
        <key value="inv-hpii-value-2" />
        <requirements value="HPI-I shall pass the Luhn algorithm check" />
        <severity value="error" />
        <human value="The identifier shall pass the Luhn algorithm check" />
        <expression value="(((select(value.substring(0,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger())+(select(value.substring(10,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)" />
      </constraint>
    </element>
    <element id="Practitioner.identifier:hpii.type">
      <path value="Practitioner.identifier.type" />
      <short value="Coded identifier type for HPI-I" />
      <patternCodeableConcept>
        <coding>
          <system value="http://hl7.org/fhir/v2/0203" />
          <code value="NPI" />
        </coding>
      </patternCodeableConcept>
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="IdentifierType" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Local Identifier Type" />
        <valueSetReference>
          <reference value="http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Practitioner.identifier:hpii.type.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.identifier.type.text" />
      <fixedString value="HPI-I" />
    </element>
    <element id="Practitioner.identifier:hpii.system">
      <path value="Practitioner.identifier.system" />
      <short value="Namespace for HPI-I" />
      <definition value="This namespace is used for qualified identifiers to represent Healthcare Providier Identifier for Individuals (HPI-I) numbers. An example of the syntax of a HPI-I represented as a qualified identifer using this namespace is: http://ns.electronichealth.net.au/id/hi/hpii/1.0/8003610000000000" />
      <min value="1" />
      <fixedUri value="http://ns.electronichealth.net.au/id/hi/hpii/1.0" />
    </element>
    <element id="Practitioner.identifier:hpii.value">
      <path value="Practitioner.identifier.value" />
      <short value="HPI-I number" />
      <min value="1" />
      <example>
        <label value="HPI-I number" />
        <valueString value="8003619900015717" />
      </example>
      <maxLength value="16" />
    </element>
    <element id="Practitioner.identifier:medicarePrescriberNumber">
      <path value="Practitioner.identifier" />
      <sliceName value="medicarePrescriberNumber" />
      <short value="Medicare Prescriber Number" />
      <definition value="Medicare Australia allocated prescriber number." />
    </element>
    <element id="Practitioner.identifier:medicarePrescriberNumber.type">
      <path value="Practitioner.identifier.type" />
      <short value="Coded identifier type for prescriber number" />
      <patternCodeableConcept>
        <coding>
          <system value="http://hl7.org.au/fhir/v2/0203" />
          <code value="PRES" />
        </coding>
      </patternCodeableConcept>
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="IdentifierType" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Local identifier type" />
        <valueSetReference>
          <reference value="http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Practitioner.identifier:medicarePrescriberNumber.type.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.identifier.type.text" />
      <fixedString value="Prescriber Number" />
    </element>
    <element id="Practitioner.identifier:medicarePrescriberNumber.system">
      <path value="Practitioner.identifier.system" />
      <short value="Namespace for prescriber number" />
      <min value="1" />
      <fixedUri value="http://ns.electronichealth.net.au/id/medicare-prescriber-number" />
    </element>
    <element id="Practitioner.identifier:medicarePrescriberNumber.value">
      <path value="Practitioner.identifier.value" />
      <short value="Medicare Prescriber number" />
      <min value="1" />
      <example>
        <label value="prescriber number" />
        <valueString value="453221" />
      </example>
    </element>
    <element id="Practitioner.identifier:careAgencyEmployeeIdentifier">
      <path value="Practitioner.identifier" />
      <sliceName value="careAgencyEmployeeIdentifier" />
      <short value="Care Agency Employee (CAE) Identifier" />
      <definition value="An identifier that applies to this person in this role. This identifier is used for qualified identifiers to represent a My Health Record Care Agency Employees Identifier (CAE-I) numbers." />
      <constraint>
        <key value="inv-caei-value-0" />
        <requirements value="The value shall be a 16 digit number." />
        <severity value="error" />
        <human value="CAE identifier shall be an exactly 16 digit number" />
        <expression value="value.matches('^([0-9]{16})$')" />
      </constraint>
      <constraint>
        <key value="inv-caei-value-1" />
        <severity value="error" />
        <human value="CAE identifier shall contain a prefix of 900360" />
        <expression value="value.startsWith('900360')" />
      </constraint>
      <constraint>
        <key value="inv-caei-value-2" />
        <severity value="error" />
        <human value="CAE identifier shall pass the Luhn algorithm check" />
        <expression value="(((select(value.substring(0,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(1,1).toInteger())+(select(value.substring(2,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(3,1).toInteger())+(select(value.substring(4,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(5,1).toInteger())+(select(value.substring(6,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(7,1).toInteger())+(select(value.substring(8,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(9,1).toInteger())+(select(value.substring(10,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(11,1).toInteger())+(select(value.substring(12,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(13,1).toInteger())+(select(value.substring(14,1).toInteger()).select(iif($this&lt;5, $this*2, (($this*2)-9))))+(value.substring(15,1).toInteger()))mod 10=0)" />
      </constraint>
    </element>
    <element id="Practitioner.identifier:careAgencyEmployeeIdentifier.type">
      <path value="Practitioner.identifier.type" />
      <short value="Identifier type for CAE identifier" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="IdentifierType" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Local identifier type" />
        <valueSetReference>
          <reference value="http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Practitioner.identifier:careAgencyEmployeeIdentifier.type.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.identifier.type.text" />
      <fixedString value="Care Agency Employee Identifier" />
    </element>
    <element id="Practitioner.identifier:careAgencyEmployeeIdentifier.system">
      <path value="Practitioner.identifier.system" />
      <short value="Namespace for CAE identifier" />
      <min value="1" />
      <fixedUri value="http://ns.electronichealth.net.au/id/pcehr/caei/1.0" />
    </element>
    <element id="Practitioner.identifier:careAgencyEmployeeIdentifier.value">
      <path value="Practitioner.identifier.value" />
      <short value="CAE identifier number" />
      <min value="1" />
    </element>
    <element id="Practitioner.identifier:ahpraRegistration">
      <path value="Practitioner.identifier" />
      <sliceName value="ahpraRegistration" />
      <short value="Australian Health Practitioner Regulation Agency (AHPRA) registration as identifier" />
      <definition value="Details of registration identifier of the Australian Health Practitioner Regulation Authority (AHPRA)." />
      <constraint>
        <key value="inv-ahpra-value-id-0" />
        <severity value="error" />
        <human value="The AHPRA identifier value shall start with 3 uppercase letters, followed by 10 digits." />
        <expression value="value.matches('^[A-Z]{3}[0-9]{10}$')" />
      </constraint>
    </element>
    <element id="Practitioner.identifier:ahpraRegistration.type">
      <path value="Practitioner.identifier.type" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://hl7.org.au/fhir/v2/0203" />
          <code value="AHPRA" />
        </coding>
      </patternCodeableConcept>
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="IdentifierType" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Local identifier type" />
        <valueSetReference>
          <reference value="http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Practitioner.identifier:ahpraRegistration.type.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.identifier.type.text" />
      <min value="1" />
      <fixedString value="AHPRA Registration Number" />
    </element>
    <element id="Practitioner.identifier:ahpraRegistration.system">
      <path value="Practitioner.identifier.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org.au/id/ahpra-registration-number" />
    </element>
    <element id="Practitioner.identifier:ahpraRegistration.value">
      <path value="Practitioner.identifier.value" />
      <min value="1" />
      <example>
        <label value="AHPRA registration number" />
        <valueString value="ANZ1234567890" />
      </example>
    </element>
    <element id="Practitioner.qualification">
      <path value="Practitioner.qualification" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="identifier.system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Practitioner.qualification:ahpraRegistration">
      <path value="Practitioner.qualification" />
      <sliceName value="ahpraRegistration" />
      <short value="Australian Health Practitioner Regulation Agency (AHPRA) qualification details" />
      <definition value="Details of registration with the Australian Health Practitioner Regulation Authority (AHPRA)." />
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.identifier">
      <path value="Practitioner.qualification.identifier" />
      <short value="AHPRA Registration Number" />
      <min value="1" />
      <max value="1" />
      <constraint>
        <key value="inv-ahpra-qual-value-0" />
        <severity value="error" />
        <human value="The AHPRA registration value shall start with 3 uppercase letters, followed by 10 digits." />
        <expression value="value.matches('^[A-Z]{3}[0-9]{10}$')" />
      </constraint>
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.identifier.type">
      <path value="Practitioner.qualification.identifier.type" />
      <short value="Coded identifier type for AHPRA registration number" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://hl7.org.au/fhir/v2/0203" />
          <code value="AHPRA" />
        </coding>
      </patternCodeableConcept>
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="IdentifierType" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding">
          <valueBoolean value="true" />
        </extension>
        <strength value="required" />
        <description value="Local Identifier Type" />
        <valueSetReference>
          <reference value="http://hl7.org.au/fhir/ValueSet/au-hl7v2-0203" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.identifier.type.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.qualification.identifier.type.text" />
      <min value="1" />
      <fixedString value="AHPRA Registration Number" />
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.identifier.system">
      <path value="Practitioner.qualification.identifier.system" />
      <short value="Namespace for AHPRA registration number" />
      <min value="1" />
      <fixedUri value="http://hl7.org.au/id/ahpra-registration-number" />
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.identifier.value">
      <path value="Practitioner.qualification.identifier.value" />
      <short value="AHPRA registration number" />
      <min value="1" />
      <example>
        <label value="AHPRA registration number" />
        <valueString value="ANZ1234567890" />
      </example>
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.code">
      <path value="Practitioner.qualification.code" />
      <short value="AHPRA codings" />
      <definition value="AHPRA registration type, sub-type, profession, division and specialty." />
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.code.text">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.qualification.code.text" />
      <short value="AHPRA Registration Role" />
      <min value="1" />
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.issuer">
      <path value="Practitioner.qualification.issuer" />
      <min value="1" />
    </element>
    <element id="Practitioner.qualification:ahpraRegistration.issuer.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Practitioner.qualification.issuer.display" />
      <min value="1" />
      <fixedString value="AHPRA" />
    </element>
    <element id="Practitioner.communication">
      <path value="Practitioner.communication" />
      <binding>
        <strength value="extensible" />
        <valueSetReference>
          <reference value="https://healthterminologies.gov.au/fhir/ValueSet/common-languages-australia-2" />
        </valueSetReference>
      </binding>
    </element>
  </differential>
</StructureDefinition>