FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon

8.7 Resource Location - Content

Patient Administration icon Work GroupMaturity Level: 5 Trial UseSecurity Category: Business Compartments: No defined compartments

Details and position information for a place where services are provided and resources and participants may be stored, found, contained, or accommodated.

A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations. Locations may be private, public, mobile or fixed and scale from small freezers to full hospital buildings or parking garages.

Examples of Locations are:

  • Building, ward, corridor, room or bed
  • Mobile Clinic
  • Freezer, incubator
  • Vehicle or lift
  • Home, shed, or a garage
  • Road, parking place, a park
  • Ambulance (generic)
  • Ambulance (specific)
  • Patient's Home (generic)
  • Jurisdiction

These locations are not intended to cover locations on a patient where something occurred (i.e. a patient's broken leg), but can happily cover the location where the patient broke the leg (the playground)

Locations and Organizations are very closely related resources and can often be mixed/matched/confused.
The Location is intended to describe the more physical structures managed/operated by an organization, whereas the Organization is intended to represent the more conceptual hierarchies, such as a ward. Location may also be used to represent virtual locations, for example for telehealth visits.
As noted in the Event pattern, a Location represents where a service is performed. An Organization can represent who performed the service.

A Location is valid without an address in cases where it could be purely described by a geo-coded location in remote areas, or when recorded by a device. Locations with a mode = "kind" would also likely not have an address, as they are just a type of location, but could also have an address where they can be found at the address.

Another use of location could be for describing a Jurisdiction. This jurisdiction may be considered a classified boundary which could be a combination of a physical boundary, and some other discriminator(s):

  • Nation - Country-wide community or Federal Government (Ministry of Health)
  • Province or State (community or Government)
  • Business (throughout an enterprise)
  • Business scope (CDC/FDA)
  • Business segment (UK Pharmacy)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location TUDomainResourceDetails and position information for a place

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierUnique code or number identifying the location to its users

... status ?!Σ0..1codeactive | suspended | inactive
Binding: Location Status (Required)
... operationalStatus Σ0..1CodingThe operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus icon (Preferred)
... alias 0..*stringA list of alternate names that the location is known as, or was known as, in the past

... description Σ0..1markdownAdditional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ0..1codeinstance | kind
Binding: Location Mode (Required)
... type Σ0..*CodeableConceptType of function performed
Binding: Service type icon (Preferred)

... contact 0..*ExtendedContactDetailOfficial contact details for the location

... address 0..1AddressPhysical location
... form Σ0..1CodeableConceptPhysical form of the location
Binding: Location Form (Example)
... position 0..1BackboneElementThe absolute geographic location
.... longitude 1..1decimalLongitude with WGS84 datum
.... latitude 1..1decimalLatitude with WGS84 datum
.... altitude 0..1decimalAltitude with WGS84 datum
... managingOrganization Σ0..1Reference(Organization)Organization responsible for provisioning and upkeep
... partOf 0..1Reference(Location)Another Location this one is physically a part of
... characteristic 0..*CodeableConceptCollection of characteristics (attributes)
Binding: Location Characteristic (Example)

... hoursOfOperation 0..1AvailabilityWhat days/times during a week is this location usually open (including exceptions)
... virtualService 0..*VirtualServiceDetailConnection details of a virtual service (e.g. conference call)

... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the location


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Location (DomainResource)Unique code or number identifying the location to its usersidentifier : Identifier [0..*]The status property covers the general availability of the resource, not the current value which may be covered by the operationalStatus, or by a schedule/slots if they are configured for the location (this element modifies the meaning of other elements)status : code [0..1] « null (Strength=Required)LocationStatus! »The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenanceoperationalStatus : Coding [0..1] « null (Strength=Preferred)Hl7VSBedStatus? »Name of the location as used by humans. Does not need to be uniquename : string [0..1]A list of alternate names that the location is known as, or was known as, in the pastalias : string [0..*]Description of the Location, which helps in finding or referencing the placedescription : markdown [0..1]Indicates whether a resource instance represents a specific location or a class of locationsmode : code [0..1] « null (Strength=Required)LocationMode! »Indicates the type of function performed at the locationtype : CodeableConcept [0..*] « null (Strength=Preferred)ServiceType? »The contact details of communication devices available at the location. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sitescontact : ExtendedContactDetail [0..*]Physical locationaddress : Address [0..1]Physical form of the location, e.g. building, room, vehicle, road, virtualform : CodeableConcept [0..1] « null (Strength=Example)LocationForm?? »The organization responsible for the provisioning and upkeep of the locationmanagingOrganization : Reference [0..1] « Organization »Another Location of which this Location is physically a part ofpartOf : Reference [0..1] « Location »Collection of characteristics (attributes)characteristic : CodeableConcept [0..*] « null (Strength=Example)LocationCharacteristic?? »What days/times during a week is this location usually open, and any exceptions where the location is not availablehoursOfOperation : Availability [0..1]Connection details of a virtual service (e.g. shared conference call facility with dedicated number/details)virtualService : VirtualServiceDetail [0..*]Technical endpoints providing access to services operated for the locationendpoint : Reference [0..*] « Endpoint »PositionLongitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes on Location main page)longitude : decimal [1..1]Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes on Location main page)latitude : decimal [1..1]Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes on Location main page)altitude : decimal [0..1]The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)position[0..1]

XML Template

<Location xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Unique code or number identifying the location to its users --></identifier>
 <status value="[code]"/><!-- 0..1 active | suspended | inactive -->
 <operationalStatus><!-- 0..1 Coding The operational status of the location (typically only for a bed/room) icon --></operationalStatus>
 <name value="[string]"/><!-- 0..1 Name of the location as used by humans -->
 <alias value="[string]"/><!-- 0..* A list of alternate names that the location is known as, or was known as, in the past -->
 <description value="[markdown]"/><!-- 0..1 Additional details about the location that could be displayed as further information to identify the location beyond its name -->
 <mode value="[code]"/><!-- 0..1 instance | kind -->
 <type><!-- 0..* CodeableConcept Type of function performed icon --></type>
 <contact><!-- 0..* ExtendedContactDetail Official contact details for the location --></contact>
 <address><!-- 0..1 Address Physical location --></address>
 <form><!-- 0..1 CodeableConcept Physical form of the location --></form>
 <position>  <!-- 0..1 The absolute geographic location -->
  <longitude value="[decimal]"/><!-- 1..1 Longitude with WGS84 datum -->
  <latitude value="[decimal]"/><!-- 1..1 Latitude with WGS84 datum -->
  <altitude value="[decimal]"/><!-- 0..1 Altitude with WGS84 datum -->
 </position>
 <managingOrganization><!-- 0..1 Reference(Organization) Organization responsible for provisioning and upkeep --></managingOrganization>
 <partOf><!-- 0..1 Reference(Location) Another Location this one is physically a part of --></partOf>
 <characteristic><!-- 0..* CodeableConcept Collection of characteristics (attributes) --></characteristic>
 <hoursOfOperation><!-- 0..1 Availability What days/times during a week is this location usually open (including exceptions) --></hoursOfOperation>
 <virtualService><!-- 0..* VirtualServiceDetail Connection details of a virtual service (e.g. conference call) --></virtualService>
 <endpoint><!-- 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the location --></endpoint>
</Location>

JSON Template

{doco
  "resourceType" : "Location",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Unique code or number identifying the location to its users
  "status" : "<code>", // active | suspended | inactive
  "operationalStatus" : { Coding }, // The operational status of the location (typically only for a bed/room) icon
  "name" : "<string>", // Name of the location as used by humans
  "alias" : ["<string>"], // A list of alternate names that the location is known as, or was known as, in the past
  "description" : "<markdown>", // Additional details about the location that could be displayed as further information to identify the location beyond its name
  "mode" : "<code>", // instance | kind
  "type" : [{ CodeableConcept }], // Type of function performed icon
  "contact" : [{ ExtendedContactDetail }], // Official contact details for the location
  "address" : { Address }, // Physical location
  "form" : { CodeableConcept }, // Physical form of the location
  "position" : { // The absolute geographic location
    "longitude" : <decimal>, // R!  Longitude with WGS84 datum
    "latitude" : <decimal>, // R!  Latitude with WGS84 datum
    "altitude" : <decimal> // Altitude with WGS84 datum
  },
  "managingOrganization" : { Reference(Organization) }, // Organization responsible for provisioning and upkeep
  "partOf" : { Reference(Location) }, // Another Location this one is physically a part of
  "characteristic" : [{ CodeableConcept }], // Collection of characteristics (attributes)
  "hoursOfOperation" : { Availability }, // What days/times during a week is this location usually open (including exceptions)
  "virtualService" : [{ VirtualServiceDetail }], // Connection details of a virtual service (e.g. conference call)
  "endpoint" : [{ Reference(Endpoint) }] // Technical endpoints providing access to services operated for the location
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Location;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Unique code or number identifying the location to its users
  fhir:status [ code ] ; # 0..1 active | suspended | inactive
  fhir:operationalStatus [ Coding ] ; # 0..1 The operational status of the location (typically only for a bed/room)
  fhir:name [ string ] ; # 0..1 Name of the location as used by humans
  fhir:alias  ( [ string ] ... ) ; # 0..* A list of alternate names that the location is known as, or was known as, in the past
  fhir:description [ markdown ] ; # 0..1 Additional details about the location that could be displayed as further information to identify the location beyond its name
  fhir:mode [ code ] ; # 0..1 instance | kind
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* Type of function performed
  fhir:contact  ( [ ExtendedContactDetail ] ... ) ; # 0..* Official contact details for the location
  fhir:address [ Address ] ; # 0..1 Physical location
  fhir:form [ CodeableConcept ] ; # 0..1 Physical form of the location
  fhir:position [ # 0..1 The absolute geographic location
    fhir:longitude [ decimal ] ; # 1..1 Longitude with WGS84 datum
    fhir:latitude [ decimal ] ; # 1..1 Latitude with WGS84 datum
    fhir:altitude [ decimal ] ; # 0..1 Altitude with WGS84 datum
  ] ;
  fhir:managingOrganization [ Reference(Organization) ] ; # 0..1 Organization responsible for provisioning and upkeep
  fhir:partOf [ Reference(Location) ] ; # 0..1 Another Location this one is physically a part of
  fhir:characteristic  ( [ CodeableConcept ] ... ) ; # 0..* Collection of characteristics (attributes)
  fhir:hoursOfOperation [ Availability ] ; # 0..1 What days/times during a week is this location usually open (including exceptions)
  fhir:virtualService  ( [ VirtualServiceDetail ] ... ) ; # 0..* Connection details of a virtual service (e.g. conference call)
  fhir:endpoint  ( [ Reference(Endpoint) ] ... ) ; # 0..* Technical endpoints providing access to services operated for the location
]

Changes from both R4 and R4B

Location
Location.description
  • Type changed from string to markdown
Location.type
  • Remove Binding `http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType` (extensible)
Location.contact
  • Added Element
Location.form
  • Renamed from physicalType to form
Location.characteristic
  • Added Element
Location.hoursOfOperation
  • Max Cardinality changed from * to 1
  • Type changed from BackboneElement to Availability
Location.virtualService
  • Added Element
Location.telecom
  • Deleted (-> Location.contact.telecom)
Location.hoursOfOperation.daysOfWeek
  • Deleted (-> Location.hoursOfOperation.availableTime.daysOfWeek)
Location.hoursOfOperation.allDay
  • Deleted (-> Location.hoursOfOperation.availableTime.allDay)
Location.hoursOfOperation.openingTime
  • Deleted (-> Location.hoursOfOperation.availableTime.availableStartTime)
Location.hoursOfOperation.closingTime
  • Deleted (-> Location.hoursOfOperation.availableTime.availableEndTime)
Location.availabilityExceptions
  • Deleted (-> Location.hoursOfOperation.notAvailable.description)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location TUDomainResourceDetails and position information for a place

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierUnique code or number identifying the location to its users

... status ?!Σ0..1codeactive | suspended | inactive
Binding: Location Status (Required)
... operationalStatus Σ0..1CodingThe operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus icon (Preferred)
... alias 0..*stringA list of alternate names that the location is known as, or was known as, in the past

... description Σ0..1markdownAdditional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ0..1codeinstance | kind
Binding: Location Mode (Required)
... type Σ0..*CodeableConceptType of function performed
Binding: Service type icon (Preferred)

... contact 0..*ExtendedContactDetailOfficial contact details for the location

... address 0..1AddressPhysical location
... form Σ0..1CodeableConceptPhysical form of the location
Binding: Location Form (Example)
... position 0..1BackboneElementThe absolute geographic location
.... longitude 1..1decimalLongitude with WGS84 datum
.... latitude 1..1decimalLatitude with WGS84 datum
.... altitude 0..1decimalAltitude with WGS84 datum
... managingOrganization Σ0..1Reference(Organization)Organization responsible for provisioning and upkeep
... partOf 0..1Reference(Location)Another Location this one is physically a part of
... characteristic 0..*CodeableConceptCollection of characteristics (attributes)
Binding: Location Characteristic (Example)

... hoursOfOperation 0..1AvailabilityWhat days/times during a week is this location usually open (including exceptions)
... virtualService 0..*VirtualServiceDetailConnection details of a virtual service (e.g. conference call)

... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the location


doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Location (DomainResource)Unique code or number identifying the location to its usersidentifier : Identifier [0..*]The status property covers the general availability of the resource, not the current value which may be covered by the operationalStatus, or by a schedule/slots if they are configured for the location (this element modifies the meaning of other elements)status : code [0..1] « null (Strength=Required)LocationStatus! »The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenanceoperationalStatus : Coding [0..1] « null (Strength=Preferred)Hl7VSBedStatus? »Name of the location as used by humans. Does not need to be uniquename : string [0..1]A list of alternate names that the location is known as, or was known as, in the pastalias : string [0..*]Description of the Location, which helps in finding or referencing the placedescription : markdown [0..1]Indicates whether a resource instance represents a specific location or a class of locationsmode : code [0..1] « null (Strength=Required)LocationMode! »Indicates the type of function performed at the locationtype : CodeableConcept [0..*] « null (Strength=Preferred)ServiceType? »The contact details of communication devices available at the location. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sitescontact : ExtendedContactDetail [0..*]Physical locationaddress : Address [0..1]Physical form of the location, e.g. building, room, vehicle, road, virtualform : CodeableConcept [0..1] « null (Strength=Example)LocationForm?? »The organization responsible for the provisioning and upkeep of the locationmanagingOrganization : Reference [0..1] « Organization »Another Location of which this Location is physically a part ofpartOf : Reference [0..1] « Location »Collection of characteristics (attributes)characteristic : CodeableConcept [0..*] « null (Strength=Example)LocationCharacteristic?? »What days/times during a week is this location usually open, and any exceptions where the location is not availablehoursOfOperation : Availability [0..1]Connection details of a virtual service (e.g. shared conference call facility with dedicated number/details)virtualService : VirtualServiceDetail [0..*]Technical endpoints providing access to services operated for the locationendpoint : Reference [0..*] « Endpoint »PositionLongitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes on Location main page)longitude : decimal [1..1]Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes on Location main page)latitude : decimal [1..1]Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes on Location main page)altitude : decimal [0..1]The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)position[0..1]

XML Template

<Location xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Unique code or number identifying the location to its users --></identifier>
 <status value="[code]"/><!-- 0..1 active | suspended | inactive -->
 <operationalStatus><!-- 0..1 Coding The operational status of the location (typically only for a bed/room) icon --></operationalStatus>
 <name value="[string]"/><!-- 0..1 Name of the location as used by humans -->
 <alias value="[string]"/><!-- 0..* A list of alternate names that the location is known as, or was known as, in the past -->
 <description value="[markdown]"/><!-- 0..1 Additional details about the location that could be displayed as further information to identify the location beyond its name -->
 <mode value="[code]"/><!-- 0..1 instance | kind -->
 <type><!-- 0..* CodeableConcept Type of function performed icon --></type>
 <contact><!-- 0..* ExtendedContactDetail Official contact details for the location --></contact>
 <address><!-- 0..1 Address Physical location --></address>
 <form><!-- 0..1 CodeableConcept Physical form of the location --></form>
 <position>  <!-- 0..1 The absolute geographic location -->
  <longitude value="[decimal]"/><!-- 1..1 Longitude with WGS84 datum -->
  <latitude value="[decimal]"/><!-- 1..1 Latitude with WGS84 datum -->
  <altitude value="[decimal]"/><!-- 0..1 Altitude with WGS84 datum -->
 </position>
 <managingOrganization><!-- 0..1 Reference(Organization) Organization responsible for provisioning and upkeep --></managingOrganization>
 <partOf><!-- 0..1 Reference(Location) Another Location this one is physically a part of --></partOf>
 <characteristic><!-- 0..* CodeableConcept Collection of characteristics (attributes) --></characteristic>
 <hoursOfOperation><!-- 0..1 Availability What days/times during a week is this location usually open (including exceptions) --></hoursOfOperation>
 <virtualService><!-- 0..* VirtualServiceDetail Connection details of a virtual service (e.g. conference call) --></virtualService>
 <endpoint><!-- 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the location --></endpoint>
</Location>

JSON Template

{doco
  "resourceType" : "Location",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Unique code or number identifying the location to its users
  "status" : "<code>", // active | suspended | inactive
  "operationalStatus" : { Coding }, // The operational status of the location (typically only for a bed/room) icon
  "name" : "<string>", // Name of the location as used by humans
  "alias" : ["<string>"], // A list of alternate names that the location is known as, or was known as, in the past
  "description" : "<markdown>", // Additional details about the location that could be displayed as further information to identify the location beyond its name
  "mode" : "<code>", // instance | kind
  "type" : [{ CodeableConcept }], // Type of function performed icon
  "contact" : [{ ExtendedContactDetail }], // Official contact details for the location
  "address" : { Address }, // Physical location
  "form" : { CodeableConcept }, // Physical form of the location
  "position" : { // The absolute geographic location
    "longitude" : <decimal>, // R!  Longitude with WGS84 datum
    "latitude" : <decimal>, // R!  Latitude with WGS84 datum
    "altitude" : <decimal> // Altitude with WGS84 datum
  },
  "managingOrganization" : { Reference(Organization) }, // Organization responsible for provisioning and upkeep
  "partOf" : { Reference(Location) }, // Another Location this one is physically a part of
  "characteristic" : [{ CodeableConcept }], // Collection of characteristics (attributes)
  "hoursOfOperation" : { Availability }, // What days/times during a week is this location usually open (including exceptions)
  "virtualService" : [{ VirtualServiceDetail }], // Connection details of a virtual service (e.g. conference call)
  "endpoint" : [{ Reference(Endpoint) }] // Technical endpoints providing access to services operated for the location
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Location;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Unique code or number identifying the location to its users
  fhir:status [ code ] ; # 0..1 active | suspended | inactive
  fhir:operationalStatus [ Coding ] ; # 0..1 The operational status of the location (typically only for a bed/room)
  fhir:name [ string ] ; # 0..1 Name of the location as used by humans
  fhir:alias  ( [ string ] ... ) ; # 0..* A list of alternate names that the location is known as, or was known as, in the past
  fhir:description [ markdown ] ; # 0..1 Additional details about the location that could be displayed as further information to identify the location beyond its name
  fhir:mode [ code ] ; # 0..1 instance | kind
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* Type of function performed
  fhir:contact  ( [ ExtendedContactDetail ] ... ) ; # 0..* Official contact details for the location
  fhir:address [ Address ] ; # 0..1 Physical location
  fhir:form [ CodeableConcept ] ; # 0..1 Physical form of the location
  fhir:position [ # 0..1 The absolute geographic location
    fhir:longitude [ decimal ] ; # 1..1 Longitude with WGS84 datum
    fhir:latitude [ decimal ] ; # 1..1 Latitude with WGS84 datum
    fhir:altitude [ decimal ] ; # 0..1 Altitude with WGS84 datum
  ] ;
  fhir:managingOrganization [ Reference(Organization) ] ; # 0..1 Organization responsible for provisioning and upkeep
  fhir:partOf [ Reference(Location) ] ; # 0..1 Another Location this one is physically a part of
  fhir:characteristic  ( [ CodeableConcept ] ... ) ; # 0..* Collection of characteristics (attributes)
  fhir:hoursOfOperation [ Availability ] ; # 0..1 What days/times during a week is this location usually open (including exceptions)
  fhir:virtualService  ( [ VirtualServiceDetail ] ... ) ; # 0..* Connection details of a virtual service (e.g. conference call)
  fhir:endpoint  ( [ Reference(Endpoint) ] ... ) ; # 0..* Technical endpoints providing access to services operated for the location
]

Changes from both R4 and R4B

Location
Location.description
  • Type changed from string to markdown
Location.type
  • Remove Binding `http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType` (extensible)
Location.contact
  • Added Element
Location.form
  • Renamed from physicalType to form
Location.characteristic
  • Added Element
Location.hoursOfOperation
  • Max Cardinality changed from * to 1
  • Type changed from BackboneElement to Availability
Location.virtualService
  • Added Element
Location.telecom
  • Deleted (-> Location.contact.telecom)
Location.hoursOfOperation.daysOfWeek
  • Deleted (-> Location.hoursOfOperation.availableTime.daysOfWeek)
Location.hoursOfOperation.allDay
  • Deleted (-> Location.hoursOfOperation.availableTime.allDay)
Location.hoursOfOperation.openingTime
  • Deleted (-> Location.hoursOfOperation.availableTime.availableStartTime)
Location.hoursOfOperation.closingTime
  • Deleted (-> Location.hoursOfOperation.availableTime.availableEndTime)
Location.availabilityExceptions
  • Deleted (-> Location.hoursOfOperation.notAvailable.description)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

PathValueSetTypeDocumentation
Location.status LocationStatus Required

Indicates whether the location is still in use.

Location.operationalStatus Hl7VSBedStatus icon (a valid code from bedStatus icon)Preferred

Value Set of codes that specify the state of a bed in an inpatient setting, and is used to determine if a patient may be assigned to it or not.

Location.mode LocationMode Required

Indicates whether a resource instance represents a specific location or a class of locations.

Location.type ServiceType icon Preferred

This value set defines an example set of codes of service-types.

Location.form LocationForm (a valid code from Location type icon)Example

This example value set defines a set of codes that can be used to indicate the physical form of the Location.

Location.characteristic LocationCharacteristic Example

Example Set of Location Characteristics

  • Multiple Organizations or Practitioners may provide services at a Location. These references are not kept in Location, but can be found in the models for Organization and Practitioner instead.
  • Locations may range from whole buildings to cabinets; it is possible to relate smaller Locations to their containing bigger Location using the Location.partOf element.
  • Location.position is expressed using the same syntax, datum and reference system as used in Google Earth's KML files, see Google/OGS's KML icon.
  • Location availability exceptions such as public holidays or planned maintenance can be blocked out using the hoursOfOperation.notAvailableTime properties. It might be defined as just a textual description (e.g. Public Holidays) in which case the user would need to know what that means. Preferably it should include the actual start/end dates that is it not available.
    Not intended to store ongoing historic data here, but the most recent/upcoming relevant data (however nothing prevents that data from existing either)

The Location.mode element can be used to indicate whether a Location resource represents a specific (potentially identifiable) Location ('instance'), or a class of Locations ('kind'). Especially Resources capturing orders, resource scheduling, plans and definitions may refer to Locations in 'kind' mode. For these domains, it is often not necessary to refer to a specific Location, but rather to a class of Locations. An example of this is found in planning, where we need to allocate an "isolation room" for a patient, or need to dispatch "an ambulance" at a certain time. In these cases it is not important to identify exactly which isolation room or ambulance is allocated, it is sufficient to just indicate a 'kind' of Location.

Note that 'kind' should not be used to represent Locations where an actual instance of a Location was involved, but by identifying missing information. E.g. when a patient arrived 'by ambulance', but it is not known by which ambulance, this should be represented using a Location in 'instance' mode with a missing identifier, not a Location of 'kind' ambulance.

Some of Location's data elements are only relevant when mode is 'instance' and should not be used when mode is 'kind':
(however this information could still be included if was relevant, such as when it is a generic item, but not globally generic, e.g. a Burgers Medical Centre ambulance)

  • Location.identifier
  • Location.telecom
  • Location.address
  • Location.position
  • Location.status
  • Location.managingOrganization

An example location hierarchy should help give some guidance as to one example of how a location hierarchy could look within a fictitious Hospital.
(The nesting here would be the "part-of" structure of the location)

Hospital A Building C (instance)
    East Wing (instance)
        Level 1 (instance)
            Reception (instance)
            Nurses Station EM-ns1 (instance)
                Medication Cupboard A (instance)
            Room 1 (instance)
                Room 1a (instance) - space in room separatable via a curtain
                    Bed 1a (instance) - always in this room
                Room 1b (instance)
                    Trolley 43 (instance) - moves about
                Room 1d (instance)
                    Trolley 19 (instance) - moves about
                Room 2 (instance)
                    ...
            Theatre EM-TA (instance)
            Corridor (generic)
        Level 2 (instance)
            Reception (instance)
                ...
            Nurses Station EM-ns1 (instance)
                Medication Cupboard A (instance)
            Corridor (generic)
Mobile Services (kind)
    Ambulance (kind)
        Ambulance AMB1 (instance)
        Ambulance AMB2 (instance)
	

Note: Wards/departments are not part of this structure - these would form part of the Organizational Hierarchy.

Searching for locations often require that a facility is within a specified distance of a specified point. For example, to locate healthcare facilities within 11.2 kms of a client's home, or the current geo-coded position of a practitioner travelling between patients (read from a mobile phone or device).

 GET [base]/Location?near=-83.694810|42.256500|11.20|km...

The distance and distance unit parameter components are optional, if the units are missing, kms are to be assumed. If the distance parameter component is missing, then the server may choose its own interpretation of what near enough is to be included in the search results.

Note: The STU3 version of this functionality did not support the multiple separator , or chaining. The update to this format now supports both of these use cases.
(And the near-distance was deprecated as a result of this change too)

The distance between the location and the provided point is often used as one of the determining factors for selection of the location. So this value is included in the results.
However the value cannot be inside the Location resource as it is different depending on the point of reference in the search. So the distance between is included in the search section of the bundle entry. Where multiple near positions are included, the distance to the closest point provided may be included.

<entry> 
    <resource>
        <Location>
            <!-- location details -->
        </Location>
    </resource>
    <search>
        <extension url="http://hl7.org/fhir/StructureDefinition/location-distance">
            <valueDistance >
                <!-- The distance that this location resource is from the provided point in the query -->
                <value value="10.5"/>
                <unit value="km"/>
            </valueDistance>
        </extension>
    </search>
</entry> 

Note: When sorting by the near search parameter the results can be considered an ordered set, even if the implementation does not provide calculated distances to the point provided. Given the variety of possible implementations, this ordering might not be dependable. If no bounding distance is provided via the search parameter, this can be considered as an ordered set of closest matches (up to an implied or explicit count).

If the expectation is that the response is ordered by near, then near MUST be provided as a search parameter in the request as well. A Bad Request will be returned if sorting by near is requested without the near search parameter.
For example:

 GET [base]/Location?near=-83.694810|42.256500|11.20|km&_sort=near

Locations can also include a definition of their boundary shape in the standard extension location-boundary-geojson. This is very useful with defining explicit coverage areas.
The special contains search parameter tests that the geocoded point(s) provided (expressed as [latitude]|[longitude] using the WGS84 datum) are contained by the defined boundary.

    GET [base]/Location?contains=-83.694810|42.256500

Support for multiple points can also be provided using the , syntax which is interpreted as the location returned in the search contains at least 1 of the provided co-ordinates.

Note: Searching this data requires specialized geo-spatial search infrastructure, or other approximating implementations.

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
addressstringA (part of the) address of the locationLocation.address
address-citystringA city specified in an addressLocation.address.city
address-countrystringA country specified in an addressLocation.address.country
address-postalcodestringA postal code specified in an addressLocation.address.postalCode
address-statestringA state specified in an addressLocation.address.state
address-usetokenA use code specified in an addressLocation.address.use
characteristictokenPhysical form of the location (e.g. bed/ward/site/virtual)Location.form
containsspecialSelect locations that contain the specified co-ordinatesLocation.extension('http://hl7.org/fhir/StructureDefinition/location-boundary-geojson').value
endpointreferenceTechnical endpoints providing access to services operated for the locationLocation.endpoint
(Endpoint)
identifiertokenAn identifier for the locationLocation.identifier
modetokenThe mode of the location (instance | kind)Location.mode
namestringA portion of the location's name or aliasLocation.name | Location.alias
nearspecial

Search for locations where the location.position is near to, or within a specified distance of, the provided coordinates expressed as [latitude]|[longitude]|[distance]|[units] (using the WGS84 datum, see notes).

Servers which support the near parameter SHALL support the unit string 'km' for kilometers and SHOULD support '[mi_us]' for miles, support for other units is optional. If the units are omitted, then kms should be assumed. If the distance is omitted, then the server can use its own discretion as to what distances should be considered near (and units are irrelevant).

If the server is unable to understand the units (and does support the near search parameter), it MIGHT return an OperationOutcome and fail the search with a http status 400 BadRequest. If the server does not support the near parameter, the parameter MIGHT report the unused parameter in a bundled OperationOutcome and still perform the search ignoring the near parameter.

Note: The algorithm to determine the distance is not defined by the specification, and systems might have different engines that calculate things differently. They could consider geographic point to point, or path via road, or including current traffic conditions, or just simple neighboring postcodes/localities if that's all it had access to.

Location.position
operational-statustokenSearches for locations (typically bed/room) that have an operational status (e.g. contaminated, housekeeping)Location.operationalStatus
organizationreferenceSearches for locations that are managed by the provided organizationLocation.managingOrganization
(Organization)
partofreferenceA location of which this location is a partLocation.partOf
(Location)
statustokenSearches for locations with a specific kind of statusLocation.status
typetokenA code for the type of locationLocation.type