Australian Digital Health Agency FHIR Implementation Guide
1.2.0-ci-build - draft
Australian Digital Health Agency FHIR Implementation Guide, published by Australian Digital Health Agency. This guide is not an authorized publication; it is the continuous build for version 1.2.0-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/AuDigitalHealth/ci-fhir-r4/ and changes regularly. See the Directory of published versions
This material is under active development and content may be added or updated on a regular basis.
The policy for defining, using, maintaining, and implementing using FHIR version R4 within the Australian Digital Health Agency.
ADHA-FHIR-SERIAL-01 A FHIR API SHALL support JSON serialisation
ADHA-FHIR-SERIAL-02 A FHIR API endpoint SHALL support JSON formatted requests/responses
ADHA-FHIR-SERIAL-03 A FHIR API endpoint SHOULD support XML serialisation
ADHA-FHIR-SERIAL-04 A FHIR API that supports an XML serialisation SHALL use the FHIR standard namespace for FHIR XML and FHIR XHTML
ADHA-FHIR-SERIAL-05 A FHIR API endpoint SHALL declare the serialisation mime-types supported in the Conformance/CapabilityStatement resource for that endpoint
ADHA-FHIR-NATSEVICES-0X National FHIR services SHALL use consistent basePaths.
In order to support the move to FHIR for a set of national services, a URL scheme has been defined that will allow entities such as Patients and Organisations to be referenced reliably even when the relevant national FHIR services have not yet been implemented. These URLs should also support a future move to Internet-facing services, and as such it should be possible to resolve them over both the Internet and N3/HSCN as applicable.
The following basePaths are to be used for national services:
API Name | basePath | Further path to endpoint |
---|---|---|
Immunisation History | /immunisation-history | /FHIR/R4 |
Patient Demographics | /patient-demographics | /FHIR/R4 |
COVID-19 Test Results | /covid-19-test-result | /FHIR/R4 |
ADHA-FHIR-OPER-0X Where …. standard FHIR operation, the standard operation SHOULD be used.
ADHA-FHIR-OPER-0X Where … a customer operation SHOULD be used.
ADHA-FHIR-IDENT-0X References in a FHIR message SHOULD be logical reference to a resource in the Bundle
ADHA-FHIR-IDENT-0X References in a FHIR document SHOULD be a logical reference to a resource in the Bundle
ADHA-FHIR-IDENT-0X References between RESTful resources SHOULD be literal references but MAY be logical references
ADHA-FHIR-IDENT-0X Business identifiers SHALL only be used as the resource id in RESTful APIs when the system is the authoritative source of that entity with the exceptions called out before for nationally supported identifiers.
ADHA-FHIR-IDENT-01 At least one well formed patient identifier SHALL be provided
ADHA-FHIR-IDENT-02 Where a verified IHI is available for a patient that IHI SHALL be provided
ADHA-FHIR-IDENT-03 A system SHALL support the following patient identifiers: IHI, DVA, and Medicare Card.
ADHA-FHIR-IDENT-04 A system SHALL support the following healthcare provider individual identifiers: HPI-I, CAE, and Medicare Provider.
ADHA-FHIR-IDENT-05 A system SHALL support the following organisation identifiers: HPI-O, PAI-O, and ABN.
ADHA-FHIR-IDENT-06 A system SHOULD support the following device identifiers: PAI-D, PAI-R, UID.
ADHA-FHIR-IDENT-07 An identifier data element SHALL conform to the applicable HL7 AU Identifier profile.
ADHA-FHIR-PROFILE-0X An ADHA Core FHIR Asset SHALL NOT define alternate elements for use in place of elements defined in a HL7 FHIR base resource
ADHA-PROFILE-PROFILE-0X An ADHA Core FHIR Asset SHALL conform to the applicable HL7 AU Base FHIR Asset
ADHA-FHIR-PROFILE-0X An ADHA FHIR Asset SHALL derive from an ADHA FHIR Core Asset in the first instance, if available, otherwise it SHALL derive from an applicable HL7 AU Base Asset
ADHA-FHIR-PROFILE-0X An ADHA Core FHIR Asset SHALL derive from HL7 AU Base material in the first instance if available, otherwise derive
ADHA-FHIR-PROFILE-0X Use of extensions SHALL follow order of precedence:
- HL7 extension
- HL7 AU extension
- ADHA extension
- Other
There are primarily four types of artefacts provided to support implementations:
ADHA FHIR conformance resources may be one of:
FHIR conformance resources are identified by a canonical identifier that is a globally unique URI.
Canonical identifiers (URI) for ADHA FHIR conformance resources SHALL be in the form of [base-uri]/[resource-type]/[resource-id]:
http://ns.electronichealth.net.au/fhir
*StructureDefinition
, SearchParameter
resource.id
and is constructed in accordance with the rules for that resource type*The canonical namespace (URI) for ADHA artefacts is http://ns.electronichealth.net.au
. This is not limited to FHIR and includes national identifiers and service interfaces.
The following table shows how the canonical identifier (URI) for each resource type may be constructed.
[base-uri] | /[resource-type] | /[resource-id] |
---|---|---|
http://ns.electronichealth.net.au/fhir | /CapabilityStatement | /[resource-id] |
http://ns.electronichealth.net.au/fhir | /StructureDefinition | /[resource-id] |
http://ns.electronichealth.net.au/fhir | /ImplementationGuide | /[resource-id] |
http://ns.electronichealth.net.au/fhir | /SearchParameter | /[resource-id] |
http://ns.electronichealth.net.au/fhir | /OperationDefinition | /[resource-id] |
http://ns.electronichealth.net.au/fhir | /StructureMap | /[resource-id] |
ImplementationGuide [resource-id] and FHIR NPM package name
The [resource-id] for an ImplementationGuide SHALL match the FHIR NPM package name.
The [resource-id] for an ImplementationGuide and FHIR NPM package name SHALL be all lowercase in the form of [base-id].[fhir-version].[optional-subpackage-case]:
au.digitalhealth
stu3
or r4
or r5
-
au.digitalhealth.r4
medicare-records
is the subpackage name that forms part of the packageId au.digitalhealth.stu3.medicare-records
for the Medicare Records FHIR Implementation GuideIn an ImplementationGuide this [resource-id] SHALL be used in three places:
ImplementationGuide.id
ImplementationGuide.url
ImplementationGuide.packageId
Example: ImplementationGuide resource with id, url, packageId
{
"resourceType": "ImplementationGuide",
"id": "au.digitalhealth.r4",
"url": "http://ns.electronichealth.net.au/fhir/ImplementationGuide/au.digitalhealth.r4",
...
"packageId": "au.digitalhealth.r4",
...
}
Example: ImplementationGuide resource for a subpackage with id, url, packageId
{
"resourceType": "ImplementationGuide",
"id": "au.digitalhealth.stu3.medicare-records",
"url": "http://ns.electronichealth.net.au/fhir/ImplementationGuide/au.digitalhealth.stu3.medicare-records",
...
"packageId": "au.digitalhealth.stu3.medicare-records",
...
}
StructureDefinition [resource-id] - profiles
The [resource-id] for a StructureDefinition that is a profile SHALL be all lowercase in the form of dh-[resource-profiled]-[use-case]-[optional-use-case2]-[structure-version]:
StructureDefinition.type
In a StructureDefinition this [resource-id] SHALL be used in three places:
StructureDefinition.id
StructureDefinition.url
Example: StructureDefinition resource that is a core profile
{
"resourceType": "StructureDefinition",
"id": "dh-bodystructure-core-1",
"url": "http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-bodystructure-core-1",
...
}
Example: StructureDefinition resource with a 2nd use case name
{
"resourceType": "StructureDefinition",
"id": "dh-explanationofbenefit-medicare-mbs-1",
"url": "http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-explanationofbenefit-medicare-mbs-1",
...
}
StructureDefinition [resource-id] - extensions
The [resource-id] for a StructureDefinition that is an extension SHALL be all lowercase in the form of dh-[element-name]-[structure-version]:
-
In a StructureDefinition this [resource-id] SHALL be used in three places:
StructureDefinition.id
StructureDefinition.url
Example: StructureDefinition resource that is an extension
{
"resourceType": "StructureDefinition",
"id": "dh-packed-in-daa-1",
"url": "http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-packed-in-daa-1",
...
}
Important Note: An exception to this policy has been accepted for the extension Date of Initial Registration first implemented in 2018 in FHIR 3.0.1.
In order to promote consistency and make it easier for implementers to locate suitable profiles, extensions, etc, for their projects, a naming policy has been adopted.
A conformance resource has two elements covered by a naming policy:
StructureDefinition.name
StructureDefinition.title
In addition to the requirements defined in the FHIR standard this section defines conventions for ADHA FHIR conformance resources by resource type.
ImplementationGuide naming for base
The name for an ImplementationGuide that manages the core and common ADHA FHIR materials for a FHIR version SHALL be "ADHAFHIR".
The title for an ImplementationGuide that manages the core and common ADHA FHIR materials for a FHIR version SHALL be "Australian Digital Health Agency FHIR".
Example: ImplementationGuide resource that manages the core and common ADHA FHIR materials
{
"resourceType": "ImplementationGuide",
...
"name": "ADHAFHIR",
"title": "Australian Digital Health Agency FHIR",
...
}
ImplementationGuide naming for subpackage
The name for an ImplementationGuide that manages a subpackage SHALL be in the form of ADHA[optional-computable-use-case]FHIR:
The title for an ImplementationGuide that manages a subpackage SHALL be in the form of ADHA [optional-human-readable-use-case] FHIR:
Example: ImplementationGuide resource with the optional human readable use case name
{
"resourceType": "ImplementationGuide",
...
"name": "ADHAMedicareRecordsFHIR",
"title": "ADHA Medicare Records FHIR",
...
}
StructureDefinition naming - profiles
The name for a StructureDefinition that is a profile SHALL be in the form of ADHA[resource-profiled][computable-use-case]:
StructureDefinition.type
Core
for all core profilesThe title for a StructureDefinition that is a profile SHALL be in the form of ADHA [human-readable-use-case]:
Core [resource-profiled]
for all core profiles e.g. ADHA Core Patient
Example: StructureDefinition resource that is a core profile
{
"resourceType": "StructureDefinition",
...
"name": "ADHABodyStructureCore",
"title": "ADHA Core BodyStructure",
...
}
Example: StructureDefinition resource with a 2nd use case name
{
"resourceType": "StructureDefinition",
...
"name": "ADHAExplanationofBenefitMBS",
"title": "ADHA Record of Claim against MBS or DVA",
...
}
StructureDefinition naming - extensions
The name for a StructureDefinition that is an extension SHALL be in the form of [computable-element-name]:
The title for a StructureDefinition that is an extension SHALL be in the form of [human-readable-element-name]:
Example: StructureDefinition resource that is an extension
{
"resourceType": "StructureDefinition",
...
"name": "MedicinesPackedInDAAIndicator",
"title": "Medicines Packed in Dose Administration Aid Indicator",
...
}
The version policy follows Semantic versioning with some changes to account for a publication and not a software release.
The four types of artefacts (publications, NPM packages, conformance resources, and terminology resources) are versioned in accordance with this policy. The visible publication version, ImplementationGuide resource version, and NPM package for that publication SHALL have the same version. Conformance and terminology resources published in, or referenced by, that publication MAY be versioned independently.
There is a single development version of the publication that undergoes cycles of development. At the completion of each cycle of development a new version of the publication is published. In version control terms, each published publication is a branch off the development trunk, which may then itself undergo further change as the Agency maintains the published publication (limited to necessary technical corrections or security alerts) and introduces new capabilities.
The same Semantic versioning versioning standard is applied to the four types of ADHA artefacts. The version is identified by a string composed from 4 parts: major.minor.revision(-label):
major
minor
revision
label (optional)
Changes to a formally published publication (except for minor publishing corrections, such as correcting broken external links) are SHOULD only be made via announced technical corrections.
FHIR artefacts such as conformance resource or terminology resources MAY be versioned individually within a single ImplementationGuide in accordance with a change management process for each resource or MAY be kept in lock with the version of the ImplementationGuide.
Examples provided as part of a publication are never normative, or versioned.
Types of change that may affect a version
In order to promote consistency and easy of maintenance the definition of change types defined in the FHIR standard is adopted, these are summarised below:
Examples provided as part of a publication are never treated as normative or substantive. While every effort is made to ensure that example resources are correct, changes to the examples in a publication or NPM package SHALL be considered non-substantive.
An ADHA FHIR conformance resource for public implementation SHALL be published in a public implementation guide and an NPM package. The latest release of a publication SHALL be published at a fully versioned URL and a non-versioned URL (see the section Publication URLs below).
The NPM package:
Some implementation contexts will be supported by targeted conformance assets, e.g. Provider Connect Australia. The publications and/or profiles that define a particular implementation context SHALL define requirements for publication and management of FHIR conformance resources for that context, and SHALL manage those artefacts accordingly.
All FHIR materials relating to national systems and other nationally defined FHIR API profiles (including StructureDefinitions, ValueSets, OperationDefinitions, ImplementationGuides, etc.) SHALL be held on a publicly available GitHub repository published by the Australian Digital Health Agency. The location for Agency material in GitHub is: https://github.com/AuDigitalHealth.
Comments, feedback and suggestions from developers on FHIR resources (and associated documentation) SHOULD be managed through TBD using the standard features for raising and tracking issues on the site.
Publication URLs
To account for a potential future need to concurrently actively support multiple major versions of FHIR, i.e. support a new capability like a record type or API or interaction in more than one FHIR version, publication locations SHOULD make content available in:
Therefore, a publication URL may be made up of [base-publication-url]/[fhir-version]/[publication-case]/[publication-version]:
https://fhir.digitalhealth.gov.au
STU3
or R4
-
dh
for a publication that manages the core and common ADHA FHIR materials for a FHIR versionImplementationGuide.version
string, see the section VersioningExample: Non-versioned publication URL for this ImplementationGuide
https://fhir.digitalhealth.gov.au/dh
Example: Fully versioned publication URL for this ImplementationGuide
https://fhir.digitalhealth.gov.au/R4/dh/1.0.0
Publication URL expected resolution behaviour
The expected resolution behaviour of publication URLs is summarised below:
This behaviour SHOULD be supported by managing publication of a versioned and non-versioned URL:
Taking the ADHA FHIR Implementation Guide, if this publication was hypothetically published only in FHIR R4 and had two published versions 1.0.0 and 1.1.0:
Publication URL entered into browser | Resolves to |
---|---|
https://fhir.digitalhealth.gov.au/dh | https://fhir.digitalhealth.gov.au/dh/index.html |
https://fhir.digitalhealth.gov.au/R4/dh/1.0.0 | https://fhir.digitalhealth.gov.au/R4/dh/1.0.0/index.html |
https://fhir.digitalhealth.gov.au/R4/dh/1.1.0 | https://fhir.digitalhealth.gov.au/R4/dh/1.1.0/index.html |
Canonical identifier (URI) expected resolution behaviour
The canonical identifier for ADHA FHIR publication and conformance resources SHOULD be resolvable URLs. The publication location for ADHA artefacts MAY be different and resolve by redirection. Resolution SHOULD behave as defined in the FHIR standard.
The expected behaviour of resolution of canonical identifiers is summarised below:
http://ns.electronichealth.net.au/fhir/ImplementationGuide/au.digitalhealth.r4
, SHALL resolve to the Home page of the latest version of that publicationhttp://ns.electronichealth.net.au/fhir/ImplementationGuide/au.digitalhealth.r4/1.0.0
, SHALL resolve to the Home page of the specified version of that publicationTaking the ADHA FHIR Implementation Guide, if this publication was hypothetically published only in FHIR R4 and had two published versions 1.0.0 and 1.1.0:
Canonical URL entered into browser | Resolves to |
---|---|
http://ns.electronichealth.net.au/fhir/ImplementationGuide/au.digitalhealth.r4 | https://fhir.digitalhealth.gov.au/dh/index.html |
http://ns.electronichealth.net.au/fhir/ImplementationGuide/au.digitalhealth.r4/1.1.0 | https://fhir.digitalhealth.gov.au/R4/dh/1.1.0/index.html |
http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-patient-core-1 | https://fhir.digitalhealth.gov.au/dh/StructureDefinition-dh-patient-core-1.html |
http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-patient-core-1/1.0.0 | https://fhir.digitalhealth.gov.au/R4/dh/1.0.0/StructureDefinition-dh-patient-core-1.html |