<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="23dc287d-ffe2-4524-8498-9d57cf115240" />
  <url value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-HealthcareService" />
  <name value="NHSDigitalHealthcareService" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="HealthcareService" />
  <baseDefinition value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-HealthcareService" />
  <derivation value="constraint" />
  <differential>
    <element id="HealthcareService.identifier">
      <path value="HealthcareService.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="**SHOULD** contain the service identifier e.g. the serviceId from &lt;a href=&quot;https://www.directoryofservices.nhs.uk/&quot;&gt;Directory of Service&lt;/a&gt; or &lt;a href=&quot;https://digital.nhs.uk/developer/api-catalogue/e-referral-service-fhir&quot;&gt;e-RS Directory Services&lt;/a&gt;&#xD;&#xA;&#xD;&#xA;**MAY** contain an ANANA/ODS code. &#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;identifier&quot;: [&#xD;&#xA;          {&#xD;&#xA;            &quot;use&quot;: &quot;official&quot;,&#xD;&#xA;            &quot;system&quot;: &quot;https://fhir.nhs.uk/Id/ers-service&quot;,&#xD;&#xA;            &quot;value&quot;: &quot;11021&quot;&#xD;&#xA;          }&#xD;&#xA;        ]&#xD;&#xA;```" />
      <comment value="MUST contain an ANANA/ODS code." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier:ersServiceId">
      <path value="HealthcareService.identifier" />
      <sliceName value="ersServiceId" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier:ersServiceId.system">
      <path value="HealthcareService.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.nhs.uk/Id/ers-service" />
    </element>
    <element id="HealthcareService.identifier:ersServiceId.value">
      <path value="HealthcareService.identifier.value" />
      <min value="1" />
    </element>
    <element id="HealthcareService.identifier:dosServiceId">
      <path value="HealthcareService.identifier" />
      <sliceName value="dosServiceId" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.identifier:dosServiceId.system">
      <path value="HealthcareService.identifier.system" />
      <min value="1" />
      <fixedUri value="http://fhir.nhs.uk/Id/dos-service-id" />
    </element>
    <element id="HealthcareService.identifier:dosServiceId.value">
      <path value="HealthcareService.identifier.value" />
      <min value="1" />
    </element>
    <element id="HealthcareService.providedBy">
      <path value="HealthcareService.providedBy" />
      <definition value="It is recommended an *identifier reference* using ODS code is used. &#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;providedBy&quot;: {&#xD;&#xA;        &quot;identifier&quot;: {&#xD;&#xA;            &quot;system&quot;: &quot;https://fhir.nhs.uk/Id/ods-organization-code&quot;,&#xD;&#xA;            &quot;value&quot;: &quot;RBA&quot;&#xD;&#xA;          },&#xD;&#xA;        &quot;display&quot;: &quot;TAUNTON AND SOMERSET NHS FOUNDATION TRUST&quot;&#xD;&#xA;    }&#xD;&#xA;```" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.providedBy.identifier">
      <path value="HealthcareService.providedBy.identifier" />
      <min value="1" />
    </element>
    <element id="HealthcareService.providedBy.identifier.system">
      <path value="HealthcareService.providedBy.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.nhs.uk/Id/ods-organization-code" />
    </element>
    <element id="HealthcareService.providedBy.identifier.value">
      <path value="HealthcareService.providedBy.identifier.value" />
      <min value="1" />
    </element>
    <element id="HealthcareService.type">
      <path value="HealthcareService.type" />
      <definition value="Type **SHOULD** be populated. &#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;type&quot;:  [&#xD;&#xA;        {&#xD;&#xA;            &quot;coding&quot;:  [&#xD;&#xA;                {&#xD;&#xA;                    &quot;system&quot;: &quot;https://fhir.nhs.uk/CodeSystem/DoS-ClinicType&quot;,&#xD;&#xA;                    &quot;code&quot;: &quot;PHARMACY&quot;,&#xD;&#xA;                    &quot;display&quot;: &quot;Pharmacy&quot;&#xD;&#xA;                }&#xD;&#xA;            ]&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;or &#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;type&quot;: [&#xD;&#xA;        {&#xD;&#xA;            &quot;coding&quot;: [&#xD;&#xA;                {&#xD;&#xA;                    &quot;system&quot;: &quot;https://fhir.nhs.uk/CodeSystem/eRS-AppointmentType&quot;,&#xD;&#xA;                    &quot;code&quot;: &quot;DAY_CASE&quot;,&#xD;&#xA;                }&#xD;&#xA;            ]&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
      </binding>
    </element>
    <element id="HealthcareService.type.coding">
      <path value="HealthcareService.type.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="HealthcareService.type.coding:UKCoreCareSettingType">
      <path value="HealthcareService.type.coding" />
      <sliceName value="UKCoreCareSettingType" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-CareSettingType" />
      </binding>
    </element>
    <element id="HealthcareService.type.coding:UKCoreCareSettingType.system">
      <path value="HealthcareService.type.coding.system" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="HealthcareService.type.coding:eRSAppointmentType">
      <path value="HealthcareService.type.coding" />
      <sliceName value="eRSAppointmentType" />
      <short value="e-RS Appointment Type" />
      <definition value="Appointment type e.g. telephone/video (only applicable and mandatory if Service Type is Appointment Request, not applicable to Service Type of Triage Request)" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.type.coding:eRSAppointmentType.system">
      <path value="HealthcareService.type.coding.system" />
      <fixedUri value="https://fhir.nhs.uk/CodeSystem/eRS-AppointmentType" />
    </element>
    <element id="HealthcareService.specialty">
      <path value="HealthcareService.specialty" />
      <definition value="Specialty **SHOULD** be from the {{link:http://hl7.org/fhir/ValueSet/c80-practice-codes}}&#xD;&#xA;and is the SNOMED equivalent of the [NHS Data Dictionary - Main Specialty and Treament Function Codes](https://datadictionary.nhs.uk/supporting_information/main_specialty_and_treatment_function_codes_table.html) and FHIR {{pagelink: NHSDataDictionaryClinicalSpecialty.md}}&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;specialty&quot;:  [&#xD;&#xA;        {&#xD;&#xA;            &quot;coding&quot;:  [&#xD;&#xA;                {&#xD;&#xA;                    &quot;system&quot;: &quot;http://snomed.info/sct&quot;,&#xD;&#xA;                    &quot;code&quot;: &quot;394579002&quot;,&#xD;&#xA;                    &quot;display&quot;: &quot;Cardiology&quot;&#xD;&#xA;                }&#xD;&#xA;            ]&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;or using NHS Data Dictionary codes.&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;specialty&quot;:  [&#xD;&#xA;        {&#xD;&#xA;            &quot;coding&quot;:  [&#xD;&#xA;                {&#xD;&#xA;                    &quot;system&quot;: &quot;https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty&quot;,&#xD;&#xA;                    &quot;code&quot;: &quot;320&quot;,&#xD;&#xA;                    &quot;display&quot;: &quot;Cardiology&quot;&#xD;&#xA;                }&#xD;&#xA;            ]&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;or for e-RS Patient Care&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA; &quot;specialty&quot;: [&#xD;&#xA;        {&#xD;&#xA;            &quot;coding&quot;: [&#xD;&#xA;                {&#xD;&#xA;                    &quot;display&quot;: &quot;Dermatology&quot;&#xD;&#xA;                }&#xD;&#xA;            ]&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.specialty.coding">
      <path value="HealthcareService.specialty.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="HealthcareService.specialty.coding.system">
      <path value="HealthcareService.specialty.coding.system" />
      <min value="1" />
    </element>
    <element id="HealthcareService.specialty.coding.code">
      <path value="HealthcareService.specialty.coding.code" />
      <min value="1" />
    </element>
    <element id="HealthcareService.specialty.coding:NHSDataDictionarySpecialty">
      <path value="HealthcareService.specialty.coding" />
      <sliceName value="NHSDataDictionarySpecialty" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="NHS Data Dictionary Specialty/Treatment Function Code" />
        <valueSet value="https://fhir.nhs.uk/ValueSet/NHSDataModelAndDictionary-clinical-specialty" />
      </binding>
    </element>
    <element id="HealthcareService.specialty.coding:NHSDataDictionarySpecialty.system">
      <path value="HealthcareService.specialty.coding.system" />
      <fixedUri value="https://fhir.nhs.uk/CodeSystem/NHSDataModelAndDictionary-clinical-specialty" />
    </element>
    <element id="HealthcareService.specialty.coding:SNOMEDPracticeCode">
      <path value="HealthcareService.specialty.coding" />
      <sliceName value="SNOMEDPracticeCode" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <description value="Specific specialty associated with the agency." />
        <valueSet value="http://hl7.org/fhir/ValueSet/c80-practice-codes" />
      </binding>
    </element>
    <element id="HealthcareService.specialty.coding:SNOMEDPracticeCode.system">
      <path value="HealthcareService.specialty.coding.system" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="HealthcareService.specialty.coding:eRSSpecialty">
      <path value="HealthcareService.specialty.coding" />
      <sliceName value="eRSSpecialty" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <description value="Specific specialty associated with the agency." />
        <valueSet value="https://fhir.nhs.uk/ValueSet/NHSDigital-eRS-Specialty" />
      </binding>
    </element>
    <element id="HealthcareService.specialty.coding:eRSSpecialty.system">
      <path value="HealthcareService.specialty.coding.system" />
      <fixedUri value="https://fhir.nhs.uk/CodeSystem/eRS-Specialty" />
    </element>
    <element id="HealthcareService.location">
      <path value="HealthcareService.location" />
      <definition value="Reference to a location. ODS codes may be used, however this may differ from Directory of Services and so DoS addresses are preferred.&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA; &quot;location&quot;:  [&#xD;&#xA;        {&#xD;&#xA;            &quot;reference&quot;: &quot;urn:uuid:8a5d7d67-64fb-44ec-9802-2dc214bb3dcb&quot;&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;or &#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;location&quot;: [&#xD;&#xA;        {&#xD;&#xA;            &quot;identifier&quot;: {&#xD;&#xA;                &quot;system&quot;: &quot;https://fhir.nhs.uk/Id/ods-site-code&quot;,&#xD;&#xA;                &quot;value&quot;: &quot;R6901&quot;&#xD;&#xA;            }&#xD;&#xA;        }&#xD;&#xA;    ],&#xD;&#xA;```" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-Location" />
      </type>
      <constraint>
        <key value="nhsd-8" />
        <severity value="error" />
        <human value="location - An identifier reference or resource reference must be provided" />
        <expression value="(reference.exists() or identifier.exists())" />
        <source value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-HealthcareService" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.location.identifier.system">
      <path value="HealthcareService.location.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.nhs.uk/Id/ods-site-code" />
    </element>
    <element id="HealthcareService.location.identifier.value">
      <path value="HealthcareService.location.identifier.value" />
      <min value="1" />
    </element>
    <element id="HealthcareService.name">
      <path value="HealthcareService.name" />
      <definition value="Name of the clinic or service.&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA; &quot;name&quot;: &quot;SOMERSET BOWEL CANCER SCREENING CENTRE&quot;,&#xD;&#xA;```" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.telecom">
      <path value="HealthcareService.telecom" />
      <definition value="Contact details for the clinic or service. &#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;   &quot;telecom&quot;: [&#xD;&#xA;    {&#xD;&#xA;      &quot;system&quot;: &quot;phone&quot;,&#xD;&#xA;      &quot;value&quot;: &quot;0113 922 4984&quot;,&#xD;&#xA;      &quot;use&quot;: &quot;work&quot;&#xD;&#xA;    },&#xD;&#xA;    {&#xD;&#xA;      &quot;system&quot;: &quot;email&quot;,&#xD;&#xA;      &quot;value&quot;: &quot;directaddress@example.com&quot;,&#xD;&#xA;      &quot;use&quot;: &quot;work&quot;&#xD;&#xA;    }&#xD;&#xA;  ],&#xD;&#xA;```" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.telecom.value">
      <path value="HealthcareService.telecom.value" />
      <min value="1" />
    </element>
    <element id="HealthcareService.telecom.use">
      <path value="HealthcareService.telecom.use" />
      <min value="1" />
    </element>
    <element id="HealthcareService.serviceProvisionCode">
      <path value="HealthcareService.serviceProvisionCode" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.serviceProvisionCode.coding">
      <path value="HealthcareService.serviceProvisionCode.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="HealthcareService.serviceProvisionCode.coding:eRSClinicType">
      <path value="HealthcareService.serviceProvisionCode.coding" />
      <sliceName value="eRSClinicType" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.nhs.uk/ValueSet/NHSDigital-eRS-ClinicType" />
      </binding>
    </element>
    <element id="HealthcareService.serviceProvisionCode.coding:eRSClinicType.system">
      <path value="HealthcareService.serviceProvisionCode.coding.system" />
      <fixedUri value="https://fhir.nhs.uk/CodeSystem/NHSDigital-ClinicType" />
    </element>
    <element id="HealthcareService.availableTime">
      <path value="HealthcareService.availableTime" />
      <definition value="Opening times for the clinic or service. &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;availableTime&quot;: [&#xD;&#xA;    {&#xD;&#xA;      &quot;daysOfWeek&quot;: [&#xD;&#xA;        &quot;wed&quot;&#xD;&#xA;      ],&#xD;&#xA;      &quot;allDay&quot;: true&#xD;&#xA;    },&#xD;&#xA;    {&#xD;&#xA;      &quot;daysOfWeek&quot;: [&#xD;&#xA;        &quot;mon&quot;,&#xD;&#xA;        &quot;tue&quot;,&#xD;&#xA;        &quot;wed&quot;,&#xD;&#xA;        &quot;thu&quot;&#xD;&#xA;      ],&#xD;&#xA;      &quot;availableStartTime&quot;: &quot;08:30:00&quot;,&#xD;&#xA;      &quot;availableEndTime&quot;: &quot;05:30:00&quot;&#xD;&#xA;    },&#xD;&#xA;    {&#xD;&#xA;      &quot;daysOfWeek&quot;: [&#xD;&#xA;        &quot;sat&quot;,&#xD;&#xA;        &quot;fri&quot;&#xD;&#xA;      ],&#xD;&#xA;      &quot;availableStartTime&quot;: &quot;09:30:00&quot;,&#xD;&#xA;      &quot;availableEndTime&quot;: &quot;04:30:00&quot;&#xD;&#xA;    }&#xD;&#xA;  ],&#xD;&#xA;```" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.endpoint">
      <path value="HealthcareService.endpoint" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="identifier.system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="Technical endpoints providing access to services operated for the specific healthcare services defined at this resource.&#xD;&#xA;&#xD;&#xA;Endpoint identfiers to be used with the HealthcareService. Endpoints can be resolved using the SDS API&#xD;&#xA;&#xD;&#xA;```json&#xD;&#xA;&quot;endpoint&quot;: [&#xD;&#xA;        {&#xD;&#xA;            &quot;identifier&quot;: {&#xD;&#xA;                &quot;system&quot;: &quot;https://fhir.nhs.uk/Id/nhsSpineASID&quot;, // or https://fhir.nhs.uk/Id/nhsMhsPartyKey&#xD;&#xA;                &quot;value&quot;: &quot;999900000041&quot;&#xD;&#xA;            }&#xD;&#xA;        }&#xD;&#xA;    ]&#xD;&#xA;```" />
      <mustSupport value="true" />
    </element>
    <element id="HealthcareService.endpoint.identifier">
      <path value="HealthcareService.endpoint.identifier" />
      <min value="1" />
    </element>
    <element id="HealthcareService.endpoint.identifier.system">
      <path value="HealthcareService.endpoint.identifier.system" />
      <min value="1" />
    </element>
    <element id="HealthcareService.endpoint.identifier.value">
      <path value="HealthcareService.endpoint.identifier.value" />
      <min value="1" />
    </element>
    <element id="HealthcareService.endpoint:nhsMhsPartyKey">
      <path value="HealthcareService.endpoint" />
      <sliceName value="nhsMhsPartyKey" />
      <max value="1" />
    </element>
    <element id="HealthcareService.endpoint:nhsMhsPartyKey.identifier.system">
      <path value="HealthcareService.endpoint.identifier.system" />
      <fixedUri value="https://fhir.nhs.uk/Id/nhsMhsPartyKey" />
    </element>
    <element id="HealthcareService.endpoint:nhsSpineASID">
      <path value="HealthcareService.endpoint" />
      <sliceName value="nhsSpineASID" />
      <max value="1" />
    </element>
    <element id="HealthcareService.endpoint:nhsSpineASID.identifier.system">
      <path value="HealthcareService.endpoint.identifier.system" />
      <fixedUri value="https://fhir.nhs.uk/Id/nhsSpineASID" />
    </element>
  </differential>
</StructureDefinition>