Canadian Baseline
1.1.0 - CI Build Canada flag

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

Resource Profile: Location Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-location Version: 1.1.0
Draft as of 2020-03-16 Computable Name: LocationProfile

Proposed constraints and extensions on the Location resource

CA Baseline Location Profile

This Location profile sets minimum expectations for the Location resource to record, search and fetch details and position information for a physical place where services are provided.

This profile defines localization concepts for use in a Canadian context.

Mandatory Data Elements

All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number.

Most elements in FHIR specification have a minimum cardinality of 0, which means that they may be missing from a resource when it is exchanged between systems.

In this Canadian Baseline Location Profile all elements are optional, i.e., there is no element with a minimum cardinality of 1. However, some optional elements (e.g., identifier) have required components that MUST be present if that optional element is provided.

Must Support Data Elements

Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way (see Must Support definition).

Following elements are marked as Must Support in the Canadian Location profile to aid record matching in databases with many pediatric records.

Must Support elements:

  • an identifier
  • a location name
  • contact detail (e.g. a telephone number or an email address)

Usage:

Formal Views of Profile Content

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

This structure is derived from Location

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..* Location Details and position information for a physical place
... Slices for extension Content/Rules for all slices
.... communication 0..* CodeableConcept Languages used to provide services
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages

... identifier S 0..* Identifier Unique code or number identifying the location to its users
... name S 0..1 string Name of the location as used by humans
... address 0..1 Address Physical location

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..* Location Details and position information for a physical place
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension Content/Rules for all slices
.... communication 0..* CodeableConcept Languages used to provide services
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages


ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.


ele-1: All FHIR elements must have a @value or children
... name SΣ 0..1 string Name of the location as used by humans
ele-1: All FHIR elements must have a @value or children
... telecom S 0..* ContactPoint Contact details of the location
ele-1: All FHIR elements must have a @value or children
... address 0..1 Address Physical location
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Location.statusrequiredLocationStatus
http://hl7.org/fhir/ValueSet/location-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLocationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLocationIf 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-4errorLocationIf 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-5errorLocationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLocationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... communication 0..* CodeableConcept Languages used to provide services
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages


... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Unique code or number identifying the location to its users
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.

... operationalStatus Σ 0..1 Coding The operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).

... name SΣ 0..1 string Name of the location as used by humans
... alias 0..* string A list of alternate names that the location is known as, or was known as, in the past
... description Σ 0..1 string Additional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ 0..1 code instance | kind
Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.

... type Σ 0..* CodeableConcept Type of function performed
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.


... telecom S 0..* ContactPoint Contact details of the location
... address 0..1 Address Physical location
... physicalType Σ 0..1 CodeableConcept Physical form of the location
Binding: LocationType (example): Physical form of the location.

... position 0..1 BackboneElement The absolute geographic location
.... id 0..1 string Unique id for inter-element referencing
.... extension 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 Σ 0..1 Reference(Organization) 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Location.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Location.statusrequiredLocationStatus
http://hl7.org/fhir/ValueSet/location-status|4.0.1
from the FHIR Standard
Location.operationalStatuspreferredHl7VSBedStatus
http://terminology.hl7.org/ValueSet/v2-0116
Location.moderequiredLocationMode
http://hl7.org/fhir/ValueSet/location-mode|4.0.1
from the FHIR Standard
Location.typeextensibleServiceDeliveryLocationRoleType
http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType
Location.physicalTypeexampleLocationType
http://hl7.org/fhir/ValueSet/location-physical-type
from the FHIR Standard
Location.hoursOfOperation.daysOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLocationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLocationIf 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-4errorLocationIf 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-5errorLocationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLocationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Location

Summary

Must-Support: 3 elements

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from Location

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..* Location Details and position information for a physical place
... Slices for extension Content/Rules for all slices
.... communication 0..* CodeableConcept Languages used to provide services
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages

... identifier S 0..* Identifier Unique code or number identifying the location to its users
... name S 0..1 string Name of the location as used by humans
... address 0..1 Address Physical location

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location 0..* Location Details and position information for a physical place
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension Content/Rules for all slices
.... communication 0..* CodeableConcept Languages used to provide services
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages


ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.


ele-1: All FHIR elements must have a @value or children
... name SΣ 0..1 string Name of the location as used by humans
ele-1: All FHIR elements must have a @value or children
... telecom S 0..* ContactPoint Contact details of the location
ele-1: All FHIR elements must have a @value or children
... address 0..1 Address Physical location
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Location.statusrequiredLocationStatus
http://hl7.org/fhir/ValueSet/location-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLocationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLocationIf 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-4errorLocationIf 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-5errorLocationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLocationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... communication 0..* CodeableConcept Languages used to provide services
URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/ext-servicelanguage
Binding: CommonLanguages (preferred): Common Languages


... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Unique code or number identifying the location to its users
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.

... operationalStatus Σ 0..1 Coding The operational status of the location (typically only for a bed/room)
Binding: hl7VS-bedStatus (preferred): The operational status if the location (where typically a bed/room).

... name SΣ 0..1 string Name of the location as used by humans
... alias 0..* string A list of alternate names that the location is known as, or was known as, in the past
... description Σ 0..1 string Additional details about the location that could be displayed as further information to identify the location beyond its name
... mode Σ 0..1 code instance | kind
Binding: LocationMode (required): Indicates whether a resource instance represents a specific location or a class of locations.

... type Σ 0..* CodeableConcept Type of function performed
Binding: ServiceDeliveryLocationRoleType (extensible): Indicates the type of function performed at the location.


... telecom S 0..* ContactPoint Contact details of the location
... address 0..1 Address Physical location
... physicalType Σ 0..1 CodeableConcept Physical form of the location
Binding: LocationType (example): Physical form of the location.

... position 0..1 BackboneElement The absolute geographic location
.... id 0..1 string Unique id for inter-element referencing
.... extension 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 Σ 0..1 Reference(Organization) 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Location.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Location.statusrequiredLocationStatus
http://hl7.org/fhir/ValueSet/location-status|4.0.1
from the FHIR Standard
Location.operationalStatuspreferredHl7VSBedStatus
http://terminology.hl7.org/ValueSet/v2-0116
Location.moderequiredLocationMode
http://hl7.org/fhir/ValueSet/location-mode|4.0.1
from the FHIR Standard
Location.typeextensibleServiceDeliveryLocationRoleType
http://terminology.hl7.org/ValueSet/v3-ServiceDeliveryLocationRoleType
Location.physicalTypeexampleLocationType
http://hl7.org/fhir/ValueSet/location-physical-type
from the FHIR Standard
Location.hoursOfOperation.daysOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorLocationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorLocationIf 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-4errorLocationIf 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-5errorLocationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceLocationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Location

Summary

Must-Support: 3 elements

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Identifiers

Currently, there is no consensus or requirement for pan-Canadian method to identify a location using a business identifier. Location.identifier will remain unsliced until a requirement or rationale is put forth that supports the need to have unique constraints determined by the business identifier.

Service Language

The Location MAY have a Service Language extension. This extension is to identify languages that that services are provided in this particular location.

Address

The Location profile is provided for use in a Canadian context where some constraint on content is desirable to guarantee the quality of the Canadian address whilst still supporting other type of address (e.g., other countries or UNstructured addresses).

Canadian postal code

If an address in the Location resource instance represents Canadian address, it SHOULD follow Canadian postal code format.

The Canadian Postal Code SHOULD be a six-character uniformly structured uppercase alphanumeric code in the form of "ANA NAN", where "A" represents an alphabetic character and "N" represents a numeric character, with one space between the first three and the last three characters.

A hyphen SHOULD NOT be used (example of UNacceptable format: T0L-1K0).