AU Core Implementation Guide
0.2.2-preview - Preview
This page is part of the Australian Core IG (v0.2.2-preview: AU Core) based on FHIR R4. For a full list of available versions, see the Directory of published versions
Page standards status: Informative |
Labelling an element Must Support means that systems that request, or respond to requests, for patient data SHALL provide support for the element in some meaningful way. Must Support elements are treated differently between AU Core Responders and requestors.
For querying and reading AU Core profiles, Must Support on any profile data element SHALL be interpreted as follows.
An AU Core Responder:
An AU Core Requester:
Processing, depending on local requirements, may mean display, persist, index, or action in an event or request workflow. Processing may differ based on the element’s value. For example, one possible value of the ServiceRequest.status element is entered-in-error
. This element is marked as Must Support; requestors must be capable of processing this value to handle the resource’s clinical data appropriately.
When rendered in an implementation guide each profile is presented in different formal views under tabs labelled “Differential Table”, “Key Elements Table”, and “Snapshot Table”.
The elements labelled Must Support in these views are flagged with an S. Implementers should refer to the “Key Elements Table” to see the full set of elements that are Mandatory or Must Support, and the full set of terminology requirements.
Implementers should take note that the full set of constraints (i.e. invariants) are only presented in the “Detailed Descriptions” tab or the raw representation (e.g. XML or JSON) of the profile.
When viewing the raw representation (e.g. XML or JSON) of a profile, elements labelled Must Support are flagged as mustSupport
set to “true”.
Example: AU Core AllergyIntolerance profile showing clinicalStatus and verificationStatus labelled Must Support
{
"resourceType" : "StructureDefinition",
...
"url" : "http://hl7.org.au/fhir/core/StructureDefinition/au-core-allergyintolerance",
...
"type" : "AllergyIntolerance",
"baseDefinition" : "http://hl7.org.au/fhir/StructureDefinition/au-allergyintolerance",
...
{
"id" : "AllergyIntolerance.clinicalStatus",
"path" : "AllergyIntolerance.clinicalStatus",
"mustSupport" : true
},
{
"id" : "AllergyIntolerance.verificationStatus",
"path" : "AllergyIntolerance.verificationStatus",
"mustSupport" : true
},
...
}
Profiles defined in this implementation publication flag Must Support on elements and not part subelements of a data type. The explanation on how to interpret Must Support for an element does not address rules defined in each profile - which may limit or extend what is allowed for each element.
The subelements for each supported element in a profile are defined by a combination of the data type from the core specification and any additional rules included in the profile. A profile may include rules that:
For example, the profile AU Core Patient limits what is considered valid for the element Patient.name
with the invariant “au-core-pat-02: At least one patient name shall have a family name”.
Typically AU Core profiles will inherit extended subelements from a HL7 AU Base profile, e.g. the element Medication.code
in profile AU Core Medication is of type CodeableConcept and is extended by inheriting a medicine specific subelement Medication.code.coding.extension
Medication Type extension from AU Base Medication.
The full set of subelements is visible in the “Key Elements Table” or “Snapshot Table” which shows the subelements defined in this profile (shown in the “Differential Table”) and the subelements inherited from a base profile.
For some complex types a valid value can be constructed by populating only one subelement, but usually more than one subelement is needed.
A profile may support one or more than one identifier type and will include the supported identifiers in a profile by slicing the element and placing must support on each identifier slice. For example, the profile AU Core Patient constrains the choices for Patient.identifier
defined in AU Base Patient to support Individual Healthcare Identifier (IHI), Medicare Card Number, Department of Veterans’ Affairs (DVA) Number:
The table below lists the applicable profiles and supported identifier types in AU Core.
AU Core Profile | Must Support Choice Elements | Supported Identifiers |
---|---|---|
AU Core Coverage | Coverage.identifier | Medicare Card Number, DVA Number, Insurance Member Number |
AU Core System Device | Device.identifier | PAI-D |
AU Core HealthcareService | HealthcareService.identifier | HPI-O |
AU Core Organization | Organization.identifier | HPI-O, Australian Business Number |
AU Core Patient | Patient.identifier | IHI, Medicare Card Number, DVA Number |
AU Core Practitioner | Practitioner.identifier | HPI-I |
AU Core PractitionerRole | PractitionerRole.identifier | HPI-I, Medicare Provider Number |
AU Core RelatedPerson | RelatedPerson.identifier | IHI, Medicare Card Number, DVA Number |
A resource may support two elements that are used to indicate a reason, e.g. Encounter.reasonCode
and Encounter.reasonReference
in the profile AU Core Encounter. Where both elements are optional and labelled Must Support in a profile they SHALL be treated as a choice of data types:
The table below lists the applicable profiles and elements in AU Core.
AU Core Profile | Must Support Choice Elements |
---|---|
AU Core DiagnosticReport | DiagnosticReport.conclusion, DiagnosticReport.conclusionCode |
AU Core Encounter | Encounter.reasonCode, Encounter.reasonReference[x] |
AU Core MedicationAdministration | MedicationAdministration.reasonCode, MedicationAdministration.reasonReference |
AU Core Procedure | Procedure.reasonCode, Procedure.reasonReference[x] |
AU Core ServiceRequest | ServiceRequest.reasonCode, ServiceRequest.reasonReference |
AU Core ServiceRequest | ServiceRequest.performerType, ServiceRequest.performer |
A profile element that supports only one terminology will include that terminology by binding the element in the profile with a strength of extensible or required.
A profile element that supports more than one terminology will include the supported terminologies in a profile by slicing the element and placing must support on each terminology slice. For example, the profile AU Core Medication constrains the terminology choices for Medication.code
defined in AU Base Medication to support only AMT and PBS.
In the example, a coded value is optional, a system that does not have the capability to supply a coded value from a terminology may supply a text value.
When supplying a coded value: