<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ca-on-ps-profile-procedure" />
  <url value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ps-profile-procedure" />
  <version value="0.11.0" />
  <name value="ProcedurePSON" />
  <title value="Procedure (PS-ON)" />
  <status value="active" />
  <date value="2022-10-15T12:00:00+00:00" />
  <publisher value="Ontario Health" />
  <description value="This profile defines a set of constraints to the FHIR Procedure resource for use in Ontario Patient Summaries (PS-ON).  It refines constraints applied  to the Procedure resource by the PS-CA project, which is informed by the constraints of the [Procedure-UV-IPS profile](http://hl7.org/fhir/uv/ips/StructureDefinition-Procedure-uv-ips.html) and the [Canadian Baseline Profile](http://build.fhir.org/ig/HL7-Canada/ca-baseline/branches/master/StructureDefinition-profile-procedure.html) to allow for cross-border and cross-jurisdiction sharing of History of Procedure information." />
  <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.meta">
      <path value="Procedure.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.meta.profile">
      <path value="Procedure.meta.profile" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.status">
      <path value="Procedure.status" />
      <mustSupport value="true" />
    </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://ontariohealth.ca/fhir/StructureDefinition/ca-on-ps-profile-codeableconcept" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/procedurecode" />
      </binding>
    </element>
    <element id="Procedure.code.coding">
      <path value="Procedure.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <description value="Discriminated by the bound value set" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code.coding.display.extension:translation">
      <path value="Procedure.code.coding.display.extension" />
      <sliceName value="translation" />
    </element>
    <element id="Procedure.code.coding.display.extension:translation.extension">
      <path value="Procedure.code.coding.display.extension.extension" />
      <min value="2" />
    </element>
    <element id="Procedure.code.coding:codeSCTCA">
      <path value="Procedure.code.coding" />
      <sliceName value="codeSCTCA" />
      <short value="Slice for representing SNOMED CT CA codes for primary health care procedures" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="SNOMED CT Canadian codes to describe Services/Activities performed by Primary Health Care Providers." />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/procedurecode" />
      </binding>
    </element>
    <element id="Procedure.code.coding:codeSCTCA.display.extension:translation">
      <path value="Procedure.code.coding.display.extension" />
      <sliceName value="translation" />
    </element>
    <element id="Procedure.code.coding:codeSCTCA.display.extension:translation.extension">
      <path value="Procedure.code.coding.display.extension.extension" />
      <min value="2" />
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure">
      <path value="Procedure.code.coding" />
      <sliceName value="absentOrUnknownProcedure" />
      <short value="Optional slice for representing a code for absent problem or for unknown procedure" />
      <definition value="Code representing the statement &quot;absent problem&quot; or the statement &quot;procedures unknown&quot;" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="absentOrUnknownProcedure" />
        </extension>
        <strength value="required" />
        <description value="A code to identify absent or unknown procedures" />
        <valueSet value="http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-procedures-uv-ips" />
      </binding>
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure.display.extension:translation">
      <path value="Procedure.code.coding.display.extension" />
      <sliceName value="translation" />
    </element>
    <element id="Procedure.code.coding:absentOrUnknownProcedure.display.extension:translation.extension">
      <path value="Procedure.code.coding.display.extension.extension" />
      <min value="2" />
    </element>
    <element id="Procedure.code.coding:codeICD9CM">
      <path value="Procedure.code.coding" />
      <sliceName value="codeICD9CM" />
      <short value="Slice for representing ICD-9 CM codes for primary health care procedures" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="Any code from ICD-9 CM." />
        <valueSet value="http://fhir.infoway-inforoute.ca/io/psca/ValueSet/ICD9CM" />
      </binding>
    </element>
    <element id="Procedure.code.coding:codeICD9CM.display.extension:translation">
      <path value="Procedure.code.coding.display.extension" />
      <sliceName value="translation" />
    </element>
    <element id="Procedure.code.coding:codeICD9CM.display.extension:translation.extension">
      <path value="Procedure.code.coding.display.extension.extension" />
      <min value="2" />
    </element>
    <element id="Procedure.code.coding:codeCCI">
      <path value="Procedure.code.coding" />
      <sliceName value="codeCCI" />
      <short value="Slice for representing Canadian Classification of Health Interventions (CCI)  codes for primary health care procedures" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.infoway-inforoute.ca/io/psca/ValueSet/CCI" />
      </binding>
    </element>
    <element id="Procedure.code.coding:codeCCI.display.extension:translation">
      <path value="Procedure.code.coding.display.extension" />
      <sliceName value="translation" />
    </element>
    <element id="Procedure.code.coding:codeCCI.display.extension:translation.extension">
      <path value="Procedure.code.coding.display.extension.extension" />
      <min value="2" />
    </element>
    <element id="Procedure.subject">
      <path value="Procedure.subject" />
      <definition value="The person on which the procedure was performed." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ps-profile-patient" />
      </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.performed[x]">
      <path value="Procedure.performed[x]" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.performed[x].extension:data-absent-reason">
      <path value="Procedure.performed[x].extension" />
      <sliceName value="data-absent-reason" />
      <short value="performed[x] absence reason" />
      <definition value="Provides a reason why the performed is missing." />
      <comment value="Some Canadian implementations cannot guarantee that a procedure performed date will always be available in every instance of legacy data. Any implementors who do not require a performed date be available on every procedure need to be able to produce a dataAbsentReason extension in order to be conformant" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/StructureDefinition/data-absent-reason" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <comment value="While the IPS-UV specification considers this a MS element, some systems will not have a field directly capturing procedure bodysite, further feedback is required on whether these systems are still expected to be able to demonstrate they can construct the asserter using additional data from the system when developing the patient summary instance. Work is underway to define the pan-Canadian terminology that will be preferred and/or socialized for this element." />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ps-profile-codeableconcept" />
      </type>
      <binding>
        <strength value="preferred" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/anatomicaloracquiredbodystructurecode" />
      </binding>
    </element>
    <element id="Procedure.bodySite.coding.display.extension:translation">
      <path value="Procedure.bodySite.coding.display.extension" />
      <sliceName value="translation" />
    </element>
    <element id="Procedure.bodySite.coding.display.extension:translation.extension">
      <path value="Procedure.bodySite.coding.display.extension.extension" />
      <min value="2" />
    </element>
  </differential>
</StructureDefinition>