Aotearoa Immunisation Register (AIR) FHIR Implementation Guide
2.1.0 - release New Zealand

Aotearoa Immunisation Register (AIR) FHIR Implementation Guide - Local Development build (v2.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: AIR Immunization

Official URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization | Version: 2.1.0
Active as of 2026-07-21 | Computable Name: AIRImmunization

This is the AIR Immunization Profile, to be used for immunisation records inbound to ImmSoT. It includes a number of constraints designed to enforce ImmSoT's lean data model approach.

### Introduction

The Aotearoa Immunisation Register (AIR) holds a collection of "Immunisation Events", where each Immunisation Event represents a dose of vaccine that has been administered to a person (or in certain instances, a dose that has NOT been administered for a defined reason). As an example, an Immunisation Event is created for each jab given to a child according to the recommendations published in the National Immunisation Schedule (see this chart https://www.health.govt.nz/our-work/immunisation-handbook-2020/national-immunisation-schedule).

This AIRImmunization profile is the primary vehicle used by the AIR FHIR API to transmit information about Immunisation Events.

​For more information about Scheduled Events in AIR, see this page: Scheduled Events

Usages:

- Refer to this Profile: Performed Activity Extension
- Examples for this Profile: Immunization/imm-example-1, Immunization/imm-example-2, Immunization/imm-example-match-quality, Immunization/imm-example-match... Show 2 more, Immunization/imm-example-resched-fail and Immunization/immunisation-update-response-message-meta-tag
- CapabilityStatements using this Profile: AIR FHIR Server Capability Statement

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
--- | --- | --- | --- | ---
Immunization | C | 0..* | Immunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1
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
extension:administeredProduct |  | 0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required)
extension:Diluent |  | 0..1 | (Complex) | Immunization Diluent URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
extension:MobileSiteId |  | 0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
extension:AgeGiven |  | 0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
extension:relatedPersonExtension |  | 0..* | Reference(AIR Related Person Profile) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
extension:serologyReportExtension |  | 0..1 | Reference(AIR Serology Report Profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
extension:rescheduleDateExtension |  | 0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.
statusReason |  | 0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
vaccineCode | Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
system | Σ | 1..1 | uri | Identity of the terminology system
code | Σ | 1..1 | code | Symbol in syntax defined by the system
patient | Σ | 1..1 | Reference(Patient) | Who was immunized
occurrence[x] | Σ | 1..1 | dateTime | Vaccine administration date
location |  | 0..1 | Reference(AIR Location Profile) | The location where the immunisation was administered.
site |  | 0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
route |  | 0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred)
protocolApplied |  | 0..1 | BackboneElement | Protocol followed by the provider
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
doseNumber[x] |  | 1..1 | string | Dose number within series
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | AIR Status Reason Code | 📦2.1.0 | This IG
Immunization.vaccineCode | Base | preferred | AIR Vaccine Product | 📦2.1.0 | This IG
Immunization.site | Base | preferred | AIR Body Site | 📦2.1.0 | This IG
Immunization.route | Base | preferred | AIR Route of Administration | 📦2.1.0 | This IG
Immunization.reasonCode | Base | preferred | AIR Indication Code | 📦2.1.0 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. | `extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()`
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | 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 | Immunization | 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 | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | 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()`
nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. | `performer.function.coding.system.exists() implies performer.function.coding.code.exists()`
nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. | `performer.function.coding.code.exists() implies performer.function.coding.system.exists()`
nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. | `reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()`
nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. | `reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()`
nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. | `route.coding.system.exists() implies route.coding.code.exists()`
nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. | `route.coding.code.exists() implies route.coding.system.exists()`
nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. | `site.coding.system.exists() implies site.coding.code.exists()`
nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. | `site.coding.code.exists() implies site.coding.system.exists()`
nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. | `statusReason.coding.system.exists() implies statusReason.coding.code.exists()`
nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. | `statusReason.coding.code.exists() implies statusReason.coding.system.exists()`

This structure is derived from Immunization

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | Immunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1
meta |  |  |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:DataQualityAssessment |  | 0..1 | (Complex) | Data Quality Assessment URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment
extension:PlannedEventMatch |  | 0..* | (Complex) | Planned Event Match URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match
extension:PlannedEventMatchQuality |  | 0..* | (Complex) | Planned Event Match Quality URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality
extension:CreatedSourceSystem |  | 0..1 | string | AIR Created Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system
extension:CreatedBy |  | 0..1 | string | AIR Created By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by
extension:ModifiedSourceSystem |  | 0..1 | string | AIR Modified Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system
extension:ModifiedBy |  | 0..1 | string | AIR Modified By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by
extension:CreatedDate |  | 0..1 | instant | The instant when this resource ID was first associated with content on this server URL: http://hl7.org/fhir/StructureDefinition/firstCreated
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:administeredProduct |  | 0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required)
extension:Diluent |  | 0..1 | (Complex) | Immunization Diluent URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
extension:MobileSiteId |  | 0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
extension:AgeGiven |  | 0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
extension:relatedPersonExtension |  | 0..* | Reference(AIR Related Person Profile) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
extension:serologyReportExtension |  | 0..1 | Reference(AIR Serology Report Profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
extension:rescheduleDateExtension |  | 0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date
statusReason |  | 0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
vaccineCode |  | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
system |  | 1..1 | uri | Identity of the terminology system
code |  | 1..1 | code | Symbol in syntax defined by the system
patient |  | 1..1 | Reference(Patient) | Who was immunized
encounter |  | 0..0 |  | Encounter immunization was part of
occurrence[x] |  | 1..1 | dateTime | Vaccine administration date
primarySource |  | 0..0 |  | Indicates context the data was recorded in
reportOrigin |  | 0..0 |  | Indicates the source of a secondarily reported record
location |  | 0..1 | Reference(AIR Location Profile) | The location where the immunisation was administered.
manufacturer |  | 0..0 |  | Vaccine manufacturer
site |  | 0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
route |  | 0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
doseQuantity |  | 0..0 |  | Amount of vaccine administered
performer |  |  |  |
function |  | 0..1 | CodeableConcept | What type of performance was done Binding: AIR Performer Health Worker Function (extensible)
coding |  | 1..1 | Coding | Code defined by a terminology system
actor |  | 1..1 | Reference(AIR Practitioner Profile) | Individual or organization who was performing
note |  | 0..0 |  | Additional immunization notes
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred)
isSubpotent |  | 0..0 |  | Dose potency
subpotentReason |  | 0..0 |  | Reason for being subpotent
education |  | 0..0 |  | Educational material presented to patient
programEligibility |  | 0..0 |  | Patient eligibility for a vaccination program
fundingSource |  | 0..0 |  | Funding source for the vaccine
reaction |  | 0..0 |  | Details of a reaction that follows immunization
protocolApplied |  | 0..1 | BackboneElement | Protocol followed by the provider
doseNumber[x] |  | 1..1 | string | Dose number within series
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Immunization.statusReason | Base | preferred | AIR Status Reason Code | 📦2.1.0 | This IG
Immunization.vaccineCode | Base | preferred | AIR Vaccine Product | 📦2.1.0 | This IG
Immunization.site | Base | preferred | AIR Body Site | 📦2.1.0 | This IG
Immunization.route | Base | preferred | AIR Route of Administration | 📦2.1.0 | This IG
Immunization.performer.​function | Base | extensible | AIR Performer Health Worker Function | 📦2.1.0 | This IG
Immunization.reasonCode | Base | preferred | AIR Indication Code | 📦2.1.0 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. | `extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()`
nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. | `performer.function.coding.system.exists() implies performer.function.coding.code.exists()`
nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. | `performer.function.coding.code.exists() implies performer.function.coding.system.exists()`
nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. | `reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()`
nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. | `reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()`
nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. | `route.coding.system.exists() implies route.coding.code.exists()`
nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. | `route.coding.code.exists() implies route.coding.system.exists()`
nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. | `site.coding.system.exists() implies site.coding.code.exists()`
nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. | `site.coding.code.exists() implies site.coding.system.exists()`
nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. | `statusReason.coding.system.exists() implies statusReason.coding.code.exists()`
nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. | `statusReason.coding.code.exists() implies statusReason.coding.system.exists()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | Immunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:DataQualityAssessment |  | 0..1 | (Complex) | Data Quality Assessment URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment
extension:PlannedEventMatch |  | 0..* | (Complex) | Planned Event Match URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match
extension:PlannedEventMatchQuality |  | 0..* | (Complex) | Planned Event Match Quality URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality
extension:CreatedSourceSystem |  | 0..1 | string | AIR Created Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system
extension:CreatedBy |  | 0..1 | string | AIR Created By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by
extension:ModifiedSourceSystem |  | 0..1 | string | AIR Modified Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system
extension:ModifiedBy |  | 0..1 | string | AIR Modified By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by
extension:CreatedDate |  | 0..1 | instant | The instant when this resource ID was first associated with content on this server URL: http://hl7.org/fhir/StructureDefinition/firstCreated
versionId | Σ | 0..1 | id | Version specific identifier
lastUpdated | Σ | 0..1 | instant | When the resource version last changed
source | Σ | 0..1 | uri | Identifies where the resource comes from
profile | Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
tag | Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
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:administeredProduct |  | 0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required)
extension:Diluent |  | 0..1 | (Complex) | Immunization Diluent URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
extension:MobileSiteId |  | 0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
extension:AgeGiven |  | 0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
extension:relatedPersonExtension |  | 0..* | Reference(AIR Related Person Profile) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
extension:serologyReportExtension |  | 0..1 | Reference(AIR Serology Report Profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
extension:rescheduleDateExtension |  | 0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier | Business identifier
status | ?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.
statusReason |  | 0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
vaccineCode | Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ | 1..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 1..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
patient | Σ | 1..1 | Reference(Patient) | Who was immunized
occurrence[x] | Σ | 1..1 | dateTime | Vaccine administration date
recorded |  | 0..1 | dateTime | When the immunization was first captured in the subject's record
location |  | 0..1 | Reference(AIR Location Profile) | The location where the immunisation was administered.
lotNumber |  | 0..1 | string | Vaccine lot number
expirationDate |  | 0..1 | date | Vaccine expiration date
site |  | 0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
route |  | 0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
performer | Σ | 0..* | BackboneElement | Who performed event
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | What type of performance was done Binding: AIR Performer Health Worker Function (extensible)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
actor | Σ | 1..1 | Reference(AIR Practitioner Profile) | Individual or organization who was performing
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred)
reasonReference |  | 0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred
protocolApplied |  | 0..1 | BackboneElement | Protocol followed by the provider
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
series |  | 0..1 | string | Name of vaccine series
authority |  | 0..1 | Reference(Organization) | Who is responsible for publishing the recommendations
targetDisease |  | 0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.
doseNumber[x] |  | 1..1 | string | Dose number within series
seriesDoses[x] |  | 0..1 |  | Recommended number of doses for immunity
seriesDosesPositiveInt |  |  | positiveInt |
seriesDosesString |  |  | string |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.meta.security | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std.
Immunization.meta.tag | Base | example | Common Tags | 📍4.0.1 | FHIR Std.
Immunization.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | AIR Status Reason Code | 📦2.1.0 | This IG
Immunization.vaccineCode | Base | preferred | AIR Vaccine Product | 📦2.1.0 | This IG
Immunization.site | Base | preferred | AIR Body Site | 📦2.1.0 | This IG
Immunization.route | Base | preferred | AIR Route of Administration | 📦2.1.0 | This IG
Immunization.performer.​function | Base | extensible | AIR Performer Health Worker Function | 📦2.1.0 | This IG
Immunization.reasonCode | Base | preferred | AIR Indication Code | 📦2.1.0 | This IG
Immunization.protocolApplied.​targetDisease | Base | example | Immunization Target Disease Codes | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. | `extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()`
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | 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 | Immunization | 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 | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | 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()`
nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. | `performer.function.coding.system.exists() implies performer.function.coding.code.exists()`
nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. | `performer.function.coding.code.exists() implies performer.function.coding.system.exists()`
nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. | `reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()`
nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. | `reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()`
nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. | `route.coding.system.exists() implies route.coding.code.exists()`
nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. | `route.coding.code.exists() implies route.coding.system.exists()`
nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. | `site.coding.system.exists() implies site.coding.code.exists()`
nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. | `site.coding.code.exists() implies site.coding.system.exists()`
nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. | `statusReason.coding.system.exists() implies statusReason.coding.code.exists()`
nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. | `statusReason.coding.code.exists() implies statusReason.coding.system.exists()`

This structure is derived from Immunization

Summary

Mandatory: 3 elements(4 nested mandatory elements)
Prohibited: 12 elements

Structures

This structure refers to these other structures:

- AIR Location Profile (https://standards.digital.health.nz/fhir/air/StructureDefinition/air-location)
- AIR Practitioner Profile (https://standards.digital.health.nz/fhir/air/StructureDefinition/air-practitioner)

Extensions

This structure refers to these extensions:

- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by
- http://hl7.org/fhir/StructureDefinition/firstCreated
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | Immunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1
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
extension:administeredProduct |  | 0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required)
extension:Diluent |  | 0..1 | (Complex) | Immunization Diluent URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
extension:MobileSiteId |  | 0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
extension:AgeGiven |  | 0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
extension:relatedPersonExtension |  | 0..* | Reference(AIR Related Person Profile) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
extension:serologyReportExtension |  | 0..1 | Reference(AIR Serology Report Profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
extension:rescheduleDateExtension |  | 0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.
statusReason |  | 0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
vaccineCode | Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
system | Σ | 1..1 | uri | Identity of the terminology system
code | Σ | 1..1 | code | Symbol in syntax defined by the system
patient | Σ | 1..1 | Reference(Patient) | Who was immunized
occurrence[x] | Σ | 1..1 | dateTime | Vaccine administration date
location |  | 0..1 | Reference(AIR Location Profile) | The location where the immunisation was administered.
site |  | 0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
route |  | 0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred)
coding | Σ | 1..1 | Coding | Code defined by a terminology system
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred)
protocolApplied |  | 0..1 | BackboneElement | Protocol followed by the provider
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
doseNumber[x] |  | 1..1 | string | Dose number within series
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | AIR Status Reason Code | 📦2.1.0 | This IG
Immunization.vaccineCode | Base | preferred | AIR Vaccine Product | 📦2.1.0 | This IG
Immunization.site | Base | preferred | AIR Body Site | 📦2.1.0 | This IG
Immunization.route | Base | preferred | AIR Route of Administration | 📦2.1.0 | This IG
Immunization.reasonCode | Base | preferred | AIR Indication Code | 📦2.1.0 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. | `extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()`
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | 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 | Immunization | 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 | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | 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()`
nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. | `performer.function.coding.system.exists() implies performer.function.coding.code.exists()`
nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. | `performer.function.coding.code.exists() implies performer.function.coding.system.exists()`
nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. | `reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()`
nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. | `reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()`
nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. | `route.coding.system.exists() implies route.coding.code.exists()`
nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. | `route.coding.code.exists() implies route.coding.system.exists()`
nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. | `site.coding.system.exists() implies site.coding.code.exists()`
nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. | `site.coding.code.exists() implies site.coding.system.exists()`
nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. | `statusReason.coding.system.exists() implies statusReason.coding.code.exists()`
nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. | `statusReason.coding.code.exists() implies statusReason.coding.system.exists()`

Differential View

This structure is derived from Immunization

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | Immunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1
meta |  |  |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:DataQualityAssessment |  | 0..1 | (Complex) | Data Quality Assessment URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment
extension:PlannedEventMatch |  | 0..* | (Complex) | Planned Event Match URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match
extension:PlannedEventMatchQuality |  | 0..* | (Complex) | Planned Event Match Quality URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality
extension:CreatedSourceSystem |  | 0..1 | string | AIR Created Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system
extension:CreatedBy |  | 0..1 | string | AIR Created By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by
extension:ModifiedSourceSystem |  | 0..1 | string | AIR Modified Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system
extension:ModifiedBy |  | 0..1 | string | AIR Modified By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by
extension:CreatedDate |  | 0..1 | instant | The instant when this resource ID was first associated with content on this server URL: http://hl7.org/fhir/StructureDefinition/firstCreated
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:administeredProduct |  | 0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required)
extension:Diluent |  | 0..1 | (Complex) | Immunization Diluent URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
extension:MobileSiteId |  | 0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
extension:AgeGiven |  | 0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
extension:relatedPersonExtension |  | 0..* | Reference(AIR Related Person Profile) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
extension:serologyReportExtension |  | 0..1 | Reference(AIR Serology Report Profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
extension:rescheduleDateExtension |  | 0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date
statusReason |  | 0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
vaccineCode |  | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
system |  | 1..1 | uri | Identity of the terminology system
code |  | 1..1 | code | Symbol in syntax defined by the system
patient |  | 1..1 | Reference(Patient) | Who was immunized
encounter |  | 0..0 |  | Encounter immunization was part of
occurrence[x] |  | 1..1 | dateTime | Vaccine administration date
primarySource |  | 0..0 |  | Indicates context the data was recorded in
reportOrigin |  | 0..0 |  | Indicates the source of a secondarily reported record
location |  | 0..1 | Reference(AIR Location Profile) | The location where the immunisation was administered.
manufacturer |  | 0..0 |  | Vaccine manufacturer
site |  | 0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
route |  | 0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred)
coding |  | 1..1 | Coding | Code defined by a terminology system
doseQuantity |  | 0..0 |  | Amount of vaccine administered
performer |  |  |  |
function |  | 0..1 | CodeableConcept | What type of performance was done Binding: AIR Performer Health Worker Function (extensible)
coding |  | 1..1 | Coding | Code defined by a terminology system
actor |  | 1..1 | Reference(AIR Practitioner Profile) | Individual or organization who was performing
note |  | 0..0 |  | Additional immunization notes
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred)
isSubpotent |  | 0..0 |  | Dose potency
subpotentReason |  | 0..0 |  | Reason for being subpotent
education |  | 0..0 |  | Educational material presented to patient
programEligibility |  | 0..0 |  | Patient eligibility for a vaccination program
fundingSource |  | 0..0 |  | Funding source for the vaccine
reaction |  | 0..0 |  | Details of a reaction that follows immunization
protocolApplied |  | 0..1 | BackboneElement | Protocol followed by the provider
doseNumber[x] |  | 1..1 | string | Dose number within series
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Immunization.statusReason | Base | preferred | AIR Status Reason Code | 📦2.1.0 | This IG
Immunization.vaccineCode | Base | preferred | AIR Vaccine Product | 📦2.1.0 | This IG
Immunization.site | Base | preferred | AIR Body Site | 📦2.1.0 | This IG
Immunization.route | Base | preferred | AIR Route of Administration | 📦2.1.0 | This IG
Immunization.performer.​function | Base | extensible | AIR Performer Health Worker Function | 📦2.1.0 | This IG
Immunization.reasonCode | Base | preferred | AIR Indication Code | 📦2.1.0 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. | `extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()`
nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. | `performer.function.coding.system.exists() implies performer.function.coding.code.exists()`
nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. | `performer.function.coding.code.exists() implies performer.function.coding.system.exists()`
nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. | `reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()`
nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. | `reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()`
nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. | `route.coding.system.exists() implies route.coding.code.exists()`
nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. | `route.coding.code.exists() implies route.coding.system.exists()`
nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. | `site.coding.system.exists() implies site.coding.code.exists()`
nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. | `site.coding.code.exists() implies site.coding.system.exists()`
nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. | `statusReason.coding.system.exists() implies statusReason.coding.code.exists()`
nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. | `statusReason.coding.code.exists() implies statusReason.coding.system.exists()`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Immunization | C | 0..* | Immunization | Immunization event information Constraints: nz-status-reason-1, nz-status-reason-2, nz-site-1, nz-site-2, nz-route-1, nz-route-2, nz-performer-function-1, nz-performer-function-2, nz-reasonCode-1, nz-reasonCode-2, air-resched-1
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
extension:DataQualityAssessment |  | 0..1 | (Complex) | Data Quality Assessment URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment
extension:PlannedEventMatch |  | 0..* | (Complex) | Planned Event Match URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match
extension:PlannedEventMatchQuality |  | 0..* | (Complex) | Planned Event Match Quality URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality
extension:CreatedSourceSystem |  | 0..1 | string | AIR Created Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system
extension:CreatedBy |  | 0..1 | string | AIR Created By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by
extension:ModifiedSourceSystem |  | 0..1 | string | AIR Modified Source System URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system
extension:ModifiedBy |  | 0..1 | string | AIR Modified By User URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by
extension:CreatedDate |  | 0..1 | instant | The instant when this resource ID was first associated with content on this server URL: http://hl7.org/fhir/StructureDefinition/firstCreated
versionId | Σ | 0..1 | id | Version specific identifier
lastUpdated | Σ | 0..1 | instant | When the resource version last changed
source | Σ | 0..1 | uri | Identifies where the resource comes from
profile | Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
tag | Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
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:administeredProduct |  | 0..1 | CodeableConcept | AIR Administered Product Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product Binding: AIR Administered Product Code (required)
extension:Diluent |  | 0..1 | (Complex) | Immunization Diluent URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
extension:MobileSiteId |  | 0..1 | string | Immunization Facility Mobile Site URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
extension:AgeGiven |  | 0..1 | (Complex) | AIR Age Given Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
extension:relatedPersonExtension |  | 0..* | Reference(AIR Related Person Profile) | AIR Related Person URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
extension:serologyReportExtension |  | 0..1 | Reference(AIR Serology Report Profile) | AIR Serology Report Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
extension:rescheduleDateExtension |  | 0..* | date | AIR Reschedule Date Extension URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier | Business identifier
status | ?!Σ | 1..1 | code | completed | entered-in-error | not-done Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.
statusReason |  | 0..1 | CodeableConcept | Reason not done Binding: AIR Status Reason Code (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
vaccineCode | Σ | 1..1 | CodeableConcept | Vaccine product administered Binding: AIR Vaccine Product (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ | 1..1 | uri | Identity of the terminology system
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 1..1 | code | Symbol in syntax defined by the system
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
patient | Σ | 1..1 | Reference(Patient) | Who was immunized
occurrence[x] | Σ | 1..1 | dateTime | Vaccine administration date
recorded |  | 0..1 | dateTime | When the immunization was first captured in the subject's record
location |  | 0..1 | Reference(AIR Location Profile) | The location where the immunisation was administered.
lotNumber |  | 0..1 | string | Vaccine lot number
expirationDate |  | 0..1 | date | Vaccine expiration date
site |  | 0..1 | CodeableConcept | The body site of the vaccine administration (SNOMED code). Binding: AIR Body Site (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
route |  | 0..1 | CodeableConcept | The route of administation of the vaccine. Binding: AIR Route of Administration (preferred)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
performer | Σ | 0..* | BackboneElement | Who performed event
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | What type of performance was done Binding: AIR Performer Health Worker Function (extensible)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
coding | Σ | 1..1 | Coding | Code defined by a terminology system
text | Σ | 0..1 | string | Plain text representation of the concept
actor | Σ | 1..1 | Reference(AIR Practitioner Profile) | Individual or organization who was performing
reasonCode |  | 0..* | CodeableConcept | Why immunization occurred Binding: AIR Indication Code (preferred)
reasonReference |  | 0..* | Reference(Condition | Observation | DiagnosticReport) | Why immunization occurred
protocolApplied |  | 0..1 | BackboneElement | Protocol followed by the provider
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
series |  | 0..1 | string | Name of vaccine series
authority |  | 0..1 | Reference(Organization) | Who is responsible for publishing the recommendations
targetDisease |  | 0..* | CodeableConcept | Vaccine preventatable disease being targetted Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.
doseNumber[x] |  | 1..1 | string | Dose number within series
seriesDoses[x] |  | 0..1 |  | Recommended number of doses for immunity
seriesDosesPositiveInt |  |  | positiveInt |
seriesDosesString |  |  | string |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Immunization.meta.security | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std.
Immunization.meta.tag | Base | example | Common Tags | 📍4.0.1 | FHIR Std.
Immunization.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Immunization.status | Base | required | Immunization Status Codes | 📍4.0.1 | FHIR Std.
Immunization.statusReason | Base | preferred | AIR Status Reason Code | 📦2.1.0 | This IG
Immunization.vaccineCode | Base | preferred | AIR Vaccine Product | 📦2.1.0 | This IG
Immunization.site | Base | preferred | AIR Body Site | 📦2.1.0 | This IG
Immunization.route | Base | preferred | AIR Route of Administration | 📦2.1.0 | This IG
Immunization.performer.​function | Base | extensible | AIR Performer Health Worker Function | 📦2.1.0 | This IG
Immunization.reasonCode | Base | preferred | AIR Indication Code | 📦2.1.0 | This IG
Immunization.protocolApplied.​targetDisease | Base | example | Immunization Target Disease Codes | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
air-resched-1 | error | Immunization | Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling. | `extension.where(url = 'https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date').exists() implies status.value = 'not-done' and statusReason.coding.where(code = 'RESCHO' | 'RESREF' | 'RESTC').allTrue()`
dom-2 | error | Immunization | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Immunization | 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 | Immunization | 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 | Immunization | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Immunization | 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()`
nz-performer-function-1 | error | Immunization | If the performer function has a system, then it must have a code. | `performer.function.coding.system.exists() implies performer.function.coding.code.exists()`
nz-performer-function-2 | error | Immunization | If the performer function has a code, then it must have a system. | `performer.function.coding.code.exists() implies performer.function.coding.system.exists()`
nz-reasonCode-1 | error | Immunization | If the reasonCode aka indication has a system, then it must have a code. | `reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()`
nz-reasonCode-2 | error | Immunization | If the reasonCode aka indication has a code, then it must have a system. | `reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()`
nz-route-1 | error | Immunization | If the route of admin has a system, then it must have a code. | `route.coding.system.exists() implies route.coding.code.exists()`
nz-route-2 | error | Immunization | if the route of admin has a code, then it must have a system. | `route.coding.code.exists() implies route.coding.system.exists()`
nz-site-1 | error | Immunization | If the body site has a system, then it must have a code. | `site.coding.system.exists() implies site.coding.code.exists()`
nz-site-2 | error | Immunization | If the body site has a code, then it must have a system. | `site.coding.code.exists() implies site.coding.system.exists()`
nz-status-reason-1 | error | Immunization | If the status reason has a system, then it must have a code. | `statusReason.coding.system.exists() implies statusReason.coding.code.exists()`
nz-status-reason-2 | error | Immunization | If the status reason has a code, then it must have a system. | `statusReason.coding.code.exists() implies statusReason.coding.system.exists()`

This structure is derived from Immunization

Summary

Mandatory: 3 elements(4 nested mandatory elements)
Prohibited: 12 elements

Structures

This structure refers to these other structures:

- AIR Location Profile (https://standards.digital.health.nz/fhir/air/StructureDefinition/air-location)
- AIR Practitioner Profile (https://standards.digital.health.nz/fhir/air/StructureDefinition/air-practitioner)

Extensions

This structure refers to these extensions:

- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by
- http://hl7.org/fhir/StructureDefinition/firstCreated
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension
- https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date

Other representations of profile: CSV, Excel, Schematron