PackagesCanonicalsLogsProblems
    Packages
    spire-healthcare.prod@1.3.0-beta
    https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-HospitalLocation
description: 'A Spire hospital as a physical place. One instance per row of the RDS LocationHospital table. The hospital is also a legal and ODS entity; that aspect is represented by a SpireCore Organization referenced from managingOrganization, and the two are loaded together from the same RDS row. A hospital is the top of the Spire location hierarchy, so partOf is not permitted; sites hang beneath it through SpireCore Site Location. Identifiers: HospitalID (8 characters, the RDS key) and HospitalCode (up to 4 characters, the business key used in SAP-HMS RFC calls); the UK Core ODS site code slice is inherited unchanged and is not populated from the RDS. Naming: name carries the public name, alias carries the internal name. Lifecycle: status is derived from the RDS StartDate and EndDate, which are also carried verbatim in the validity period extension. Address and contact details map one to one onto the RDS columns.'
package_name: spire-healthcare.prod
derivation: constraint
name: SpireCoreHospitalLocation
type: Location
elements:
  address:
    elements:
      line: {short: 'AddressLine1, AddressLine2, AddressLine3 in order', mustSupport: true, array: true, max: 3, index: 23}
      city: {mustSupport: true, index: 24}
      postalCode:
        constraint:
          spire-postcode-len: {human: PostCode is stored as varchar(8) in the RDS. Values longer than 8 characters will not load., source: 'https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-HospitalLocation', severity: warning, expression: length() <= 8}
        mustSupport: true
        index: 25
      country: {mustSupport: true, index: 26}
  managingOrganization:
    type: Reference
    short: The hospital as a legal entity (same RDS row)
    mustSupport: true
    refers: ['https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-Organization']
    index: 27
  name: {short: Public (patient-facing) name, index: 11}
  extension:
    type: Extension
    short: RDS StartDate / EndDate
    mustSupport: true
    url: https://www.spirehealthcare.com/fhir/StructureDefinition/Extension-SpireCore-ValidityPeriod
    index: 0
    slicing:
      slices:
        validityPeriod:
          match: {}
          schema:
            type: Extension
            short: RDS StartDate / EndDate
            mustSupport: true
            url: https://www.spirehealthcare.com/fhir/StructureDefinition/Extension-SpireCore-ValidityPeriod
            index: 0
            elements:
              value[x]:
                elements:
                  start: {index: 1}
                  end: {index: 2}
  alias: {short: Internal name (as used in SAP-HMS and operational systems), mustSupport: true, index: 12}
  status: {short: 'active | inactive, derived by the RDS load from StartDate and EndDate', index: 10}
  identifier:
    mustSupport: true
    array: true
    min: 2
    index: 3
    slicing:
      slices:
        spireHospitalId:
          match: {}
          schema:
            short: RDS HospitalID (nchar 8)
            constraint:
              spire-hosp-id: {human: HospitalID is stored as nchar(8) in the RDS. The identifier value must be exactly 8 characters., source: 'https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-HospitalLocation', severity: error, expression: 'value.matches(''^.{8}$'')'}
            mustSupport: true
            _required: true
            index: 4
            elements:
              system:
                pattern: {type: Uri, value: 'https://www.spirehealthcare.com/fhir/Id/hospital-id'}
                index: 5
              value: {index: 6}
            required: [value, system]
        spireHospitalCode:
          match: {}
          schema:
            short: RDS HospitalCode (varchar 4); SAP-HMS business key
            constraint:
              spire-hosp-code: {human: HospitalCode is stored as varchar(4) in the RDS. The identifier value must be 1 to 4 characters., source: 'https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-HospitalLocation', severity: error, expression: 'value.matches(''^.{1,4}$'')'}
            mustSupport: true
            _required: true
            index: 7
            elements:
              system:
                pattern: {type: Uri, value: 'https://www.spirehealthcare.com/fhir/Id/hospital-code'}
                index: 8
              value: {index: 9}
            required: [value, system]
  telecom:
    mustSupport: true
    index: 13
    slicing:
      rules: open
      description: One slot each for telephone, email and website, matching the RDS columns.
      discriminator:
      - {path: system, type: value}
      min: null
      slices:
        phone:
          match: {system: phone}
          schema:
            short: RDS TelephoneNumber
            constraint:
              spire-tel-len: {human: TelephoneNumber is stored as nchar(11) in the RDS. Values longer than 11 characters will not load; supply the number without spaces or a country prefix., source: 'https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-HospitalLocation', severity: warning, expression: value.length() <= 11}
            mustSupport: true
            index: 14
            elements:
              system:
                pattern: {type: Code, value: phone}
                index: 15
              value: {index: 16}
            required: [value, system]
        email:
          match: {system: email}
          schema:
            short: RDS Email
            mustSupport: true
            index: 17
            elements:
              system:
                pattern: {type: Code, value: email}
                index: 18
              value: {index: 19}
            required: [value, system]
        website:
          match: {system: url}
          schema:
            short: RDS Website
            mustSupport: true
            index: 20
            elements:
              system:
                pattern: {type: Code, value: url}
                index: 21
              value: {index: 22}
            required: [value, system]
  partOf: {short: 'Not permitted: a hospital is the top of the Spire location hierarchy', index: 28}
package_version: 1.3.0-beta
extensions:
  validityPeriod:
    url: https://www.spirehealthcare.com/fhir/StructureDefinition/Extension-SpireCore-ValidityPeriod
    type: Extension
    short: RDS StartDate / EndDate
    mustSupport: true
    index: 0
    elements:
      value[x]:
        elements:
          start: {index: 1}
          end: {index: 2}
class: profile
kind: resource
url: https://www.spirehealthcare.com/fhir/StructureDefinition/SpireCore-HospitalLocation
base: https://fhir.hl7.org.uk/StructureDefinition/UKCore-Location
version: 0.1.0
required: [managingOrganization, name, status, alias]