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

Official URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint | Version: 0.2.0-preview
Standards status: Draft | Computable Name: HCEndpoint
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 content for describing details of an endpoint.

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:

- Endpoint: AU Receiving Facility
- Endpoint: AU Receiving Application
- Endpoint: Encryption Certificate PEM X509

### Usage notes

The following guidance expands on operational and implementation expectations for this Endpoint profile.

- Purpose: An `Endpoint` in Health Connect describes how to communicate with a service (address, protocol, payloads and contact details). Directory consumers use this information to establish connections, and operational tooling uses it to monitor and validate connectivity.

#### Implementation requirements vs. processing

Implementers SHALL process all elements marked as Must Support (MS) in this profile to be conformant. However, certain elements that are mandatory do not need to be processed by Health Connect Provider Directory Requester Actors:

- Endpoint.status: This element is not MUST SUPPORT but is mandatory therefore it MAY be ignored by implementing systems. A value will be provided but MAY be ignored.

#### Initial endpoint scope and future expansion

Health Connect initially expects published `Endpoint` resources to describe Secure Messaging endpoints (SMD-capable targets and related secure messaging transports). Requesters and search clients should expect SMD-specific metadata and prioritise handling SMD attributes (SMD Target Identifier, encryption certificate, and routing identifiers). Over time, clients may be able to handle additional protocol metadata (for example, FHIR REST endpoint details) as publishers begin to expose FHIR and other transport types.

#### Identifiers and stable handles

The Endpoint profile uses two stable identifier slices for Directory management and routing:

- HC Endpoint Identifier (HC-EPI) - a externally-assigned endpoint identifier. Publishers SHOULD set this identifier on creation and thereafter treat it as immutable. The identifier SHALL be globally unique within HealthConnect and SHALL NOT be re‑assigned. Client systems SHOULD prefer this identifier for reconciliation and updates rather than attempting to infer identity from other attributes.
- HC SMD Target Identifier - a slice used only when the endpoint (or associated practitioner/service) supports Secure Messaging Delivery (SMD). When present the SMD identifier SHALL be globally unique and SHALL be treated as an immutable routing handle for secure point‑to‑point or hub‑mediated messaging. Publishers SHOULD only populate this slice for endpoints that actually support SMD.

### Reciprocal relationships

In FHIR, linkage to resources is owned by the referencing resources (`HealthcareService.endpoint`, `PractitionerRole.endpoint`, `Location.endpoint`). The Endpoint resource itself has no back‑reference slots to those resources. Consequently:

- Reciprocity cannot be enforced within the Endpoint profile (there is no standard element on Endpoint to list referencing HealthcareService / Location / PractitionerRole resources).
- Directory governance MUST ensure that when a referencing resource adds or removes an Endpoint, any operational expectations (availability, deprecation, auditing) are handled in process.

Usages:

- Refer to this Profile: HC HealthcareService, HC Location, HC PractitionerRole and HC Provenance
- Examples for this Profile: Sydney General Hospital SMD Endpoint
- 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
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint(4.0.1) | Health Connect Endpoint
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:receivingFacility | SO | 0..1 | (Complex) | HL7 V2 receiving facility URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:receivingApplication | SO | 0..1 | (Complex) | HL7 V2 receiving application URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:dataEnciphermentCertificate | SO | 0..* | string | PEM X509 certificate URL: http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509 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
Slices for identifier | SO Σ | 1..* | Identifier | Unique identifier of the endpoint record Slice: Unordered, Open by pattern:type, value:system
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
identifier:HCSMDTargetIdentifier | S Σ | 0..* | HCSMDTargetIdentifier(0.2.0-preview) | SMD Target Identifier
identifier:HCEndpointIdentifier | S Σ | 1..1 | HCEndpointIdentifier(0.2.0-preview) | HC Endpoint Identifier attributed from source system
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | SO Σ | 1..1 | Coding | To specify the service interface types Binding: HCServiceInterfacesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
name | SO Σ | 0..1 | string | To enable consistent and correct identification of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadType | SO Σ | 1..* | CodeableConcept | Endpoint payload type Binding: AustralianEndpointPayloadTypesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadMimeType | SO Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
address | SO Σ | 1..1 | url | URL address of the endpoint
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
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | HC Australian Service Interfaces | 📍0.2.0-preview | This IG
Endpoint.payloadType | Base | extensible | HC Australian Endpoint Payload Types | 📍0.2.0-preview | This IG
Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Endpoint.implicitRules, Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension, Endpoint.identifier, Endpoint.identifier:HCSMDTargetIdentifier, Endpoint.identifier:HCEndpointIdentifier, Endpoint.status, Endpoint.connectionType, Endpoint.name, Endpoint.payloadType, Endpoint.payloadMimeType, Endpoint.address | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Endpoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint(4.0.1) | Health Connect Endpoint
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:receivingFacility | SO | 0..1 | (Complex) | HL7 V2 receiving facility URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:receivingApplication | SO | 0..1 | (Complex) | HL7 V2 receiving application URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:dataEnciphermentCertificate | SO | 0..* | string | PEM X509 certificate URL: http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
Slices for identifier | SO | 1..* | Identifier | Unique identifier of the endpoint record Slice: Unordered, Open by pattern:type, value:system
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
identifier:HCSMDTargetIdentifier | S | 0..* | HCSMDTargetIdentifier(0.2.0-preview) | SMD Target Identifier
identifier:HCEndpointIdentifier | S | 1..1 | HCEndpointIdentifier(0.2.0-preview) | HC Endpoint Identifier attributed from source system
connectionType | SO | 1..1 | Coding | To specify the service interface types Binding: HCServiceInterfacesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
name | SO | 0..1 | string | To enable consistent and correct identification of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadType | SO | 1..* | CodeableConcept | Endpoint payload type Binding: AustralianEndpointPayloadTypesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadMimeType | SO | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
address | SO | 1..1 | url | URL address of the endpoint
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
Endpoint.connectionType | Base | extensible | HC Australian Service Interfaces | 📍0.2.0-preview | This IG
Endpoint.payloadType | Base | extensible | HC Australian Endpoint Payload Types | 📍0.2.0-preview | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint(4.0.1) | Health Connect Endpoint
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
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:receivingFacility | SO | 0..1 | (Complex) | HL7 V2 receiving facility URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:receivingApplication | SO | 0..1 | (Complex) | HL7 V2 receiving application URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:dataEnciphermentCertificate | SO | 0..* | string | PEM X509 certificate URL: http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509 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
Slices for identifier | SO Σ | 1..* | Identifier | Unique identifier of the endpoint record Slice: Unordered, Open by pattern:type, value:system
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
identifier:HCSMDTargetIdentifier | S Σ | 0..* | HCSMDTargetIdentifier(0.2.0-preview) | SMD Target Identifier
identifier:HCEndpointIdentifier | S Σ | 1..1 | HCEndpointIdentifier(0.2.0-preview) | HC Endpoint Identifier attributed from source system
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | SO Σ | 1..1 | Coding | To specify the service interface types Binding: HCServiceInterfacesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
name | SO Σ | 0..1 | string | To enable consistent and correct identification of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
managingOrganization | Σ | 0..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
contact |  | 0..* | ContactPoint | Contact details for source (e.g. troubleshooting)
period | Σ | 0..1 | Period | Interval the endpoint is expected to be operational
payloadType | SO Σ | 1..* | CodeableConcept | Endpoint payload type Binding: AustralianEndpointPayloadTypesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadMimeType | SO Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
address | SO Σ | 1..1 | url | URL address of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
header |  | 0..* | string | Usage depends on the channel type
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Endpoint.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | HC Australian Service Interfaces | 📍0.2.0-preview | This IG
Endpoint.payloadType | Base | extensible | HC Australian Endpoint Payload Types | 📍0.2.0-preview | This IG
Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Endpoint.meta, Endpoint.implicitRules, Endpoint.language, Endpoint.text, Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension, Endpoint.identifier, Endpoint.identifier:HCSMDTargetIdentifier, Endpoint.identifier:HCEndpointIdentifier, Endpoint.status, Endpoint.connectionType, Endpoint.name, Endpoint.managingOrganization, Endpoint.contact, Endpoint.period, Endpoint.payloadType, Endpoint.payloadMimeType, Endpoint.address, Endpoint.header | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Endpoint

Summary

Mandatory: 2 elements
Must-Support: 11 elements

Structures

This structure refers to these other structures:

- HC SMD Target Identifier (HC-SMDTI) (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-smd-target-identifier|0.2.0-preview)
- HC Endpoint Identifier (HC-EPI) (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint-identifier|0.2.0-preview)

Extensions

This structure refers to these extensions:

- http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility|6.0.0
- http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication|6.0.0
- http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509|6.0.0

Slices

This structure defines the following Slices:

- The element 2 is sliced based on the values of Endpoint.identifier

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint(4.0.1) | Health Connect Endpoint
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:receivingFacility | SO | 0..1 | (Complex) | HL7 V2 receiving facility URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:receivingApplication | SO | 0..1 | (Complex) | HL7 V2 receiving application URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:dataEnciphermentCertificate | SO | 0..* | string | PEM X509 certificate URL: http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509 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
Slices for identifier | SO Σ | 1..* | Identifier | Unique identifier of the endpoint record Slice: Unordered, Open by pattern:type, value:system
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
identifier:HCSMDTargetIdentifier | S Σ | 0..* | HCSMDTargetIdentifier(0.2.0-preview) | SMD Target Identifier
identifier:HCEndpointIdentifier | S Σ | 1..1 | HCEndpointIdentifier(0.2.0-preview) | HC Endpoint Identifier attributed from source system
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | SO Σ | 1..1 | Coding | To specify the service interface types Binding: HCServiceInterfacesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
name | SO Σ | 0..1 | string | To enable consistent and correct identification of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadType | SO Σ | 1..* | CodeableConcept | Endpoint payload type Binding: AustralianEndpointPayloadTypesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadMimeType | SO Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
address | SO Σ | 1..1 | url | URL address of the endpoint
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
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | HC Australian Service Interfaces | 📍0.2.0-preview | This IG
Endpoint.payloadType | Base | extensible | HC Australian Endpoint Payload Types | 📍0.2.0-preview | This IG
Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Endpoint.implicitRules, Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension, Endpoint.identifier, Endpoint.identifier:HCSMDTargetIdentifier, Endpoint.identifier:HCEndpointIdentifier, Endpoint.status, Endpoint.connectionType, Endpoint.name, Endpoint.payloadType, Endpoint.payloadMimeType, Endpoint.address | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Endpoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint(4.0.1) | Health Connect Endpoint
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:receivingFacility | SO | 0..1 | (Complex) | HL7 V2 receiving facility URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:receivingApplication | SO | 0..1 | (Complex) | HL7 V2 receiving application URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:dataEnciphermentCertificate | SO | 0..* | string | PEM X509 certificate URL: http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
Slices for identifier | SO | 1..* | Identifier | Unique identifier of the endpoint record Slice: Unordered, Open by pattern:type, value:system
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
identifier:HCSMDTargetIdentifier | S | 0..* | HCSMDTargetIdentifier(0.2.0-preview) | SMD Target Identifier
identifier:HCEndpointIdentifier | S | 1..1 | HCEndpointIdentifier(0.2.0-preview) | HC Endpoint Identifier attributed from source system
connectionType | SO | 1..1 | Coding | To specify the service interface types Binding: HCServiceInterfacesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
name | SO | 0..1 | string | To enable consistent and correct identification of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadType | SO | 1..* | CodeableConcept | Endpoint payload type Binding: AustralianEndpointPayloadTypesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadMimeType | SO | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
address | SO | 1..1 | url | URL address of the endpoint
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
Endpoint.connectionType | Base | extensible | HC Australian Service Interfaces | 📍0.2.0-preview | This IG
Endpoint.payloadType | Base | extensible | HC Australian Endpoint Payload Types | 📍0.2.0-preview | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | Endpoint(4.0.1) | Health Connect Endpoint
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
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:receivingFacility | SO | 0..1 | (Complex) | HL7 V2 receiving facility URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:receivingApplication | SO | 0..1 | (Complex) | HL7 V2 receiving application URL: http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication Constraints: ext-1
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
extension:dataEnciphermentCertificate | SO | 0..* | string | PEM X509 certificate URL: http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509 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
Slices for identifier | SO Σ | 1..* | Identifier | Unique identifier of the endpoint record Slice: Unordered, Open by pattern:type, value:system
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
identifier:HCSMDTargetIdentifier | S Σ | 0..* | HCSMDTargetIdentifier(0.2.0-preview) | SMD Target Identifier
identifier:HCEndpointIdentifier | S Σ | 1..1 | HCEndpointIdentifier(0.2.0-preview) | HC Endpoint Identifier attributed from source system
status | ?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
connectionType | SO Σ | 1..1 | Coding | To specify the service interface types Binding: HCServiceInterfacesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
name | SO Σ | 0..1 | string | To enable consistent and correct identification of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
managingOrganization | Σ | 0..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint)
contact |  | 0..* | ContactPoint | Contact details for source (e.g. troubleshooting)
period | Σ | 0..1 | Period | Interval the endpoint is expected to be operational
payloadType | SO Σ | 1..* | CodeableConcept | Endpoint payload type Binding: AustralianEndpointPayloadTypesValueSet (0.2.0-preview) (extensible)
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
payloadMimeType | SO Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
address | SO Σ | 1..1 | url | URL address of the endpoint
Obligations | Actor
SHALL:populate-if-known | Health Connect Provider Directory Responder Actor
SHOULD:handle | Health Connect Provider Directory Requester Actor
header |  | 0..* | string | Usage depends on the channel type
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Endpoint.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std.
Endpoint.connectionType | Base | extensible | HC Australian Service Interfaces | 📍0.2.0-preview | This IG
Endpoint.payloadType | Base | extensible | HC Australian Endpoint Payload Types | 📍0.2.0-preview | This IG
Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Endpoint | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Endpoint.meta, Endpoint.implicitRules, Endpoint.language, Endpoint.text, Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension, Endpoint.identifier, Endpoint.identifier:HCSMDTargetIdentifier, Endpoint.identifier:HCEndpointIdentifier, Endpoint.status, Endpoint.connectionType, Endpoint.name, Endpoint.managingOrganization, Endpoint.contact, Endpoint.period, Endpoint.payloadType, Endpoint.payloadMimeType, Endpoint.address, Endpoint.header | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Endpoint.extension, Endpoint.extension:receivingFacility, Endpoint.extension:receivingApplication, Endpoint.extension:dataEnciphermentCertificate, Endpoint.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Endpoint

Summary

Mandatory: 2 elements
Must-Support: 11 elements

Structures

This structure refers to these other structures:

- HC SMD Target Identifier (HC-SMDTI) (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-smd-target-identifier|0.2.0-preview)
- HC Endpoint Identifier (HC-EPI) (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint-identifier|0.2.0-preview)

Extensions

This structure refers to these extensions:

- http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility|6.0.0
- http://hl7.org.au/fhir/StructureDefinition/au-receivingapplication|6.0.0
- http://hl7.org.au/fhir/StructureDefinition/encryption-certificate-pem-x509|6.0.0

Slices

This structure defines the following Slices:

- The element 2 is sliced based on the values of Endpoint.identifier

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 Endpoint` resources in Health Connect implementations.

#### Search parameters defined in this IG

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

- `hcepi` (Endpoint.identifier where type = Resource Identifier)
- Find endpoint records by the HC identifier assigned in Health Connect. Uses token matching for exact value matching.

- Example: `GET /Endpoint?hcepi=EP001234567890`

- `payloadmimetype` (Endpoint.payloadMimeType)
- Search for endpoints that advertise support for a specific MIME type for payloads.
- Typical values present in this IG's example data are:
  - `application/pdf`
  - `application/fhir+xml`
  - `application/fhir+json`

- Example: `GET /Endpoint?payloadmimetype=application%2Ffhir%2Bjson`

- `epurl` (alias used in this IG for Endpoint.address)
- Convenience alias used in this IG's documentation to search by endpoint address.
- Example: `GET /Endpoint?epurl=https://smd.sydneyhospital.org.au/secure-messaging/endpoint`

#### 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)` (Endpoint.name)
- Search for endpoints by name (partial matches may be supported).

- Example: `GET /Endpoint?name=My%20GP%20Service`

- `connection-type (R4)` (Endpoint.connectionType)
- Search for endpoints by connection type (for example, `hl7-fhir-rest` or other interface codes).

- Example: `GET /Endpoint?connection-type=http://terminology.hl7.org.au/CodeSystem/endpoint-connection-type|secure-messaging`

- `payload-type (R4)` (Endpoint.payloadType)
- Search for endpoints by payload type (CodeableConcept). Use HC Endpoint payload type ValueSet codes where applicable.
- Example: `GET /Endpoint?payload-type=http://ns.electronichealth.net.au/hc/CodeSystem/hc-endpoint-payload-type-cs|some-payload`

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` |
hcepi | SHOULD | `token` |
name (R4) | SHOULD | `string` |
connection-type (R4) | SHOULD | `token` |
payload-type (R4) | SHOULD | `token` |
epurl | SHOULD | `uri` |
payloadmimetype | SHOULD | `token` |
name+connection-type | SHOULD | `string`+`token` |
name+payload-type | SHOULD | `string`+`token` |
connection-type+payloadmimetype | SHOULD | `token`+`token` |

### Search reverse include parameters

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

- `_revinclude=HealthcareService:endpoint` - Include HealthcareService resources that reference this Endpoint
- `_revinclude=Location:endpoint` - Include Location resources that reference this Endpoint
- `_revinclude=PractitionerRole:endpoint` - Include PractitionerRole resources that reference this Endpoint
- `_revinclude=Provenance:target` - Include Provenance resources that track changes to this Endpoint

#### Example usage

    GET /Endpoint/303?_revinclude=HealthcareService:endpoint&_revinclude=Location:endpoint

This query returns the Endpoint resource along with all HealthcareServices and Locations that use this Endpoint.