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: AIRImmunization - Detailed Descriptions

Active as of 2026-07-20

Definitions for the air-immunization resource profile.

Guidance on how to interpret the contents of this table can be foundhere

0. Immunization
Definition

Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.

ShortImmunization event information
Control0..*
Is Modifierfalse
Summaryfalse
Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (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: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
dom-6: A resource should have narrative for robust management (text.`div`.exists())
nz-status-reason-1: 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: If the status reason has a code, then it must have a system. (statusReason.coding.code.exists() implies statusReason.coding.system.exists())
nz-site-1: 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: If the body site has a code, then it must have a system. (site.coding.code.exists() implies site.coding.system.exists())
nz-route-1: 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: if the route of admin has a code, then it must have a system. (route.coding.code.exists() implies route.coding.system.exists())
nz-performer-function-1: 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: 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: 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: If the reasonCode aka indication has a code, then it must have a system. (reasonCode.coding.code.exists() implies reasonCode.coding.system.exists())
air-resched-1: 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())
2. Immunization.implicitRules
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

ShortA set of rules under which this content was created
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Control0..1
Typeuri
Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
Summarytrue
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
4. Immunization.extension
Definition

An Extension


May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

ShortExtensionAdditional content defined by implementations
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Control0..*
TypeExtension
Is Modifierfalse
Summaryfalse
Alternate Namesextensions, user content
Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
SlicingThis element introduces a set of slices on Immunization.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
  • value @ url
  • 6. Immunization.extension:administeredProduct
    Slice NameadministeredProduct
    Definition

    This extension to the AIR Immunization profile pre-adopts the FHIR R5 construct of the same name. In AIR, the (mandatory) vaccineCode element should be used to transmit a CVX or NZVX code for the vaccine, while the (optional) administeredProduct element should be used to transmit an NZMT TPUU code fot he vaccine.

    ShortAIR Administered Product Extension
    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(AIR Administered Product Extension) (Extension Type: CodeableConcept)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    8. Immunization.extension:Diluent
    Slice NameDiluent
    Definition

    Immunization Diluent

    ShortImmunization Diluent
    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(Immunization Diluent) (Complex Extension)
    Is Modifierfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    10. Immunization.extension:MobileSiteId
    Slice NameMobileSiteId
    Definition

    Immunization Facility Mobile Site

    ShortImmunization Facility Mobile Site
    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(Immunization Facility Mobile Site) (Extension Type: string)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    12. Immunization.extension:AgeGiven
    Slice NameAgeGiven
    Definition

    This extension calculates the patient age when a vaccination was administered. Although this could be calculated by the client based on patient date of birth, it is provided as a convenience.

    ShortAIR Age Given Extension
    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(AIR Age Given Extension) (Complex Extension)
    Is Modifierfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    14. Immunization.extension:relatedPersonExtension
    Slice NamerelatedPersonExtension
    Definition

    This extension is to be used for communicating related person info in an AIR Immunisation Event. It holds the information transmitted in the HL7v2 NK1 segment.

    ShortAIR Related Person
    Control0..*
    This element is affected by the following invariants: ele-1
    TypeExtension(AIR Related Person) (Extension Type: Reference(AIR Related Person Profile))
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    16. Immunization.extension:serologyReportExtension
    Slice NameserologyReportExtension
    Definition

    This extension allows an AIR Immunization instance to contain information from a serology report that describes a patient's expected level of immune protection from Hepatitis B infection. Note that this extension could be updated to cover additional diseases in the future.

    ShortAIR Serology Report Extension
    Control0..1
    This element is affected by the following invariants: ele-1
    TypeExtension(AIR Serology Report Extension) (Extension Type: Reference(AIR Serology Report Profile))
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    18. Immunization.extension:rescheduleDateExtension
    Slice NamerescheduleDateExtension
    Definition

    This extension is used on an AIR Immunization resource that is sent to AIR as part of a $bulk-update operation. It holds the date to which the Immunisation Event has been rescheduled.

    ShortAIR Reschedule Date Extension
    Control0..*
    This element is affected by the following invariants: ele-1
    TypeExtension(AIR Reschedule Date Extension) (Extension Type: date)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    20. Immunization.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
    Summaryfalse
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    22. Immunization.status
    Definition

    Indicates the current status of the immunization event.

    Shortcompleted | entered-in-error | not-done
    Comments

    Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

    Control1..1
    BindingThe codes SHALL be taken from ImmunizationStatusCodeshttp://hl7.org/fhir/ValueSet/immunization-status|4.0.1
    (required to http://hl7.org/fhir/ValueSet/immunization-status|4.0.1)

    A set of codes indicating the current status of an Immunization.

    Typecode
    Is Modifiertrue because This element is labeled as a modifier because it is a status element that contains statuses entered-in-error and not-done which means that the resource should not be treated as valid
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    24. 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.


    Indicates the reason the immunization event was not performed.

    ShortReason not done
    Comments

    This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here.

    Control0..1
    BindingThe codes SHOULD be taken from For example codes, see AIR Status Reason Codehttp://hl7.org/fhir/ValueSet/immunization-status-reason|4.0.1
    (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-status-reason-code)
    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    26. Immunization.statusReason.coding
    Definition

    A reference to a code defined by a terminology system.

    ShortCode defined by a terminology system
    Comments

    Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

    Control10..1*
    TypeCoding
    Is Modifierfalse
    Summarytrue
    Requirements

    Allows for alternative encodings within a code system, and translations to other code systems.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    28. Immunization.vaccineCode
    Definition

    Vaccine that was administered or was to be administered.

    ShortVaccine product administered
    Control1..1
    BindingThe codes SHOULD be taken from For example codes, see AIR Vaccine Producthttp://hl7.org/fhir/ValueSet/vaccine-code|4.0.1
    (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-vaccine-product-code)
    TypeCodeableConcept
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    30. Immunization.vaccineCode.coding
    Definition

    A reference to a code defined by a terminology system.

    ShortCode defined by a terminology system
    Comments

    Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

    Control10..1*
    TypeCoding
    Is Modifierfalse
    Summarytrue
    Requirements

    Allows for alternative encodings within a code system, and translations to other code systems.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    32. Immunization.vaccineCode.coding.system
    Definition

    The identification of the code system that defines the meaning of the symbol in the code.

    ShortIdentity of the terminology system
    Comments

    The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

    Control10..1
    Typeuri
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    Need to be unambiguous about the source of the definition of the symbol.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    34. Immunization.vaccineCode.coding.code
    Definition

    A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).

    ShortSymbol in syntax defined by the system
    Control10..1
    Typecode
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Requirements

    Need to refer to a particular code in the system.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    36. 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.


    The patient who either received or did not receive the immunization.

    ShortWho was immunized
    Control1..1
    TypeReference(Patient)
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    38. Immunization.encounter
    Definition

    The visit or admission or other contact between patient and health care provider the immunization was performed as part of.

    ShortEncounter immunization was part of
    Control0..01
    TypeReference(Encounter)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    40. Immunization.occurrence[x]
    Definition

    Date vaccine administered or was to be administered.

    ShortVaccine administration date
    Comments

    When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.

    Control1..1
    TypedateTime, string
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    42. Immunization.primarySource
    Definition

    An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.

    ShortIndicates context the data was recorded in
    Comments

    Reflects the “reliability” of the content.

    Control0..01
    Typeboolean
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    44. Immunization.reportOrigin
    Definition

    The source of the data when the report of the immunization event is not based on information from the person who administered the vaccine.

    ShortIndicates the source of a secondarily reported record
    Comments

    Should not be populated if primarySource = True, not required even if primarySource = False.

    Control0..01
    BindingFor example codes, see ImmunizationOriginCodeshttp://hl7.org/fhir/ValueSet/immunization-origin|4.0.1
    (example to http://hl7.org/fhir/ValueSet/immunization-origin|4.0.1)

    The source of the data for a record which is not from a primary source.

    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    46. Immunization.location
    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.


    The service delivery location where the vaccine administration occurred.

    ShortThe location where the immunisation was administered.Where immunization occurred
    Control0..1
    TypeReference(AIR Location Profile, Location)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    48. Immunization.manufacturer
    Definition

    Name of vaccine manufacturer.

    ShortVaccine manufacturer
    Control0..01
    TypeReference(Organization)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    50. Immunization.site
    Definition

    Body site where vaccine was administered.

    ShortThe body site of the vaccine administration (SNOMED code).Body site vaccine was administered
    Control0..1
    BindingThe codes SHOULD be taken from For example codes, see AIR Body Sitehttp://hl7.org/fhir/ValueSet/immunization-site|4.0.1
    (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-site-code)
    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    52. Immunization.site.coding
    Definition

    A reference to a code defined by a terminology system.

    ShortCode defined by a terminology system
    Comments

    Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

    Control10..1*
    TypeCoding
    Is Modifierfalse
    Summarytrue
    Requirements

    Allows for alternative encodings within a code system, and translations to other code systems.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    54. Immunization.route
    Definition

    The path by which the vaccine product is taken into the body.

    ShortThe route of administation of the vaccine.How vaccine entered body
    Control0..1
    BindingThe codes SHOULD be taken from For example codes, see AIR Route of Administrationhttp://hl7.org/fhir/ValueSet/immunization-route|4.0.1
    (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-route-code)
    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    56. Immunization.route.coding
    Definition

    A reference to a code defined by a terminology system.

    ShortCode defined by a terminology system
    Comments

    Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

    Control10..1*
    TypeCoding
    Is Modifierfalse
    Summarytrue
    Requirements

    Allows for alternative encodings within a code system, and translations to other code systems.

    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    58. Immunization.doseQuantity
    Definition

    The quantity of vaccine product that was administered.

    ShortAmount of vaccine administered
    Control0..01
    TypeQuantity(SimpleQuantity)
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    60. Immunization.note
    Definition

    Extra information about the immunization that is not conveyed by the other attributes.

    ShortAdditional immunization notes
    Control0..0*
    TypeAnnotation
    Is Modifierfalse
    Summarytrue
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    62. Immunization.reasonCode
    Definition

    Reasons why the vaccine was administered.

    ShortWhy immunization occurred
    Control0..*
    BindingThe codes SHOULD be taken from For example codes, see AIR Indication Codehttp://hl7.org/fhir/ValueSet/immunization-reason|4.0.1
    (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-indication-code)
    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    64. Immunization.isSubpotent
    Definition

    Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent.

    ShortDose potency
    Comments

    Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.

    Control0..01
    Typeboolean
    Is Modifiertrue because This element is labeled as a modifier because an immunization event with a subpotent vaccine doesn't protect the patient the same way as a potent dose.
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summarytrue
    Meaning if MissingBy default, a dose should be considered to be potent.
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    66. Immunization.subpotentReason
    Definition

    Reason why a dose is considered to be subpotent.

    ShortReason for being subpotent
    Control0..0*
    BindingFor example codes, see ImmunizationSubpotentReasonhttp://hl7.org/fhir/ValueSet/immunization-subpotent-reason|4.0.1
    (example to http://hl7.org/fhir/ValueSet/immunization-subpotent-reason|4.0.1)

    The reason why a dose is considered to be subpotent.

    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    68. Immunization.education
    Definition

    Educational material presented to the patient (or guardian) at the time of vaccine administration.

    ShortEducational material presented to patient
    Control0..0*
    TypeBackboneElement
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    imm-1: One of documentType or reference SHALL be present (documentType.exists() or reference.exists())
    imm-1: One of documentType or reference SHALL be present (documentType.exists() or reference.exists())
    71. Immunization.programEligibility
    Definition

    Indicates a patient's eligibility for a funding program.

    ShortPatient eligibility for a vaccination program
    Control0..0*
    BindingFor example codes, see ImmunizationProgramEligibilityhttp://hl7.org/fhir/ValueSet/immunization-program-eligibility|4.0.1
    (example to http://hl7.org/fhir/ValueSet/immunization-program-eligibility|4.0.1)

    The patient's eligibility for a vaccation program.

    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    73. Immunization.fundingSource
    Definition

    Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered).

    ShortFunding source for the vaccine
    Control0..01
    BindingFor example codes, see ImmunizationFundingSourcehttp://hl7.org/fhir/ValueSet/immunization-funding-source|4.0.1
    (example to http://hl7.org/fhir/ValueSet/immunization-funding-source|4.0.1)

    The source of funding used to purchase the vaccine administered.

    TypeCodeableConcept
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    75. Immunization.reaction
    Definition

    Categorical data indicating that an adverse event is associated in time to an immunization.

    ShortDetails of a reaction that follows immunization
    Comments

    A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.

    Control0..0*
    TypeBackboneElement
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    78. Immunization.protocolApplied
    Definition

    The protocol (set of recommendations) being followed by the provider who administered the dose.

    ShortProtocol followed by the provider
    Control0..1*
    TypeBackboneElement
    Is Modifierfalse
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    80. Immunization.protocolApplied.modifierExtension
    Definition

    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

    ShortExtensions that cannot be ignored even if unrecognized
    Comments

    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

    Control0..*
    TypeExtension
    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
    Summarytrue
    Requirements

    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

    Alternate Namesextensions, user content, modifiers
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
    82. Immunization.protocolApplied.doseNumber[x]
    Definition

    Nominal position in a series.

    ShortDose number within series
    Comments

    The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).

    Control1..1
    Typestring, positiveInt
    [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
    Is Modifierfalse
    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
    Summaryfalse
    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

    Guidance on how to interpret the contents of this table can be foundhere

    0. Immunization
    Invariantsnz-status-reason-1: 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: If the status reason has a code, then it must have a system. (statusReason.coding.code.exists() implies statusReason.coding.system.exists())
    nz-site-1: 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: If the body site has a code, then it must have a system. (site.coding.code.exists() implies site.coding.system.exists())
    nz-route-1: 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: if the route of admin has a code, then it must have a system. (route.coding.code.exists() implies route.coding.system.exists())
    nz-performer-function-1: 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: 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: 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: If the reasonCode aka indication has a code, then it must have a system. (reasonCode.coding.code.exists() implies reasonCode.coding.system.exists())
    air-resched-1: 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())
    2. Immunization.meta
    4. Immunization.meta.extension:DataQualityAssessment
    Slice NameDataQualityAssessment
    Control0..1
    TypeExtension(Data Quality Assessment) (Complex Extension)
    6. Immunization.meta.extension:PlannedEventMatch
    Slice NamePlannedEventMatch
    Control0..*
    TypeExtension(Planned Event Match) (Complex Extension)
    8. Immunization.meta.extension:PlannedEventMatchQuality
    Slice NamePlannedEventMatchQuality
    Control0..*
    TypeExtension(Planned Event Match Quality) (Complex Extension)
    10. Immunization.meta.extension:CreatedSourceSystem
    Slice NameCreatedSourceSystem
    Control0..1
    TypeExtension(AIR Created Source System) (Extension Type: string)
    12. Immunization.meta.extension:CreatedBy
    Slice NameCreatedBy
    Control0..1
    TypeExtension(AIR Created By User) (Extension Type: string)
    14. Immunization.meta.extension:ModifiedSourceSystem
    Slice NameModifiedSourceSystem
    Control0..1
    TypeExtension(AIR Modified Source System) (Extension Type: string)
    16. Immunization.meta.extension:ModifiedBy
    Slice NameModifiedBy
    Control0..1
    TypeExtension(AIR Modified By User) (Extension Type: string)
    18. Immunization.meta.extension:CreatedDate
    Slice NameCreatedDate
    Control0..1
    TypeExtension(First created) (Extension Type: instant)
    20. Immunization.extension
    SlicingThis element introduces a set of slices on Immunization.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
    • value @ url
    • 22. Immunization.extension:administeredProduct
      Slice NameadministeredProduct
      Control0..1
      TypeExtension(AIR Administered Product Extension) (Extension Type: CodeableConcept)
      24. Immunization.extension:Diluent
      Slice NameDiluent
      Control0..1
      TypeExtension(Immunization Diluent) (Complex Extension)
      26. Immunization.extension:MobileSiteId
      Slice NameMobileSiteId
      Control0..1
      TypeExtension(Immunization Facility Mobile Site) (Extension Type: string)
      28. Immunization.extension:AgeGiven
      Slice NameAgeGiven
      Control0..1
      TypeExtension(AIR Age Given Extension) (Complex Extension)
      30. Immunization.extension:relatedPersonExtension
      Slice NamerelatedPersonExtension
      Control0..*
      TypeExtension(AIR Related Person) (Extension Type: Reference(AIR Related Person Profile))
      32. Immunization.extension:serologyReportExtension
      Slice NameserologyReportExtension
      Control0..1
      TypeExtension(AIR Serology Report Extension) (Extension Type: Reference(AIR Serology Report Profile))
      34. Immunization.extension:rescheduleDateExtension
      Slice NamerescheduleDateExtension
      Control0..*
      TypeExtension(AIR Reschedule Date Extension) (Extension Type: date)
      36. 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.

      BindingThe codes SHOULD be taken from AIR Status Reason Code
      (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-status-reason-code)
      38. Immunization.statusReason.coding
      Control1..1
      40. Immunization.vaccineCode
      BindingThe codes SHOULD be taken from AIR Vaccine Product
      (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-vaccine-product-code)
      42. Immunization.vaccineCode.coding
      Control1..1
      44. Immunization.vaccineCode.coding.system
      Control1..?
      46. Immunization.vaccineCode.coding.code
      Control1..?
      48. 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.

      50. Immunization.encounter
      Control0..0
      52. Immunization.occurrence[x]
      TypedateTime, string
      [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
      54. Immunization.primarySource
      Control0..0
      56. Immunization.reportOrigin
      Control0..0
      58. Immunization.location
      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.

      ShortThe location where the immunisation was administered.
      TypeReference(AIR Location Profile)
      60. Immunization.manufacturer
      Control0..0
      62. Immunization.site
      ShortThe body site of the vaccine administration (SNOMED code).
      BindingThe codes SHOULD be taken from AIR Body Site
      (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-site-code)
      64. Immunization.site.coding
      Control1..1
      66. Immunization.route
      ShortThe route of administation of the vaccine.
      BindingThe codes SHOULD be taken from AIR Route of Administration
      (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-route-code)
      68. Immunization.route.coding
      Control1..1
      70. Immunization.doseQuantity
      Control0..0
      72. Immunization.performer
      74. Immunization.performer.function
      BindingUnless not suitable, these codes SHALL be taken from AIR Performer Health Worker Function
      (extensible to https://nzhts.digital.health.nz/fhir/ValueSet/air-performer-health-worker-function-code)
      76. Immunization.performer.function.coding
      Control1..1
      78. Immunization.performer.actor
      TypeReference(AIR Practitioner Profile)
      80. Immunization.note
      Control0..0
      82. Immunization.reasonCode
      BindingThe codes SHOULD be taken from AIR Indication Code
      (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-indication-code)
      84. Immunization.isSubpotent
      Control0..0
      86. Immunization.subpotentReason
      Control0..0
      88. Immunization.education
      Control0..0
      90. Immunization.programEligibility
      Control0..0
      92. Immunization.fundingSource
      Control0..0
      94. Immunization.reaction
      Control0..0
      96. Immunization.protocolApplied
      Control0..1
      98. Immunization.protocolApplied.doseNumber[x]
      Typestring, positiveInt
      [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension

      Guidance on how to interpret the contents of this table can be foundhere

      0. Immunization
      Definition

      Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.

      ShortImmunization event information
      Control0..*
      Is Modifierfalse
      Summaryfalse
      Invariantsdom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources (contained.contained.empty())
      dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource (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: 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: If a resource is contained in another resource, it SHALL NOT have a security label (contained.meta.security.empty())
      dom-6: A resource should have narrative for robust management (text.`div`.exists())
      nz-status-reason-1: 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: If the status reason has a code, then it must have a system. (statusReason.coding.code.exists() implies statusReason.coding.system.exists())
      nz-site-1: 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: If the body site has a code, then it must have a system. (site.coding.code.exists() implies site.coding.system.exists())
      nz-route-1: 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: if the route of admin has a code, then it must have a system. (route.coding.code.exists() implies route.coding.system.exists())
      nz-performer-function-1: 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: 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: 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: If the reasonCode aka indication has a code, then it must have a system. (reasonCode.coding.code.exists() implies reasonCode.coding.system.exists())
      air-resched-1: 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())
      2. Immunization.id
      Definition

      The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

      ShortLogical id of this artifact
      Comments

      The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

      Control0..1
      Typeid
      Is Modifierfalse
      Summarytrue
      4. Immunization.meta
      Definition

      The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

      ShortMetadata about the resource
      Control0..1
      TypeMeta
      Is Modifierfalse
      Summarytrue
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      6. Immunization.meta.id
      Definition

      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

      ShortUnique id for inter-element referencing
      Control0..1
      Typestring
      Is Modifierfalse
      XML FormatIn the XML format, this property is represented as an attribute.
      Summaryfalse
      8. Immunization.meta.extension
      Definition

      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

      ShortAdditional content defined by implementations
      Comments

      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

      Control0..*
      TypeExtension
      Is Modifierfalse
      Summaryfalse
      Alternate Namesextensions, user content
      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
      SlicingThis element introduces a set of slices on Immunization.meta.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
      • value @ url
      • 10. Immunization.meta.extension:DataQualityAssessment
        Slice NameDataQualityAssessment
        Definition

        The data quality assessment of this immunization record as calculated by AIR rules.

        ShortData Quality Assessment
        Control0..1
        TypeExtension(Data Quality Assessment) (Complex Extension)
        Is Modifierfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        12. Immunization.meta.extension:PlannedEventMatch
        Slice NamePlannedEventMatch
        Definition

        The match of a planned event to an immunisation event as calculated by AIR rules.

        ShortPlanned Event Match
        Control0..*
        TypeExtension(Planned Event Match) (Complex Extension)
        Is Modifierfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        14. Immunization.meta.extension:PlannedEventMatchQuality
        Slice NamePlannedEventMatchQuality
        Definition

        The match quality of a planned event to an immunisation event as calculated by AIR rules.

        ShortPlanned Event Match Quality
        Control0..*
        TypeExtension(Planned Event Match Quality) (Complex Extension)
        Is Modifierfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        16. Immunization.meta.extension:CreatedSourceSystem
        Slice NameCreatedSourceSystem
        Definition

        This extension is used in AIR to record the system or software used to create the immunisation event record. Example values are ISM, PMS, and so on.

        ShortAIR Created Source System
        Control0..1
        TypeExtension(AIR Created Source System) (Extension Type: string)
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        18. Immunization.meta.extension:CreatedBy
        Slice NameCreatedBy
        Definition

        This extension is used in AIR to record the user who created the immunisation event record.

        ShortAIR Created By User
        Control0..1
        TypeExtension(AIR Created By User) (Extension Type: string)
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        20. Immunization.meta.extension:ModifiedSourceSystem
        Slice NameModifiedSourceSystem
        Definition

        This extension is used in AIR to record the system or software used to update the immunisation event or patient record. Example values are ISM, PMS, and so on.

        ShortAIR Modified Source System
        Control0..1
        TypeExtension(AIR Modified Source System) (Extension Type: string)
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        22. Immunization.meta.extension:ModifiedBy
        Slice NameModifiedBy
        Definition

        This extension is used in AIR to record the user who modified the immunisation event or patient record.

        ShortAIR Modified By User
        Control0..1
        TypeExtension(AIR Modified By User) (Extension Type: string)
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        24. Immunization.meta.extension:CreatedDate
        Slice NameCreatedDate
        Definition

        Indicates when this resource ID was first associated with content on this server.

        ShortThe instant when this resource ID was first associated with content on this server
        Control0..1
        TypeExtension(First created) (Extension Type: instant)
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        26. Immunization.meta.versionId
        Definition

        The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.

        ShortVersion specific identifier
        Comments

        The server assigns this value, and ignores what the client specifies, except in the case that the server is imposing version integrity on updates/deletes.

        Control0..1
        Typeid
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        28. Immunization.meta.lastUpdated
        Definition

        When the resource last changed - e.g. when the version changed.

        ShortWhen the resource version last changed
        Comments

        This value is always populated except when the resource is first being created. The server / resource manager sets this value; what a client provides is irrelevant. This is equivalent to the HTTP Last-Modified and SHOULD have the same value on a read interaction.

        Control0..1
        Typeinstant
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        30. Immunization.meta.source
        Definition

        A uri that identifies the source system of the resource. This provides a minimal amount of Provenance information that can be used to track or differentiate the source of information in the resource. The source may identify another FHIR server, document, message, database, etc.

        ShortIdentifies where the resource comes from
        Comments

        In the provenance resource, this corresponds to Provenance.entity.what[x]. The exact use of the source (and the implied Provenance.entity.role) is left to implementer discretion. Only one nominated source is allowed; for additional provenance details, a full Provenance resource should be used.

        This element can be used to indicate where the current master source of a resource that has a canonical URL if the resource is no longer hosted at the canonical URL.

        Control0..1
        Typeuri
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        32. Immunization.meta.profile
        Definition

        A list of profiles (references to StructureDefinition resources) that this resource claims to conform to. The URL is a reference to StructureDefinition.url.

        ShortProfiles this resource claims to conform to
        Comments

        It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set.

        Control0..*
        Typecanonical(StructureDefinition)
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        34. Immunization.meta.security
        Definition

        Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.

        ShortSecurity Labels applied to this resource
        Comments

        The security labels can be updated without changing the stated version of the resource. The list of security labels is a set. Uniqueness is based the system/code, and version and display are ignored.

        Control0..*
        BindingUnless not suitable, these codes SHALL be taken from All Security Labels
        (extensible to http://hl7.org/fhir/ValueSet/security-labels|4.0.1)

        Security Labels from the Healthcare Privacy and Security Classification System.

        TypeCoding
        Is Modifierfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        36. Immunization.meta.tag
        Definition

        Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.

        ShortTags applied to this resource
        Comments

        The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored.

        Control0..*
        BindingFor example codes, see CommonTags
        (example to http://hl7.org/fhir/ValueSet/common-tags|4.0.1)

        Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".

        TypeCoding
        Is Modifierfalse
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        38. Immunization.implicitRules
        Definition

        A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

        ShortA set of rules under which this content was created
        Comments

        Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

        Control0..1
        Typeuri
        Is Modifiertrue because This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summarytrue
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        40. Immunization.language
        Definition

        The base language in which the resource is written.

        ShortLanguage of the resource content
        Comments

        Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

        Control0..1
        BindingThe codes SHOULD be taken from CommonLanguages
        (preferred to http://hl7.org/fhir/ValueSet/languages|4.0.1)

        A human language.

        Additional BindingsPurpose
        AllLanguagesMax Binding
        Typecode
        Is Modifierfalse
        Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        42. Immunization.text
        Definition

        A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

        ShortText summary of the resource, for human interpretation
        Comments

        Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

        Control0..1
        TypeNarrative
        Is Modifierfalse
        Summaryfalse
        Alternate Namesnarrative, html, xhtml, display
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        44. Immunization.contained
        Definition

        These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

        ShortContained, inline Resources
        Comments

        This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

        Control0..*
        TypeResource
        Is Modifierfalse
        Summaryfalse
        Alternate Namesinline resources, anonymous resources, contained resources
        46. Immunization.extension
        Definition

        An Extension

        ShortExtension
        Control0..*
        TypeExtension
        Is Modifierfalse
        Summaryfalse
        Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
        ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
        SlicingThis element introduces a set of slices on Immunization.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
        • value @ url
        • 48. Immunization.extension:administeredProduct
          Slice NameadministeredProduct
          Definition

          This extension to the AIR Immunization profile pre-adopts the FHIR R5 construct of the same name. In AIR, the (mandatory) vaccineCode element should be used to transmit a CVX or NZVX code for the vaccine, while the (optional) administeredProduct element should be used to transmit an NZMT TPUU code fot he vaccine.

          ShortAIR Administered Product Extension
          Control0..1
          This element is affected by the following invariants: ele-1
          TypeExtension(AIR Administered Product Extension) (Extension Type: CodeableConcept)
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          50. Immunization.extension:Diluent
          Slice NameDiluent
          Definition

          Immunization Diluent

          ShortImmunization Diluent
          Control0..1
          This element is affected by the following invariants: ele-1
          TypeExtension(Immunization Diluent) (Complex Extension)
          Is Modifierfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          52. Immunization.extension:MobileSiteId
          Slice NameMobileSiteId
          Definition

          Immunization Facility Mobile Site

          ShortImmunization Facility Mobile Site
          Control0..1
          This element is affected by the following invariants: ele-1
          TypeExtension(Immunization Facility Mobile Site) (Extension Type: string)
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          54. Immunization.extension:AgeGiven
          Slice NameAgeGiven
          Definition

          This extension calculates the patient age when a vaccination was administered. Although this could be calculated by the client based on patient date of birth, it is provided as a convenience.

          ShortAIR Age Given Extension
          Control0..1
          This element is affected by the following invariants: ele-1
          TypeExtension(AIR Age Given Extension) (Complex Extension)
          Is Modifierfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          56. Immunization.extension:relatedPersonExtension
          Slice NamerelatedPersonExtension
          Definition

          This extension is to be used for communicating related person info in an AIR Immunisation Event. It holds the information transmitted in the HL7v2 NK1 segment.

          ShortAIR Related Person
          Control0..*
          This element is affected by the following invariants: ele-1
          TypeExtension(AIR Related Person) (Extension Type: Reference(AIR Related Person Profile))
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          58. Immunization.extension:serologyReportExtension
          Slice NameserologyReportExtension
          Definition

          This extension allows an AIR Immunization instance to contain information from a serology report that describes a patient's expected level of immune protection from Hepatitis B infection. Note that this extension could be updated to cover additional diseases in the future.

          ShortAIR Serology Report Extension
          Control0..1
          This element is affected by the following invariants: ele-1
          TypeExtension(AIR Serology Report Extension) (Extension Type: Reference(AIR Serology Report Profile))
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          60. Immunization.extension:rescheduleDateExtension
          Slice NamerescheduleDateExtension
          Definition

          This extension is used on an AIR Immunization resource that is sent to AIR as part of a $bulk-update operation. It holds the date to which the Immunisation Event has been rescheduled.

          ShortAIR Reschedule Date Extension
          Control0..*
          This element is affected by the following invariants: ele-1
          TypeExtension(AIR Reschedule Date Extension) (Extension Type: date)
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          62. Immunization.modifierExtension
          Definition

          May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

          Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

          ShortExtensions that cannot be ignored
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them
          Summaryfalse
          Requirements

          Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

          Alternate Namesextensions, user content
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          64. Immunization.identifier
          Definition

          A unique identifier assigned to this immunization record.

          ShortBusiness identifier
          NoteThis is a business identifier, not a resource identifier (see discussion)
          Control0..*
          TypeIdentifier
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          66. Immunization.status
          Definition

          Indicates the current status of the immunization event.

          Shortcompleted | entered-in-error | not-done
          Comments

          Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

          Control1..1
          BindingThe codes SHALL be taken from ImmunizationStatusCodes
          (required to http://hl7.org/fhir/ValueSet/immunization-status|4.0.1)

          A set of codes indicating the current status of an Immunization.

          Typecode
          Is Modifiertrue because This element is labeled as a modifier because it is a status element that contains statuses entered-in-error and not-done which means that the resource should not be treated as valid
          Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
          Summarytrue
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          68. 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.

          ShortReason not done
          Comments

          This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here.

          Control0..1
          BindingThe codes SHOULD be taken from AIR Status Reason Code
          (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-status-reason-code)
          TypeCodeableConcept
          Is Modifierfalse
          Summaryfalse
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          70. Immunization.statusReason.id
          Definition

          Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

          ShortUnique id for inter-element referencing
          Control0..1
          Typestring
          Is Modifierfalse
          XML FormatIn the XML format, this property is represented as an attribute.
          Summaryfalse
          72. Immunization.statusReason.extension
          Definition

          May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

          ShortAdditional content defined by implementations
          Comments

          There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

          Control0..*
          TypeExtension
          Is Modifierfalse
          Summaryfalse
          Alternate Namesextensions, user content
          Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
          ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
          SlicingThis element introduces a set of slices on Immunization.statusReason.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
          • value @ url
          • 74. Immunization.statusReason.coding
            Definition

            A reference to a code defined by a terminology system.

            ShortCode defined by a terminology system
            Comments

            Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

            Control1..1
            TypeCoding
            Is Modifierfalse
            Summarytrue
            Requirements

            Allows for alternative encodings within a code system, and translations to other code systems.

            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            76. Immunization.statusReason.text
            Definition

            A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.

            ShortPlain text representation of the concept
            Comments

            Very often the text is the same as a displayName of one of the codings.

            Control0..1
            Typestring
            Is Modifierfalse
            Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
            Summarytrue
            Requirements

            The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            78. Immunization.vaccineCode
            Definition

            Vaccine that was administered or was to be administered.

            ShortVaccine product administered
            Control1..1
            BindingThe codes SHOULD be taken from AIR Vaccine Product
            (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-vaccine-product-code)
            TypeCodeableConcept
            Is Modifierfalse
            Summarytrue
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            80. Immunization.vaccineCode.id
            Definition

            Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

            ShortUnique id for inter-element referencing
            Control0..1
            Typestring
            Is Modifierfalse
            XML FormatIn the XML format, this property is represented as an attribute.
            Summaryfalse
            82. Immunization.vaccineCode.extension
            Definition

            May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

            ShortAdditional content defined by implementations
            Comments

            There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

            Control0..*
            TypeExtension
            Is Modifierfalse
            Summaryfalse
            Alternate Namesextensions, user content
            Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
            ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
            SlicingThis element introduces a set of slices on Immunization.vaccineCode.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
            • value @ url
            • 84. Immunization.vaccineCode.coding
              Definition

              A reference to a code defined by a terminology system.

              ShortCode defined by a terminology system
              Comments

              Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

              Control1..1
              TypeCoding
              Is Modifierfalse
              Summarytrue
              Requirements

              Allows for alternative encodings within a code system, and translations to other code systems.

              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              86. Immunization.vaccineCode.coding.id
              Definition

              Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

              ShortUnique id for inter-element referencing
              Control0..1
              Typestring
              Is Modifierfalse
              XML FormatIn the XML format, this property is represented as an attribute.
              Summaryfalse
              88. Immunization.vaccineCode.coding.extension
              Definition

              May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

              ShortAdditional content defined by implementations
              Comments

              There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

              Control0..*
              TypeExtension
              Is Modifierfalse
              Summaryfalse
              Alternate Namesextensions, user content
              Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
              ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
              SlicingThis element introduces a set of slices on Immunization.vaccineCode.coding.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
              • value @ url
              • 90. Immunization.vaccineCode.coding.system
                Definition

                The identification of the code system that defines the meaning of the symbol in the code.

                ShortIdentity of the terminology system
                Comments

                The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

                Control1..1
                Typeuri
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                Need to be unambiguous about the source of the definition of the symbol.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                92. Immunization.vaccineCode.coding.version
                Definition

                The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.

                ShortVersion of the system - if relevant
                Comments

                Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

                NoteThis is a business version Id, not a resource version Id (see discussion)
                Control0..1
                Typestring
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                94. Immunization.vaccineCode.coding.code
                Definition

                A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).

                ShortSymbol in syntax defined by the system
                Control1..1
                Typecode
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                Need to refer to a particular code in the system.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                96. Immunization.vaccineCode.coding.display
                Definition

                A representation of the meaning of the code in the system, following the rules of the system.

                ShortRepresentation defined by the system
                Control0..1
                Typestring
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                98. Immunization.vaccineCode.coding.userSelected
                Definition

                Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).

                ShortIf this coding was chosen directly by the user
                Comments

                Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

                Control0..1
                Typeboolean
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                100. Immunization.vaccineCode.text
                Definition

                A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.

                ShortPlain text representation of the concept
                Comments

                Very often the text is the same as a displayName of one of the codings.

                Control0..1
                Typestring
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Requirements

                The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                102. 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.

                ShortWho was immunized
                Control1..1
                TypeReference(Patient)
                Is Modifierfalse
                Summarytrue
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                104. Immunization.encounter
                Definition

                The visit or admission or other contact between patient and health care provider the immunization was performed as part of.

                ShortEncounter immunization was part of
                Control0..0
                TypeReference(Encounter)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                106. Immunization.occurrence[x]
                Definition

                Date vaccine administered or was to be administered.

                ShortVaccine administration date
                Comments

                When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.

                Control1..1
                TypedateTime
                [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                108. Immunization.recorded
                Definition

                The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.

                ShortWhen the immunization was first captured in the subject's record
                Control0..1
                TypedateTime
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                110. Immunization.primarySource
                Definition

                An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded.

                ShortIndicates context the data was recorded in
                Comments

                Reflects the “reliability” of the content.

                Control0..0
                Typeboolean
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summarytrue
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                112. Immunization.reportOrigin
                Definition

                The source of the data when the report of the immunization event is not based on information from the person who administered the vaccine.

                ShortIndicates the source of a secondarily reported record
                Comments

                Should not be populated if primarySource = True, not required even if primarySource = False.

                Control0..0
                BindingFor example codes, see ImmunizationOriginCodes
                (example to http://hl7.org/fhir/ValueSet/immunization-origin|4.0.1)

                The source of the data for a record which is not from a primary source.

                TypeCodeableConcept
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                114. Immunization.location
                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.

                ShortThe location where the immunisation was administered.
                Control0..1
                TypeReference(AIR Location Profile)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                116. Immunization.manufacturer
                Definition

                Name of vaccine manufacturer.

                ShortVaccine manufacturer
                Control0..0
                TypeReference(Organization)
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                118. Immunization.lotNumber
                Definition

                Lot number of the vaccine product.

                ShortVaccine lot number
                Control0..1
                Typestring
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                120. Immunization.expirationDate
                Definition

                Date vaccine batch expires.

                ShortVaccine expiration date
                Control0..1
                Typedate
                Is Modifierfalse
                Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                122. Immunization.site
                Definition

                Body site where vaccine was administered.

                ShortThe body site of the vaccine administration (SNOMED code).
                Control0..1
                BindingThe codes SHOULD be taken from AIR Body Site
                (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-site-code)
                TypeCodeableConcept
                Is Modifierfalse
                Summaryfalse
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                124. Immunization.site.id
                Definition

                Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                ShortUnique id for inter-element referencing
                Control0..1
                Typestring
                Is Modifierfalse
                XML FormatIn the XML format, this property is represented as an attribute.
                Summaryfalse
                126. Immunization.site.extension
                Definition

                May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                ShortAdditional content defined by implementations
                Comments

                There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                Control0..*
                TypeExtension
                Is Modifierfalse
                Summaryfalse
                Alternate Namesextensions, user content
                Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                SlicingThis element introduces a set of slices on Immunization.site.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                • value @ url
                • 128. Immunization.site.coding
                  Definition

                  A reference to a code defined by a terminology system.

                  ShortCode defined by a terminology system
                  Comments

                  Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

                  Control1..1
                  TypeCoding
                  Is Modifierfalse
                  Summarytrue
                  Requirements

                  Allows for alternative encodings within a code system, and translations to other code systems.

                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  130. Immunization.site.text
                  Definition

                  A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.

                  ShortPlain text representation of the concept
                  Comments

                  Very often the text is the same as a displayName of one of the codings.

                  Control0..1
                  Typestring
                  Is Modifierfalse
                  Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                  Summarytrue
                  Requirements

                  The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  132. Immunization.route
                  Definition

                  The path by which the vaccine product is taken into the body.

                  ShortThe route of administation of the vaccine.
                  Control0..1
                  BindingThe codes SHOULD be taken from AIR Route of Administration
                  (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-route-code)
                  TypeCodeableConcept
                  Is Modifierfalse
                  Summaryfalse
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  134. Immunization.route.id
                  Definition

                  Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                  ShortUnique id for inter-element referencing
                  Control0..1
                  Typestring
                  Is Modifierfalse
                  XML FormatIn the XML format, this property is represented as an attribute.
                  Summaryfalse
                  136. Immunization.route.extension
                  Definition

                  May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                  ShortAdditional content defined by implementations
                  Comments

                  There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                  Control0..*
                  TypeExtension
                  Is Modifierfalse
                  Summaryfalse
                  Alternate Namesextensions, user content
                  Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                  ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                  SlicingThis element introduces a set of slices on Immunization.route.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                  • value @ url
                  • 138. Immunization.route.coding
                    Definition

                    A reference to a code defined by a terminology system.

                    ShortCode defined by a terminology system
                    Comments

                    Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

                    Control1..1
                    TypeCoding
                    Is Modifierfalse
                    Summarytrue
                    Requirements

                    Allows for alternative encodings within a code system, and translations to other code systems.

                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    140. Immunization.route.text
                    Definition

                    A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.

                    ShortPlain text representation of the concept
                    Comments

                    Very often the text is the same as a displayName of one of the codings.

                    Control0..1
                    Typestring
                    Is Modifierfalse
                    Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                    Summarytrue
                    Requirements

                    The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    142. Immunization.doseQuantity
                    Definition

                    The quantity of vaccine product that was administered.

                    ShortAmount of vaccine administered
                    Control0..0
                    TypeQuantity(SimpleQuantity)
                    Is Modifierfalse
                    Summaryfalse
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    144. Immunization.performer
                    Definition

                    Indicates who performed the immunization event.

                    ShortWho performed event
                    Control0..*
                    TypeBackboneElement
                    Is Modifierfalse
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    146. Immunization.performer.id
                    Definition

                    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                    ShortUnique id for inter-element referencing
                    Control0..1
                    Typestring
                    Is Modifierfalse
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    148. Immunization.performer.extension
                    Definition

                    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                    ShortAdditional content defined by implementations
                    Comments

                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                    Control0..*
                    TypeExtension
                    Is Modifierfalse
                    Summaryfalse
                    Alternate Namesextensions, user content
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                    150. Immunization.performer.modifierExtension
                    Definition

                    May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                    Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                    ShortExtensions that cannot be ignored even if unrecognized
                    Comments

                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                    Control0..*
                    TypeExtension
                    Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                    Summarytrue
                    Requirements

                    Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                    Alternate Namesextensions, user content, modifiers
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                    152. Immunization.performer.function
                    Definition

                    Describes the type of performance (e.g. ordering provider, administering provider, etc.).

                    ShortWhat type of performance was done
                    Control0..1
                    BindingUnless not suitable, these codes SHALL be taken from AIR Performer Health Worker Function
                    (extensible to https://nzhts.digital.health.nz/fhir/ValueSet/air-performer-health-worker-function-code)
                    TypeCodeableConcept
                    Is Modifierfalse
                    Summarytrue
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    154. Immunization.performer.function.id
                    Definition

                    Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                    ShortUnique id for inter-element referencing
                    Control0..1
                    Typestring
                    Is Modifierfalse
                    XML FormatIn the XML format, this property is represented as an attribute.
                    Summaryfalse
                    156. Immunization.performer.function.extension
                    Definition

                    May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                    ShortAdditional content defined by implementations
                    Comments

                    There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                    Control0..*
                    TypeExtension
                    Is Modifierfalse
                    Summaryfalse
                    Alternate Namesextensions, user content
                    Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                    ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                    SlicingThis element introduces a set of slices on Immunization.performer.function.extension. The slices areUnordered and Open, and can be differentiated using the following discriminators:
                    • value @ url
                    • 158. Immunization.performer.function.coding
                      Definition

                      A reference to a code defined by a terminology system.

                      ShortCode defined by a terminology system
                      Comments

                      Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

                      Control1..1
                      TypeCoding
                      Is Modifierfalse
                      Summarytrue
                      Requirements

                      Allows for alternative encodings within a code system, and translations to other code systems.

                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      160. Immunization.performer.function.text
                      Definition

                      A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.

                      ShortPlain text representation of the concept
                      Comments

                      Very often the text is the same as a displayName of one of the codings.

                      Control0..1
                      Typestring
                      Is Modifierfalse
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      Summarytrue
                      Requirements

                      The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      162. Immunization.performer.actor
                      Definition

                      The practitioner or organization who performed the action.

                      ShortIndividual or organization who was performing
                      Comments

                      When the individual practitioner who performed the action is known, it is best to send.

                      Control1..1
                      TypeReference(AIR Practitioner Profile)
                      Is Modifierfalse
                      Summarytrue
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      164. Immunization.note
                      Definition

                      Extra information about the immunization that is not conveyed by the other attributes.

                      ShortAdditional immunization notes
                      Control0..0
                      TypeAnnotation
                      Is Modifierfalse
                      Summarytrue
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      166. Immunization.reasonCode
                      Definition

                      Reasons why the vaccine was administered.

                      ShortWhy immunization occurred
                      Control0..*
                      BindingThe codes SHOULD be taken from AIR Indication Code
                      (preferred to https://nzhts.digital.health.nz/fhir/ValueSet/air-indication-code)
                      TypeCodeableConcept
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      168. Immunization.reasonReference
                      Definition

                      Condition, Observation or DiagnosticReport that supports why the immunization was administered.

                      ShortWhy immunization occurred
                      Control0..*
                      TypeReference(Condition, Observation, DiagnosticReport)
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      170. Immunization.isSubpotent
                      Definition

                      Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent.

                      ShortDose potency
                      Comments

                      Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.

                      Control0..0
                      Typeboolean
                      Is Modifiertrue because This element is labeled as a modifier because an immunization event with a subpotent vaccine doesn't protect the patient the same way as a potent dose.
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      Summarytrue
                      Meaning if MissingBy default, a dose should be considered to be potent.
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      172. Immunization.subpotentReason
                      Definition

                      Reason why a dose is considered to be subpotent.

                      ShortReason for being subpotent
                      Control0..0
                      BindingFor example codes, see ImmunizationSubpotentReason
                      (example to http://hl7.org/fhir/ValueSet/immunization-subpotent-reason|4.0.1)

                      The reason why a dose is considered to be subpotent.

                      TypeCodeableConcept
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      174. Immunization.education
                      Definition

                      Educational material presented to the patient (or guardian) at the time of vaccine administration.

                      ShortEducational material presented to patient
                      Control0..0
                      TypeBackboneElement
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      imm-1: One of documentType or reference SHALL be present (documentType.exists() or reference.exists())
                      183. Immunization.programEligibility
                      Definition

                      Indicates a patient's eligibility for a funding program.

                      ShortPatient eligibility for a vaccination program
                      Control0..0
                      BindingFor example codes, see ImmunizationProgramEligibility
                      (example to http://hl7.org/fhir/ValueSet/immunization-program-eligibility|4.0.1)

                      The patient's eligibility for a vaccation program.

                      TypeCodeableConcept
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      185. Immunization.fundingSource
                      Definition

                      Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered).

                      ShortFunding source for the vaccine
                      Control0..0
                      BindingFor example codes, see ImmunizationFundingSource
                      (example to http://hl7.org/fhir/ValueSet/immunization-funding-source|4.0.1)

                      The source of funding used to purchase the vaccine administered.

                      TypeCodeableConcept
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      187. Immunization.reaction
                      Definition

                      Categorical data indicating that an adverse event is associated in time to an immunization.

                      ShortDetails of a reaction that follows immunization
                      Comments

                      A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.

                      Control0..0
                      TypeBackboneElement
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      195. Immunization.protocolApplied
                      Definition

                      The protocol (set of recommendations) being followed by the provider who administered the dose.

                      ShortProtocol followed by the provider
                      Control0..1
                      TypeBackboneElement
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      197. Immunization.protocolApplied.id
                      Definition

                      Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

                      ShortUnique id for inter-element referencing
                      Control0..1
                      Typestring
                      Is Modifierfalse
                      XML FormatIn the XML format, this property is represented as an attribute.
                      Summaryfalse
                      199. Immunization.protocolApplied.extension
                      Definition

                      May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

                      ShortAdditional content defined by implementations
                      Comments

                      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                      Control0..*
                      TypeExtension
                      Is Modifierfalse
                      Summaryfalse
                      Alternate Namesextensions, user content
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                      201. Immunization.protocolApplied.modifierExtension
                      Definition

                      May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

                      Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

                      ShortExtensions that cannot be ignored even if unrecognized
                      Comments

                      There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

                      Control0..*
                      TypeExtension
                      Is Modifiertrue because Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
                      Summarytrue
                      Requirements

                      Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

                      Alternate Namesextensions, user content, modifiers
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
                      203. Immunization.protocolApplied.series
                      Definition

                      One possible path to achieve presumed immunity against a disease - within the context of an authority.

                      ShortName of vaccine series
                      Control0..1
                      Typestring
                      Is Modifierfalse
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      205. Immunization.protocolApplied.authority
                      Definition

                      Indicates the authority who published the protocol (e.g. ACIP) that is being followed.

                      ShortWho is responsible for publishing the recommendations
                      Control0..1
                      TypeReference(Organization)
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      207. Immunization.protocolApplied.targetDisease
                      Definition

                      The vaccine preventable disease the dose is being administered against.

                      ShortVaccine preventatable disease being targetted
                      Control0..*
                      BindingFor example codes, see ImmunizationTargetDiseaseCodes
                      (example to http://hl7.org/fhir/ValueSet/immunization-target-disease|4.0.1)

                      The vaccine preventable disease the dose is being administered for.

                      TypeCodeableConcept
                      Is Modifierfalse
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      209. Immunization.protocolApplied.doseNumber[x]
                      Definition

                      Nominal position in a series.

                      ShortDose number within series
                      Comments

                      The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).

                      Control1..1
                      Typestring
                      [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                      Is Modifierfalse
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
                      211. Immunization.protocolApplied.seriesDoses[x]
                      Definition

                      The recommended number of doses to achieve immunity.

                      ShortRecommended number of doses for immunity
                      Comments

                      The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).

                      Control0..1
                      TypeChoice of: positiveInt, string
                      [x] NoteSeeChoice of Data Typesfor further information about how to use [x]
                      Is Modifierfalse
                      Primitive ValueThis primitive element may be present, or absent, or replaced by an extension
                      Summaryfalse
                      Invariantsele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))