<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-service-provider-preference-EXT" />
  <version value="1.1.0" />
  <name value="ServiceProviderPreference" />
  <status value="draft" />
  <description value="Indicates preferences related to provider and service location" />
  <fhirVersion value="4.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <context>
    <type value="element" />
    <expression value="ServiceRequest" />
  </context>
  <type value="Extension" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
  <derivation value="constraint" />
  <differential>
    <element id="Extension.extension">
      <path value="Extension.extension" />
      <min value="2" />
    </element>
    <element id="Extension.extension:PreferenceType">
      <path value="Extension.extension" />
      <sliceName value="PreferenceType" />
      <short value="Preference Type" />
      <definition value="Indicates preferences related to provider and service location" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <isModifier value="true" />
      <isModifierReason value="Indicates how the ProviderOrLocation is to be treated (e.g., preferred provider)" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ontariohealth.ca/fhir/ValueSet/preference-type-code" />
      </binding>
    </element>
    <element id="Extension.extension:PreferenceType.url">
      <path value="Extension.extension.url" />
      <fixedUri value="PreferenceType" />
    </element>
    <element id="Extension.extension:PreferenceType.value[x]">
      <path value="Extension.extension.value[x]" />
      <label value="Preference Type" />
      <code>
        <code value="preferred" />
        <display value="Preferred" />
      </code>
      <code>
        <code value="excluded" />
        <display value="Excluded" />
      </code>
      <short value="Preference Type Code" />
      <definition value="Indicates preferences related to provider and service location" />
      <type>
        <code value="code" />
      </type>
    </element>
    <element id="Extension.extension:ProviderOrLocation">
      <path value="Extension.extension" />
      <sliceName value="ProviderOrLocation" />
      <short value="Provider or Location" />
      <definition value="Indicates the identified service provider or service location that is the subject of the stated preference type - e.g., preferred provider, excluded location, etc." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Extension.extension:ProviderOrLocation.url">
      <path value="Extension.extension.url" />
      <fixedUri value="ProviderOrLocation" />
    </element>
    <element id="Extension.extension:ProviderOrLocation.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="Reference" />
        <targetProfile value="PractitionerRole" />
        <targetProfile value="Practitioner" />
        <targetProfile value="HealthcareService" />
        <targetProfile value="Location" />
      </type>
    </element>
    <element id="Extension.extension:Rationale">
      <path value="Extension.extension" />
      <sliceName value="Rationale" />
      <short value="Preference Rationale" />
      <definition value="Captures the rationale for indicating the provider preference (e.g., captures why a provider should be excluded)" />
      <max value="1" />
    </element>
    <element id="Extension.extension:Rationale.url">
      <path value="Extension.extension.url" />
      <fixedUri value="Rationale" />
    </element>
    <element id="Extension.extension:Rationale.value[x]">
      <path value="Extension.extension.value[x]" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="Extension.url">
      <path value="Extension.url" />
      <fixedUri value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-service-provider-preference-EXT" />
    </element>
    <element id="Extension.value[x]">
      <path value="Extension.value[x]" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>