Health Connect Australia Provider Directory FHIR Implementation Guide, published by Australian Digital Health Agency. This guide is not an authorized publication; it is the continuous build for version 0.2.0-preview built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/steveswinsburg/HealthConnect/ and changes regularly. See the Directory of published versions

Resource Profile: HC Location

Official URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-location Version: 0.2.0-preview
Standards status: Draft Computable Name: HCLocation

Usage:Jurisdiction: Australia

Copyright/Legal: Copyright © 2025 Australian Digital Health Agency - All rights reserved. This content is licensed under a Creative Commons Attribution 4.0 International License. See https://creativecommons.org/licenses/by/4.0/

This profile defines a healthcare location (can also be referred as 'location') reflects the place, a site of care i.e. a practice, clinic, hospital, or facility at which healthcare services are provided by the healthcare organisation. The healthcare location can be a physical, mobile, or virtual location. In certain cases, a healthcare location can also represent a site of care within the hospital or building premises such as consulting room, operating room, outpatient room, unit, ward (e.g. maternity ward), department (e.g. emergency department) etc.

No data is entered directly into Health Connect; all Directory content is sourced from authoritative systems including PCA, HI-Service, and NHSD.

Extensions

Extensions introduced in this profile:

Usage notes

  • The HC Preferred Postal Address extension is used to carry a separate address that is different to the registered address for the location.

Publishing guidance:

A HC Location resource may also have additional identifiers specific to other business partners, and their identifier systems may or may not match other identifier slices defined in AU Core Location.

Type

The usage notes of the AU Base Location profile provide guidance for Locations that may form part of defining a mobile or remotely delivered service. The HC Location profile formalises this guidance as mandatory requirements (via invariants). The requirements are summarised below:

A HC Location for a mobile service shall have:

  • type=’MOBL’ plus at least one of the following codes: 'PTRES', 'SCHOOL', 'WORK', 'COMM' or 'AMB', to further qualify where the mobile service is offered.

A HC Location for a virtually delivered service shall have:

  • type=’VI’
PhysicalType

When a Location is to be represented as a physical type, the physicalType element is used to carry an applicable code from the Location Type (Physical) - AU Extended ValueSet.

The physicalType element can be used to express more specific details about the physical nature of a Location (for example: ward, building, dwelling).

Organization reference

The managingOrganization element must contain a relative reference to an existing HC Organization.

Invariants

Invariant: preferred-postal-address

Description: If the preferred postal address extension is present on an address then that address must be of type 'postal'.

Implementation note: The profile enforces this rule so that the hc-preferred-postal-address extension is only used to carry postal/mailing addresses (for example PO Boxes). Publishing systems SHOULD only set the extension on addresses whose type is postal.

Invariant: inv-01-address-requirement

Description: If a location's type is VI or MOBL then an address does not need to be present. For all other location types an address MUST be present.

Implementation note: This invariant ensures that physical locations provide a postal/physical address, while virtual or mobile services (for example telehealth, mobile clinics, ambulance services) may omit a fixed address.

Invariant: inv-02-type-mobl-requires-modifier

Description: If a location's type includes the MOBL code then it is recommended that an additional modifier coding is provided to describe the mobile service (either PTRES, SCHOOL, WORK, COMM, AMB) but not VI.

Implementation note: This rule is a warning - it does not block publishing but encourages publishers to provide additional context about where the mobile service operates. Implementers should supply a secondary type.coding entry when describing mobile services to improve discoverability.

Invariant: inv-03-type-vi-should-not-have-modifier

Description: If a location's type includes the VI code then no additional modifier codings should be present.

Implementation note: This rule is a warning - virtual locations should be clearly identified as virtual-only and not include additional modifiers that suggest physical or mobile subtypes. If a virtual service also has a physical component, model those as separate Location resources.

Invariant: inv-04-type-or-physicaltype-present

Description: A Location resource MUST include either a type or a physicalType element.

Implementation note: This rule is enforced as an error - every Location must be classified either by type (logical role such as MOBL, VI, etc.) or by physicalType (when the Location represents a specific physical characteristic). Implementers MUST populate at least one of these elements when creating Location resources.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location C 0..* AUCoreLocation(2.0.0-ballot) Australian Location Directory Entry
Constraints: au-core-loc-01, inv-01-address-requirement, inv-02-type-mobl-requires-modifier, inv-03-type-vi-should-not-have-modifier, inv-04-type-or-physicaltype-present
... meta Σ 0..1 Meta Metadata on Location
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:HCAmenity SO 0..* CodeableConcept Amenities or facilities available at or near the location.
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity
Binding: Facility Amenity . (required)
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:HCPreferredPostalAddress SO 0..* Address Preferred postal address
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.
... name SOΣ 1..1 string Name of the location as used by humans
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... alias SO 0..* string Alternative names for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... type SOΣC 0..* CodeableConcept Indicates whether the location is a virtual location or mobile service.
Binding: Service Delivery Location Role Type . (extensible)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for telecom SO 2..* ContactPoint Contact details of the location
Slice: Unordered, Open by value:system
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... telecom:phone S 1..* ContactPoint Phone number for the location.
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: phone
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
.... telecom:email S 1..* ContactPoint Email address for the location.
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: email
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
... address SOC 0..1 Address(4.0.1), AustralianAddress(6.0.0) Address where the service or practitioner role is located. Virtual and mobile locations may not have a fixed address.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... physicalType SOΣ 0..1 CodeableConcept Physical form of the location
Binding: LocationPhysicalTypeAUExtended (6.0.0) (preferred)
... position SO 0..1 BackboneElement The absolute geographic location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... longitude 1..1 decimal Longitude with WGS84 datum
.... latitude 1..1 decimal Latitude with WGS84 datum
... managingOrganization SOΣ 1..1 Reference(HC Organization(0.2.0-preview)) Reference to managing organisation with HPI-O.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... partOf 0..1 Reference(HC Location(0.2.0-preview)) Another Location this one is physically a part of
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints providing access to services operated for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.type Base extensible Service Delivery Location Role Type . ⏿1.0.0 tx.hl7.org.au
Location.telecom:phone.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:phone.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.telecom:email.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:email.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.physicalType Base preferred Location Type (Physical) - AU Extended 📍6.0.0 AU Base Implementation Guide v6.0

Constraints

Id Grade Path(s) Description Expression
au-core-loc-01 error Location The location shall at least have a valid identifier or address or type address.exists() or type.exists() or identifier.where(system.count() + value.count() >1).exists()
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error Location.meta, Location.implicitRules, Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.status, Location.name, Location.alias, Location.type, Location.telecom, Location.telecom:phone, Location.telecom:phone.system, Location.telecom:phone.use, Location.telecom:email, Location.telecom:email.system, Location.telecom:email.use, Location.address, Location.physicalType, Location.position, Location.position.modifierExtension, Location.position.longitude, Location.position.latitude, Location.managingOrganization, Location.partOf, Location.endpoint All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.position.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-01-address-requirement warning Location Physical locations (not virtual or mobile) must have an address present. physicalType.exists() implies address.exists()
inv-02-type-mobl-requires-modifier warning Location If a location is marked as mobile (code 'MOBL') it is recommended that a modifier coding is provided to describe the mobile type type.coding.where(code = 'MOBL').exists() implies type.coding.where(code = 'COMM' or code = 'AMB' or code = 'PTRES' or code = 'SCHOOL' or code = 'WORK').exists()
inv-03-type-vi-should-not-have-modifier warning Location If a location is marked as virtual (code 'VI') no additional modifier codings are needed type.coding.where(code = 'VI').exists() implies type.coding.count() = 1
inv-04-type-or-physicaltype-present error Location A Location MUST have either a `type` or a `physicalType` value present type.exists() or physicalType.exists()

This structure is derived from AUCoreLocation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location C 0..* AUCoreLocation(2.0.0-ballot) Australian Location Directory Entry
... meta 0..1 Meta Metadata on Location
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:HCAmenity SO 0..* CodeableConcept Amenities or facilities available at or near the location.
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity
Binding: Facility Amenity . (required)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:HCPreferredPostalAddress SO 0..* Address Preferred postal address
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... name O 1..1 string Name of the location as used by humans
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... type O 0..* CodeableConcept Indicates whether the location is a virtual location or mobile service.
Binding: Service Delivery Location Role Type . (extensible)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for telecom SO 2..* ContactPoint Contact details of the location
Slice: Unordered, Open by value:system
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... telecom:phone S 1..* ContactPoint Phone number for the location.
..... system 1..1 code phone | fax | email | pager | url | sms | other
Required Pattern: phone
.... telecom:email S 1..* ContactPoint Email address for the location.
..... system 1..1 code phone | fax | email | pager | url | sms | other
Required Pattern: email
... address O 0..1 Address(4.0.1), AustralianAddress(6.0.0) Address where the service or practitioner role is located. Virtual and mobile locations may not have a fixed address.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... position SO 0..1 BackboneElement The absolute geographic location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... managingOrganization O 1..1 Reference(HC Organization(0.2.0-preview)) Reference to managing organisation with HPI-O.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... partOf 0..1 Reference(HC Location(0.2.0-preview)) Another Location this one is physically a part of
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints providing access to services operated for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Location.type Base extensible Service Delivery Location Role Type . ⏿1.0.0 tx.hl7.org.au

Constraints

Id Grade Path(s) Description Expression
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location C 0..* AUCoreLocation(2.0.0-ballot) Australian Location Directory Entry
Constraints: au-core-loc-01, inv-01-address-requirement, inv-02-type-mobl-requires-modifier, inv-03-type-vi-should-not-have-modifier, inv-04-type-or-physicaltype-present
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata on Location
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:HCAmenity SO 0..* CodeableConcept Amenities or facilities available at or near the location.
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity
Binding: Facility Amenity . (required)
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:HCPreferredPostalAddress SO 0..* Address Preferred postal address
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier ΣC 0..* Identifier(4.0.1), AULocationSpecificPracticeNumber(6.0.0), AUNATASiteNumber(6.0.0) 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: Hl7VSBedStatus (2.0.0) (preferred): The operational status if the location (where typically a bed/room).
... name SOΣ 1..1 string Name of the location as used by humans
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... alias SO 0..* string Alternative names for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... 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 SOΣC 0..* CodeableConcept Indicates whether the location is a virtual location or mobile service.
Binding: Service Delivery Location Role Type . (extensible)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for telecom SO 2..* ContactPoint Contact details of the location
Slice: Unordered, Open by value:system
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... telecom:phone S 1..* ContactPoint Phone number for the 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
Constraints: ext-1
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: phone
..... value Σ 0..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
..... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
..... period Σ 0..1 Period Time period when the contact point was/is in use
.... telecom:email S 1..* ContactPoint Email address for the 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
Constraints: ext-1
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: email
..... value Σ 0..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
..... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
..... period Σ 0..1 Period Time period when the contact point was/is in use
... address SOC 0..1 Address(4.0.1), AustralianAddress(6.0.0) Address where the service or practitioner role is located. Virtual and mobile locations may not have a fixed address.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... physicalType SOΣ 0..1 CodeableConcept Physical form of the location
Binding: LocationPhysicalTypeAUExtended (6.0.0) (preferred)
... position SO 0..1 BackboneElement The absolute geographic location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... 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 SOΣ 1..1 Reference(HC Organization(0.2.0-preview)) Reference to managing organisation with HPI-O.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... partOf 0..1 Reference(HC Location(0.2.0-preview)) 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
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... 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 SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints providing access to services operated for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.operationalStatus Base preferred hl7VS-bedStatus 📍2.0.0 THO v7.0
Location.mode Base required LocationMode 📍4.0.1 FHIR Std.
Location.type Base extensible Service Delivery Location Role Type . ⏿1.0.0 tx.hl7.org.au
Location.telecom:phone.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:phone.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.telecom:email.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:email.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.physicalType Base preferred Location Type (Physical) - AU Extended 📍6.0.0 AU Base Implementation Guide v6.0
Location.hoursOfOperation.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
au-core-loc-01 error Location The location shall at least have a valid identifier or address or type address.exists() or type.exists() or identifier.where(system.count() + value.count() >1).exists()
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error Location.meta, Location.implicitRules, Location.language, Location.text, Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.identifier, Location.status, Location.operationalStatus, Location.name, Location.alias, Location.description, Location.mode, Location.type, Location.telecom, Location.telecom:phone, Location.telecom:phone.extension, Location.telecom:phone.system, Location.telecom:phone.value, Location.telecom:phone.use, Location.telecom:phone.rank, Location.telecom:phone.period, Location.telecom:email, Location.telecom:email.extension, Location.telecom:email.system, Location.telecom:email.value, Location.telecom:email.use, Location.telecom:email.rank, Location.telecom:email.period, Location.address, Location.physicalType, Location.position, Location.position.extension, Location.position.modifierExtension, Location.position.longitude, Location.position.latitude, Location.position.altitude, Location.managingOrganization, Location.partOf, Location.hoursOfOperation, Location.hoursOfOperation.extension, Location.hoursOfOperation.modifierExtension, Location.hoursOfOperation.daysOfWeek, Location.hoursOfOperation.allDay, Location.hoursOfOperation.openingTime, Location.hoursOfOperation.closingTime, Location.availabilityExceptions, Location.endpoint All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.telecom:phone.extension, Location.telecom:email.extension, Location.position.extension, Location.position.modifierExtension, Location.hoursOfOperation.extension, Location.hoursOfOperation.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-01-address-requirement warning Location Physical locations (not virtual or mobile) must have an address present. physicalType.exists() implies address.exists()
inv-02-type-mobl-requires-modifier warning Location If a location is marked as mobile (code 'MOBL') it is recommended that a modifier coding is provided to describe the mobile type type.coding.where(code = 'MOBL').exists() implies type.coding.where(code = 'COMM' or code = 'AMB' or code = 'PTRES' or code = 'SCHOOL' or code = 'WORK').exists()
inv-03-type-vi-should-not-have-modifier warning Location If a location is marked as virtual (code 'VI') no additional modifier codings are needed type.coding.where(code = 'VI').exists() implies type.coding.count() = 1
inv-04-type-or-physicaltype-present error Location A Location MUST have either a `type` or a `physicalType` value present type.exists() or physicalType.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location C 0..* AUCoreLocation(2.0.0-ballot) Australian Location Directory Entry
Constraints: au-core-loc-01, inv-01-address-requirement, inv-02-type-mobl-requires-modifier, inv-03-type-vi-should-not-have-modifier, inv-04-type-or-physicaltype-present
... meta Σ 0..1 Meta Metadata on Location
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:HCAmenity SO 0..* CodeableConcept Amenities or facilities available at or near the location.
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity
Binding: Facility Amenity . (required)
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:HCPreferredPostalAddress SO 0..* Address Preferred postal address
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... status ?!Σ 0..1 code active | suspended | inactive
Binding: LocationStatus (required): Indicates whether the location is still in use.
... name SOΣ 1..1 string Name of the location as used by humans
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... alias SO 0..* string Alternative names for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... type SOΣC 0..* CodeableConcept Indicates whether the location is a virtual location or mobile service.
Binding: Service Delivery Location Role Type . (extensible)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for telecom SO 2..* ContactPoint Contact details of the location
Slice: Unordered, Open by value:system
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... telecom:phone S 1..* ContactPoint Phone number for the location.
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: phone
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
.... telecom:email S 1..* ContactPoint Email address for the location.
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: email
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
... address SOC 0..1 Address(4.0.1), AustralianAddress(6.0.0) Address where the service or practitioner role is located. Virtual and mobile locations may not have a fixed address.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... physicalType SOΣ 0..1 CodeableConcept Physical form of the location
Binding: LocationPhysicalTypeAUExtended (6.0.0) (preferred)
... position SO 0..1 BackboneElement The absolute geographic location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... longitude 1..1 decimal Longitude with WGS84 datum
.... latitude 1..1 decimal Latitude with WGS84 datum
... managingOrganization SOΣ 1..1 Reference(HC Organization(0.2.0-preview)) Reference to managing organisation with HPI-O.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... partOf 0..1 Reference(HC Location(0.2.0-preview)) Another Location this one is physically a part of
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints providing access to services operated for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.type Base extensible Service Delivery Location Role Type . ⏿1.0.0 tx.hl7.org.au
Location.telecom:phone.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:phone.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.telecom:email.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:email.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.physicalType Base preferred Location Type (Physical) - AU Extended 📍6.0.0 AU Base Implementation Guide v6.0

Constraints

Id Grade Path(s) Description Expression
au-core-loc-01 error Location The location shall at least have a valid identifier or address or type address.exists() or type.exists() or identifier.where(system.count() + value.count() >1).exists()
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error Location.meta, Location.implicitRules, Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.status, Location.name, Location.alias, Location.type, Location.telecom, Location.telecom:phone, Location.telecom:phone.system, Location.telecom:phone.use, Location.telecom:email, Location.telecom:email.system, Location.telecom:email.use, Location.address, Location.physicalType, Location.position, Location.position.modifierExtension, Location.position.longitude, Location.position.latitude, Location.managingOrganization, Location.partOf, Location.endpoint All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.position.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-01-address-requirement warning Location Physical locations (not virtual or mobile) must have an address present. physicalType.exists() implies address.exists()
inv-02-type-mobl-requires-modifier warning Location If a location is marked as mobile (code 'MOBL') it is recommended that a modifier coding is provided to describe the mobile type type.coding.where(code = 'MOBL').exists() implies type.coding.where(code = 'COMM' or code = 'AMB' or code = 'PTRES' or code = 'SCHOOL' or code = 'WORK').exists()
inv-03-type-vi-should-not-have-modifier warning Location If a location is marked as virtual (code 'VI') no additional modifier codings are needed type.coding.where(code = 'VI').exists() implies type.coding.count() = 1
inv-04-type-or-physicaltype-present error Location A Location MUST have either a `type` or a `physicalType` value present type.exists() or physicalType.exists()

Differential View

This structure is derived from AUCoreLocation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location C 0..* AUCoreLocation(2.0.0-ballot) Australian Location Directory Entry
... meta 0..1 Meta Metadata on Location
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:HCAmenity SO 0..* CodeableConcept Amenities or facilities available at or near the location.
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity
Binding: Facility Amenity . (required)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:HCPreferredPostalAddress SO 0..* Address Preferred postal address
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... name O 1..1 string Name of the location as used by humans
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... type O 0..* CodeableConcept Indicates whether the location is a virtual location or mobile service.
Binding: Service Delivery Location Role Type . (extensible)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for telecom SO 2..* ContactPoint Contact details of the location
Slice: Unordered, Open by value:system
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... telecom:phone S 1..* ContactPoint Phone number for the location.
..... system 1..1 code phone | fax | email | pager | url | sms | other
Required Pattern: phone
.... telecom:email S 1..* ContactPoint Email address for the location.
..... system 1..1 code phone | fax | email | pager | url | sms | other
Required Pattern: email
... address O 0..1 Address(4.0.1), AustralianAddress(6.0.0) Address where the service or practitioner role is located. Virtual and mobile locations may not have a fixed address.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... position SO 0..1 BackboneElement The absolute geographic location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... managingOrganization O 1..1 Reference(HC Organization(0.2.0-preview)) Reference to managing organisation with HPI-O.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... partOf 0..1 Reference(HC Location(0.2.0-preview)) Another Location this one is physically a part of
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints providing access to services operated for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Location.type Base extensible Service Delivery Location Role Type . ⏿1.0.0 tx.hl7.org.au

Constraints

Id Grade Path(s) Description Expression

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Location C 0..* AUCoreLocation(2.0.0-ballot) Australian Location Directory Entry
Constraints: au-core-loc-01, inv-01-address-requirement, inv-02-type-mobl-requires-modifier, inv-03-type-vi-should-not-have-modifier, inv-04-type-or-physicaltype-present
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata on Location
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:HCAmenity SO 0..* CodeableConcept Amenities or facilities available at or near the location.
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity
Binding: Facility Amenity . (required)
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:HCPreferredPostalAddress SO 0..* Address Preferred postal address
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... identifier ΣC 0..* Identifier(4.0.1), AULocationSpecificPracticeNumber(6.0.0), AUNATASiteNumber(6.0.0) 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: Hl7VSBedStatus (2.0.0) (preferred): The operational status if the location (where typically a bed/room).
... name SOΣ 1..1 string Name of the location as used by humans
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... alias SO 0..* string Alternative names for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... 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 SOΣC 0..* CodeableConcept Indicates whether the location is a virtual location or mobile service.
Binding: Service Delivery Location Role Type . (extensible)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for telecom SO 2..* ContactPoint Contact details of the location
Slice: Unordered, Open by value:system
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... telecom:phone S 1..* ContactPoint Phone number for the 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
Constraints: ext-1
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: phone
..... value Σ 0..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
..... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
..... period Σ 0..1 Period Time period when the contact point was/is in use
.... telecom:email S 1..* ContactPoint Email address for the 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
Constraints: ext-1
..... system ΣC 1..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
Required Pattern: email
..... value Σ 0..1 string The actual contact point details
..... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
..... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
..... period Σ 0..1 Period Time period when the contact point was/is in use
... address SOC 0..1 Address(4.0.1), AustralianAddress(6.0.0) Address where the service or practitioner role is located. Virtual and mobile locations may not have a fixed address.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... physicalType SOΣ 0..1 CodeableConcept Physical form of the location
Binding: LocationPhysicalTypeAUExtended (6.0.0) (preferred)
... position SO 0..1 BackboneElement The absolute geographic location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... 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 SOΣ 1..1 Reference(HC Organization(0.2.0-preview)) Reference to managing organisation with HPI-O.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... partOf 0..1 Reference(HC Location(0.2.0-preview)) 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
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... 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 SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints providing access to services operated for the location
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Location.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Location.status Base required LocationStatus 📍4.0.1 FHIR Std.
Location.operationalStatus Base preferred hl7VS-bedStatus 📍2.0.0 THO v7.0
Location.mode Base required LocationMode 📍4.0.1 FHIR Std.
Location.type Base extensible Service Delivery Location Role Type . ⏿1.0.0 tx.hl7.org.au
Location.telecom:phone.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:phone.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.telecom:email.​system Base required ContactPointSystem 📍4.0.1 FHIR Std.
Location.telecom:email.​use Base required ContactPointUse 📍4.0.1 FHIR Std.
Location.physicalType Base preferred Location Type (Physical) - AU Extended 📍6.0.0 AU Base Implementation Guide v6.0
Location.hoursOfOperation.​daysOfWeek Base required DaysOfWeek 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
au-core-loc-01 error Location The location shall at least have a valid identifier or address or type address.exists() or type.exists() or identifier.where(system.count() + value.count() >1).exists()
dom-2 error Location If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Location If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Location If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Location If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Location A resource should have narrative for robust management text.`div`.exists()
ele-1 error Location.meta, Location.implicitRules, Location.language, Location.text, Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.identifier, Location.status, Location.operationalStatus, Location.name, Location.alias, Location.description, Location.mode, Location.type, Location.telecom, Location.telecom:phone, Location.telecom:phone.extension, Location.telecom:phone.system, Location.telecom:phone.value, Location.telecom:phone.use, Location.telecom:phone.rank, Location.telecom:phone.period, Location.telecom:email, Location.telecom:email.extension, Location.telecom:email.system, Location.telecom:email.value, Location.telecom:email.use, Location.telecom:email.rank, Location.telecom:email.period, Location.address, Location.physicalType, Location.position, Location.position.extension, Location.position.modifierExtension, Location.position.longitude, Location.position.latitude, Location.position.altitude, Location.managingOrganization, Location.partOf, Location.hoursOfOperation, Location.hoursOfOperation.extension, Location.hoursOfOperation.modifierExtension, Location.hoursOfOperation.daysOfWeek, Location.hoursOfOperation.allDay, Location.hoursOfOperation.openingTime, Location.hoursOfOperation.closingTime, Location.availabilityExceptions, Location.endpoint All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error Location.extension, Location.extension:HCAmenity, Location.extension:HCPreferredPostalAddress, Location.modifierExtension, Location.telecom:phone.extension, Location.telecom:email.extension, Location.position.extension, Location.position.modifierExtension, Location.hoursOfOperation.extension, Location.hoursOfOperation.modifierExtension Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-01-address-requirement warning Location Physical locations (not virtual or mobile) must have an address present. physicalType.exists() implies address.exists()
inv-02-type-mobl-requires-modifier warning Location If a location is marked as mobile (code 'MOBL') it is recommended that a modifier coding is provided to describe the mobile type type.coding.where(code = 'MOBL').exists() implies type.coding.where(code = 'COMM' or code = 'AMB' or code = 'PTRES' or code = 'SCHOOL' or code = 'WORK').exists()
inv-03-type-vi-should-not-have-modifier warning Location If a location is marked as virtual (code 'VI') no additional modifier codings are needed type.coding.where(code = 'VI').exists() implies type.coding.count() = 1
inv-04-type-or-physicaltype-present error Location A Location MUST have either a `type` or a `physicalType` value present type.exists() or physicalType.exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Search parameters

This IG defines and introduces several search parameters in addition to those inherited from R4, that make it easier to find and filter HC Location resources in Health Connect implementations.

Search parameters defined in this IG

The following search parameters are defined by this IG and SHOULD be supported:

  • locmailaddress (Location.extension where url = HC preferred postal address extension). Supports :contains modifier.
  • Search locations by the HC-preferred postal address stored in the location's HC-specific extension.
  • Example (string-only): GET /Location?locmailaddress=PO%20Box%20123

  • locationamenities (Location.extension where url = HC amenity extension)
  • Search for locations by their amenities using the HC amenity extension. Use token semantics for coded amenity values.
  • Example (display text): GET /Location?locationamenities=Wheelchair%20access

  • locationphysicaltype (Location.physicalType)
  • Search for locations by their physicalType field. Use token semantics for coded physical type values from the Location Type (Physical) ValueSet.
  • Example: GET /Location?locationphysicaltype=http://terminology.hl7.org/CodeSystem/location-physical-type|wa

Search parameters from R4

The following search parameters are inherited from FHIR R4 and have been deemed useful for implementation within this IG. They SHOULD be supported:

  • name (R4) (Location.name and Location.alias)
  • Search for locations by name and alias (partial searches supported).
  • Example: GET /Location?name:contains=Telehealth

  • address (R4) (Location.address)
  • Search for locations by address (partial searches supported).
  • Example: GET /Location?address=147-153%20Castlereagh%20Street

  • type (R4) (Location.type.coding)
  • Search for locations by their type using coded values. Use token semantics for precise code matching.
  • Available codes = MOBL, PTRES, SCHOOL, WORK, COMM, AMB, VI from the NCTS Delivery Location Role Type ValueSet
  • Example (code only): GET /Location?type=MOBL

  • near (Location.position)
  • Search for locations by geographical proximity using latitude longitude distance format.
  • Results can be sorted by distance using the _sort parameter. Documented here under GitHub issue #4650.

  • Sort modifiers: _sort=near (closest first), _sort=-near (furthest first).
  • Example: GET /Location?near=-33.8688|151.2093|0.5 (within 0.5km of Sydney CBD coordinates)
  • Example with sorting: GET /Location?near=-33.8688|151.2093|3&_sort=near (closest locations first within 3km)



Note: Support for _id is mandatory for a responder and optional for a requester. Where the expectation for a search parameter differs between actors, the table below will reflect the stronger conformance requirement.

Parameter(s) Conformance Type(s) Requirements (when used alone or in combination)
_id SHOULD token
name (R4) SHOULD string
address (R4) SHOULD string
locmailaddress SHOULD string
locationamenities SHOULD token
locationphysicaltype SHOULD token
type (R4) SHOULD token
near (R4) SHOULD special Geographical proximity search using latitude|longitude|distance format. Can be sorted by distance using _sort=near
name+type SHOULD string+token
name+locationphysicaltype SHOULD string+token
name+locationamenities SHOULD string+token
address+type SHOULD string+token
address+locationphysicaltype SHOULD string+token
address+locationamenities SHOULD string+token
locmailaddress+type SHOULD string+token
locmailaddress+locationphysicaltype SHOULD string+token
locmailaddress+locationamenities SHOULD string+token

Search include parameters

This implementation supports the following _include parameters when searching for Location resources:

  • _include=Location:endpoint - Include endpoint resources referenced by the endpoint element
  • _include=Location:managingOrganization - Include organization resources referenced by the managingOrganization element

Search reverse include parameters

This implementation supports the following _revinclude parameters when searching for Location resources:

  • _revinclude=HealthcareService:location - Include HealthcareService resources that reference this Location
  • _revinclude=Provenance:target - Include Provenance resources that track changes to this Location

Example usage

GET /Location/456?_include=Location:endpoint&_revinclude=HealthcareService:location

This query returns the Location resource, its associated Endpoints, and all HealthcareServices at this Location.