<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="dk-core-cpr-identifier" />
  <url value="http://hl7.dk/fhir/core/StructureDefinition/dk-core-cpr-identifier" />
  <version value="latest" />
  <name value="DkCoreCprIdentifier" />
  <title value="Danish Core Central Person Register Extension" />
  <status value="draft" />
  <date value="2019-11-02" />
  <publisher value="ehealth.sundhed.dk" />
  <description value="This structure holds the danish *Central Person Register* (CPR) identifier" />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <type value="Identifier" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Identifier" />
  <derivation value="constraint" />
  <differential>
    <element id="Identifier.use">
      <path value="Identifier.use" />
      <fixedCode value="official" />
    </element>
    <element id="Identifier.type.coding.system">
      <path value="Identifier.type.coding.system" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v2-0203" />
    </element>
    <element id="Identifier.type.coding.code">
      <path value="Identifier.type.coding.code" />
      <fixedCode value="NNDNK" />
    </element>
    <element id="Identifier.system">
      <path value="Identifier.system" />
      <min value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.dk/fhir/core/ValueSet/dk-core-cpr-identifier-system" />
      </binding>
    </element>
    <element id="Identifier.value">
      <path value="Identifier.value" />
      <min value="1" />
      <maxLength value="10" />
      <constraint>
        <key value="cpr" />
        <requirements value="Requirement of danish civil registration numbers" />
        <severity value="error" />
        <human value="Requirement of danish civil registration numbers" />
        <expression value="matches('^(?:(?:31(?:0[13578]|1[02])|(?:30|29)(?:0[13-9]|1[0-2])|(?:0[1-9]|1[0-9]|2[0-8])(?:0[1-9]|1[0-2]))[0-9]{2}[0-9]|290200[4-9]|2902(?:(?!00)[02468][048]|[13579][26])[0-3])[0-9]{3}$')" />
        <source value="https://cpr.dk/cpr-systemet/opbygning-af-cpr-nummeret/#:~:text=5%20%2D%206%20position%20angiver%20personens,i%20personnummeret%20angiver%20personens%20k%C3%B8n." />
      </constraint>
      <mustSupport value="false" />
    </element>
  </differential>
</StructureDefinition>