<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="biobankcy-sd-procedure" />
  <meta>
    <versionId value="32" />
    <lastUpdated value="2023-12-14T13:48:50.3950891+00:00" />
  </meta>
  <url value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-procedure" />
  <name value="BIOBANKCYSDProcedure" />
  <title value="Profile: Procedure (biobank.cy)" />
  <status value="draft" />
  <date value="2022-03-23T13:08:31.0637922+00:00" />
  <publisher value="biobank.cy" />
  <contact>
    <name value="Molecular Medicine Research Center (MMRC)" />
    <telecom>
      <system value="email" />
      <value value="biobank@ucy.ac.cy" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="Represents a procedure of a donor (research subject) or citizen (patient) of the biobank.cy. The procedure can be self-reported by the patient or reported by a medical doctor or nurse." />
  <fhirVersion value="4.0.1" />
  <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" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.identifier.type">
      <path value="Procedure.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.identifier.type.coding.system">
      <path value="Procedure.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.identifier.type.coding.code">
      <path value="Procedure.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.identifier.type.coding.display">
      <path value="Procedure.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.basedOn">
      <path value="Procedure.basedOn" />
      <comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Procedure.basedOn.identifier.type">
      <path value="Procedure.basedOn.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.basedOn.identifier.type.coding.system">
      <path value="Procedure.basedOn.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.basedOn.identifier.type.coding.code">
      <path value="Procedure.basedOn.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.basedOn.identifier.type.coding.display">
      <path value="Procedure.basedOn.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.partOf">
      <path value="Procedure.partOf" />
      <comment value="The MedicationAdministration resource has a partOf reference to Procedure, but this is not a circular reference.   For example, the anesthesia MedicationAdministration is part of the surgical Procedure (MedicationAdministration.partOf = Procedure).  For example, the procedure to insert the IV port for an IV medication administration is part of the medication administration (Procedure.partOf = MedicationAdministration).&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Procedure.partOf.identifier.type">
      <path value="Procedure.partOf.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.status">
      <path value="Procedure.status" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.statusReason">
      <path value="Procedure.statusReason" />
      <comment value="This is generally only used for &quot;exception&quot; statuses such as &quot;not-done&quot;, &quot;suspended&quot; or &quot;aborted&quot;. The reason for performing the event at all is captured in reasonCode, not here.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.statusReason.coding.system">
      <path value="Procedure.statusReason.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.statusReason.coding.code">
      <path value="Procedure.statusReason.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.statusReason.coding.display">
      <path value="Procedure.statusReason.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.category">
      <path value="Procedure.category" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.category.coding.system">
      <path value="Procedure.category.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.category.coding.code">
      <path value="Procedure.category.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.category.coding.display">
      <path value="Procedure.category.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.code">
      <path value="Procedure.code" />
      <definition value="Identification of the procedure or recording of &quot;absence of relevant procedures&quot; or of &quot;procedures unknown&quot;." />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.code.coding">
      <path value="Procedure.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.code.coding.system">
      <path value="Procedure.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding.code">
      <path value="Procedure.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding.display">
      <path value="Procedure.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding:procedureDescription">
      <path value="Procedure.code.coding" />
      <sliceName value="procedureDescription" />
      <binding>
        <strength value="required" />
        <description value="A code to identify a specific procedure." />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiprocedure" />
      </binding>
    </element>
    <element id="Procedure.code.coding:procedureDescription.system">
      <path value="Procedure.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding:procedureDescription.code">
      <path value="Procedure.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding:procedureDescription.display">
      <path value="Procedure.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure">
      <path value="Procedure.code.coding" />
      <sliceName value="absentOrUnknownProcedure" />
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiabsentorunknownprocedure" />
      </binding>
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure.system">
      <path value="Procedure.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure.code">
      <path value="Procedure.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure.display">
      <path value="Procedure.code.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.subject">
      <path value="Procedure.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-donor" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-citizen" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.subject.reference">
      <path value="Procedure.subject.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.subject.identifier.type">
      <path value="Procedure.subject.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.subject.identifier.type.coding.system">
      <path value="Procedure.subject.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.subject.identifier.type.coding.code">
      <path value="Procedure.subject.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.subject.identifier.type.coding.display">
      <path value="Procedure.subject.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.encounter">
      <path value="Procedure.encounter" />
      <definition value="The Encounter during which this Procedure resource was captured as part of the questionnaire/interview process involving a donor/citizen receiving services from the biobank. In case this resource is retrieved from an outside system (e.g. national EHR system) then don't use this element." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Encounter" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-visit" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.encounter.identifier.type">
      <path value="Procedure.encounter.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.encounter.identifier.type.coding.system">
      <path value="Procedure.encounter.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.encounter.identifier.type.coding.code">
      <path value="Procedure.encounter.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.encounter.identifier.type.coding.display">
      <path value="Procedure.encounter.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.performed[x]">
      <path value="Procedure.performed[x]" />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="Period" />
      </type>
      <type>
        <code value="Age" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.recorder.identifier.type">
      <path value="Procedure.recorder.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.recorder.identifier.type.coding.system">
      <path value="Procedure.recorder.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.recorder.identifier.type.coding.code">
      <path value="Procedure.recorder.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.recorder.identifier.type.coding.display">
      <path value="Procedure.recorder.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.asserter">
      <path value="Procedure.asserter" />
      <mustSupport value="false" />
    </element>
    <element id="Procedure.asserter.identifier.type">
      <path value="Procedure.asserter.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.asserter.identifier.type.coding.system">
      <path value="Procedure.asserter.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.asserter.identifier.type.coding.code">
      <path value="Procedure.asserter.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.asserter.identifier.type.coding.display">
      <path value="Procedure.asserter.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.performer">
      <path value="Procedure.performer" />
      <mustSupport value="false" />
    </element>
    <element id="Procedure.performer.function">
      <path value="Procedure.performer.function" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.performer.function.coding.system">
      <path value="Procedure.performer.function.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.performer.function.coding.code">
      <path value="Procedure.performer.function.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.performer.function.coding.display">
      <path value="Procedure.performer.function.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.performer.actor">
      <path value="Procedure.performer.actor" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Patient-uv-ips" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
        <targetProfile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Device-observer-uv-ips" />
        <targetProfile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Practitioner-uv-ips" />
        <targetProfile value="http://hl7.org/fhir/uv/ips/StructureDefinition/PractitionerRole-uv-ips" />
        <targetProfile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Organization-uv-ips" />
      </type>
    </element>
    <element id="Procedure.performer.onBehalfOf">
      <path value="Procedure.performer.onBehalfOf" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/uv/ips/StructureDefinition/Organization-uv-ips" />
      </type>
    </element>
    <element id="Procedure.location.identifier.type">
      <path value="Procedure.location.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.location.identifier.type.coding.system">
      <path value="Procedure.location.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.location.identifier.type.coding.code">
      <path value="Procedure.location.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.location.identifier.type.coding.display">
      <path value="Procedure.location.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.reasonCode">
      <path value="Procedure.reasonCode" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.reasonCode.coding.system">
      <path value="Procedure.reasonCode.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.reasonCode.coding.code">
      <path value="Procedure.reasonCode.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.reasonCode.coding.display">
      <path value="Procedure.reasonCode.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.reasonReference.identifier.type">
      <path value="Procedure.reasonReference.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.reasonReference.identifier.type.coding.system">
      <path value="Procedure.reasonReference.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.reasonReference.identifier.type.coding.code">
      <path value="Procedure.reasonReference.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.reasonReference.identifier.type.coding.display">
      <path value="Procedure.reasonReference.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.bodySite.coding.system">
      <path value="Procedure.bodySite.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.bodySite.coding.code">
      <path value="Procedure.bodySite.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.bodySite.coding.display">
      <path value="Procedure.bodySite.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.outcome">
      <path value="Procedure.outcome" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.outcome.coding.system">
      <path value="Procedure.outcome.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.outcome.coding.code">
      <path value="Procedure.outcome.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.outcome.coding.display">
      <path value="Procedure.outcome.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.report.identifier.type">
      <path value="Procedure.report.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.report.identifier.type.coding.system">
      <path value="Procedure.report.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.report.identifier.type.coding.code">
      <path value="Procedure.report.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.report.identifier.type.coding.display">
      <path value="Procedure.report.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.complication">
      <path value="Procedure.complication" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.complication.coding.system">
      <path value="Procedure.complication.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.complication.coding.code">
      <path value="Procedure.complication.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.complication.coding.display">
      <path value="Procedure.complication.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.complicationDetail.identifier.type">
      <path value="Procedure.complicationDetail.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.complicationDetail.identifier.type.coding.system">
      <path value="Procedure.complicationDetail.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.complicationDetail.identifier.type.coding.code">
      <path value="Procedure.complicationDetail.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.complicationDetail.identifier.type.coding.display">
      <path value="Procedure.complicationDetail.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.followUp">
      <path value="Procedure.followUp" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.followUp.coding.system">
      <path value="Procedure.followUp.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.followUp.coding.code">
      <path value="Procedure.followUp.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.followUp.coding.display">
      <path value="Procedure.followUp.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.focalDevice.action">
      <path value="Procedure.focalDevice.action" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.focalDevice.action.coding.system">
      <path value="Procedure.focalDevice.action.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.focalDevice.action.coding.code">
      <path value="Procedure.focalDevice.action.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.focalDevice.action.coding.display">
      <path value="Procedure.focalDevice.action.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.focalDevice.manipulated.identifier.type">
      <path value="Procedure.focalDevice.manipulated.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.focalDevice.manipulated.identifier.type.coding.system">
      <path value="Procedure.focalDevice.manipulated.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.focalDevice.manipulated.identifier.type.coding.code">
      <path value="Procedure.focalDevice.manipulated.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.focalDevice.manipulated.identifier.type.coding.display">
      <path value="Procedure.focalDevice.manipulated.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.usedReference.identifier.type">
      <path value="Procedure.usedReference.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.usedReference.identifier.type.coding.system">
      <path value="Procedure.usedReference.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.usedReference.identifier.type.coding.code">
      <path value="Procedure.usedReference.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.usedReference.identifier.type.coding.display">
      <path value="Procedure.usedReference.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Procedure.usedCode">
      <path value="Procedure.usedCode" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Procedure.usedCode.coding.system">
      <path value="Procedure.usedCode.coding.system" />
      <min value="1" />
    </element>
    <element id="Procedure.usedCode.coding.code">
      <path value="Procedure.usedCode.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.usedCode.coding.display">
      <path value="Procedure.usedCode.coding.display" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>