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

Resource Profile: ADHA Core Immunization

Official URL: http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-immunization-core-1 Version: 1.0.1
Active as of 2025-03-21 Computable Name: ADHAImmunizationCore

Copyright/Legal: Copyright © 2022 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/.

The purpose of this profile is to provide a core representation of an immunization for the electronic exchange of health information between individuals, healthcare providers, and the My Health Record system infrastructure in Australia. This profile supports a statement of the administration or non-administration of a vaccine.

This profile identifies the additional constraints, extensions, and value sets that build on and extend Immunization that are supported.

Where a more specific Immunization profile is applicable, e.g. record of immunisation from AIR, an implementation SHALL ensure the resource conforms to that specific profile.

This profile is designed to set a core Immunization standard for:

  • Query for a patient's immunisations
  • Record or update an immunisation record for a patient

This profile may be referred to by APIs, which will be listed here when available.

Profile specific guidance

None.

Boundaries and relationships

The following profiles build on the ADHA Core Immunization profile to define specific immunisation record types:

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* AUBaseImmunisation An immunisation statement in an Australian healthcare context
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:vaccineVialSerialNumber 0..1 string Vaccine vial serial number
URL: http://hl7.org.au/fhir/StructureDefinition/vaccine-serial-number
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:vaccine-serial-number S 0..1 string Vaccine vial serial number
URL: http://hl7.org.au/fhir/StructureDefinition/vaccine-serial-number
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... status ?!SΣ 1..1 code completed | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.


ele-1: All FHIR elements must have a @value or children
... statusReason S 0..1 CodeableConcept Reason not done
Binding: Reason Vaccine Not Administered . (preferred)
ele-1: All FHIR elements must have a @value or children
... vaccineCode SΣ 1..1 CodeableConcept Vaccine product administered
Binding: VaccineAdministeredValueSet (example)
Additional BindingsPurpose
Australian Medicines Terminology Vaccine . Preferred
Australian Immunisation Register Vaccine . Preferred

ele-1: All FHIR elements must have a @value or children
.... Slices for coding Σ 0..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
ele-1: All FHIR elements must have a @value or children
..... coding:amtVaccineCode SΣ 0..* Coding Code defined by a terminology system
ele-1: All FHIR elements must have a @value or children
..... coding:airVaccineCode SΣ 0..* Coding Code defined by a terminology system
ele-1: All FHIR elements must have a @value or children
... patient SΣC 1..1 Reference(ADHA Core Patient) Who was immunized
ele-1: All FHIR elements must have a @value or children
inv-dh-imm-01: At least reference or a valid identifier shall be present
... encounter S 0..1 Reference(ADHA Core Encounter) Encounter immunization was part of
ele-1: All FHIR elements must have a @value or children
... occurrence[x] SΣ 1..1 Vaccine administration date
ele-1: All FHIR elements must have a @value or children
.... occurrenceDateTime dateTime
.... occurrenceString string
... Slices for performer SΣ 0..* BackboneElement Who performed event
Slice: Unordered, Open by pattern:function
ele-1: All FHIR elements must have a @value or children
.... performer:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... function SΣ 0..1 CodeableConcept What type of performance was done
Binding: hl7VS-providerRole - AU Extended (extensible)
ele-1: All FHIR elements must have a @value or children
..... actor SΣC 1..1 Reference(ADHA Authoring PractitionerRole | ADHA Core Organization) Individual or organization who was performing
ele-1: All FHIR elements must have a @value or children
inv-dh-imm-02: At least reference or a valid identifier shall be present
.... performer:administeredBy Σ 0..1 BackboneElement Immunisation Administered By
ele-1: All FHIR elements must have a @value or children
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... function Σ 1..1 CodeableConcept Administering role
Binding: hl7VS-providerRole - AU Extended (extensible)
ele-1: All FHIR elements must have a @value or children
Required Pattern: At least the following
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
....... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0443
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: AP
..... actor Σ 1..1 Reference(Practitioner | PractitionerRole | Organization) Administering performer
ele-1: All FHIR elements must have a @value or children
.... performer:approvedBy Σ 0..1 BackboneElement Immunisation Approved By
ele-1: All FHIR elements must have a @value or children
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
..... function Σ 1..1 CodeableConcept Approver role
Binding: hl7VS-providerRole - AU Extended (extensible)
ele-1: All FHIR elements must have a @value or children
Required Pattern: At least the following
...... coding 1..* Coding Code defined by a terminology system
Fixed Value: (complex)
....... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0443
....... code 1..1 code Symbol in syntax defined by the system
Fixed Value: OP
..... actor Σ 1..1 Reference(Practitioner | PractitionerRole | Organization) Approver
ele-1: All FHIR elements must have a @value or children
... note SΣ 0..* Annotation Additional immunization notes
ele-1: All FHIR elements must have a @value or children
... reasonCode S 0..* CodeableConcept Why immunization occurred
Binding: Reason Vaccine Administered . (preferred)
ele-1: All FHIR elements must have a @value or children
... isSubpotent ?!Σ 0..1 boolean Dose potency
ele-1: All FHIR elements must have a @value or children
... protocolApplied S 0..* BackboneElement Protocol followed by the provider
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... series S 0..1 string Name of vaccine series
ele-1: All FHIR elements must have a @value or children
.... targetDisease S 0..* CodeableConcept Vaccine preventatable disease being targetted
Binding: Vaccination Target Disease . (preferred)
ele-1: All FHIR elements must have a @value or children
.... doseNumber[x] S 1..1 Dose number within series
ele-1: All FHIR elements must have a @value or children
..... doseNumberPositiveInt positiveInt
..... doseNumberString string

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Immunization.statusrequiredImmunizationStatusCodes
http://hl7.org/fhir/ValueSet/immunization-status|4.0.1
from the FHIR Standard
Immunization.statusReasonpreferredReasonVaccineNotAdministered .
https://healthterminologies.gov.au/fhir/ValueSet/reason-vaccine-not-administered-3
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
http://hl7.org/fhir/ValueSet/vaccine-code
from the FHIR Standard
Immunization.performer.functionextensibleHl7VSProviderRoleAUExtended
http://terminology.hl7.org.au/ValueSet/v2-0443-extended
Immunization.performer:administeredBy.functionextensiblePattern: AP
http://terminology.hl7.org.au/ValueSet/v2-0443-extended
Immunization.performer:approvedBy.functionextensiblePattern: OP
http://terminology.hl7.org.au/ValueSet/v2-0443-extended
Immunization.reasonCodepreferredReasonVaccineAdministered .
https://healthterminologies.gov.au/fhir/ValueSet/reason-vaccine-administered-1
Immunization.protocolApplied.targetDiseasepreferredVaccinationTargetDisease .
https://healthterminologies.gov.au/fhir/ValueSet/vaccination-target-disease-1

Constraints

IdGradePath(s)DetailsRequirements
inv-dh-imm-01errorImmunization.patientAt least reference or a valid identifier shall be present
: reference.exists() or identifier.where(system.count() + value.count() >1).exists()
inv-dh-imm-02errorImmunization.performer.actorAt least reference or a valid identifier shall be present
: reference.exists() or identifier.where(system.count() + value.count() >1).exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Below is an overview of the mandatory and optional search parameters. FHIR search operations and the syntax used to describe the interactions is described here.

Name Type Conformance Description Path
identifier token SHALL Business identifier Immunization.identifier
patient:identifier token SHALL The patient for the vaccination record Immunization.subject.identifier
vaccine-code token SHALL Vaccine Product Administered Immunization.vaccineCode
date date SHALL Vaccination (non)-Administration Date Immunization.occurrence
status token SHALL Immunization event status Immunization.status
target-disease token SHOULD The target disease the dose is being administered against Immunization.protocolApplied.targetDisease

Mandatory Search Parameters

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

  1. SHALL support searching for all immunisations for a patient using the patient:identifier search parameter:

    GET [base]/Immunization?patient:identifier={system|}[code]

    Example:

     GET [base]/Immunization?patient:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437
    

    Implementation Notes: Fetches a bundle of all Immunization resources for the specified patient (how to search by :identifier)

  2. SHALL support searching using the identifier search parameter:

    GET [base]/Immunization?identifier={system|}[code]

    Example:

     GET [base]/Immunization?identifier=urn:ietf:rfc:3986|urn:uuid:44a8f148-f5f7-447c-9e68-a9f06635ab6c
    

    Implementation Notes: Fetches a bundle containing any Immunization resources matching the identifier (how to search by token)

  3. SHALL support searching using the combination patient:identifier and vaccine-code and status search parameter:
    • including support for OR search on status (e.g.status={system|}[code],{system|}[code],...)

    GET [base]/Immunization?patient:identifier={system|}[code]&vaccine-code={system|}[code]&status={system|}[code]

    Example:

     GET [base]/Immunization?patient:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437&vaccine-code=http://snomed.info/sct|1525011000168107&status=completed
    

    Implementation Notes: Fetches a bundle of all Immunization resources with the vaccine code of an 1525011000168107 (Pfizer Comirnaty) and status for the specified patient (how to search by :identifier and how to search by token)

  4. SHALL support searching using the combination of the patient:identifier and date and status search parameters:
    • including support for OR search on status (e.g.status={system|}[code],{system|}[code],...)

    GET [base]/Immunization?patient:identifier={system|}[code]&date=[date]&status={system|}[code]

    Example:

     GET [base]/Immunization?patient:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437&date=ge2013-03-14
    

    Implementation Notes: Fetches a bundle of all Immunization resources for the specified patient that have a date greater than or equal to 21st Jan 2013. (how to search by :identifier and how to search by date)

  5. SHOULD support searching using the combination patient:identifier and target-disease and status search parameter:
    • including support for OR search on status (e.g.status={system|}[code],{system|}[code],...)

    GET [base]/Immunization?patient:identifier={system|}[code]&target-disease={system|}[code]&status={system|}[code]

    Example:

     GET [base]/Immunization?patient:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437&target-disease=http://snomed.info/sct|840539006
    

    Implementation Notes: Fetches a bundle of all Immunization resources with the target disease of an 840539006 (COVID-19) for the specified patient (how to search by :identifier and how to search by token)