<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="hdir-ContactPoint-bankAccount" />
  <meta>
    <lastUpdated value="2022-11-02T08:27:55.8939368+00:00" />
  </meta>
  <url value="http://helsedirektoratet.no/fhir/StructureDefinition/hdir-ContactPoint-bankAccount" />
  <name value="HdirBankAccount" />
  <status value="draft" />
  <date value="2022-11-02T08:31:16.1874197+00:00" />
  <description value="Datatype for bank-konto slik at den brukes i flere profiler." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="servd" />
    <uri value="http://www.omg.org/spec/ServD/1.0/" />
    <name value="ServD" />
  </mapping>
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="ContactPoint" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ContactPoint" />
  <derivation value="constraint" />
  <differential>
    <element id="ContactPoint">
      <path value="ContactPoint" />
      <constraint>
        <key value="single-account-type" />
        <severity value="error" />
        <human value="Må være en type konto" />
        <expression value="(extension('http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Norwegian-Account') | extension('http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Foreign-Address-Account') | extension('http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Iban-Account')).count() = 1" />
        <source value="ContactPoint" />
      </constraint>
      <constraint>
        <key value="validIban" />
        <severity value="error" />
        <human value="@value må være gyldig Iban" />
        <expression value="extension('http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Iban-Account').count() = 1 implies value.matches('^([A-Z]{2}[ -]?[0-9]{2})(?=(?:[ -]?[A-Z0-9]){9,30}$)((?:[ -]?[A-Z0-9]{3,5}){2,7})([ -]?[A-Z0-9]{1,3})?$')" />
        <source value="ContactPoint" />
      </constraint>
      <constraint>
        <key value="validNorwegianAccount" />
        <severity value="error" />
        <human value="@value må være gyldig norsk kontonummer" />
        <expression value="extension('http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Norwegian-Account').count() = 1 implies value.matches('^[0-9]{11}$')" />
        <source value="ContactPoint" />
      </constraint>
    </element>
    <element id="ContactPoint.extension">
      <path value="ContactPoint.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="ContactPoint.extension:norwegianAccount">
      <path value="ContactPoint.extension" />
      <sliceName value="norwegianAccount" />
      <min value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Norwegian-Account" />
      </type>
    </element>
    <element id="ContactPoint.extension:norwegianAccount.extension">
      <path value="ContactPoint.extension.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0" />
    </element>
    <element id="ContactPoint.extension:norwegianAccount.extension:kidNumber">
      <path value="ContactPoint.extension.extension" />
      <sliceName value="kidNumber" />
      <min value="0" />
    </element>
    <element id="ContactPoint.extension:norwegianAccount.extension:kidNumber.value[x]">
      <path value="ContactPoint.extension.extension.value[x]" />
      <constraint>
        <key value="validKid" />
        <severity value="error" />
        <human value="@value må være gyldig Kid nummer." />
        <expression value="$this.matches('^[0-9]{2,25}$')" />
      </constraint>
    </element>
    <element id="ContactPoint.extension:foreignAddressAccount">
      <path value="ContactPoint.extension" />
      <sliceName value="foreignAddressAccount" />
      <min value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Foreign-Address-Account" />
      </type>
    </element>
    <element id="ContactPoint.extension:ibanAccount">
      <path value="ContactPoint.extension" />
      <sliceName value="ibanAccount" />
      <min value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Iban-Account" />
      </type>
    </element>
    <element id="ContactPoint.extension:owner">
      <path value="ContactPoint.extension" />
      <sliceName value="owner" />
      <min value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://helsedirektoratet.no/fhir/StructureDefinition/hdir-OwnerName" />
      </type>
    </element>
    <element id="ContactPoint.extension:ubwFirma">
      <path value="ContactPoint.extension" />
      <sliceName value="ubwFirma" />
      <min value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://helsedirektoratet.no/fhir/StructureDefinition/hdir-Ubw-Firma" />
      </type>
    </element>
    <element id="ContactPoint.extension:saksnummer">
      <path value="ContactPoint.extension" />
      <sliceName value="saksnummer" />
      <min value="0" />
      <type>
        <code value="Extension" />
        <profile value="http://helsedirektoratet.no/fhir/StructureDefinition/saksnummer" />
      </type>
    </element>
    <element id="ContactPoint.system">
      <path value="ContactPoint.system" />
      <min value="1" />
      <fixedCode value="other" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ContactPointSystem" />
        </extension>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/contact-point-system" />
      </binding>
    </element>
    <element id="ContactPoint.value">
      <path value="ContactPoint.value" />
      <short value="Kontonummer" />
      <min value="1" />
      <condition value="validIban" />
      <condition value="validNorwegianAccount" />
    </element>
    <element id="ContactPoint.use">
      <path value="ContactPoint.use" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ContactPointUse" />
        </extension>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/contact-point-use" />
      </binding>
    </element>
  </differential>
</StructureDefinition>