<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="a1caabf4-fe18-4f9e-a294-1634fb2d0a96" />
  <meta>
    <lastUpdated value="2020-09-09T11:28:50.745+00:00" />
  </meta>
  <language value="Norsk" />
  <url value="http://nhn.no/kj/fhir/StructureDefinition/KjConditionInfection" />
  <name value="KjConditionInfection" />
  <status value="active" />
  <date value="2020-08-31T08:50:02.9699866+00:00" />
  <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">
      <path value="Condition" />
      <constraint>
        <key value="kj-ci-1" />
        <severity value="error" />
        <human value="If verificationStatus is confirmed, clinicalStatus must be active" />
        <expression value="(verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'confirmed').exists() and clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and code='active').exists()) or (verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'confirmed').exists().not())" />
        <source value="http://nhn.no/kj/fhir/StructureDefinition/KjConditionInfection" />
      </constraint>
      <constraint>
        <key value="kj-ci-2" />
        <severity value="error" />
        <human value="If verificationStatus is refuted, clinicalStatus must be inactive" />
        <expression value="(verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'refuted').exists() and clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and code='inactive').exists()) or (verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'refuted').exists().not() and clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and code='inactive').exists().not())" />
        <source value="http://nhn.no/kj/fhir/StructureDefinition/KjConditionInfection" />
      </constraint>
    </element>
    <element id="Condition.extension">
      <path value="Condition.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Condition.extension:validUntil">
      <path value="Condition.extension" />
      <sliceName value="validUntil" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://nhn.no/kj/fhir/StructureDefinition/KjValidUntil" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.extension:validUntil.value[x]">
      <path value="Condition.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Condition.extension:updater">
      <path value="Condition.extension" />
      <sliceName value="updater" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://nhn.no/kj/fhir/StructureDefinition/KjUpdater" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.extension:updater.value[x]">
      <path value="Condition.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Condition.extension:updatedDateTime">
      <path value="Condition.extension" />
      <sliceName value="updatedDateTime" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://nhn.no/kj/fhir/StructureDefinition/KjUpdatedDateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.extension:updatedDateTime.value[x]">
      <path value="Condition.extension.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Condition.extension:sourceOfInformation">
      <path value="Condition.extension" />
      <sliceName value="sourceOfInformation" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://nhn.no/kj/fhir/StructureDefinition/KjSourceOfInformation" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.clinicalStatus">
      <path value="Condition.clinicalStatus" />
      <short value="active | inactive" />
      <definition value="The clinical status of the condition. Either active or inactive. Rest of the options should return an error." />
      <comment value="We only accept Active and Inactive. The other values would return an error message. Active = normal, Inactive = Disproved or delete.(based on verificationStatus)" />
      <condition value="kj-ci-1" />
      <condition value="kj-ci-2" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/ConditionClinicalStatus" />
      </binding>
    </element>
    <element id="Condition.clinicalStatus.coding">
      <path value="Condition.clinicalStatus.coding" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/ConditionClinicalStatus" />
      </binding>
    </element>
    <element id="Condition.clinicalStatus.coding.code">
      <path value="Condition.clinicalStatus.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.verificationStatus">
      <path value="Condition.verificationStatus" />
      <short value="confirmed | refuted | entered-in-error" />
      <definition value="Confirmed = normal, Refuted = avkreftet, Entered-in-error = slettet. Other codes should return an error msg." />
      <comment value="-" />
      <min value="1" />
      <condition value="kj-ci-1" />
      <condition value="kj-ci-2" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/ConditionVerificationStatus" />
      </binding>
    </element>
    <element id="Condition.verificationStatus.coding">
      <path value="Condition.verificationStatus.coding" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/ConditionVerificationStatus" />
      </binding>
    </element>
    <element id="Condition.verificationStatus.coding.code">
      <path value="Condition.verificationStatus.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.category">
      <path value="Condition.category" />
      <short value="Type of critical information" />
      <definition value="Should choose the type of critical information. &#xD;&#xA;Legal code are:&#xD;&#xA;- 10 -&gt; &quot;Smitte&quot;" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/ConditionCategory" />
      </binding>
    </element>
    <element id="Condition.category.coding">
      <path value="Condition.category.coding" />
      <definition value="Valueset with codes from code system : urn:oid:2.16.578.1.12.4.1.1.7651&#xD;&#xA;Valid codes to use:&#xD;&#xA;10 - Smitte" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/ConditionCategory" />
      </binding>
    </element>
    <element id="Condition.category.coding.system">
      <path value="Condition.category.coding.system" />
      <short value="Type of critical information" />
      <definition value="This code system should denote what type of critical information is registered here." />
      <min value="1" />
      <fixedUri value="http://nhn.no/kj/fhir/CodeSystem/SubcategoriesOfCriticalInformation" />
    </element>
    <element id="Condition.category.coding.code">
      <path value="Condition.category.coding.code" />
      <short value="Infection" />
      <min value="1" />
      <fixedCode value="10" />
    </element>
    <element id="Condition.code">
      <path value="Condition.code" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/TypeOfInfection" />
      </binding>
    </element>
    <element id="Condition.code.coding">
      <path value="Condition.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Condition.code.coding:TypeOfInfection">
      <path value="Condition.code.coding" />
      <sliceName value="TypeOfInfection" />
      <min value="1" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://nhn.no/kj/fhir/ValueSet/TypeOfInfection" />
      </binding>
    </element>
    <element id="Condition.code.coding:TypeOfInfection.system">
      <path value="Condition.code.coding.system" />
      <fixedUri value="http://nhn.no/kj/fhir/CodeSystem/TypeOfInfection" />
    </element>
    <element id="Condition.code.coding:TypeOfInfection.code">
      <path value="Condition.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.subject">
      <path value="Condition.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.no/fhir/StructureDefinition/no-basis-Patient" />
        <aggregation value="referenced" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.onset[x]">
      <path value="Condition.onset[x]" />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Age" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.recordedDate">
      <path value="Condition.recordedDate" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.recorder">
      <path value="Condition.recorder" />
      <definition value="Here one should use PractitionerRole, since it is important to register the practitoner and the organization the person worked at when this condition was registered." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://nhn.no/kj/fhir/StructureDefinition/KjPractitionerRole" />
        <aggregation value="contained" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>