<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="corhealth-servicerequest" />
  <url value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-servicerequest" />
  <name value="CorHealthServiceRequest" />
  <title value="CorHealth ServiceRequest" />
  <status value="active" />
  <description value="CorHealth ServiceRequest" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="ServiceRequest" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ServiceRequest" />
  <derivation value="constraint" />
  <differential>
    <element id="ServiceRequest.identifier.system">
      <path value="ServiceRequest.identifier.system" />
      <patternUri value="https://corhealth-ontario.ca/NamingSystem/service-request-id" />
    </element>
    <element id="ServiceRequest.status">
      <path value="ServiceRequest.status" />
      <short value="Field ID: 27. Entry Status" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://corhealth-ontario.ca/fhir/ValueSet/CorHealthEntryStatusVS" />
      </binding>
    </element>
    <element id="ServiceRequest.code">
      <path value="ServiceRequest.code" />
      <short value="Field ID: 23. Service Detail" />
      <min value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://corhealth-ontario.ca/fhir/ValueSet/CorHealth23ServiceDetailVS" />
      </binding>
    </element>
    <element id="ServiceRequest.subject">
      <path value="ServiceRequest.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.encounter.identifier">
      <path value="ServiceRequest.encounter.identifier" />
      <short value="This is needed for matching hospital encounter to CorHealth Entry ID" />
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.occurrence[x]">
      <path value="ServiceRequest.occurrence[x]" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.occurrence[x].start">
      <path value="ServiceRequest.occurrence[x].start" />
      <short value="Field ID: 103. Acceptance Date" />
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.occurrence[x].end">
      <path value="ServiceRequest.occurrence[x].end" />
      <short value="Field ID: 112. Removal Date" />
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.authoredOn">
      <path value="ServiceRequest.authoredOn" />
      <short value="Field ID: 33. Referral Date" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.requester">
      <path value="ServiceRequest.requester" />
      <short value="Field ID: 155. Referring Physician" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-practitioner" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.performer">
      <path value="ServiceRequest.performer" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="type" />
        </discriminator>
        <description value="Slice based on type pattern" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.performer:serviceLocation">
      <path value="ServiceRequest.performer" />
      <sliceName value="serviceLocation" />
      <short value="Field ID: 154. Service Location" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.performer:serviceLocation.type">
      <path value="ServiceRequest.performer.type" />
      <min value="1" />
      <patternUri value="Organization" />
    </element>
    <element id="ServiceRequest.performer:responsibleHCP">
      <path value="ServiceRequest.performer" />
      <sliceName value="responsibleHCP" />
      <short value="Field ID: 156. Responsible Health Care Professional" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-practitioner" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.performer:responsibleHCP.type">
      <path value="ServiceRequest.performer.type" />
      <min value="1" />
      <patternUri value="Practitioner" />
    </element>
    <element id="ServiceRequest.reasonCode">
      <path value="ServiceRequest.reasonCode" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <description value="Slice based on $this pattern" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.reasonCode:primaryReason">
      <path value="ServiceRequest.reasonCode" />
      <sliceName value="primaryReason" />
      <short value="Field ID: 38. Primary Reason for Referral" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://corhealth-ontario.ca/fhir/ValueSet/CorHealth38ReasonForReferralVS" />
      </binding>
    </element>
    <element id="ServiceRequest.reasonCode:primaryReasonType">
      <path value="ServiceRequest.reasonCode" />
      <sliceName value="primaryReasonType" />
      <short value="Field ID: 39. Primary Reason for Referral Type" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://corhealth-ontario.ca/fhir/ValueSet/CorHealth39ReasonForReferralTypeVS" />
      </binding>
    </element>
    <element id="ServiceRequest.supportingInfo">
      <path value="ServiceRequest.supportingInfo" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <description value="Slice based on $this pattern" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:waitLocation">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="waitLocation" />
      <short value="Field ID: 160. Wait Location" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:race">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="race" />
      <short value="Field ID: 153. Race" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-153" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:secondaryReasonForReferral">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="secondaryReasonForReferral" />
      <short value="Field ID: 40. Secondary Reason for Referral" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-040" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:secondaryReasonForReferralType">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="secondaryReasonForReferralType" />
      <short value="Field ID: 41. Secondary Reason for Referral Type" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-041" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:heartTeamInvolved">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="heartTeamInvolved" />
      <short value="Field ID: 106. Heart Team Involved in Treatment Decision" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-106" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:fundingSource">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="fundingSource" />
      <short value="Field ID: 107. Funding Source" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-107" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:dart">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="dart" />
      <short value="Field ID: 108, 109. Dates Affecting Readiness to Treat" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-108" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:removalReason">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="removalReason" />
      <short value="Field ID: 113. Removal Reason" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-113" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:delayReason">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="delayReason" />
      <short value="Field ID: 152. Delay Reason" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-152" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="ServiceRequest.supportingInfo:referralPostalCode">
      <path value="ServiceRequest.supportingInfo" />
      <sliceName value="referralPostalCode" />
      <short value="Patient's Referral Postal Code" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://corhealth-ontario.ca/fhir/StructureDefinition/corhealth-observation-prpc" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>