# AIR Immunization - Aotearoa Immunisation Register (AIR) FHIR Implementation Guide v2.1.0

* [**Table of Contents**](toc.md)
* [**Artifacts Summary**](artifacts.md)
* **AIR Immunization**

## 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](/input/pagecontent/immunisation-events.md)

**Usages:**

* Refer to this Profile: [Performed Activity Extension](StructureDefinition-air-performed-activity-extension.md)
* Examples for this Profile: [Immunization/imm-example-1](Immunization-imm-example-1.md), [Immunization/imm-example-2](Immunization-imm-example-2.md), [Immunization/imm-example-match-quality](Immunization-imm-example-match-quality.md), [Immunization/imm-example-match](Immunization-imm-example-match.md)... Show 2 more, [Immunization/imm-example-resched-fail](Immunization-imm-example-resched-fail.md) and [Immunization/immunisation-update-response-message-meta-tag](Immunization-immunisation-update-response-message-meta-tag.md)
* CapabilityStatements using this Profile: [AIR FHIR Server Capability Statement](CapabilityStatement-AIRCapabilityStatement.md)

You can also check for [usages in the FHIR IG Statistics](https://packages2.fhir.org/xig/resource/AIR-ig|current/StructureDefinition/StructureDefinition-air-immunization.json)

### Formal Views of Profile Content

 [Description of Profiles, Differentials, Snapshots and how the different presentations work](http://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#structure-definitions). 

 

Other representations of profile: [CSV](StructureDefinition-air-immunization.csv), [Excel](StructureDefinition-air-immunization.xlsx), [Schematron](StructureDefinition-air-immunization.sch) 



## Resource Content

```json
{
  "resourceType" : "StructureDefinition",
  "id" : "air-immunization",
  "url" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization",
  "version" : "2.1.0",
  "name" : "AIRImmunization",
  "title" : "AIR Immunization",
  "status" : "active",
  "date" : "2026-07-21T20:59:11+00:00",
  "publisher" : "Te Whatu Ora",
  "contact" : [{
    "name" : "Te Whatu Ora",
    "telecom" : [{
      "system" : "url",
      "value" : "https://tewhatuora.govt.nz"
    }]
  }],
  "description" : "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.",
  "jurisdiction" : [{
    "coding" : [{
      "system" : "urn:iso:std:iso:3166",
      "code" : "US",
      "display" : "New Zealand"
    }]
  }],
  "fhirVersion" : "4.0.1",
  "mapping" : [{
    "identity" : "workflow",
    "uri" : "http://hl7.org/fhir/workflow",
    "name" : "Workflow Pattern"
  },
  {
    "identity" : "v2",
    "uri" : "http://hl7.org/v2",
    "name" : "HL7 v2 Mapping"
  },
  {
    "identity" : "rim",
    "uri" : "http://hl7.org/v3",
    "name" : "RIM Mapping"
  },
  {
    "identity" : "w5",
    "uri" : "http://hl7.org/fhir/fivews",
    "name" : "FiveWs Pattern Mapping"
  },
  {
    "identity" : "cda",
    "uri" : "http://hl7.org/v3/cda",
    "name" : "CDA (R2)"
  }],
  "kind" : "resource",
  "abstract" : false,
  "type" : "Immunization",
  "baseDefinition" : "http://hl7.org/fhir/StructureDefinition/Immunization",
  "derivation" : "constraint",
  "differential" : {
    "element" : [{
      "id" : "Immunization",
      "path" : "Immunization",
      "constraint" : [{
        "key" : "nz-status-reason-1",
        "severity" : "error",
        "human" : "If the status reason has a system, then it must have a code.",
        "expression" : "statusReason.coding.system.exists() implies statusReason.coding.code.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-status-reason-2",
        "severity" : "error",
        "human" : "If the status reason has a code, then it must have a system.",
        "expression" : "statusReason.coding.code.exists() implies statusReason.coding.system.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-site-1",
        "severity" : "error",
        "human" : "If the body site has a system, then it must have a code.",
        "expression" : "site.coding.system.exists() implies site.coding.code.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-site-2",
        "severity" : "error",
        "human" : "If the body site has a code, then it must have a system.",
        "expression" : "site.coding.code.exists() implies site.coding.system.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-route-1",
        "severity" : "error",
        "human" : "If the route of admin has a system, then it must have a code.",
        "expression" : "route.coding.system.exists() implies route.coding.code.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-route-2",
        "severity" : "error",
        "human" : "if the route of admin has a code, then it must have a system.",
        "expression" : "route.coding.code.exists() implies route.coding.system.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-performer-function-1",
        "severity" : "error",
        "human" : "If the performer function has a system, then it must have a code.",
        "expression" : "performer.function.coding.system.exists() implies performer.function.coding.code.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-performer-function-2",
        "severity" : "error",
        "human" : "If the performer function has a code, then it must have a system.",
        "expression" : "performer.function.coding.code.exists() implies performer.function.coding.system.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-reasonCode-1",
        "severity" : "error",
        "human" : "If the reasonCode aka indication has a system, then it must have a code.",
        "expression" : "reasonCode.coding.system.exists() implies reasonCode.coding.code.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "nz-reasonCode-2",
        "severity" : "error",
        "human" : "If the reasonCode aka indication has a code, then it must have a system.",
        "expression" : "reasonCode.coding.code.exists() implies reasonCode.coding.system.exists()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      },
      {
        "key" : "air-resched-1",
        "severity" : "error",
        "human" : "Only allow a reschedule date if status NOT DONE and statusReason related to rescheduling.",
        "expression" : "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()",
        "source" : "https://standards.digital.health.nz/fhir/air/StructureDefinition/air-immunization"
      }]
    },
    {
      "id" : "Immunization.meta.extension:DataQualityAssessment",
      "path" : "Immunization.meta.extension",
      "sliceName" : "DataQualityAssessment",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-data-quality-assessment"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:PlannedEventMatch",
      "path" : "Immunization.meta.extension",
      "sliceName" : "PlannedEventMatch",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:PlannedEventMatchQuality",
      "path" : "Immunization.meta.extension",
      "sliceName" : "PlannedEventMatchQuality",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-event-match-quality"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:CreatedSourceSystem",
      "path" : "Immunization.meta.extension",
      "sliceName" : "CreatedSourceSystem",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-source-system"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:CreatedBy",
      "path" : "Immunization.meta.extension",
      "sliceName" : "CreatedBy",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-created-by"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:ModifiedSourceSystem",
      "path" : "Immunization.meta.extension",
      "sliceName" : "ModifiedSourceSystem",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-source-system"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:ModifiedBy",
      "path" : "Immunization.meta.extension",
      "sliceName" : "ModifiedBy",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-modified-by"]
      }]
    },
    {
      "id" : "Immunization.meta.extension:CreatedDate",
      "path" : "Immunization.meta.extension",
      "sliceName" : "CreatedDate",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["http://hl7.org/fhir/StructureDefinition/firstCreated"]
      }]
    },
    {
      "id" : "Immunization.extension",
      "path" : "Immunization.extension",
      "slicing" : {
        "discriminator" : [{
          "type" : "value",
          "path" : "url"
        }],
        "ordered" : false,
        "rules" : "open"
      }
    },
    {
      "id" : "Immunization.extension:administeredProduct",
      "path" : "Immunization.extension",
      "sliceName" : "administeredProduct",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-administered-product"]
      }]
    },
    {
      "id" : "Immunization.extension:Diluent",
      "path" : "Immunization.extension",
      "sliceName" : "Diluent",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-diluent"]
      }]
    },
    {
      "id" : "Immunization.extension:MobileSiteId",
      "path" : "Immunization.extension",
      "sliceName" : "MobileSiteId",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-mobile-site"]
      }]
    },
    {
      "id" : "Immunization.extension:AgeGiven",
      "path" : "Immunization.extension",
      "sliceName" : "AgeGiven",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-age-given"]
      }]
    },
    {
      "id" : "Immunization.extension:relatedPersonExtension",
      "path" : "Immunization.extension",
      "sliceName" : "relatedPersonExtension",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-related-person-extension"]
      }]
    },
    {
      "id" : "Immunization.extension:serologyReportExtension",
      "path" : "Immunization.extension",
      "sliceName" : "serologyReportExtension",
      "min" : 0,
      "max" : "1",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-serology-report-extension"]
      }]
    },
    {
      "id" : "Immunization.extension:rescheduleDateExtension",
      "path" : "Immunization.extension",
      "sliceName" : "rescheduleDateExtension",
      "min" : 0,
      "max" : "*",
      "type" : [{
        "code" : "Extension",
        "profile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-reschedule-date"]
      }]
    },
    {
      "id" : "Immunization.statusReason",
      "path" : "Immunization.statusReason",
      "definition" : "The status reason codes CIS and CPI are included in the Status Reason Code System for backward compatibility, but use of these codes for new events is deprecated.",
      "binding" : {
        "strength" : "preferred",
        "valueSet" : "https://nzhts.digital.health.nz/fhir/ValueSet/air-status-reason-code"
      }
    },
    {
      "id" : "Immunization.statusReason.coding",
      "path" : "Immunization.statusReason.coding",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Immunization.vaccineCode",
      "path" : "Immunization.vaccineCode",
      "binding" : {
        "strength" : "preferred",
        "valueSet" : "https://nzhts.digital.health.nz/fhir/ValueSet/air-vaccine-product-code"
      }
    },
    {
      "id" : "Immunization.vaccineCode.coding",
      "path" : "Immunization.vaccineCode.coding",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Immunization.vaccineCode.coding.system",
      "path" : "Immunization.vaccineCode.coding.system",
      "min" : 1
    },
    {
      "id" : "Immunization.vaccineCode.coding.code",
      "path" : "Immunization.vaccineCode.coding.code",
      "min" : 1
    },
    {
      "id" : "Immunization.patient",
      "path" : "Immunization.patient",
      "definition" : "The patient should be sent using the logical reference format, specifically an identifier with a system and a value. The identifier must be the NZ NHI number."
    },
    {
      "id" : "Immunization.encounter",
      "path" : "Immunization.encounter",
      "max" : "0"
    },
    {
      "id" : "Immunization.occurrence[x]",
      "path" : "Immunization.occurrence[x]",
      "type" : [{
        "code" : "dateTime"
      }]
    },
    {
      "id" : "Immunization.primarySource",
      "path" : "Immunization.primarySource",
      "max" : "0"
    },
    {
      "id" : "Immunization.reportOrigin",
      "path" : "Immunization.reportOrigin",
      "max" : "0"
    },
    {
      "id" : "Immunization.location",
      "path" : "Immunization.location",
      "short" : "The location where the immunisation was administered.",
      "definition" : "The location should be sent using the logical reference format, specifically an identifier with a system and a value. The required identification system is the HPI-F. See the HPI Implementation Guide at https://hpi-ig.hip.digital.health.nz/index.html. ",
      "type" : [{
        "code" : "Reference",
        "targetProfile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-location"]
      }]
    },
    {
      "id" : "Immunization.manufacturer",
      "path" : "Immunization.manufacturer",
      "max" : "0"
    },
    {
      "id" : "Immunization.site",
      "path" : "Immunization.site",
      "short" : "The body site of the vaccine administration (SNOMED code).",
      "binding" : {
        "strength" : "preferred",
        "valueSet" : "https://nzhts.digital.health.nz/fhir/ValueSet/air-site-code"
      }
    },
    {
      "id" : "Immunization.site.coding",
      "path" : "Immunization.site.coding",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Immunization.route",
      "path" : "Immunization.route",
      "short" : "The route of administation of the vaccine.",
      "binding" : {
        "strength" : "preferred",
        "valueSet" : "https://nzhts.digital.health.nz/fhir/ValueSet/air-route-code"
      }
    },
    {
      "id" : "Immunization.route.coding",
      "path" : "Immunization.route.coding",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Immunization.doseQuantity",
      "path" : "Immunization.doseQuantity",
      "max" : "0"
    },
    {
      "id" : "Immunization.performer.function",
      "path" : "Immunization.performer.function",
      "binding" : {
        "strength" : "extensible",
        "valueSet" : "https://nzhts.digital.health.nz/fhir/ValueSet/air-performer-health-worker-function-code"
      }
    },
    {
      "id" : "Immunization.performer.function.coding",
      "path" : "Immunization.performer.function.coding",
      "min" : 1,
      "max" : "1"
    },
    {
      "id" : "Immunization.performer.actor",
      "path" : "Immunization.performer.actor",
      "type" : [{
        "code" : "Reference",
        "targetProfile" : ["https://standards.digital.health.nz/fhir/air/StructureDefinition/air-practitioner"]
      }]
    },
    {
      "id" : "Immunization.note",
      "path" : "Immunization.note",
      "max" : "0"
    },
    {
      "id" : "Immunization.reasonCode",
      "path" : "Immunization.reasonCode",
      "binding" : {
        "strength" : "preferred",
        "valueSet" : "https://nzhts.digital.health.nz/fhir/ValueSet/air-indication-code"
      }
    },
    {
      "id" : "Immunization.isSubpotent",
      "path" : "Immunization.isSubpotent",
      "max" : "0"
    },
    {
      "id" : "Immunization.subpotentReason",
      "path" : "Immunization.subpotentReason",
      "max" : "0"
    },
    {
      "id" : "Immunization.education",
      "path" : "Immunization.education",
      "max" : "0"
    },
    {
      "id" : "Immunization.programEligibility",
      "path" : "Immunization.programEligibility",
      "max" : "0"
    },
    {
      "id" : "Immunization.fundingSource",
      "path" : "Immunization.fundingSource",
      "max" : "0"
    },
    {
      "id" : "Immunization.reaction",
      "path" : "Immunization.reaction",
      "max" : "0"
    },
    {
      "id" : "Immunization.protocolApplied",
      "path" : "Immunization.protocolApplied",
      "max" : "1"
    },
    {
      "id" : "Immunization.protocolApplied.doseNumber[x]",
      "path" : "Immunization.protocolApplied.doseNumber[x]",
      "type" : [{
        "code" : "string"
      }]
    }]
  }
}

```
