<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="cyehr-sd-problem" />
  <url value="http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-sd-problem-r4" />
  <name value="CYEHRSDProblem" />
  <title value="Cyprus EHR Problem profile" />
  <status value="draft" />
  <publisher value="eHealth4U" />
  <contact>
    <name value="eHealth Lab (University of Cyprus)" />
    <telecom>
      <system value="email" />
      <value value="ehealth@ucy.ac.cy" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="Reprsents any condition that might be input to the CYEHR system (i.e. chief medical complaint, presenting condition, past problems)" />
  <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.meta">
      <path value="Condition.meta" />
    </element>
    <element id="Condition.meta.profile">
      <path value="Condition.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Condition.meta.profile:CyprusEHRProfile">
      <path value="Condition.meta.profile" />
      <sliceName value="CyprusEHRProfile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-sd-problem-r4" />
    </element>
    <element id="Condition.identifier">
      <path value="Condition.identifier" />
      <comment value="This is a business identifier, not a resource identifier (see [discussion](resource.html#identifiers)).  It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types.  For example, multiple Patient and a Person resource instance might share the same social insurance number.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Not to be used in the context of Cyprus EHR." />
    </element>
    <element id="Condition.clinicalStatus">
      <path value="Condition.clinicalStatus" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.clinicalStatus.coding.system">
      <path value="Condition.clinicalStatus.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.clinicalStatus.coding.code">
      <path value="Condition.clinicalStatus.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.clinicalStatus.coding.display">
      <path value="Condition.clinicalStatus.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.verificationStatus">
      <path value="Condition.verificationStatus" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Not to be used in the context of Cyprus EHR." />
    </element>
    <element id="Condition.category">
      <path value="Condition.category" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.category.coding">
      <path value="Condition.category.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Condition.category.coding.system">
      <path value="Condition.category.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.category.coding.code">
      <path value="Condition.category.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.category.coding.display">
      <path value="Condition.category.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.category:chiefComplaint">
      <path value="Condition.category" />
      <sliceName value="chiefComplaint" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Use this category when this profile is used to record the chief complaints section where the complaints of the patient are recorded using the patient's own description." />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="10154-3" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Condition.category:presentingProblem">
      <path value="Condition.category" />
      <sliceName value="presentingProblem" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Use this category when this profile is used to record the diagnosis given as the reason why the patient was admitted to the specific visit (as given by the doctor)." />
      <patternCodeableConcept>
        <coding>
          <system value="http://loinc.org" />
          <code value="56817-0" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Condition.category:problemListReported">
      <path value="Condition.category" />
      <sliceName value="problemListReported" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Use this category when recording a condition that is past, inactive or resolved problem and is reported either by the patient or the health care provider." />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/condition-category" />
          <code value="problem-list-item" />
        </coding>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="418799008" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Condition.severity">
      <path value="Condition.severity" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiseverity" />
      </binding>
    </element>
    <element id="Condition.severity.coding">
      <path value="Condition.severity.coding" />
      <min value="1" />
    </element>
    <element id="Condition.severity.coding.system">
      <path value="Condition.severity.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.severity.coding.code">
      <path value="Condition.severity.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.severity.coding.display">
      <path value="Condition.severity.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.code">
      <path value="Condition.code" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.code.coding">
      <path value="Condition.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Condition.code.coding:icd10Code">
      <path value="Condition.code.coding" />
      <sliceName value="icd10Code" />
      <comment value="Codes may be defined very casually in enumerations or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.&#xD;&#xA;&#xD;&#xA;CyprusEHR: To address the requirement for eHDSI MVC terminology for problems." />
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiillnessanddisorder" />
      </binding>
    </element>
    <element id="Condition.code.coding:icd10Code.system">
      <path value="Condition.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.code.coding:icd10Code.code">
      <path value="Condition.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.code.coding:icd10Code.display">
      <path value="Condition.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.code.coding:absentOrUnknownProblem">
      <path value="Condition.code.coding" />
      <sliceName value="absentOrUnknownProblem" />
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiabsentorunknownproblem" />
      </binding>
    </element>
    <element id="Condition.code.coding:absentOrUnknownProblem.system">
      <path value="Condition.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.code.coding:absentOrUnknownProblem.code">
      <path value="Condition.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.code.coding:absentOrUnknownProblem.display">
      <path value="Condition.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.code.text">
      <path value="Condition.code.text" />
      <comment value="Very often the text is the same as a displayName of one of the codings.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Use code.text = &quot;Complaints given by patient&quot; for Chief complaints (Admission Cause section) and code.text = &quot;Admission diagnosis given by doctor&quot; for Presenting Condition (Admission Cause section)." />
    </element>
    <element id="Condition.bodySite">
      <path value="Condition.bodySite" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;CyprusEHR: Not to be used in the context of Cyprus EHR." />
    </element>
    <element id="Condition.subject">
      <path value="Condition.subject" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.subject.reference">
      <path value="Condition.subject.reference" />
      <min value="1" />
    </element>
    <element id="Condition.subject.identifier.type">
      <path value="Condition.subject.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.subject.identifier.type.coding.system">
      <path value="Condition.subject.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.subject.identifier.type.coding.code">
      <path value="Condition.subject.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.subject.identifier.type.coding.display">
      <path value="Condition.subject.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.encounter">
      <path value="Condition.encounter" />
      <mustSupport value="true" />
    </element>
    <element id="Condition.encounter.reference">
      <path value="Condition.encounter.reference" />
      <min value="1" />
    </element>
    <element id="Condition.encounter.identifier.type">
      <path value="Condition.encounter.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.encounter.identifier.type.coding.system">
      <path value="Condition.encounter.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.encounter.identifier.type.coding.code">
      <path value="Condition.encounter.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.encounter.identifier.type.coding.display">
      <path value="Condition.encounter.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.onset[x]">
      <path value="Condition.onset[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="Age is generally used when the patient reports an age at which the Condition began to occur.&#xD;&#xA;&#xD;&#xA;CyprusEHR: If age is provided then automatically calculate the DateTime using birthdate and current date." />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Age" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.onset[x]:onsetDateTime">
      <path value="Condition.onset[x]" />
      <sliceName value="onsetDateTime" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Condition.abatement[x]">
      <path value="Condition.abatement[x]" />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Age" />
      </type>
    </element>
    <element id="Condition.recorder.reference">
      <path value="Condition.recorder.reference" />
      <min value="1" />
    </element>
    <element id="Condition.recorder.identifier.type">
      <path value="Condition.recorder.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.recorder.identifier.type.coding.system">
      <path value="Condition.recorder.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.recorder.identifier.type.coding.code">
      <path value="Condition.recorder.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.recorder.identifier.type.coding.display">
      <path value="Condition.recorder.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.asserter.reference">
      <path value="Condition.asserter.reference" />
      <min value="1" />
    </element>
    <element id="Condition.asserter.identifier.type">
      <path value="Condition.asserter.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.asserter.identifier.type.coding.system">
      <path value="Condition.asserter.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.asserter.identifier.type.coding.code">
      <path value="Condition.asserter.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.asserter.identifier.type.coding.display">
      <path value="Condition.asserter.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.stage.summary">
      <path value="Condition.stage.summary" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.stage.summary.coding.system">
      <path value="Condition.stage.summary.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.stage.summary.coding.code">
      <path value="Condition.stage.summary.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.stage.summary.coding.display">
      <path value="Condition.stage.summary.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.stage.assessment.identifier.type">
      <path value="Condition.stage.assessment.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.stage.assessment.identifier.type.coding.system">
      <path value="Condition.stage.assessment.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.stage.assessment.identifier.type.coding.code">
      <path value="Condition.stage.assessment.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.stage.assessment.identifier.type.coding.display">
      <path value="Condition.stage.assessment.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.stage.type">
      <path value="Condition.stage.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.stage.type.coding.system">
      <path value="Condition.stage.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.stage.type.coding.code">
      <path value="Condition.stage.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.stage.type.coding.display">
      <path value="Condition.stage.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.evidence.code">
      <path value="Condition.evidence.code" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Condition.evidence.code.coding.system">
      <path value="Condition.evidence.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Condition.evidence.code.coding.code">
      <path value="Condition.evidence.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Condition.evidence.code.coding.display">
      <path value="Condition.evidence.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Condition.note">
      <path value="Condition.note" />
      <comment value="For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time.  This element may need to be included in narrative because of the potential for modifying information.  *Annotations SHOULD NOT* be used to communicate &quot;modifying&quot; information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).&#xD;&#xA;&#xD;&#xA;CyprusEHR: Use note to record the input for chief complaint and presenting conditions of the EHR." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>