# Health Connect Australia Provider Directory FHIR Implementation Guide

0.2.0-preview - Preview

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:

- Location: HC Amenity
- Location: HC Preferred Postal Address

### 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:

- Refer to this Profile: HC HealthcareService, HC Location, HC PractitionerRole and HC Provenance
- Examples for this Profile: Sydney Central Medical Centre, Mobile Healthcare Unit - Sydney CBD, Sydney CBD Mobile Unit Service Area and Virtual Telehealth Service
- CapabilityStatements using this Profile: Health Connect Provider Directory Requester and Health Connect Provider Directory Responder

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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
Obligations | Actor
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
Obligations | Actor
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
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
Obligations | Actor
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
Obligations | Actor
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)
Obligations | Actor
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
Obligations | Actor
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 | SO C | 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.
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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)
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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)
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
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
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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)
Obligations | Actor
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
Obligations | Actor
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 | SO C | 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.
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
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()`

This structure is derived from AUCoreLocation

Summary

Mandatory: 6 elements
Must-Support: 8 elements

Structures

This structure refers to these other structures:

- HC Organization (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-organization|0.2.0-preview)
- HC Location (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-location|0.2.0-preview)
- HC Endpoint (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint|0.2.0-preview)

Extensions

This structure refers to these extensions:

- http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity|0.2.0-preview
- http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address|0.2.0-preview

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Location.telecom

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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
Obligations | Actor
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
Obligations | Actor
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
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
Obligations | Actor
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
Obligations | Actor
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)
Obligations | Actor
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
Obligations | Actor
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 | SO C | 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.
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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)
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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)
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
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
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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
Obligations | Actor
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)
Obligations | Actor
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
Obligations | Actor
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 | SO C | 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.
Obligations | Actor
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
Obligations | Actor
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.
Obligations | Actor
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
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
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()`

This structure is derived from AUCoreLocation

Summary

Mandatory: 6 elements
Must-Support: 8 elements

Structures

This structure refers to these other structures:

- HC Organization (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-organization|0.2.0-preview)
- HC Location (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-location|0.2.0-preview)
- HC Endpoint (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint|0.2.0-preview)

Extensions

This structure refers to these extensions:

- http://ns.electronichealth.net.au/hc/StructureDefinition/hc-amenity|0.2.0-preview
- http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-postal-address|0.2.0-preview

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Location.telecom

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.