<StructureDefinition xmlns="http://hl7.org/fhir">
  <meta>
    <lastUpdated value="2018-02-20T12:54:56.053+01:00" />
  </meta>
  <url value="http://hl7.org/fhir/ips/StructureDefinition/procedure-uv-ips" />
  <name value="Procedure-uv-ips" />
  <status value="draft" />
  <date value="2017-10-27T13:43:30.381+02:00" />
  <description value="This profile represents the constraints applied to the Procedure resource by the IPS project, which specifies an entry of the History of Procedure for the international patient summary based on the FHIR standard STU3." />
  <fhirVersion value="3.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.extension">
      <path value="Procedure.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Procedure.extension:statementDetail">
      <path value="Procedure.extension" />
      <sliceName value="statementDetail" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/ips/StructureDefinition/statement-uv-ips" />
      </type>
    </element>
    <element id="Procedure.extension:statementDetail.extension:statementNote">
      <path value="Procedure.extension.extension" />
      <sliceName value="statementNote" />
      <max value="0" />
    </element>
    <element id="Procedure.partOf">
      <path value="Procedure.partOf" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Procedure" />
      </type>
    </element>
    <element id="Procedure.status">
      <path value="Procedure.status" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.code">
      <path value="Procedure.code" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="coding.system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ProcedureCode" />
        </extension>
        <strength value="preferred" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ips/ValueSet/procedure-code" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Procedure.code:absentOrUnknownProcedure">
      <path value="Procedure.code" />
      <sliceName value="absentOrUnknownProcedure" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ProcedureCode" />
        </extension>
        <strength value="required" />
        <description value="A code to identify absent or unknown procedures" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ips/ValueSet/absent-or-unknown-procedures-uv-ips" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Procedure.code:absentOrUnknownProcedure.coding">
      <path value="Procedure.code.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Procedure.code:absentOrUnknownProcedure.coding.system">
      <path value="Procedure.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/ips/CodeSystem/absent-unknown" />
    </element>
    <element id="Procedure.code:absentOrUnknownProcedure.coding.code">
      <path value="Procedure.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Procedure.code:procedureCode">
      <path value="Procedure.code" />
      <sliceName value="procedureCode" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ProcedureCode" />
        </extension>
        <strength value="preferred" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ips/ValueSet/procedures-uv-ips" />
        </valueSetReference>
      </binding>
    </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://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Procedure.subject.identifier">
      <path value="Procedure.subject.identifier" />
      <max value="0" />
    </element>
    <element id="Procedure.performed[x]">
      <path value="Procedure.performed[x]" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Procedure.performer.actor">
      <path value="Procedure.performer.actor" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
      </type>
      <type>
        <code value="Reference" />
        <profile value="http://hl7.org/fhir/ipsStructureDefinition/device-observer-uv-ips" />
      </type>
      <type>
        <code value="Reference" />
        <profile value="http://hl7.org/fhir/ips/StructureDefinition/practitioner-uv-ips" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/ips/StructureDefinition/organization-observation-uv-ips" />
      </type>
    </element>
    <element id="Procedure.performer.onBehalfOf">
      <path value="Procedure.performer.onBehalfOf" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/ips/StructureDefinition/organization-observation-uv-ips" />
      </type>
    </element>
    <element id="Procedure.location">
      <path value="Procedure.location" />
      <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;TRILLIUM II IMPLEMENTATION COMMENTS: We propose to encode it with SNOMED CT." />
    </element>
    <element id="Procedure.reasonCode">
      <path value="Procedure.reasonCode" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ProcedureReason" />
        </extension>
        <strength value="example" />
        <valueSetUri value="http://hl7.org/fhir/ValueSet/procedure-reason" />
      </binding>
    </element>
    <element id="Procedure.bodySite">
      <path value="Procedure.bodySite" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="BodySite" />
        </extension>
        <strength value="example" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ips/ValueSet/target-site-uv-ips" />
        </valueSetReference>
      </binding>
    </element>
  </differential>
</StructureDefinition>