<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="1.3.6.1.4.1.38760.FHIR.1.8.1" />
  <url value="https://onko.vvis.gov.lv/fhir/StructureDefinition/Procedure/SurgeryTestValidation-v1" />
  <version value="1" />
  <name value="Surgery" />
  <title value="Surgery" />
  <status value="active" />
  <experimental value="false" />
  <description value="Oncology treatment - Surgery" />
  <fhirVersion value="4.3.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Procedure" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Procedure" />
  <derivation value="constraint" />
  <differential>
    <element id="Procedure">
      <path value="Procedure" />
      <constraint>
        <key value="Surgery-con-1" />
        <severity value="error" />
        <human value="At least one institution is mandatory - either Latvian (Profile: Procedure/Surgery, Field: Procedure.performer.actor.reference) or foreign (Profile: Procedure/Surgery, Field: Procedure.performer.actor.extension:foreignMedicalInstitution)" />
        <expression value="performer.actor.reference.exists() or performer.actor.extension.where(url='https://onko.vvis.gov.lv/fhir/StructureDefinition/ForeignMedicalInstitutionExtension-v1').value.exists()" />
      </constraint>
      <constraint>
        <key value="Surgery-con-2" />
        <severity value="error" />
        <human value="Procedure date (Profile: Procedure/Surgery, Field: Procedure.peformed) is mandatory and cannot be greater than sysdate" />
        <expression value="iif(performed.exists(), performed.toDateTime() &lt;= now(), false)" />
      </constraint>
      <constraint>
        <key value="Surgery-con-4" />
        <severity value="error" />
        <human value="Only one medical institution can be submitted at a time - Latvian from the classifier (Profile: Procedure/Surgery, Field: Procedure.performer.actor.reference) or foreign in the text field (Profile: Procedure/Surgery, Field: Procedure.performer.actor.extension:foreignMedicalInstitution.value[x])" />
        <expression value="(performer.actor.reference.exists() implies performer.actor.extension.value.exists().not()) and (performer.actor.extension.value.exists() implies performer.actor.reference.exists().not())" />
      </constraint>
    </element>
    <element id="Procedure.meta">
      <path value="Procedure.meta" />
      <type>
        <code value="Meta" />
        <profile value="https://vvis.gov.lv/fhir/Datatype/Meta/OncologyMeta-v1" />
      </type>
    </element>
    <element id="Procedure.meta.profile">
      <path value="Procedure.meta.profile" />
      <constraint>
        <key value="Surgery-con-3" />
        <severity value="error" />
        <human value="If the Profile on Procedure is Surgery (Profile: Procedure/Surgery, Field: Procedure.meta.profile), then treatment type (Profile: Procedure/Surgery, Field: Procedure.category.coding:procedureType.code) should be 1 - Surgery" />
        <expression value="$this='https://onko.vvis.gov.lv/fhir/StructureDefinition/Procedure/Surgery-v1' implies (%resource.category.ofType(CodeableConcept).coding.where(system='https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.628').code = '1')" />
      </constraint>
    </element>
    <element id="Procedure.implicitRules">
      <path value="Procedure.implicitRules" />
      <max value="0" />
    </element>
    <element id="Procedure.language">
      <path value="Procedure.language" />
      <max value="0" />
    </element>
    <element id="Procedure.text">
      <path value="Procedure.text" />
      <max value="0" />
    </element>
    <element id="Procedure.contained">
      <path value="Procedure.contained" />
      <max value="0" />
    </element>
    <element id="Procedure.identifier">
      <path value="Procedure.identifier" />
      <short value="External Identifier | Ārējās sistēmas ieraksta ID" />
      <min value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://vvis.gov.lv/fhir/Datatype/Identifier/OncologyIdentifier-v1" />
      </type>
    </element>
    <element id="Procedure.identifier.use">
      <path value="Procedure.identifier.use" />
      <mustSupport value="false" />
    </element>
    <element id="Procedure.identifier.value">
      <path value="Procedure.identifier.value" />
      <mustSupport value="false" />
    </element>
    <element id="Procedure.identifier.assigner">
      <path value="Procedure.identifier.assigner" />
      <mustSupport value="false" />
    </element>
    <element id="Procedure.instantiatesCanonical">
      <path value="Procedure.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="Procedure.instantiatesUri">
      <path value="Procedure.instantiatesUri" />
      <max value="0" />
    </element>
    <element id="Procedure.basedOn">
      <path value="Procedure.basedOn" />
      <max value="0" />
    </element>
    <element id="Procedure.partOf">
      <path value="Procedure.partOf" />
      <max value="0" />
    </element>
    <element id="Procedure.statusReason">
      <path value="Procedure.statusReason" />
      <max value="0" />
    </element>
    <element id="Procedure.category">
      <path value="Procedure.category" />
      <short value="Type of procedure | Operācijas veids" />
      <min value="1" />
    </element>
    <element id="Procedure.category.coding">
      <path value="Procedure.category.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.category.coding:typeOfTreatment">
      <path value="Procedure.category.coding" />
      <sliceName value="typeOfTreatment" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Procedure.category.coding:typeOfTreatment.system">
      <path value="Procedure.category.coding.system" />
      <short value="Classifier of types of treatment | Ārstēšanas veidu klasifikators" />
      <fixedUri value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.not_found" />
    </element>
    <element id="Procedure.category.coding:typeOfTreatment.code">
      <path value="Procedure.category.coding.code" />
      <binding>
        <strength value="required" />
        <description value="Classifier of types of treatment code | Ārstēšanas veidu klasifikators kods" />
        <valueSet value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.not_found" />
      </binding>
    </element>
    <element id="Procedure.category.coding:procedureType">
      <path value="Procedure.category.coding" />
      <sliceName value="procedureType" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Procedure.category.coding:procedureType.system">
      <path value="Procedure.category.coding.system" />
      <short value="Classifier of types of treatment | Ārstēšanas veidu klasifikators" />
      <fixedUri value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.630" />
    </element>
    <element id="Procedure.category.coding:procedureType.code">
      <path value="Procedure.category.coding.code" />
      <binding>
        <strength value="required" />
        <description value="Classifier of types of treatment code | Ārstēšanas veidu klasifikators kods" />
        <valueSet value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.628" />
      </binding>
    </element>
    <element id="Procedure.code">
      <path value="Procedure.code" />
      <short value="Procedure code | Operācijas kods" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding">
      <path value="Procedure.code.coding" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding.system">
      <path value="Procedure.code.coding.system" />
      <short value="(NOMESCO) Nordic Classification of Surgical Procedures | (NOMESCO) Ziemeļvalstu ķirurģisko procedūru klasifikācija" />
      <fixedUri value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.175" />
    </element>
    <element id="Procedure.code.coding.code">
      <path value="Procedure.code.coding.code" />
      <binding>
        <strength value="required" />
        <description value="(NOMESCO) Nordic Classification of Surgical Procedures code | (NOMESCO) Ziemeļvalstu ķirurģisko procedūru klasifikācijas kods" />
        <valueSet value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.175" />
      </binding>
    </element>
    <element id="Procedure.subject">
      <path value="Procedure.subject" />
      <short value="Reference to Patient profile | Saite uz Patient profilu" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://vvis.gov.lv/fhir/StructureDefinition/Patient/LVPatient" />
      </type>
    </element>
    <element id="Procedure.encounter">
      <path value="Procedure.encounter" />
      <max value="0" />
    </element>
    <element id="Procedure.performed[x]">
      <path value="Procedure.performed[x]" />
      <short value="When the procedure was performed | Operācijas datums" />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <condition value="Surgery-con-2" />
    </element>
    <element id="Procedure.recorder">
      <path value="Procedure.recorder" />
      <max value="0" />
    </element>
    <element id="Procedure.asserter">
      <path value="Procedure.asserter" />
      <max value="0" />
    </element>
    <element id="Procedure.performer">
      <path value="Procedure.performer" />
      <short value="Medical institution where the treatment was received | Ārstniecības iestāde, kurā saņemta ārstēšana" />
      <min value="1" />
      <max value="1" />
      <condition value="Surgery-con-1" />
    </element>
    <element id="Procedure.performer.actor">
      <path value="Procedure.performer.actor" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://vvis.gov.lv/fhir/StructureDefinition/Organization/MedicalInstitution" />
      </type>
    </element>
    <element id="Procedure.performer.actor.extension:foreignMedicalInstitution">
      <path value="Procedure.performer.actor.extension" />
      <sliceName value="foreignMedicalInstitution" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://onko.vvis.gov.lv/fhir/StructureDefinition/ForeignMedicalInstitutionExtension-v1" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Procedure.location">
      <path value="Procedure.location" />
      <max value="0" />
    </element>
    <element id="Procedure.reasonCode">
      <path value="Procedure.reasonCode" />
      <max value="0" />
    </element>
    <element id="Procedure.reasonReference">
      <path value="Procedure.reasonReference" />
      <short value="Treated disease | Ārstētā slimība" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://onko.vvis.gov.lv/fhir/StructureDefinition/Condition/OncologyBasicDataOfDisease-v1" />
      </type>
    </element>
    <element id="Procedure.reasonReference.identifier">
      <path value="Procedure.reasonReference.identifier" />
      <max value="0" />
    </element>
    <element id="Procedure.reasonReference.display">
      <path value="Procedure.reasonReference.display" />
      <max value="0" />
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <max value="0" />
    </element>
    <element id="Procedure.outcome">
      <path value="Procedure.outcome" />
      <max value="0" />
    </element>
    <element id="Procedure.report">
      <path value="Procedure.report" />
      <max value="0" />
    </element>
    <element id="Procedure.complication">
      <path value="Procedure.complication" />
      <max value="0" />
    </element>
    <element id="Procedure.complicationDetail">
      <path value="Procedure.complicationDetail" />
      <max value="0" />
    </element>
    <element id="Procedure.followUp">
      <path value="Procedure.followUp" />
      <short value="Indication of further treatment/monitoring of patients | Norāde par pacientu tālāko ārstēšanu/uzraudzību" />
      <max value="1" />
    </element>
    <element id="Procedure.followUp.coding">
      <path value="Procedure.followUp.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.followUp.coding:followUp">
      <path value="Procedure.followUp.coding" />
      <sliceName value="followUp" />
    </element>
    <element id="Procedure.followUp.coding:followUp.system">
      <path value="Procedure.followUp.coding.system" />
      <short value="Further treatment or monitoring of the patient classifier | Pacienta tālāka ārstēšana vai uzraudzība klasifikators" />
      <fixedUri value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.629" />
    </element>
    <element id="Procedure.followUp.coding:followUp.code">
      <path value="Procedure.followUp.coding.code" />
      <binding>
        <strength value="required" />
        <description value="Further treatment or monitoring of the patient classifier code | Pacienta tālāka ārstēšana vai uzraudzība klasifikatora kods" />
        <valueSet value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.629" />
      </binding>
    </element>
    <element id="Procedure.followUp.coding:followUpOld">
      <path value="Procedure.followUp.coding" />
      <sliceName value="followUpOld" />
    </element>
    <element id="Procedure.followUp.coding:followUpOld.system">
      <path value="Procedure.followUp.coding.system" />
      <short value="Further treatment or monitoring of the patient classifier old | Pacienta tālāka ārstēšana vai uzraudzība klasifikators vēsturiskais" />
      <definition value="Further treatment or monitoring of the patient classifier old (only for historical cards until 2024) | Pacienta tālāka ārstēšana vai uzraudzība klasifikators vēsturiskais (tikai vēsturiskām kartēm līdz 2024.gadam)" />
      <fixedUri value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.204" />
    </element>
    <element id="Procedure.followUp.coding:followUpOld.code">
      <path value="Procedure.followUp.coding.code" />
      <binding>
        <strength value="required" />
        <description value="Further treatment or monitoring of the patient classifier code old | Pacienta tālāka ārstēšana vai uzraudzība klasifikatora kods vēsturiskais" />
        <valueSet value="https://vvis.gov.lv/fhir/ValueSet/1.3.6.1.4.1.38760.2.204" />
      </binding>
    </element>
    <element id="Procedure.note">
      <path value="Procedure.note" />
      <max value="0" />
    </element>
    <element id="Procedure.focalDevice">
      <path value="Procedure.focalDevice" />
      <max value="0" />
    </element>
    <element id="Procedure.usedReference">
      <path value="Procedure.usedReference" />
      <max value="0" />
    </element>
    <element id="Procedure.usedCode">
      <path value="Procedure.usedCode" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>