SMART Scheduling Links, published by HL7 International / Patient Administration. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/smart-scheduling-links/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.org/fhir/uv/smart-scheduling-links/StructureDefinition/smart-scheduling-location | Version: 1.0.0 | ||||
| Standards status: Trial-use | Maturity Level: 2 | Computable Name: SmartSchedulingLocation | |||
| Other Identifiers: OID:2.16.840.1.113883.4.642.40.91.42.6 | |||||
Each line of the Location File is a minified JSON object that conveys a physical location where appointments are available.
Example Usage Scenarios
The following are example usage scenarios for the SMART Scheduling Links Location profile:
The following data elements must always be present or must be supported if the data is present in the sending system. They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.
Each Location Must Have:
Each Location Must Support:
Profile Specific Implementation Guidance:
The visit modality is represented using Location.physicalType data element (Location.form in R5). Implementers can use this data element to represent a virtual (#vi) or physical (#ph). To convey a slot that can be both virtual OR physical, implementers should model it as two separate location resources: one virtual and one physical.
Each identifier object includes a system and a value
system should be a URL that identifies the identifier system, preferably a page on the publisher's web site (e.g. {"system": "https://healthsystem.example.com/facility-directory", "value": "FAC-123"})system and value as appropriate, following FHIR identifier conventions.Usages:
You can also check for usages in the FHIR IG Statistics
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Location | Details and position information for a physical place | |
![]() ![]() |
SΣ | 1..1 | id | Logical id of this artifact |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | (Complex) | R5: Connection details of a virtual service (e.g. conference call) (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Location.virtualService Constraints: ext-1 | |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 0..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use. |
![]() ![]() |
SΣ | 1..1 | string | Name of the location as used by humans |
![]() ![]() |
SΣ | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name |
![]() ![]() |
S | 1..* | ContactPoint | Contact details of the location |
![]() ![]() ![]() |
SΣC | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. |
![]() ![]() ![]() |
SΣ | 1..1 | string | The actual contact point details |
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. |
![]() ![]() |
S | 0..1 | Address | Physical location |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Physical form of the location Binding: Location Physical Type ValueSet (preferred) |
![]() ![]() |
S | 0..1 | BackboneElement | The absolute geographic location |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 1..1 | decimal | Longitude with WGS84 datum |
![]() ![]() ![]() |
S | 1..1 | decimal | Latitude with WGS84 datum |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Location.status | Base | required | LocationStatus | 📍4.0.1 | FHIR Std. |
| Location.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| Location.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| Location.physicalType | Base | preferred | Location Physical Type ValueSet | 📦1.0.0 | This IG |
| 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()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Location | Details and position information for a physical place | |
![]() ![]() |
S | 1..1 | id | Logical id of this artifact |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | (Complex) | R5: Connection details of a virtual service (e.g. conference call) (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Location.virtualService | |
![]() ![]() |
S | 1..1 | string | Name of the location as used by humans |
![]() ![]() |
S | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name |
![]() ![]() |
S | 1..* | ContactPoint | Contact details of the location |
![]() ![]() ![]() |
S | 1..1 | code | phone | fax | email | pager | url | sms | other |
![]() ![]() ![]() |
S | 1..1 | string | The actual contact point details |
![]() ![]() |
S | 0..1 | Address | Physical location |
![]() ![]() |
S | 0..1 | CodeableConcept | Physical form of the location Binding: Location Physical Type ValueSet (preferred) |
![]() ![]() |
S | 0..1 | BackboneElement | The absolute geographic location |
![]() ![]() ![]() |
S | 1..1 | decimal | Longitude with WGS84 datum |
![]() ![]() ![]() |
S | 1..1 | decimal | Latitude with WGS84 datum |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Location.physicalType | Base | preferred | Location Physical Type ValueSet | 📦1.0.0 | This IG |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Location | Details and position information for a physical place | |||||
![]() ![]() |
SΣ | 1..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
0..* | (Complex) | R5: Connection details of a virtual service (e.g. conference call) (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Location.virtualService Constraints: ext-1 | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Unique code or number identifying the location to its users | ||||
![]() ![]() |
?!Σ | 0..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use. | ||||
![]() ![]() |
Σ | 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). | ||||
![]() ![]() |
SΣ | 1..1 | string | Name of the location as used by humans | ||||
![]() ![]() |
0..* | string | A list of alternate names that the location is known as, or was known as, in the past | |||||
![]() ![]() |
SΣ | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name | ||||
![]() ![]() |
Σ | 0..1 | code | instance | kind Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations. | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Type of function performed Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location. | ||||
![]() ![]() |
S | 1..* | ContactPoint | Contact details of the location | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
SΣC | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | string | The actual contact point details | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. | ||||
![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest) | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when the contact point was/is in use | ||||
![]() ![]() |
S | 0..1 | Address | Physical location | ||||
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Physical form of the location Binding: Location Physical Type ValueSet (preferred) | ||||
![]() ![]() |
S | 0..1 | BackboneElement | The absolute geographic location | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
S | 1..1 | decimal | Longitude with WGS84 datum | ||||
![]() ![]() ![]() |
S | 1..1 | decimal | Latitude with WGS84 datum | ||||
![]() ![]() ![]() |
0..1 | decimal | Altitude with WGS84 datum | |||||
![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization responsible for provisioning and upkeep | ||||
![]() ![]() |
0..1 | Reference(Location) | Another Location this one is physically a part of | |||||
![]() ![]() |
0..* | BackboneElement | What days/times during a week is this location usually open | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week. | |||||
![]() ![]() ![]() |
0..1 | boolean | The Location is open all day | |||||
![]() ![]() ![]() |
0..1 | time | Time that the Location opens | |||||
![]() ![]() ![]() |
0..1 | time | Time that the Location closes | |||||
![]() ![]() |
0..1 | string | Description of availability exceptions | |||||
![]() ![]() |
0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the location | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Location.language | Base | preferred | Common Languages | 📍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.4 |
| Location.mode | Base | required | LocationMode | 📍4.0.1 | FHIR Std. |
| Location.type | Base | extensible | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.4 |
| Location.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| Location.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| Location.physicalType | Base | preferred | Location Physical Type ValueSet | 📦1.0.0 | This IG |
| Location.hoursOfOperation.daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std. |
| 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()
|
Summary
Mandatory: 5 elements
Must-Support: 11 elements
Extensions
This structure refers to these extensions:
Maturity: 2
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Location | Details and position information for a physical place | |
![]() ![]() |
SΣ | 1..1 | id | Logical id of this artifact |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | (Complex) | R5: Connection details of a virtual service (e.g. conference call) (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Location.virtualService Constraints: ext-1 | |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 0..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use. |
![]() ![]() |
SΣ | 1..1 | string | Name of the location as used by humans |
![]() ![]() |
SΣ | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name |
![]() ![]() |
S | 1..* | ContactPoint | Contact details of the location |
![]() ![]() ![]() |
SΣC | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. |
![]() ![]() ![]() |
SΣ | 1..1 | string | The actual contact point details |
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. |
![]() ![]() |
S | 0..1 | Address | Physical location |
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Physical form of the location Binding: Location Physical Type ValueSet (preferred) |
![]() ![]() |
S | 0..1 | BackboneElement | The absolute geographic location |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
S | 1..1 | decimal | Longitude with WGS84 datum |
![]() ![]() ![]() |
S | 1..1 | decimal | Latitude with WGS84 datum |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Location.status | Base | required | LocationStatus | 📍4.0.1 | FHIR Std. |
| Location.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| Location.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| Location.physicalType | Base | preferred | Location Physical Type ValueSet | 📦1.0.0 | This IG |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Location | Details and position information for a physical place | |
![]() ![]() |
S | 1..1 | id | Logical id of this artifact |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..* | (Complex) | R5: Connection details of a virtual service (e.g. conference call) (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Location.virtualService | |
![]() ![]() |
S | 1..1 | string | Name of the location as used by humans |
![]() ![]() |
S | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name |
![]() ![]() |
S | 1..* | ContactPoint | Contact details of the location |
![]() ![]() ![]() |
S | 1..1 | code | phone | fax | email | pager | url | sms | other |
![]() ![]() ![]() |
S | 1..1 | string | The actual contact point details |
![]() ![]() |
S | 0..1 | Address | Physical location |
![]() ![]() |
S | 0..1 | CodeableConcept | Physical form of the location Binding: Location Physical Type ValueSet (preferred) |
![]() ![]() |
S | 0..1 | BackboneElement | The absolute geographic location |
![]() ![]() ![]() |
S | 1..1 | decimal | Longitude with WGS84 datum |
![]() ![]() ![]() |
S | 1..1 | decimal | Latitude with WGS84 datum |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Location.physicalType | Base | preferred | Location Physical Type ValueSet | 📦1.0.0 | This IG |
Snapshot ViewView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Location | Details and position information for a physical place | |||||
![]() ![]() |
SΣ | 1..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
0..* | (Complex) | R5: Connection details of a virtual service (e.g. conference call) (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Location.virtualService Constraints: ext-1 | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Unique code or number identifying the location to its users | ||||
![]() ![]() |
?!Σ | 0..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use. | ||||
![]() ![]() |
Σ | 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). | ||||
![]() ![]() |
SΣ | 1..1 | string | Name of the location as used by humans | ||||
![]() ![]() |
0..* | string | A list of alternate names that the location is known as, or was known as, in the past | |||||
![]() ![]() |
SΣ | 0..1 | string | Additional details about the location that could be displayed as further information to identify the location beyond its name | ||||
![]() ![]() |
Σ | 0..1 | code | instance | kind Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations. | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Type of function performed Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location. | ||||
![]() ![]() |
S | 1..* | ContactPoint | Contact details of the location | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
SΣC | 1..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | string | The actual contact point details | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. | ||||
![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest) | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when the contact point was/is in use | ||||
![]() ![]() |
S | 0..1 | Address | Physical location | ||||
![]() ![]() |
SΣ | 0..1 | CodeableConcept | Physical form of the location Binding: Location Physical Type ValueSet (preferred) | ||||
![]() ![]() |
S | 0..1 | BackboneElement | The absolute geographic location | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
S | 1..1 | decimal | Longitude with WGS84 datum | ||||
![]() ![]() ![]() |
S | 1..1 | decimal | Latitude with WGS84 datum | ||||
![]() ![]() ![]() |
0..1 | decimal | Altitude with WGS84 datum | |||||
![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization responsible for provisioning and upkeep | ||||
![]() ![]() |
0..1 | Reference(Location) | Another Location this one is physically a part of | |||||
![]() ![]() |
0..* | BackboneElement | What days/times during a week is this location usually open | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week. | |||||
![]() ![]() ![]() |
0..1 | boolean | The Location is open all day | |||||
![]() ![]() ![]() |
0..1 | time | Time that the Location opens | |||||
![]() ![]() ![]() |
0..1 | time | Time that the Location closes | |||||
![]() ![]() |
0..1 | string | Description of availability exceptions | |||||
![]() ![]() |
0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the location | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Location.language | Base | preferred | Common Languages | 📍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.4 |
| Location.mode | Base | required | LocationMode | 📍4.0.1 | FHIR Std. |
| Location.type | Base | extensible | ServiceDeliveryLocationRoleType | 📦3.0.0 | THO v7.4 |
| Location.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| Location.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| Location.physicalType | Base | preferred | Location Physical Type ValueSet | 📦1.0.0 | This IG |
| Location.hoursOfOperation.daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std. |
| 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()
|
Summary
Mandatory: 5 elements
Must-Support: 11 elements
Extensions
This structure refers to these extensions:
Maturity: 2
Other representations of profile: CSV, Excel, Schematron
Discussed modeling approaches within the SSL Workgroup. See notes in confluence that discusses the modeling approaches and pro/cons for choosing this modeling direction
In the Location resource, address has a 0..1 cardinality. Within that data element, state is also 0..1. A use case we need to account for is the concept of showing available slots that patients can book for, usually, the state that they live in. Usually, the superset of states here is based on the practitioner's license. However, that concept is orthogonal to which slot is available because a practitioner may not necessarily want to offer appointments in a given state. There are multiple ways of modeling this with some of them described below:
For this PR, we're opting for Option 3 since Location.address semantically represents a physical location and this use case primarily addresses virtual visits. Thus, favor an extension that explicitly describes this use case.
Discussed on 8/3/26 to do the following:
Discussed 8/13/26 - internally w/ stakeholders. We agreed to remove the licensed state extension, which also allows us to remove the virtual location sub profile, given that this is a universal realm (UV) FHIR IG. Licensed state is a US-centric concept. We discussed an extension that may be more applicable like licensedJurisdiction, but ultimately landed on removing it entirely and considering a future US-centric SMART Scheduling Links FHIR IG to profile the extension against a state-specific binding like the US Core 2-letter state value set. In the interim, we'll defer constraints to US-centric groups that are working on scheduling to define an extension that can be used to represent US-states.