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]