<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-Location" />
  <name value="NHSDigitalLocation" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Location" />
  <baseDefinition value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Location" />
  <derivation value="constraint" />
  <differential>
    <element id="Location.identifier">
      <path value="Location.identifier" />
      <comment value="SHOULD contain an ANANA/ODS code." />
    </element>
    <element id="Location.identifier:odsCode">
      <path value="Location.identifier" />
      <sliceName value="odsCode" />
    </element>
    <element id="Location.identifier:odsCode.system">
      <path value="Location.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.nhs.uk/Id/ods-organization-code" />
    </element>
    <element id="Location.identifier:odsCode.value">
      <path value="Location.identifier.value" />
      <min value="1" />
    </element>
    <element id="Location.type">
      <path value="Location.type" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://fhir.nhs.uk/ValueSet/location-type" />
      </binding>
    </element>
    <element id="Location.type.extension">
      <path value="Location.type.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="0" />
    </element>
    <element id="Location.type.extension:locationRole">
      <path value="Location.type.extension" />
      <sliceName value="locationRole" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.nhs.uk/StructureDefinition/Extension-ODS-Organization-Role" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Location.type.extension:activePeriod">
      <path value="Location.type.extension" />
      <sliceName value="activePeriod" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.nhs.uk/StructureDefinition/Extension-ODS-Organization-Role-ActivePeriod" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Location.address">
      <path value="Location.address" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Location.managingOrganization">
      <path value="Location.managingOrganization" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSDigital-Organization" />
      </type>
      <constraint>
        <key value="nhds-10" />
        <severity value="warning" />
        <human value="managingOrganization - a display name should be provided" />
        <expression value="(display.exists())" />
      </constraint>
    </element>
    <element id="Location.managingOrganization.identifier">
      <path value="Location.managingOrganization.identifier" />
      <min value="1" />
    </element>
    <element id="Location.managingOrganization.identifier.system">
      <path value="Location.managingOrganization.identifier.system" />
      <min value="1" />
    </element>
    <element id="Location.managingOrganization.identifier.value">
      <path value="Location.managingOrganization.identifier.value" />
      <min value="1" />
    </element>
    <element id="Location.partOf">
      <path value="Location.partOf" />
      <constraint>
        <key value="nhsd-9" />
        <severity value="warning" />
        <human value="partOf - display name should be provided" />
        <expression value="(display.exists())" />
      </constraint>
    </element>
    <element id="Location.partOf.identifier">
      <path value="Location.partOf.identifier" />
      <min value="1" />
    </element>
    <element id="Location.partOf.identifier.system">
      <path value="Location.partOf.identifier.system" />
      <min value="1" />
    </element>
    <element id="Location.partOf.identifier.value">
      <path value="Location.partOf.identifier.value" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>