Aotearoa Immunisation Register (AIR) FHIR Implementation Guide
2.7.0 - ci-build New Zealand

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

Resource Profile: AIR CarePlan Profile

Official URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-careplan Version: 2.7.0
Active as of 2026-07-20 Computable Name: AIRCarePlan

The FHIR CarePlan resource is used as a structured representation of a consumer’s assigned immunisation schedule, supporting the coordination, tracking, and delivery of vaccinations across various antigen groups. Within the immunisation domain, each CarePlan defines a specific Antigen Group Vaccination (AGV) schedule for an individual and organizes all related vaccination activities into a coherent and accessible format. In this context, the CarePlan serves as a central framework that brings together planned immunisation events and their corresponding recorded vaccine administrations. Planned events are represented using ImmunizationRecommendation resources, indicating doses that are scheduled based on clinical guidelines and timing. When a vaccine dose is administered, the corresponding Immunization resource is linked back to the relevant planned activity in the CarePlan. This approach ensures that each vaccination event is traceable and that care delivery is aligned with national immunisation protocols. Each CarePlan acts as a living record of a consumer's immunisation journey for a particular antigen group, capturing past, present, and future planned doses. The activities within the CarePlan are typically ordered by due date, offering a clear and chronological view of the vaccination schedule. This helps healthcare providers monitor compliance, identify overdue or upcoming vaccinations, and coordinate follow-up actions. Additionally, the CarePlan supports automation and interoperability. When a consumer is onboarded into the immunisation system, relevant AGV schedules are automatically assigned, and CarePlans are created to reflect the full scope of required vaccinations.This profile on the FHIR R4 CarePlan resource adds two extensions from the R5+ CarePlan to more easily represent Immunization and ImmunizationRecommendation links, and to be better aligned with the future direction of FHIR.

Usages:

  • This Profile is not used by any profiles in this Specification

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.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CarePlan 0..* CarePlan Healthcare plan for patient or group
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.
... intent ?!SΣ 1..1 code proposal | plan | order | option
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.
... subject Σ 1..1 Reference(AIR Patient Profile) Who the care plan is for
... activity C 0..1 BackboneElement Action to occur as part of plan
Constraints: cpl-3
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:performedActivity 0..1 Reference(AIR Immunization) Performed Activity Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-performed-activity
..... extension:plannedActivityReference 0..1 Reference(AIR Immunization Recommendation) Planned Activity Reference Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-activity-reference
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
CarePlan.status Base required RequestStatus 📍4.0.1 FHIR Std.
CarePlan.intent Base required Care Plan Intent 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​status Base required CarePlanActivityStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cpl-3 error CarePlan.activity Provide a reference or detail, not both detail.empty() or reference.empty()
dom-2 error CarePlan If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error CarePlan 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 CarePlan 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 CarePlan If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice CarePlan 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()

This structure is derived from CarePlan

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CarePlan 0..* CarePlan Healthcare plan for patient or group
... id 1..1 id Logical id of this artifact
... identifier 0..0 External Ids for this plan
... instantiatesCanonical 0..1 canonical(Immunization Schedule Plan Definition) Instantiates FHIR protocol or definition
... intent S 1..1 code proposal | plan | order | option
... category 0..0 Type of plan
... subject 1..1 Reference(AIR Patient Profile) Who the care plan is for
... activity 0..1 BackboneElement Action to occur as part of plan
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:performedActivity 0..1 Reference(AIR Immunization) Performed Activity Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-performed-activity
..... extension:plannedActivityReference 0..1 Reference(AIR Immunization Recommendation) Planned Activity Reference Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-activity-reference
.... outcomeCodeableConcept 0..0 Results of the activity
.... outcomeReference 0..0 Appointment, Encounter, Procedure, etc.
.... progress 0..0 Comments about the activity status/progress
.... reference 0..0 Activity details defined in specific resource
.... detail 0..0 In-line definition of activity

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CarePlan 0..* CarePlan Healthcare plan for patient or group
... id Σ 1..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... 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 BindingsPurpose
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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... instantiatesCanonical Σ 0..1 canonical(Immunization Schedule Plan Definition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan) Fulfills CarePlan
... replaces Σ 0..* Reference(CarePlan) CarePlan replaced by this CarePlan
... partOf Σ 0..* Reference(CarePlan) Part of referenced CarePlan
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.
... intent ?!SΣ 1..1 code proposal | plan | order | option
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.
... title Σ 0..1 string Human-friendly name for the care plan
... description Σ 0..1 string Summary of nature of plan
... subject Σ 1..1 Reference(AIR Patient Profile) Who the care plan is for
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
... period Σ 0..1 Period Time period plan covers
... created Σ 0..1 dateTime Date record was first recorded
... author Σ 0..1 Reference(Patient | Practitioner | PractitionerRole | Device | RelatedPerson | Organization | CareTeam) Who is the designated responsible party
... contributor 0..* Reference(Patient | Practitioner | PractitionerRole | Device | RelatedPerson | Organization | CareTeam) Who provided the content of the care plan
... careTeam 0..* Reference(CareTeam) Who's involved in plan?
... addresses Σ 0..* Reference(Condition) Health issues this plan addresses
... supportingInfo 0..* Reference(Resource) Information considered as part of plan
... goal 0..* Reference(Goal) Desired outcome of plan
... activity C 0..1 BackboneElement Action to occur as part of plan
Constraints: cpl-3
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:performedActivity 0..1 Reference(AIR Immunization) Performed Activity Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-performed-activity
..... extension:plannedActivityReference 0..1 Reference(AIR Immunization Recommendation) Planned Activity Reference Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-activity-reference
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... note 0..* Annotation Comments about the plan

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
CarePlan.language Base preferred Common Languages 📍4.0.1 FHIR Std.
CarePlan.status Base required RequestStatus 📍4.0.1 FHIR Std.
CarePlan.intent Base required Care Plan Intent 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​kind Base required Care Plan Activity Kind 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​reasonCode Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​status Base required CarePlanActivityStatus 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​product[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cpl-3 error CarePlan.activity Provide a reference or detail, not both detail.empty() or reference.empty()
dom-2 error CarePlan If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error CarePlan 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 CarePlan 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 CarePlan If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice CarePlan 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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CarePlan 0..* CarePlan Healthcare plan for patient or group
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.
... intent ?!SΣ 1..1 code proposal | plan | order | option
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.
... subject Σ 1..1 Reference(AIR Patient Profile) Who the care plan is for
... activity C 0..1 BackboneElement Action to occur as part of plan
Constraints: cpl-3
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:performedActivity 0..1 Reference(AIR Immunization) Performed Activity Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-performed-activity
..... extension:plannedActivityReference 0..1 Reference(AIR Immunization Recommendation) Planned Activity Reference Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-activity-reference
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
CarePlan.status Base required RequestStatus 📍4.0.1 FHIR Std.
CarePlan.intent Base required Care Plan Intent 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​status Base required CarePlanActivityStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cpl-3 error CarePlan.activity Provide a reference or detail, not both detail.empty() or reference.empty()
dom-2 error CarePlan If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error CarePlan 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 CarePlan 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 CarePlan If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice CarePlan 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()

Differential View

This structure is derived from CarePlan

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CarePlan 0..* CarePlan Healthcare plan for patient or group
... id 1..1 id Logical id of this artifact
... identifier 0..0 External Ids for this plan
... instantiatesCanonical 0..1 canonical(Immunization Schedule Plan Definition) Instantiates FHIR protocol or definition
... intent S 1..1 code proposal | plan | order | option
... category 0..0 Type of plan
... subject 1..1 Reference(AIR Patient Profile) Who the care plan is for
... activity 0..1 BackboneElement Action to occur as part of plan
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:performedActivity 0..1 Reference(AIR Immunization) Performed Activity Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-performed-activity
..... extension:plannedActivityReference 0..1 Reference(AIR Immunization Recommendation) Planned Activity Reference Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-activity-reference
.... outcomeCodeableConcept 0..0 Results of the activity
.... outcomeReference 0..0 Appointment, Encounter, Procedure, etc.
.... progress 0..0 Comments about the activity status/progress
.... reference 0..0 Activity details defined in specific resource
.... detail 0..0 In-line definition of activity

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. CarePlan 0..* CarePlan Healthcare plan for patient or group
... id Σ 1..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... 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 BindingsPurpose
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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... instantiatesCanonical Σ 0..1 canonical(Immunization Schedule Plan Definition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan) Fulfills CarePlan
... replaces Σ 0..* Reference(CarePlan) CarePlan replaced by this CarePlan
... partOf Σ 0..* Reference(CarePlan) Part of referenced CarePlan
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.
... intent ?!SΣ 1..1 code proposal | plan | order | option
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.
... title Σ 0..1 string Human-friendly name for the care plan
... description Σ 0..1 string Summary of nature of plan
... subject Σ 1..1 Reference(AIR Patient Profile) Who the care plan is for
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
... period Σ 0..1 Period Time period plan covers
... created Σ 0..1 dateTime Date record was first recorded
... author Σ 0..1 Reference(Patient | Practitioner | PractitionerRole | Device | RelatedPerson | Organization | CareTeam) Who is the designated responsible party
... contributor 0..* Reference(Patient | Practitioner | PractitionerRole | Device | RelatedPerson | Organization | CareTeam) Who provided the content of the care plan
... careTeam 0..* Reference(CareTeam) Who's involved in plan?
... addresses Σ 0..* Reference(Condition) Health issues this plan addresses
... supportingInfo 0..* Reference(Resource) Information considered as part of plan
... goal 0..* Reference(Goal) Desired outcome of plan
... activity C 0..1 BackboneElement Action to occur as part of plan
Constraints: cpl-3
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:performedActivity 0..1 Reference(AIR Immunization) Performed Activity Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-performed-activity
..... extension:plannedActivityReference 0..1 Reference(AIR Immunization Recommendation) Planned Activity Reference Extension
URL: https://standards.digital.health.nz/fhir/air/StructureDefinition/air-planned-activity-reference
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... note 0..* Annotation Comments about the plan

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
CarePlan.language Base preferred Common Languages 📍4.0.1 FHIR Std.
CarePlan.status Base required RequestStatus 📍4.0.1 FHIR Std.
CarePlan.intent Base required Care Plan Intent 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​kind Base required Care Plan Activity Kind 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​reasonCode Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​status Base required CarePlanActivityStatus 📍4.0.1 FHIR Std.
CarePlan.activity.detail.​product[x] Base example SNOMED CT Medication Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
cpl-3 error CarePlan.activity Provide a reference or detail, not both detail.empty() or reference.empty()
dom-2 error CarePlan If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error CarePlan 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 CarePlan 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 CarePlan If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice CarePlan 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()

 

Other representations of profile: CSV, Excel, Schematron