AU Core Implementation Guide
3.0.0-ballot1 - Ballot

AU Core Implementation Guide - Downloaded Version 3.0.0-ballot1 See the Directory of published versions

## Resource Profile: AU Core Endpoint

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-endpoint | Version: 3.0.0-ballot1
Standards status: Trial-use | Maturity Level: 1 | Computable Name: AUCoreEndpoint
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License. HL7 Australia© 2022+; Licensed Under Creative Commons No Rights Reserved.

This profile sets minimum expectations for an Endpoint resource to record, search, and fetch details of a technical endpoint that can be used to connect to a service for the delivery or retrieval of information. It is based on the AU Base Endpoint profile and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the Endpoint resource when conforming to this profile. It provides the floor for standards development for specific uses cases in an Australian context.

See Comparison with other national and international IGs for a comparison between AU Core profiles and profiles in other implementation guides.

### Usage Scenarios

The following are supported usage scenarios for this profile:

- Query for an endpoint
- Record or update endpoint information

### Profile Specific Implementation Guidance

No guidance defined.

Usages:

- Examples for this Profile: Bobrester Medical Center FHIR Endpoint, HL7 AU Development Terminology Server, Mitchell's Hill Audiology Endpoint, Murrabit Hospital HL7 V2 Endpoint and Sparked Development FHIR Server (AU Core)
- CapabilityStatements using this Profile: AU Core Requester CapabilityStatement and AU Core Responder CapabilityStatement

You can also check for usages in the FHIR IG Statistics

Changes since version 2.0.0:

- New Content

### 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..* | AUBaseEndpoint | An endpoint in an Australian healthcare context
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:environmentType |  | 0..* | CodeableConcept | R5: The type of environment(s) exposed at this endpoint (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Endpoint.environmentType Binding: R5EndpointEnvironmentForR4 (0.1.0) (extensible) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!SO Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
connectionType | SO Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: Endpoint Connection Type - AU Extended (extensible)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
name | SO Σ | 0..1 | string | A name that this endpoint can be identified by
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
payloadType | SO Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: Endpoint Payload Type - AU Extended (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
address | SO Σ | 1..1 | url | The technical base address for connecting to this endpoint
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | Endpoint Connection Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
Endpoint.payloadType | Base | preferred | Endpoint Payload Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0

#### 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 | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Endpoint.extension:environmentType, Endpoint.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from AUBaseEndpoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | AUBaseEndpoint | An endpoint in an Australian healthcare context
status | SO | 1..1 | code | active | suspended | error | off | entered-in-error | test
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
connectionType | SO | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
name | SO | 0..1 | string | A name that this endpoint can be identified by
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
payloadType | SO | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
address | SO | 1..1 | url | The technical base address for connecting to this endpoint
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | AUBaseEndpoint | An endpoint in an Australian healthcare context
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
extension:environmentType |  | 0..* | CodeableConcept | R5: The type of environment(s) exposed at this endpoint (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Endpoint.environmentType Binding: R5EndpointEnvironmentForR4 (0.1.0) (extensible) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Identifies this endpoint across multiple systems
status | ?!SO Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
connectionType | SO Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: Endpoint Connection Type - AU Extended (extensible)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
name | SO Σ | 0..1 | string | A name that this endpoint can be identified by
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: Endpoint Payload Type - AU Extended (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
payloadMimeType | Σ | 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.
address | SO Σ | 1..1 | url | The technical base address for connecting to this endpoint
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | Endpoint Connection Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
Endpoint.payloadType | Base | preferred | Endpoint Payload Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
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 | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from AUBaseEndpoint

Summary

Must-Support: 5 elements

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | AUBaseEndpoint | An endpoint in an Australian healthcare context
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:environmentType |  | 0..* | CodeableConcept | R5: The type of environment(s) exposed at this endpoint (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Endpoint.environmentType Binding: R5EndpointEnvironmentForR4 (0.1.0) (extensible) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!SO Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
connectionType | SO Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: Endpoint Connection Type - AU Extended (extensible)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
name | SO Σ | 0..1 | string | A name that this endpoint can be identified by
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
payloadType | SO Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: Endpoint Payload Type - AU Extended (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
address | SO Σ | 1..1 | url | The technical base address for connecting to this endpoint
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | Endpoint Connection Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
Endpoint.payloadType | Base | preferred | Endpoint Payload Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0

#### 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 | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Endpoint.extension:environmentType, Endpoint.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from AUBaseEndpoint

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | AUBaseEndpoint | An endpoint in an Australian healthcare context
status | SO | 1..1 | code | active | suspended | error | off | entered-in-error | test
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
connectionType | SO | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
name | SO | 0..1 | string | A name that this endpoint can be identified by
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
payloadType | SO | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
address | SO | 1..1 | url | The technical base address for connecting to this endpoint
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Endpoint |  | 0..* | AUBaseEndpoint | An endpoint in an Australian healthcare context
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
extension:environmentType |  | 0..* | CodeableConcept | R5: The type of environment(s) exposed at this endpoint (new) URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Endpoint.environmentType Binding: R5EndpointEnvironmentForR4 (0.1.0) (extensible) Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Identifies this endpoint across multiple systems
status | ?!SO Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
connectionType | SO Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: Endpoint Connection Type - AU Extended (extensible)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
name | SO Σ | 0..1 | string | A name that this endpoint can be identified by
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: Endpoint Payload Type - AU Extended (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
payloadMimeType | Σ | 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.
address | SO Σ | 1..1 | url | The technical base address for connecting to this endpoint
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | Endpoint Connection Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
Endpoint.payloadType | Base | preferred | Endpoint Payload Type - AU Extended | 📦7.0.0-ballot1 | AU Base Implementation Guide v7.0
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 | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from AUBaseEndpoint

Summary

Must-Support: 5 elements

Maturity: 1

Other representations of profile: CSV, Excel, Schematron

### Notes:

Below is an overview of the mandatory and optional search parameters and combined search parameters. See the AU Core CapabilityStatements for a complete list of supported RESTful interactions for this IG.

FHIR search operations are described here and the syntax used to describe AU Core interactions is defined here.

Any search parameter defined in FHIR may be 'allowed' by the system unless explicitly marked as "SHALL NOT". A few items are marked as MAY in this implementation guide to highlight their potential relevance.

Parameter(s) | Conformance | Type(s) | Requirements (when used alone or in combination)
--- | --- | --- | ---
_id | SHOULD | `token` |
connection-type | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.
name | MAY | `string` |
payload-type | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.
status | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.

#### Optional Search Parameters

The following search parameters and search parameter combinations SHOULD be supported:

1. SHOULD support searching using the `_id` search parameter:

   `GET [base]/Endpoint?_id=[id]`

   Example:

   1. GET [base]/Endpoint?_id=2234547

   Implementation Notes: Fetches a bundle with the requested Endpoint, instead of just the resource itself, and allows for the inclusion of additional search parameters such as _include, _revinclude, or _lastUpdated (how to search by id of the resource)