<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Condition" />
  <url value="https://fhir.centraxx.de/StructureDefinition/DiagnosisNaturalIdentifier" />
  <version value="2025.4.0" />
  <name value="DiagnosisNaturalIdentifier" />
  <status value="active" />
  <publisher value="Kairos an IQVIA business" />
  <description value="Represents the HDRP natural identifier for Diagnosis. If provided, the Diagnosis is resolved using identifier.value (diagnosisId). If not, IcdEntry is determined by Condition.coding. When an IcdEntry is available, the Diagnosis is resolved using diagnosisDate (Condition.onsetDateTime) and patientContainer (Condition.subject). If no IcdEntry is found, the Diagnosis is resolved using diagnosisCode (Condition.coding.code), diagnosisDate, and patientContainer." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Condition" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Condition" />
  <derivation value="constraint" />
  <differential>
    <element id="Condition.identifier">
      <path value="Condition.identifier" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.identifier.value">
      <path value="Condition.identifier.value" />
      <sliceName value="diagnosisId" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code">
      <path value="Condition.code" />
      <sliceName value="diagnosisCode" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding">
      <path value="Condition.code.coding" />
      <min value="1" />
      <max value="1" />
      <constraint>
        <key value="con-cxx-1" />
        <severity value="error" />
        <human value="The catalog system must be supported by CentraXX. The system url must start with 'urn:centraxx:CodeSystem/&lt;catalog&gt;' where &lt;catalog&gt; must be one of: IcdCatalog, Catalog" />
        <expression value="system.startsWith('urn:centraxx:CodeSystem/IcdCatalog') or system.startsWith('urn:centraxx:CodeSystem/Catalog')" />
        <source value="https://fhir.centraxx.de/StructureDefinition/Condition" />
      </constraint>
      <constraint>
        <key value="con-cxx-2" />
        <severity value="error" />
        <human value="If the catalog is an IcdCatalog, a version must be given." />
        <expression value="system.startsWith('urn:centraxx:CodeSystem/IcdCatalog-') implies version.exists()" />
        <source value="https://fhir.centraxx.de/StructureDefinition/Observation" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding.system">
      <path value="Condition.code.coding.system" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding.version">
      <path value="Condition.code.coding.version" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding.code">
      <path value="Condition.code.coding.code" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.subject">
      <path value="Condition.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.centraxx.de/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.onset[x]">
      <path value="Condition.onset[x]" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>