This page is part of the US Core (v6.0.0: STU6) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-location | Version: 6.0.0 | |||
Active as of 2022-04-20 | Computable Name: USCoreLocation | |||
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License |
This profile sets minimum expectations for the Location resource for recording, searching for and fetching a Location associated with a patient, provider or organization to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present and constrains the way the elements are used when using the profile. It provides the floor for standards development for specific use cases.
The following data-elements must always be present (Mandatory definition) or must be supported if the data is present in the sending system (Must Support definition). 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:
Location.status
Location.name
Location.telecom
Location.address
Additional Profile specific implementation guidance:
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Location
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Location | 0..* | Location | Details and position information for a physical place | |
status | S | 0..1 | code | active | suspended | inactive |
name | S | 1..1 | string | Name of the location as used by humans |
telecom | S | 0..* | ContactPoint | Contact details of the location |
address | S | 0..1 | Address | Physical location |
line | S | 0..* | string | Street name, number, direction & P.O. Box etc. |
city | S | 0..1 | string | Name of city, town etc. |
state | S | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. |
postalCode | S | 0..1 | string | US Zip Codes |
managingOrganization | S | 0..1 | Reference(US Core Organization Profile) | Organization responsible for provisioning and upkeep |
Documentation for this format |
Path | Conformance | ValueSet |
Location.address.state | extensible | UspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/ ) |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Location | 0..* | Location | Details and position information for a physical place | |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
status | ?!SΣ | 0..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use. |
name | SΣ | 1..1 | string | Name of the location as used by humans |
telecom | S | 0..* | ContactPoint | Contact details of the location |
address | S | 0..1 | Address | Physical location |
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home |
line | SΣ | 0..* | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street |
city | SΣ | 0..1 | string | Name of city, town etc. Example General: Erewhon |
state | SΣ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. |
postalCode | SΣ | 0..1 | string | US Zip Codes Example General: 9132 |
managingOrganization | SΣ | 0..1 | Reference(US Core Organization Profile) | Organization responsible for provisioning and upkeep |
Documentation for this format |
Path | Conformance | ValueSet |
Location.status | required | LocationStatus |
Location.address.use | required | AddressUse |
Location.address.state | extensible | UspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/ ) |
Id | Grade | Path(s) | Details | Requirements |
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 | ||||
---|---|---|---|---|---|---|---|---|
Location | 0..* | Location | 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 | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | Unique code or number identifying the location to its users | ||||
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Σ | 1..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 | S | 0..* | ContactPoint | Contact details of the location | ||||
address | S | 0..1 | Address | Physical location | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home | ||||
type | Σ | 0..1 | code | postal | physical | both Binding: AddressType (required): The type of an address (physical / postal). Example General: both | ||||
text | Σ | 0..1 | string | Text representation of the address Example General: 137 Nowhere Street, Erewhon 9132 | ||||
line | SΣ | 0..* | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street | ||||
city | SΣ | 0..1 | string | Name of city, town etc. Example General: Erewhon | ||||
district | Σ | 0..1 | string | District name (aka county) Example General: Madison | ||||
state | SΣ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. | ||||
postalCode | SΣ | 0..1 | string | US Zip Codes Example General: 9132 | ||||
country | Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code) | ||||
period | Σ | 0..1 | Period | Time period when address was/is in use Example General: {"start":"2010-03-23","end":"2010-07-01"} | ||||
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 | 0..* | Extension | Additional content defined by implementations | |||||
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 | SΣ | 0..1 | Reference(US Core Organization Profile) | Organization responsible for provisioning and upkeep | ||||
partOf | 0..1 | Reference(Location) | Another Location this one is physically a part of | |||||
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 | 0..* | Extension | Additional content defined by implementations | |||||
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 | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the location | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Location.language | preferred | CommonLanguages
| ||||
Location.status | required | LocationStatus | ||||
Location.operationalStatus | preferred | Hl7VSBedStatus | ||||
Location.mode | required | LocationMode | ||||
Location.type | extensible | ServiceDeliveryLocationRoleType | ||||
Location.address.use | required | AddressUse | ||||
Location.address.type | required | AddressType | ||||
Location.address.state | extensible | UspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/ ) | ||||
Location.physicalType | example | LocationType | ||||
Location.hoursOfOperation.daysOfWeek | required | DaysOfWeek |
Id | Grade | Path(s) | Details | Requirements |
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 Location
Differential View
This structure is derived from Location
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Location | 0..* | Location | Details and position information for a physical place | |
status | S | 0..1 | code | active | suspended | inactive |
name | S | 1..1 | string | Name of the location as used by humans |
telecom | S | 0..* | ContactPoint | Contact details of the location |
address | S | 0..1 | Address | Physical location |
line | S | 0..* | string | Street name, number, direction & P.O. Box etc. |
city | S | 0..1 | string | Name of city, town etc. |
state | S | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. |
postalCode | S | 0..1 | string | US Zip Codes |
managingOrganization | S | 0..1 | Reference(US Core Organization Profile) | Organization responsible for provisioning and upkeep |
Documentation for this format |
Path | Conformance | ValueSet |
Location.address.state | extensible | UspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/ ) |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Location | 0..* | Location | Details and position information for a physical place | |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
status | ?!SΣ | 0..1 | code | active | suspended | inactive Binding: LocationStatus (required): Indicates whether the location is still in use. |
name | SΣ | 1..1 | string | Name of the location as used by humans |
telecom | S | 0..* | ContactPoint | Contact details of the location |
address | S | 0..1 | Address | Physical location |
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home |
line | SΣ | 0..* | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street |
city | SΣ | 0..1 | string | Name of city, town etc. Example General: Erewhon |
state | SΣ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. |
postalCode | SΣ | 0..1 | string | US Zip Codes Example General: 9132 |
managingOrganization | SΣ | 0..1 | Reference(US Core Organization Profile) | Organization responsible for provisioning and upkeep |
Documentation for this format |
Path | Conformance | ValueSet |
Location.status | required | LocationStatus |
Location.address.use | required | AddressUse |
Location.address.state | extensible | UspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/ ) |
Id | Grade | Path(s) | Details | Requirements |
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() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Location | 0..* | Location | 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 | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | Unique code or number identifying the location to its users | ||||
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Σ | 1..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 | S | 0..* | ContactPoint | Contact details of the location | ||||
address | S | 0..1 | Address | Physical location | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
use | ?!Σ | 0..1 | code | home | work | temp | old | billing - purpose of this address Binding: AddressUse (required): The use of an address. Example General: home | ||||
type | Σ | 0..1 | code | postal | physical | both Binding: AddressType (required): The type of an address (physical / postal). Example General: both | ||||
text | Σ | 0..1 | string | Text representation of the address Example General: 137 Nowhere Street, Erewhon 9132 | ||||
line | SΣ | 0..* | string | Street name, number, direction & P.O. Box etc. This repeating element order: The order in which lines should appear in an address label Example General: 137 Nowhere Street | ||||
city | SΣ | 0..1 | string | Name of city, town etc. Example General: Erewhon | ||||
district | Σ | 0..1 | string | District name (aka county) Example General: Madison | ||||
state | SΣ | 0..1 | string | Sub-unit of country (abbreviations ok) Binding: USPS Two Letter Alphabetic Codes (extensible): Two letter USPS alphabetic codes. | ||||
postalCode | SΣ | 0..1 | string | US Zip Codes Example General: 9132 | ||||
country | Σ | 0..1 | string | Country (e.g. can be ISO 3166 2 or 3 letter code) | ||||
period | Σ | 0..1 | Period | Time period when address was/is in use Example General: {"start":"2010-03-23","end":"2010-07-01"} | ||||
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 | 0..* | Extension | Additional content defined by implementations | |||||
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 | SΣ | 0..1 | Reference(US Core Organization Profile) | Organization responsible for provisioning and upkeep | ||||
partOf | 0..1 | Reference(Location) | Another Location this one is physically a part of | |||||
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 | 0..* | Extension | Additional content defined by implementations | |||||
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 | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the location | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
Location.language | preferred | CommonLanguages
| ||||
Location.status | required | LocationStatus | ||||
Location.operationalStatus | preferred | Hl7VSBedStatus | ||||
Location.mode | required | LocationMode | ||||
Location.type | extensible | ServiceDeliveryLocationRoleType | ||||
Location.address.use | required | AddressUse | ||||
Location.address.type | required | AddressType | ||||
Location.address.state | extensible | UspsTwoLetterAlphabeticCodes (a valid code from https://www.usps.com/ ) | ||||
Location.physicalType | example | LocationType | ||||
Location.hoursOfOperation.daysOfWeek | required | DaysOfWeek |
Id | Grade | Path(s) | Details | Requirements |
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 Location
Other representations of profile: CSV, Excel, Schematron
Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.
The syntax used to describe the interactions is described here.
patient/Location.rs
).The following search parameters and search parameter combinations SHALL be supported:
SHALL support searching by location name using the name
search parameter:
GET [base]/Location?name=[string]
Example:
Implementation Notes: Fetches a bundle of all Location resources that match the name (how to search by string)
SHALL support searching location based on text address using the address
search parameter:
GET [base]/Location?address=[string]
Example:
Implementation Notes: Fetches a bundle of all Location resources that match the address string (how to search by string)
The following search parameter combinations SHOULD be supported:
SHOULD support searching using the address-city
search parameter:
GET [base]/Location?address-city=[string]
Example:
Implementation Notes: Fetches a bundle of all Location resources for the city (how to search by string)
SHOULD support searching using the address-state
search parameter:
GET [base]/Location?address-state=[string]
Example:
Implementation Notes: Fetches a bundle of all Location resources for the state (how to search by string)
SHOULD support searching using the address-postalcode
search parameter:
GET [base]/Location?address-postalcode=[string]
Example:
Implementation Notes: Fetches a bundle of all Location resources for the ZIP code (how to search by string)