<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ghpr-2-condition" />
  <meta>
    <lastUpdated value="2021-12-31T09:24:23.849+00:00" />
  </meta>
  <url value="https://fhir.kemkes.go.id/r4/ghpr/StructureDefinition/Condition" />
  <version value="4.0.1" />
  <name value="GhprCondition2" />
  <status value="draft" />
  <date value="2019-11-01T09:29:23+11:00" />
  <description value="{{Resource Description}}" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Condition" />
  <baseDefinition value="https://fhir.kemkes.go.id/r4/StructureDefinition/Condition" />
  <derivation value="specialization" />
  <differential>
    <element id="Condition">
      <path value="Condition" />
      <constraint>
        <key value="con-5" />
        <severity value="error" />
        <human value="Condition.clinicalStatus SHALL NOT be present if verification Status is entered-in-error" />
        <expression value="verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code='entered-in-error').empty() or clinicalStatus.empty()" />
        <xpath value="not(exists(f:verificationStatus/f:coding[f:system/@value='http://terminology.hl7.org/CodeSystem/condition-ver-status' and f:code/@value='entered-in-error'])) or not(exists(f:clinicalStatus))" />
        <source value="http://hl7.org/fhir/StructureDefinition/Condition" />
      </constraint>
      <constraint>
        <key value="con-4" />
        <severity value="error" />
        <human value="If condition is abated, then clinicalStatus must be either inactive, resolved, or remission" />
        <expression value="abatement.empty() or clinicalStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-clinical' and (code='resolved' or code='remission' or code='inactive')).exists()" />
        <xpath value="not(exists(*[starts-with(local-name(.), 'abatement')])) or exists(f:clinicalStatus/f:coding[f:system/@value='http://terminology.hl7.org/CodeSystem/condition-clinical' and f:code/@value=('resolved', 'remission', 'inactive')])" />
        <source value="http://hl7.org/fhir/StructureDefinition/Condition" />
      </constraint>
      <constraint>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice">
          <valueBoolean value="true" />
        </extension>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation">
          <valueMarkdown value="Most systems will expect a clinicalStatus to be valued for problem-list-items that are managed over time, but might not need a clinicalStatus for point in time encounter-diagnosis." />
        </extension>
        <key value="con-3" />
        <severity value="warning" />
        <human value="Condition.clinicalStatus SHALL be present if verificationStatus is not entered-in-error and category is problem-list-item" />
        <expression value="clinicalStatus.exists() or verificationStatus.coding.where(system='http://terminology.hl7.org/CodeSystem/condition-ver-status' and code = 'entered-in-error').exists() or category.select($this='problem-list-item').empty()" />
        <xpath value="exists(f:clinicalStatus) or exists(f:verificationStatus/f:coding/f:code/@value='entered-in-error') or not(exists(category[@value='problem-list-item']))" />
        <source value="http://hl7.org/fhir/StructureDefinition/Condition" />
      </constraint>
      <mapping>
        <identity value="workflow" />
        <map value="Event" />
      </mapping>
      <mapping>
        <identity value="sct-concept" />
        <map value="&lt; 243796009 |Situation with explicit context| : 246090004 |Associated finding| = ( ( &lt; 404684003 |Clinical finding| MINUS ( &lt;&lt; 420134006 |Propensity to adverse reactions| OR &lt;&lt; 473010000 |Hypersensitivity condition| OR &lt;&lt; 79899007 |Drug interaction| OR &lt;&lt; 69449002 |Drug action| OR &lt;&lt; 441742003 |Evaluation finding| OR &lt;&lt; 307824009 |Administrative status| OR &lt;&lt; 385356007 |Tumor stage finding|)) OR &lt; 272379006 |Event|)" />
      </mapping>
      <mapping>
        <identity value="v2" />
        <map value="PPR message" />
      </mapping>
      <mapping>
        <identity value="rim" />
        <map value="Observation[classCode=OBS, moodCode=EVN, code=ASSERTION, value&lt;Diagnosis]" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>