AU Provider Directory Implementation Guide
2.1.0 - Draft Australia flag

AU Provider Directory Implementation Guide, published by HL7 Australia. This guide is not an authorized publication; it is the continuous build for version 2.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7au/au-fhir-pd/ and changes regularly. See the Directory of published versions

Resource Profile: AU PD Location

Official URL: http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-location Version: 2.1.0
Standards status: Draft Maturity Level: 0 Computable Name: AUPDLocation

Copyright/Legal: HL7 Australia© 2018+; Licensed Under Creative Commons No Rights Reserved.

This profile defines a provider directory entry for a location.

This profile defines the service delivery location by address at a minimum.

Usage Notes

Profile specific implementation guidance:

One of the following defined identifier types, known to this profile, SHOULD be supplied:

Usage:

Formal Views of Profile Content

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

This structure is derived from AUBaseLocation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location CTU0..*AUBaseLocationAustralian Location Directory Entry
au-pd-loc-01: At least one defined identifier, known to this AU PD Location profile, should be present
... meta 0..1MetaMetadata on Location
.... source S0..1uriIdentifies where the resource comes from
... identifier S1..*Identifier, AULocationSpecificPracticeNumber, AUNATASiteNumberUnique code or number identifying the location to its users
... status S1..1codeRequired status
.... state 0..1stringSub-unit of country (abbreviations ok)
Binding: Australian States and Territories (required): well known state representation


doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Location.address.staterequiredAustralianStatesandTerritories

Constraints

IdGradePath(s)DetailsRequirements
au-pd-loc-01warningLocationAt least one defined identifier, known to this AU PD Location profile, should be present
: identifier.exists() implies identifier.where(system='http://ns.electronichealth.net.au/id/location-specific-practice-number' or system='http://hl7.org.au/id/nata-site').exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Location C0..*AUBaseLocationAustralian Location Directory Entry
au-pd-loc-01: At least one defined identifier, known to this AU PD Location profile, should be present
... meta Σ0..1MetaMetadata on Location
.... source SΣ0..1uriIdentifies where the resource comes from
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ1..1codeRequired status
Binding: LocationStatus (required): Indicates whether the location is still in use.

... address S1..1Address, AustralianAddressAustralian location
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... state Σ0..1stringSub-unit of country (abbreviations ok)
Binding: Australian States and Territories (required): well known state representation


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Location.statusrequiredLocationStatus
Location.address.userequiredAddressUse
Location.address.staterequiredAustralianStatesandTerritories

Constraints

IdGradePath(s)DetailsRequirements
au-pd-loc-01warningLocationAt least one defined identifier, known to this AU PD Location profile, should be present
: identifier.exists() implies identifier.where(system='http://ns.electronichealth.net.au/id/location-specific-practice-number' or system='http://hl7.org.au/id/nata-site').exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Location C0..*AUBaseLocationAustralian Location Directory Entry
au-pd-loc-01: At least one defined identifier, known to this AU PD Location profile, should be present
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata on Location
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source SΣ0..1uriIdentifies where the resource comes from
.... profile Σ0..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S1..*Identifier, AULocationSpecificPracticeNumber, AUNATASiteNumberUnique code or number identifying the location to its users
... status ?!SΣ1..1codeRequired status
Binding: LocationStatus (required): Indicates whether the location is still in use.

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

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

... type Σ0..*CodeableConceptType of function performed
Binding: ServiceDeliveryLocationRoleType - AU Extended (extensible)
... telecom 0..*ContactPointContact details of the location
... address S1..1Address, AustralianAddressAustralian location
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line Σ0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city Σ0..1stringName of city, town etc.
Example General: Erewhon
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state Σ0..1stringSub-unit of country (abbreviations ok)
Binding: Australian States and Territories (required): well known state representation

.... postalCode Σ0..1stringPostal code for area
Example General: 9132
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... physicalType Σ0..1CodeableConceptPhysical form of the location
Binding: Location Type (Physical) - AU Extended (preferred)
... position 0..1BackboneElementThe absolute geographic location
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... longitude 1..1decimalLongitude with WGS84 datum
.... latitude 1..1decimalLatitude with WGS84 datum
.... altitude 0..1decimalAltitude with WGS84 datum
... managingOrganization Σ0..1Reference(Organization)Organization responsible for provisioning and upkeep
... partOf 0..1Reference(Location)Another Location this one is physically a part of
... hoursOfOperation 0..*BackboneElementWhat days/times during a week is this location usually open
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... daysOfWeek 0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.


.... allDay 0..1booleanThe Location is open all day
.... openingTime 0..1timeTime that the Location opens
.... closingTime 0..1timeTime that the Location closes
... availabilityExceptions 0..1stringDescription of availability exceptions
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the location

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Location.meta.securityextensibleAll Security Labels
Location.meta.tagexampleCommonTags
Location.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Location.statusrequiredLocationStatus
Location.operationalStatuspreferredHl7VSBedStatus
Location.moderequiredLocationMode
Location.typeextensibleServiceDeliveryLocationRoleTypeAUExtended
Location.address.userequiredAddressUse
Location.address.typerequiredAddressType
Location.address.staterequiredAustralianStatesandTerritories
Location.physicalTypepreferredLocationPhysicalTypeAUExtended
Location.hoursOfOperation.daysOfWeekrequiredDaysOfWeek

Constraints

IdGradePath(s)DetailsRequirements
au-pd-loc-01warningLocationAt least one defined identifier, known to this AU PD Location profile, should be present
: identifier.exists() implies identifier.where(system='http://ns.electronichealth.net.au/id/location-specific-practice-number' or system='http://hl7.org.au/id/nata-site').exists()

This structure is derived from AUBaseLocation

Summary

Mandatory: 3 elements
Must-Support: 4 elements

Maturity: 0

Differential View

This structure is derived from AUBaseLocation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location CTU0..*AUBaseLocationAustralian Location Directory Entry
au-pd-loc-01: At least one defined identifier, known to this AU PD Location profile, should be present
... meta 0..1MetaMetadata on Location
.... source S0..1uriIdentifies where the resource comes from
... identifier S1..*Identifier, AULocationSpecificPracticeNumber, AUNATASiteNumberUnique code or number identifying the location to its users
... status S1..1codeRequired status
.... state 0..1stringSub-unit of country (abbreviations ok)
Binding: Australian States and Territories (required): well known state representation


doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Location.address.staterequiredAustralianStatesandTerritories

Constraints

IdGradePath(s)DetailsRequirements
au-pd-loc-01warningLocationAt least one defined identifier, known to this AU PD Location profile, should be present
: identifier.exists() implies identifier.where(system='http://ns.electronichealth.net.au/id/location-specific-practice-number' or system='http://hl7.org.au/id/nata-site').exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location C0..*AUBaseLocationAustralian Location Directory Entry
au-pd-loc-01: At least one defined identifier, known to this AU PD Location profile, should be present
... meta Σ0..1MetaMetadata on Location
.... source SΣ0..1uriIdentifies where the resource comes from
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣ1..1codeRequired status
Binding: LocationStatus (required): Indicates whether the location is still in use.

... address S1..1Address, AustralianAddressAustralian location
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... state Σ0..1stringSub-unit of country (abbreviations ok)
Binding: Australian States and Territories (required): well known state representation


doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Location.statusrequiredLocationStatus
Location.address.userequiredAddressUse
Location.address.staterequiredAustralianStatesandTerritories

Constraints

IdGradePath(s)DetailsRequirements
au-pd-loc-01warningLocationAt least one defined identifier, known to this AU PD Location profile, should be present
: identifier.exists() implies identifier.where(system='http://ns.electronichealth.net.au/id/location-specific-practice-number' or system='http://hl7.org.au/id/nata-site').exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Location C0..*AUBaseLocationAustralian Location Directory Entry
au-pd-loc-01: At least one defined identifier, known to this AU PD Location profile, should be present
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata on Location
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source SΣ0..1uriIdentifies where the resource comes from
.... profile Σ0..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S1..*Identifier, AULocationSpecificPracticeNumber, AUNATASiteNumberUnique code or number identifying the location to its users
... status ?!SΣ1..1codeRequired status
Binding: LocationStatus (required): Indicates whether the location is still in use.

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

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

... type Σ0..*CodeableConceptType of function performed
Binding: ServiceDeliveryLocationRoleType - AU Extended (extensible)
... telecom 0..*ContactPointContact details of the location
... address S1..1Address, AustralianAddressAustralian location
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line Σ0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city Σ0..1stringName of city, town etc.
Example General: Erewhon
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state Σ0..1stringSub-unit of country (abbreviations ok)
Binding: Australian States and Territories (required): well known state representation

.... postalCode Σ0..1stringPostal code for area
Example General: 9132
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... physicalType Σ0..1CodeableConceptPhysical form of the location
Binding: Location Type (Physical) - AU Extended (preferred)
... position 0..1BackboneElementThe absolute geographic location
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... longitude 1..1decimalLongitude with WGS84 datum
.... latitude 1..1decimalLatitude with WGS84 datum
.... altitude 0..1decimalAltitude with WGS84 datum
... managingOrganization Σ0..1Reference(Organization)Organization responsible for provisioning and upkeep
... partOf 0..1Reference(Location)Another Location this one is physically a part of
... hoursOfOperation 0..*BackboneElementWhat days/times during a week is this location usually open
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... daysOfWeek 0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.


.... allDay 0..1booleanThe Location is open all day
.... openingTime 0..1timeTime that the Location opens
.... closingTime 0..1timeTime that the Location closes
... availabilityExceptions 0..1stringDescription of availability exceptions
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the location

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
Location.meta.securityextensibleAll Security Labels
Location.meta.tagexampleCommonTags
Location.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Location.statusrequiredLocationStatus
Location.operationalStatuspreferredHl7VSBedStatus
Location.moderequiredLocationMode
Location.typeextensibleServiceDeliveryLocationRoleTypeAUExtended
Location.address.userequiredAddressUse
Location.address.typerequiredAddressType
Location.address.staterequiredAustralianStatesandTerritories
Location.physicalTypepreferredLocationPhysicalTypeAUExtended
Location.hoursOfOperation.daysOfWeekrequiredDaysOfWeek

Constraints

IdGradePath(s)DetailsRequirements
au-pd-loc-01warningLocationAt least one defined identifier, known to this AU PD Location profile, should be present
: identifier.exists() implies identifier.where(system='http://ns.electronichealth.net.au/id/location-specific-practice-number' or system='http://hl7.org.au/id/nata-site').exists()

This structure is derived from AUBaseLocation

Summary

Mandatory: 3 elements
Must-Support: 4 elements

Maturity: 0

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Read: Location

Read identified location resource content.

GET [base]/Location/[id]

Example: GET [base]/Location/1234

Support:

  • MUST support read Location

Implementation Notes: (how to read resource)


Search: Active Status

Search based on active status of the endpoint record.

GET [base]/Endpoint?status=[code]

Example: GET [base]/Endpoint?status=active

Support: MUST support search Organization by active status code (active | suspended | inactive)

Implementation Notes: (how to search by token)


Search: Location Address Parts

Search based on address parts for postcode, suburb, and state.

GET [base]/Location?address-postalcode=[postcode]

GET [base]/Location?address-city=[suburb]

GET [base]/Location?address-state=[state]

Example:

GET [base]/Location?address-postalcode=3101

GET [base]/Location?address-city=Bundaberg

GET [base]/Location?address-state=VIC

Support:

  • SHOULD support search Location by address parts address-postalcode, address-city, address-state.
  • SHOULD support basic param=[string] search which is case and accent-insensitive search; field equals or starts with the string value.

Implementation Notes: (how to search by string)


Search: Location Distance

Search based on address within a nominated distance.

GET [base]/Location?near=[latitude]:[longitude]&near-distance=[prefix][value]|[units-system]|[units]

Example: GET [base]/Location?near=-83.694810:42.256500&near-distance=le10.0|http://unitsofmeasure.org|km

Support:

  • SHOULD support search Location within a distance.
  • SHOULD support: [prefix] fixed ‘le’ is less than or equal to distance [value] is a decimal quantity number [units-system] fixed ‘http://unitsofmeasure.org’ identifies standard distance units are used [units] distance units must support ‘km’ or ‘m’

Implementation Notes: (how to search by token) and (how to search by quantity)


Search: Combination

  • The following searches MUST be able to be perfomed together in a single request using logical AND for criteria. e.g in postcode within 2km