<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-HealthcareService" />
  <version value="1.1.0" />
  <name value="EReferralHealthcareService" />
  <status value="draft" />
  <description value="HealthcareService contains the details of a healthcare service available at a location." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="HealthcareService" />
  <baseDefinition value="http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-HealthcareService" />
  <derivation value="constraint" />
  <differential>
    <element id="HealthcareService.meta">
      <path value="HealthcareService.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.meta.profile">
      <path value="HealthcareService.meta.profile" />
      <comment value="It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time.  The list of profile URLs is a set.&#xD;&#xA;&#xD;&#xA;#### **_` FOR eREFERRAL USAGE: The meta.profile = http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-HealthcareService|1.1.0 `_**" />
      <min value="1" />
    </element>
    <element id="HealthcareService.meta.security">
      <path value="HealthcareService.meta.security" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/security-labels" />
      </binding>
    </element>
    <element id="HealthcareService.meta.tag">
      <path value="HealthcareService.meta.tag" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.meta.tag.system">
      <path value="HealthcareService.meta.tag.system" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.meta.tag.code">
      <path value="HealthcareService.meta.tag.code" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.meta.tag.display">
      <path value="HealthcareService.meta.tag.display" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.text">
      <path value="HealthcareService.text" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.extension:UsageLicense">
      <path value="HealthcareService.extension" />
      <sliceName value="UsageLicense" />
      <definition value="Extension to describe the licensing conditions under which this HealthcareService (and related) resources may be used." />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-usage-license" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.extension:Media">
      <path value="HealthcareService.extension" />
      <sliceName value="Media" />
      <definition value="Extension to capture photos, documents and files that relate to a HealthcareService." />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-media" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.extension:AccessInstructions">
      <path value="HealthcareService.extension" />
      <sliceName value="AccessInstructions" />
      <definition value="Extension describes how a person gets started with this HealthcareService." />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-access-instructions" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.extension:DeliveryMethod">
      <path value="HealthcareService.extension" />
      <sliceName value="DeliveryMethod" />
      <definition value="Extension to describe how the service is delivered to the client. Usually there is only one deliveryMethod, but in some case there are multiple (e.g., On “site” counseling with a “video-call” option.)" />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-delivery-method" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.identifier.use">
      <path value="HealthcareService.identifier.use" />
      <binding>
        <strength value="required" />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/ereferral-identifier-use" />
      </binding>
    </element>
    <element id="HealthcareService.identifier.type">
      <path value="HealthcareService.identifier.type" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/ereferral-identifier-type" />
      </binding>
    </element>
    <element id="HealthcareService.identifier.type.coding">
      <path value="HealthcareService.identifier.type.coding" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier.type.coding.system">
      <path value="HealthcareService.identifier.type.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier.type.coding.code">
      <path value="HealthcareService.identifier.type.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier.type.coding.display">
      <path value="HealthcareService.identifier.type.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier.assigner">
      <path value="HealthcareService.identifier.assigner" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.active">
      <path value="HealthcareService.active" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.providedBy">
      <path value="HealthcareService.providedBy" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Organization" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.providedBy.display">
      <path value="HealthcareService.providedBy.display" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.category">
      <path value="HealthcareService.category" />
      <comment value="Selecting a Service Category then determines the list of relevant service types that can be selected in the primary service type.&#xD;&#xA;The high level healthcare sector of the listing. (e.g.,  Mental health service, Community health services, Laboratory service, etc)" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/healthcareservice-categories" />
      </binding>
    </element>
    <element id="HealthcareService.type">
      <path value="HealthcareService.type" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;&lt;a href=&quot;https://tgateway.infoway-inforoute.ca/singlesubset.html?id=2.16.840.1.113883.3.239.12.38&amp;versionid=20220429&quot;&gt;LINK TO VALUE SET&lt;/a&gt;" />
      <binding>
        <strength value="preferred" />
        <description value="Defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient." />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty" />
      </binding>
    </element>
    <element id="HealthcareService.type.extension:IsPrimary">
      <path value="HealthcareService.type.extension" />
      <sliceName value="IsPrimary" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-is-primary" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.type.extension:Facet">
      <path value="HealthcareService.type.extension" />
      <sliceName value="Facet" />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-facet" />
      </type>
      <mustSupport value="true" />
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.type.coding">
      <path value="HealthcareService.type.coding" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.type.coding.system">
      <path value="HealthcareService.type.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.type.coding.code">
      <path value="HealthcareService.type.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.type.coding.display">
      <path value="HealthcareService.type.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.location">
      <path value="HealthcareService.location" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Location" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.location.reference">
      <path value="HealthcareService.location.reference" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.location.display">
      <path value="HealthcareService.location.display" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.comment">
      <path value="HealthcareService.comment" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.extraDetails">
      <path value="HealthcareService.extraDetails" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.telecom">
      <path value="HealthcareService.telecom" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.telecom.system">
      <path value="HealthcareService.telecom.system" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.telecom.value">
      <path value="HealthcareService.telecom.value" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.telecom.period.start">
      <path value="HealthcareService.telecom.period.start" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.telecom.period.end">
      <path value="HealthcareService.telecom.period.end" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.serviceProvisionCode">
      <path value="HealthcareService.serviceProvisionCode" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/service-provision-conditions" />
      </binding>
    </element>
    <element id="HealthcareService.eligibility.code">
      <path value="HealthcareService.eligibility.code" />
      <mustSupport value="false" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/eligibility-criteria" />
      </binding>
    </element>
    <element id="HealthcareService.program.coding.system">
      <path value="HealthcareService.program.coding.system" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.program.coding.code">
      <path value="HealthcareService.program.coding.code" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.program.coding.display">
      <path value="HealthcareService.program.coding.display" />
      <min value="1" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.characteristic.extension:Facet">
      <path value="HealthcareService.characteristic.extension" />
      <sliceName value="Facet" />
      <type>
        <code value="Extension" />
        <profile value="http://ehealthontario.ca/fhir/StructureDefinition/ext-facet" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="HealthcareService.characteristic.extension:Facet.value[x]">
      <path value="HealthcareService.characteristic.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.communication">
      <path value="HealthcareService.communication" />
      <binding>
        <strength value="preferred" />
        <description value="Languages understood or supported by Ontario clients and organizations. This value set represents the subset of all ISO living languages as of April 22, 2020." />
        <valueSet value="http://ehealthontario.ca/fhir/ValueSet/human-language" />
      </binding>
    </element>
    <element id="HealthcareService.endpoint">
      <path value="HealthcareService.endpoint" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.endpoint.reference">
      <path value="HealthcareService.endpoint.reference" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.endpoint.type">
      <path value="HealthcareService.endpoint.type" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.endpoint.identifier">
      <path value="HealthcareService.endpoint.identifier" />
      <mustSupport value="false" />
    </element>
    <element id="HealthcareService.endpoint.display">
      <path value="HealthcareService.endpoint.display" />
      <mustSupport value="false" />
    </element>
  </differential>
</StructureDefinition>