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

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

## Resource Profile: AIR Related Person Profile

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

This profile of the FHIR R4 RelatedPerson resource includes only the fields used in AIR. The AIR use of this profile specifically includes the use cases covered by the NK1 segment in NIR HL7v2 messaging.

Usages:

- Refer to this Profile: AIR Related Person

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RelatedPerson |  | 0..* | RelatedPerson | A person that is related to a patient, but who is not a direct target of care
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
active | ?!Σ | 0..1 | boolean | Whether this related person's record is in active use
patient | Σ | 1..1 | Reference(Patient) | The patient this person is related to
relationship | Σ | 0..* | CodeableConcept | The nature of the relationship Binding: AIR Related Person Relationship Code (preferred)
address | Σ | 0..* | NzAddress | Address where the related person can be contacted or visited
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
RelatedPerson.relationship | Base | preferred | AIR Related Person Relationship Code | 📦2.1.0 | This IG
RelatedPerson.communication.​language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | RelatedPerson | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | RelatedPerson | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | RelatedPerson | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from RelatedPerson

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RelatedPerson |  | 0..* | RelatedPerson | A person that is related to a patient, but who is not a direct target of care
relationship |  | 0..* | CodeableConcept | The nature of the relationship Binding: AIR Related Person Relationship Code (preferred)
gender |  | 0..0 |  | male | female | other | unknown
birthDate |  | 0..0 |  | The date on which the related person was born
address |  | 0..* | NzAddress | Address where the related person can be contacted or visited
photo |  | 0..0 |  | Image of the person
period |  | 0..0 |  | Period of time that this relationship is considered valid
communication |  | 0..0 |  | A language which may be used to communicate with about the patient's health
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
RelatedPerson.relationship | Base | preferred | AIR Related Person Relationship Code | 📦2.1.0 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RelatedPerson |  | 0..* | RelatedPerson | A person that is related to a patient, but who is not a direct target of care
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | A human identifier for this person
active | ?!Σ | 0..1 | boolean | Whether this related person's record is in active use
patient | Σ | 1..1 | Reference(Patient) | The patient this person is related to
relationship | Σ | 0..* | CodeableConcept | The nature of the relationship Binding: AIR Related Person Relationship Code (preferred)
name | Σ | 0..* | HumanName | A name associated with the person
telecom | Σ | 0..* | ContactPoint | A contact detail for the person
address | Σ | 0..* | NzAddress | Address where the related person can be contacted or visited
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
RelatedPerson.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
RelatedPerson.relationship | Base | preferred | AIR Related Person Relationship Code | 📦2.1.0 | This IG
RelatedPerson.communication.​language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | RelatedPerson | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | RelatedPerson | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | RelatedPerson | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from RelatedPerson

Summary

Prohibited: 5 elements

Structures

This structure refers to these other structures:

- Common NZ Address datatype (http://hl7.org.nz/fhir/StructureDefinition/NzAddress)

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RelatedPerson |  | 0..* | RelatedPerson | A person that is related to a patient, but who is not a direct target of care
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
active | ?!Σ | 0..1 | boolean | Whether this related person's record is in active use
patient | Σ | 1..1 | Reference(Patient) | The patient this person is related to
relationship | Σ | 0..* | CodeableConcept | The nature of the relationship Binding: AIR Related Person Relationship Code (preferred)
address | Σ | 0..* | NzAddress | Address where the related person can be contacted or visited
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
RelatedPerson.relationship | Base | preferred | AIR Related Person Relationship Code | 📦2.1.0 | This IG
RelatedPerson.communication.​language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | RelatedPerson | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | RelatedPerson | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | RelatedPerson | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from RelatedPerson

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RelatedPerson |  | 0..* | RelatedPerson | A person that is related to a patient, but who is not a direct target of care
relationship |  | 0..* | CodeableConcept | The nature of the relationship Binding: AIR Related Person Relationship Code (preferred)
gender |  | 0..0 |  | male | female | other | unknown
birthDate |  | 0..0 |  | The date on which the related person was born
address |  | 0..* | NzAddress | Address where the related person can be contacted or visited
photo |  | 0..0 |  | Image of the person
period |  | 0..0 |  | Period of time that this relationship is considered valid
communication |  | 0..0 |  | A language which may be used to communicate with about the patient's health
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
RelatedPerson.relationship | Base | preferred | AIR Related Person Relationship Code | 📦2.1.0 | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
RelatedPerson |  | 0..* | RelatedPerson | A person that is related to a patient, but who is not a direct target of care
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | A human identifier for this person
active | ?!Σ | 0..1 | boolean | Whether this related person's record is in active use
patient | Σ | 1..1 | Reference(Patient) | The patient this person is related to
relationship | Σ | 0..* | CodeableConcept | The nature of the relationship Binding: AIR Related Person Relationship Code (preferred)
name | Σ | 0..* | HumanName | A name associated with the person
telecom | Σ | 0..* | ContactPoint | A contact detail for the person
address | Σ | 0..* | NzAddress | Address where the related person can be contacted or visited
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
RelatedPerson.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
RelatedPerson.relationship | Base | preferred | AIR Related Person Relationship Code | 📦2.1.0 | This IG
RelatedPerson.communication.​language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | RelatedPerson | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | RelatedPerson | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | RelatedPerson | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from RelatedPerson

Summary

Prohibited: 5 elements

Structures

This structure refers to these other structures:

- Common NZ Address datatype (http://hl7.org.nz/fhir/StructureDefinition/NzAddress)

Other representations of profile: CSV, Excel, Schematron