<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Krankenversicherungsverhaeltnis" />
  <name value="KBV_PR_FOR_Krankenversicherungsverhaeltnis" />
  <status value="draft" />
  <fhirVersion value="4.0.0" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="cdanetv4" />
    <uri value="http://www.cda-adc.ca/en/services/cdanet/" />
    <name value="Canadian Dental Association eclaims standard" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="cpha3pharm" />
    <uri value="http://www.pharmacists.ca/" />
    <name value="Canadian Pharmacy Associaiton eclaims standard" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Coverage" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Coverage" />
  <derivation value="constraint" />
  <differential>
    <element id="Coverage">
      <path value="Coverage" />
      <constraint>
        <key value="besondere-personengruppe-GKV" />
        <severity value="error" />
        <human value="Ist der Kostentraegertyp  GKV ausgewählt, so muss auch ein Wert der besondere-personengruppe vorhanden sein" />
        <expression value="type.coding.code='GKV' implies extension('http://fhir.de/StructureDefinition/gkv/besondere-personengruppe').exists()" />
        <source value="Coverage" />
      </constraint>
      <constraint>
        <key value="besondere-personengruppe-SKT" />
        <severity value="error" />
        <human value="Ist der Kostentraegertyp SKT ausgewählt, so muss auch ein Wert der besondere-personengruppe vorhanden sein" />
        <expression value="type.coding.code='SKT' implies extension('http://fhir.de/StructureDefinition/gkv/besondere-personengruppe').exists()" />
        <source value="Coverage" />
      </constraint>
      <constraint>
        <key value="dmpkennzeichen-SKT" />
        <severity value="error" />
        <human value="Ist der Kostentraegertyp SKT ausgewählt, so muss auch ein DMP Kennzeichen vorhanden sein" />
        <expression value="type.coding.code='SKT' implies extension('http://fhir.de/StructureDefinition/gkv/dmp-kennzeichen').exists()" />
        <source value="Coverage" />
      </constraint>
      <constraint>
        <key value="dmpkennzeichen-GKV" />
        <severity value="error" />
        <human value="Ist der Kostentraegertyp GKV ausgewählt, so muss auch ein DMP Kennzeichen vorhanden sein" />
        <expression value="type.coding.code='GKV' implies extension('http://fhir.de/StructureDefinition/gkv/dmp-kennzeichen').exists()" />
        <source value="Coverage" />
      </constraint>
      <constraint>
        <key value="versichertenart-GKV" />
        <severity value="error" />
        <human value="Ist der Kostentraegertyp GKV ausgewählt, so muss auch eine Versichertenart vorhanden sein" />
        <expression value="type.coding.code='GKV' implies extension('http://fhir.de/StructureDefinition/gkv/versichertenart').exists()" />
        <source value="Coverage" />
      </constraint>
      <constraint>
        <key value="versichertenart-SKT" />
        <severity value="error" />
        <human value="Ist der Kostentraegertyp SKT ausgewählt, so muss auch eine Versichertenart vorhanden sein" />
        <expression value="type.coding.code='SKT' implies extension('http://fhir.de/StructureDefinition/gkv/versichertenart').exists()" />
        <source value="Coverage" />
      </constraint>
    </element>
    <element id="Coverage.meta">
      <path value="Coverage.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.meta.versionId">
      <path value="Coverage.meta.versionId" />
      <max value="0" />
    </element>
    <element id="Coverage.meta.lastUpdated">
      <path value="Coverage.meta.lastUpdated" />
      <max value="0" />
    </element>
    <element id="Coverage.meta.source">
      <path value="Coverage.meta.source" />
      <max value="0" />
    </element>
    <element id="Coverage.meta.profile">
      <path value="Coverage.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Krankenversicherungsverhaeltnis" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.meta.security">
      <path value="Coverage.meta.security" />
      <max value="0" />
    </element>
    <element id="Coverage.meta.tag">
      <path value="Coverage.meta.tag" />
      <max value="0" />
    </element>
    <element id="Coverage.implicitRules">
      <path value="Coverage.implicitRules" />
      <max value="0" />
    </element>
    <element id="Coverage.language">
      <path value="Coverage.language" />
      <max value="0" />
    </element>
    <element id="Coverage.text">
      <path value="Coverage.text" />
      <max value="0" />
    </element>
    <element id="Coverage.contained">
      <path value="Coverage.contained" />
      <max value="0" />
    </element>
    <element id="Coverage.extension">
      <path value="Coverage.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe">
      <path value="Coverage.extension" />
      <sliceName value="BesonderePersonengruppe" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gkv/besondere-personengruppe" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe.value[x]">
      <path value="Coverage.extension.value[x]" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe.value[x].system">
      <path value="Coverage.extension.value[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe.value[x].version">
      <path value="Coverage.extension.value[x].version" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe.value[x].code">
      <path value="Coverage.extension.value[x].code" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe.value[x].display">
      <path value="Coverage.extension.value[x].display" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:BesonderePersonengruppe.value[x].userSelected">
      <path value="Coverage.extension.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen">
      <path value="Coverage.extension" />
      <sliceName value="DMPKennzeichen" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gkv/dmp-kennzeichen" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen.value[x]">
      <path value="Coverage.extension.value[x]" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen.value[x].system">
      <path value="Coverage.extension.value[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen.value[x].version">
      <path value="Coverage.extension.value[x].version" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen.value[x].code">
      <path value="Coverage.extension.value[x].code" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen.value[x].display">
      <path value="Coverage.extension.value[x].display" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:DMPKennzeichen.value[x].userSelected">
      <path value="Coverage.extension.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:Versichertenart">
      <path value="Coverage.extension" />
      <sliceName value="Versichertenart" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gkv/versichertenart" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:Versichertenart.value[x]">
      <path value="Coverage.extension.value[x]" />
      <min value="1" />
    </element>
    <element id="Coverage.extension:WOP">
      <path value="Coverage.extension" />
      <sliceName value="WOP" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/gkv/wop" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Coverage.extension:WOP.value[x].version">
      <path value="Coverage.extension.value[x].version" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:WOP.value[x].display">
      <path value="Coverage.extension.value[x].display" />
      <max value="0" />
    </element>
    <element id="Coverage.extension:WOP.value[x].userSelected">
      <path value="Coverage.extension.value[x].userSelected" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier">
      <path value="Coverage.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <short value="Primaerer Identifier der Versicherung" />
      <definition value="Ein gesetzliches Versicherungsverhaeltnis sollte stets durch die eindeutige 30-stellige Versichertennummer identifiziert werden. Ist diese nicht bekannt, so wird die 10-stellige VersichertenID statt dessen verwendet." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.identifier:VersichertenID">
      <path value="Coverage.identifier" />
      <sliceName value="VersichertenID" />
      <short value="Versicherten-ID" />
      <definition value="Die Versicherten-ID ist der 10-stellige unveraenderliche Teil der 30-stelligen Krankenversichertennummer. Sie wird haeufig ebenfalls als Krankenversichertennummer bezeichnet. Der Term 'Versicherten-ID' wird hier in Uebereinstimmung mit der Gematik-Spezifikation fuer das VSDM verwendet." />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-kvid-10" />
      </type>
      <mustSupport value="true" />
      <mapping>
        <identity value="KHEntgG" />
        <map value="Krankenversichertennummer (Versicherten –ID)" />
      </mapping>
      <mapping>
        <identity value="KBV" />
        <map value="Krankenversichertenverhaeltnis: VersichertenID" />
      </mapping>
    </element>
    <element id="Coverage.identifier:VersichertenID.use">
      <path value="Coverage.identifier.use" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:VersichertenID.type">
      <path value="Coverage.identifier.type" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:VersichertenID.period">
      <path value="Coverage.identifier.period" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:VersichertenID.assigner">
      <path value="Coverage.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer">
      <path value="Coverage.identifier" />
      <sliceName value="KVK-Versichertennummer" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.use">
      <path value="Coverage.identifier.use" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type">
      <path value="Coverage.identifier.type" />
      <max value="0" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.coding">
      <path value="Coverage.identifier.type.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.coding.system">
      <path value="Coverage.identifier.type.coding.system" />
      <min value="1" />
      <fixedUri value="http://www.kbv.de/fhir/CodeSystem/KBV_CS_KBV_Krankenversicherung_ID_Typ" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.coding.version">
      <path value="Coverage.identifier.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.coding.code">
      <path value="Coverage.identifier.type.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.coding.display">
      <path value="Coverage.identifier.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.coding.userSelected">
      <path value="Coverage.identifier.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.type.text">
      <path value="Coverage.identifier.type.text" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.system">
      <path value="Coverage.identifier.system" />
      <min value="1" />
      <fixedUri value="http://fhir.de/NamingSystem/gkv/kvk-versichertennummer" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.value">
      <path value="Coverage.identifier.value" />
      <min value="1" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.period">
      <path value="Coverage.identifier.period" />
      <max value="0" />
    </element>
    <element id="Coverage.identifier:KVK-Versichertennummer.assigner">
      <path value="Coverage.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Coverage.type">
      <path value="Coverage.type" />
      <short value="Kostenträgertyp" />
      <definition value="Art des Kostenträgers" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.kbv.de/ValueSet/KBV_VS_FOR_Payor_type" />
      </binding>
    </element>
    <element id="Coverage.type.coding">
      <path value="Coverage.type.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.type.coding.system">
      <path value="Coverage.type.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.type.coding.version">
      <path value="Coverage.type.coding.version" />
      <max value="0" />
    </element>
    <element id="Coverage.type.coding.code">
      <path value="Coverage.type.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.type.coding.display">
      <path value="Coverage.type.coding.display" />
      <max value="0" />
    </element>
    <element id="Coverage.type.coding.userSelected">
      <path value="Coverage.type.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Coverage.type.text">
      <path value="Coverage.type.text" />
      <max value="0" />
    </element>
    <element id="Coverage.policyHolder">
      <path value="Coverage.policyHolder" />
      <max value="0" />
    </element>
    <element id="Coverage.subscriber">
      <path value="Coverage.subscriber" />
      <max value="0" />
    </element>
    <element id="Coverage.subscriberId">
      <path value="Coverage.subscriberId" />
      <max value="0" />
    </element>
    <element id="Coverage.beneficiary">
      <path value="Coverage.beneficiary" />
      <short value="Begünstigte Person" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://www.kbv.de/fhir/Profil/KBV_PR_FOR_Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Coverage.beneficiary.reference">
      <path value="Coverage.beneficiary.reference" />
      <min value="1" />
    </element>
    <element id="Coverage.beneficiary.type">
      <path value="Coverage.beneficiary.type" />
      <max value="0" />
    </element>
    <element id="Coverage.beneficiary.identifier">
      <path value="Coverage.beneficiary.identifier" />
      <max value="0" />
    </element>
    <element id="Coverage.beneficiary.display">
      <path value="Coverage.beneficiary.display" />
      <max value="0" />
    </element>
    <element id="Coverage.dependent">
      <path value="Coverage.dependent" />
      <max value="0" />
    </element>
    <element id="Coverage.relationship">
      <path value="Coverage.relationship" />
      <max value="0" />
    </element>
    <element id="Coverage.period">
      <path value="Coverage.period" />
      <constraint>
        <key value="KBVdate" />
        <severity value="error" />
        <human value="Beschränkung auf die Angaben JJJJ-MM-TT" />
        <expression value="end.toString().length() = 10" />
        <source value="Coverage" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Coverage.period.start">
      <path value="Coverage.period.start" />
      <max value="0" />
    </element>
    <element id="Coverage.period.end">
      <path value="Coverage.period.end" />
      <short value="Versicherungsschutz Ende" />
      <definition value="Angabe zum Versicherungsschutz Ende" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor">
      <path value="Coverage.payor" />
      <slicing>
        <description value="1. zustaendigeKrankenkasse&#xD;&#xA;2. kostentraeger" />
        <ordered value="true" />
        <rules value="closed" />
      </slicing>
      <max value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse">
      <path value="Coverage.payor" />
      <sliceName value="zustaendigeKrankenkasse" />
      <short value="IK der zuständigen Krankenkasse lt. eGK" />
      <definition value="Dieses Feld enthält das IK laut der Versichertenkarte. &#xD;&#xA;Siehe hierzu die Übertragungsregel nach der &quot;Technische Anlage zur Anlage 4a BMV-Ä&quot; Kapitel 2.2 &quot;USE-CASES&quot;" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.reference">
      <path value="Coverage.payor.reference" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.type">
      <path value="Coverage.payor.type" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier">
      <path value="Coverage.payor.identifier" />
      <short value="IK-Nummer des Versicherers" />
      <min value="1" />
      <mustSupport value="true" />
      <mapping>
        <identity value="KVDT" />
        <map value="4111" />
      </mapping>
      <mapping>
        <identity value="KHEntgG" />
        <map value="Institutionskennzeichen der Krankenkasse" />
      </mapping>
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier.use">
      <path value="Coverage.payor.identifier.use" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier.type">
      <path value="Coverage.payor.identifier.type" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier.system">
      <path value="Coverage.payor.identifier.system" />
      <min value="1" />
      <fixedUri value="http://fhir.de/NamingSystem/arge-ik/iknr" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier.value">
      <path value="Coverage.payor.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier.period">
      <path value="Coverage.payor.identifier.period" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.identifier.assigner">
      <path value="Coverage.payor.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:zustaendigeKrankenkasse.display">
      <path value="Coverage.payor.display" />
      <short value="Kostenträgername der zuständigen Krankenkasse lt. eGK" />
      <definition value="Dieses Feld bildet den Namen des Kostenträgers der zuständigen Krankenkasse lt. eGK ab." />
      <mustSupport value="true" />
      <mapping>
        <identity value="KVDT" />
        <map value="4134" />
      </mapping>
    </element>
    <element id="Coverage.payor:kostentraeger">
      <path value="Coverage.payor" />
      <sliceName value="kostentraeger" />
      <short value="zuständiger Kostenträger" />
      <definition value="Kostenträger zu dessen Lasten eine Verordnung, Krankschreibung usw. geschieht." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:kostentraeger.reference">
      <path value="Coverage.payor.reference" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:kostentraeger.type">
      <path value="Coverage.payor.type" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier">
      <path value="Coverage.payor.identifier" />
      <short value="IK-Nummer des Kostenträgers" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier.use">
      <path value="Coverage.payor.identifier.use" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier.type">
      <path value="Coverage.payor.identifier.type" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier.system">
      <path value="Coverage.payor.identifier.system" />
      <min value="1" />
      <fixedUri value="http://fhir.de/NamingSystem/arge-ik/iknr" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier.value">
      <path value="Coverage.payor.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier.period">
      <path value="Coverage.payor.identifier.period" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:kostentraeger.identifier.assigner">
      <path value="Coverage.payor.identifier.assigner" />
      <max value="0" />
    </element>
    <element id="Coverage.payor:kostentraeger.display">
      <path value="Coverage.payor.display" />
      <short value="Name des Kostentraegers" />
      <definition value="Name des Kostenträgers" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Coverage.class">
      <path value="Coverage.class" />
      <max value="0" />
    </element>
    <element id="Coverage.order">
      <path value="Coverage.order" />
      <max value="0" />
    </element>
    <element id="Coverage.network">
      <path value="Coverage.network" />
      <max value="0" />
    </element>
    <element id="Coverage.costToBeneficiary">
      <path value="Coverage.costToBeneficiary" />
      <max value="0" />
    </element>
    <element id="Coverage.subrogation">
      <path value="Coverage.subrogation" />
      <max value="0" />
    </element>
    <element id="Coverage.contract">
      <path value="Coverage.contract" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>