Social Care Interoperability Platform FHIR Implementation Guide
Version: 0.1.0, Status: draft

Social Care Interoperability Platform FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: MODS Location

Official URL: https://metadata.phase2.scip.synanetics.cloud/fhir/r4/StructureDefinition/MODS-Location Version: 0.1.0
Draft as of 2026-03-24 Computable Name: MODSLocation

This profile defines the MODS constraints and extensions on the UKCore FHIR Resource Location

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* UKCoreLocation Details and position information for a physical place
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... Slices for identifier ΣN 0..* Identifier Unique code or number identifying the location to its users
Slice: Unordered, Open by value:system
.... identifier:odsSiteCode SΣN 0..1 Identifier ODS Site code to identify the organisation at site level
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri ODS Code
Fixed Value: https://fhir.nhs.uk/Id/ods-site-code
..... value Σ 1..1 string The value that is unique
Example General: 123456
... name SΣ 0..1 string Name of the location as used by humans
... address S 0..1 Address Physical location

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.identifier:odsSiteCode.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from UKCoreLocation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* UKCoreLocation Details and position information for a physical place

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* UKCoreLocation Details and position information for a physical place
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... Slices for identifier ΣN 0..* Identifier Unique code or number identifying the location to its users
Slice: Unordered, Open by value:system
.... identifier:odsSiteCode SΣN 0..1 Identifier ODS Site code to identify the organisation at site level
..... id 0..1 string Unique id for inter-element referencing
..... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... type ΣN 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
..... system Σ 1..1 uri ODS Code
Fixed Value: https://fhir.nhs.uk/Id/ods-site-code
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period ΣCN 0..1 Period Time period when id is/was valid for use
Constraints: per-1
..... assigner ΣCN 0..1 Reference(Organization) Organization that issued id (may be just text)
Constraints: ref-1
... status ?!SΣ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.
... operationalStatus Σ 0..1 Coding The operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).
... name SΣ 0..1 string Name of the location as used by humans
... alias 0..* string A list of alternate names that the location is known as, or was known as, in the past
... description Σ 0..1 string Additional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ 0..1 code instance | kind
Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.
... type Σ 0..* CodeableConcept Type of function performed
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
... telecom C 0..* ContactPoint Contact details of the location
Constraints: cpt-2
... address S 0..1 Address Physical location
... physicalType Σ 0..1 CodeableConcept Physical form of the location
Binding: LocationType (example): Physical form of the location.
... position 0..1 BackboneElement The absolute geographic location
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... longitude 1..1 decimal Longitude with WGS84 datum
.... latitude 1..1 decimal Latitude with WGS84 datum
.... altitude 0..1 decimal Altitude with WGS84 datum
... managingOrganization ΣC 0..1 Reference(Organization) Organization responsible for provisioning and upkeep
Constraints: ref-1
... partOf C 0..1 Reference(Location) Another Location this one is physically a part of
Constraints: ref-1
... hoursOfOperation 0..* BackboneElement What days/times during a week is this location usually open
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
.... allDay 0..1 boolean The Location is open all day
.... openingTime 0..1 time Time that the Location opens
.... closingTime 0..1 time Time that the Location closes
... availabilityExceptions 0..1 string Description of availability exceptions
... endpoint C 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the location
Constraints: ref-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Location.identifier:odsSiteCode.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Location.identifier:odsSiteCode.​type Base extensible IdentifierType 📦4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.operationalStatus Base preferred hl7VS-bedStatus 📦3.0.0 THO v7.1
Location.mode Base required LocationMode 📍4.0.1 FHIR Std.
Location.type Base extensible ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.1
Location.physicalType Base example Location type 📦4.0.1 FHIR Std.
Location.hoursOfOperation.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cpt-2 error Location.telecom A system is required if a value is provided. value.empty() or system.exists()
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
per-1 error Location.identifier:odsSiteCode.period If present, start SHALL have a lower value than end start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1 error Location.identifier:odsSiteCode.assigner, Location.managingOrganization, Location.partOf, Location.endpoint SHALL have a contained resource if a local reference is provided reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

This structure is derived from UKCoreLocation

Summary

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* UKCoreLocation Details and position information for a physical place
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... Slices for identifier ΣN 0..* Identifier Unique code or number identifying the location to its users
Slice: Unordered, Open by value:system
.... identifier:odsSiteCode SΣN 0..1 Identifier ODS Site code to identify the organisation at site level
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri ODS Code
Fixed Value: https://fhir.nhs.uk/Id/ods-site-code
..... value Σ 1..1 string The value that is unique
Example General: 123456
... name SΣ 0..1 string Name of the location as used by humans
... address S 0..1 Address Physical location

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.identifier:odsSiteCode.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from UKCoreLocation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* UKCoreLocation Details and position information for a physical place

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location 0..* UKCoreLocation Details and position information for a physical place
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
... modifierExtension ?!N 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... Slices for identifier ΣN 0..* Identifier Unique code or number identifying the location to its users
Slice: Unordered, Open by value:system
.... identifier:odsSiteCode SΣN 0..1 Identifier ODS Site code to identify the organisation at site level
..... id 0..1 string Unique id for inter-element referencing
..... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... type ΣN 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
..... system Σ 1..1 uri ODS Code
Fixed Value: https://fhir.nhs.uk/Id/ods-site-code
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period ΣCN 0..1 Period Time period when id is/was valid for use
Constraints: per-1
..... assigner ΣCN 0..1 Reference(Organization) Organization that issued id (may be just text)
Constraints: ref-1
... status ?!SΣ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.
... operationalStatus Σ 0..1 Coding The operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).
... name SΣ 0..1 string Name of the location as used by humans
... alias 0..* string A list of alternate names that the location is known as, or was known as, in the past
... description Σ 0..1 string Additional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ 0..1 code instance | kind
Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.
... type Σ 0..* CodeableConcept Type of function performed
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.
... telecom C 0..* ContactPoint Contact details of the location
Constraints: cpt-2
... address S 0..1 Address Physical location
... physicalType Σ 0..1 CodeableConcept Physical form of the location
Binding: LocationType (example): Physical form of the location.
... position 0..1 BackboneElement The absolute geographic location
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... longitude 1..1 decimal Longitude with WGS84 datum
.... latitude 1..1 decimal Latitude with WGS84 datum
.... altitude 0..1 decimal Altitude with WGS84 datum
... managingOrganization ΣC 0..1 Reference(Organization) Organization responsible for provisioning and upkeep
Constraints: ref-1
... partOf C 0..1 Reference(Location) Another Location this one is physically a part of
Constraints: ref-1
... hoursOfOperation 0..* BackboneElement What days/times during a week is this location usually open
.... id 0..1 string Unique id for inter-element referencing
.... extension N 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
.... allDay 0..1 boolean The Location is open all day
.... openingTime 0..1 time Time that the Location opens
.... closingTime 0..1 time Time that the Location closes
... availabilityExceptions 0..1 string Description of availability exceptions
... endpoint C 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the location
Constraints: ref-1

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.language Base preferred Common Languages 📦4.0.1 FHIR Std.
Location.identifier:odsSiteCode.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Location.identifier:odsSiteCode.​type Base extensible IdentifierType 📦4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.operationalStatus Base preferred hl7VS-bedStatus 📦3.0.0 THO v7.1
Location.mode Base required LocationMode 📍4.0.1 FHIR Std.
Location.type Base extensible ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.1
Location.physicalType Base example Location type 📦4.0.1 FHIR Std.
Location.hoursOfOperation.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cpt-2 error Location.telecom A system is required if a value is provided. value.empty() or system.exists()
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
per-1 error Location.identifier:odsSiteCode.period If present, start SHALL have a lower value than end start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1 error Location.identifier:odsSiteCode.assigner, Location.managingOrganization, Location.partOf, Location.endpoint SHALL have a contained resource if a local reference is provided reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

This structure is derived from UKCoreLocation

Summary

 

Other representations of profile: CSV, Excel, Schematron