HL7® FHIR® New Zealand Base Implementation Guide
3.1.0 - Draft

HL7® FHIR® New Zealand Base Implementation Guide, published by HL7 New Zealand. This guide is not an authorized publication; it is the continuous build for version 3.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/daniel-thomson/nzbase/ and changes regularly. See the Directory of published versions

## Resource Profile: Coverage resource for use in NZ (Trial use)

Official URL: http://hl7.org.nz/fhir/StructureDefinition/NzCoverage | Version: 1.0.0
Draft as of 2026-05-21 | Computable Name: NzCoverage

Coverage resource for use in NZ (Trial use)

Trial use profile on Coverage for NZ use. Primarily changing the type valueset. Inclusion of the profile in future IG versions will depend on Implementer feedback.

Usages:

- Examples for this Profile: Coverage/CoverageCSC, Coverage/CoverageGMS and Coverage/CoverageHUHC

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
--- | --- | --- | --- | ---
Coverage |  | 0..* | Coverage | Insurance or medical plan or a payment agreement
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
type | Σ | 0..1 | CodeableConcept | Coverage category such as medical or accident Binding: Coverage Type (extensible)
beneficiary | Σ | 1..1 | Reference(Patient) | Plan beneficiary
payor | Σ | 1..* | Reference(Organization | Patient | RelatedPerson) | Issuer of the policy
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Coverage.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
Coverage.type | Base | extensible | Coverage Type | 📦1.1.0 | This IG

#### Constraints

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Coverage |  | 0..* | Coverage | Insurance or medical plan or a payment agreement
type |  | 0..1 | CodeableConcept | Coverage category such as medical or accident Binding: Coverage Type (extensible)
class |  |  |  |
type |  | 1..1 | CodeableConcept | Type of class such as 'group' or 'plan' Binding: Coverage Category (extensible)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Coverage.type | Base | extensible | Coverage Type | 📦1.1.0 | This IG
Coverage.class.type | Base | extensible | Coverage Category | 📦1.0.0 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Coverage |  | 0..* | Coverage | Insurance or medical plan or a payment agreement
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 | Business Identifier for the coverage
status | ?!Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
type | Σ | 0..1 | CodeableConcept | Coverage category such as medical or accident Binding: Coverage Type (extensible)
policyHolder | Σ | 0..1 | Reference(Patient | RelatedPerson | Organization) | Owner of the policy
subscriber | Σ | 0..1 | Reference(Patient | RelatedPerson) | Subscriber to the policy
subscriberId | Σ | 0..1 | string | ID assigned to the subscriber
beneficiary | Σ | 1..1 | Reference(Patient) | Plan beneficiary
dependent | Σ | 0..1 | string | Dependent number
relationship |  | 0..1 | CodeableConcept | Beneficiary relationship to the subscriber Binding: SubscriberRelationshipCodes (extensible): The relationship between the Subscriber and the Beneficiary (insured/covered party/patient).
period | Σ | 0..1 | Period | Coverage start and end dates
payor | Σ | 1..* | Reference(Organization | Patient | RelatedPerson) | Issuer of the policy
class |  | 0..* | BackboneElement | Additional coverage classifications
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 1..1 | CodeableConcept | Type of class such as 'group' or 'plan' Binding: Coverage Category (extensible)
value | Σ | 1..1 | string | Value associated with the type
name | Σ | 0..1 | string | Human readable description of the type and value
order | Σ | 0..1 | positiveInt | Relative order of the coverage
network | Σ | 0..1 | string | Insurer network
costToBeneficiary |  | 0..* | BackboneElement | Patient payments for services/products
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..1 | CodeableConcept | Cost category Binding: CoverageCopayTypeCodes (extensible): The types of services to which patient copayments are specified.
value[x] | Σ | 1..1 |  | The amount or percentage due from the beneficiary
valueQuantity |  |  | Quantity(SimpleQuantity) |
valueMoney |  |  | Money |
exception |  | 0..* | BackboneElement | Exceptions for patient payments
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 1..1 | CodeableConcept | Exception category Binding: ExampleCoverageFinancialExceptionCodes (example): The types of exceptions from the part or full value of financial obligations such as copays.
period | Σ | 0..1 | Period | The effective period of the exception
subrogation |  | 0..1 | boolean | Reimbursement to insurer
contract |  | 0..* | Reference(Contract) | Contract details
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Coverage.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Coverage.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
Coverage.type | Base | extensible | Coverage Type | 📦1.1.0 | This IG
Coverage.relationship | Base | extensible | SubscriberPolicyholder Relationship Codes | 📍4.0.1 | FHIR Std.
Coverage.class.type | Base | extensible | Coverage Category | 📦1.0.0 | This IG
Coverage.costToBeneficiary.​type | Base | extensible | Coverage Copay Type Codes | 📍4.0.1 | FHIR Std.
Coverage.costToBeneficiary.​exception.type | Base | example | Example Coverage Financial Exception Codes | 📍4.0.1 | FHIR Std.

#### Constraints

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

Summary

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Coverage |  | 0..* | Coverage | Insurance or medical plan or a payment agreement
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
type | Σ | 0..1 | CodeableConcept | Coverage category such as medical or accident Binding: Coverage Type (extensible)
beneficiary | Σ | 1..1 | Reference(Patient) | Plan beneficiary
payor | Σ | 1..* | Reference(Organization | Patient | RelatedPerson) | Issuer of the policy
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Coverage.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
Coverage.type | Base | extensible | Coverage Type | 📦1.1.0 | This IG

#### Constraints

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Coverage |  | 0..* | Coverage | Insurance or medical plan or a payment agreement
type |  | 0..1 | CodeableConcept | Coverage category such as medical or accident Binding: Coverage Type (extensible)
class |  |  |  |
type |  | 1..1 | CodeableConcept | Type of class such as 'group' or 'plan' Binding: Coverage Category (extensible)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Coverage.type | Base | extensible | Coverage Type | 📦1.1.0 | This IG
Coverage.class.type | Base | extensible | Coverage Category | 📦1.0.0 | This IG

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Coverage |  | 0..* | Coverage | Insurance or medical plan or a payment agreement
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 | Business Identifier for the coverage
status | ?!Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.
type | Σ | 0..1 | CodeableConcept | Coverage category such as medical or accident Binding: Coverage Type (extensible)
policyHolder | Σ | 0..1 | Reference(Patient | RelatedPerson | Organization) | Owner of the policy
subscriber | Σ | 0..1 | Reference(Patient | RelatedPerson) | Subscriber to the policy
subscriberId | Σ | 0..1 | string | ID assigned to the subscriber
beneficiary | Σ | 1..1 | Reference(Patient) | Plan beneficiary
dependent | Σ | 0..1 | string | Dependent number
relationship |  | 0..1 | CodeableConcept | Beneficiary relationship to the subscriber Binding: SubscriberRelationshipCodes (extensible): The relationship between the Subscriber and the Beneficiary (insured/covered party/patient).
period | Σ | 0..1 | Period | Coverage start and end dates
payor | Σ | 1..* | Reference(Organization | Patient | RelatedPerson) | Issuer of the policy
class |  | 0..* | BackboneElement | Additional coverage classifications
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 1..1 | CodeableConcept | Type of class such as 'group' or 'plan' Binding: Coverage Category (extensible)
value | Σ | 1..1 | string | Value associated with the type
name | Σ | 0..1 | string | Human readable description of the type and value
order | Σ | 0..1 | positiveInt | Relative order of the coverage
network | Σ | 0..1 | string | Insurer network
costToBeneficiary |  | 0..* | BackboneElement | Patient payments for services/products
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 0..1 | CodeableConcept | Cost category Binding: CoverageCopayTypeCodes (extensible): The types of services to which patient copayments are specified.
value[x] | Σ | 1..1 |  | The amount or percentage due from the beneficiary
valueQuantity |  |  | Quantity(SimpleQuantity) |
valueMoney |  |  | Money |
exception |  | 0..* | BackboneElement | Exceptions for patient payments
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | Σ | 1..1 | CodeableConcept | Exception category Binding: ExampleCoverageFinancialExceptionCodes (example): The types of exceptions from the part or full value of financial obligations such as copays.
period | Σ | 0..1 | Period | The effective period of the exception
subrogation |  | 0..1 | boolean | Reimbursement to insurer
contract |  | 0..* | Reference(Contract) | Contract details
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Coverage.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Coverage.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
Coverage.type | Base | extensible | Coverage Type | 📦1.1.0 | This IG
Coverage.relationship | Base | extensible | SubscriberPolicyholder Relationship Codes | 📍4.0.1 | FHIR Std.
Coverage.class.type | Base | extensible | Coverage Category | 📦1.0.0 | This IG
Coverage.costToBeneficiary.​type | Base | extensible | Coverage Copay Type Codes | 📍4.0.1 | FHIR Std.
Coverage.costToBeneficiary.​exception.type | Base | example | Example Coverage Financial Exception Codes | 📍4.0.1 | FHIR Std.

#### Constraints

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

Summary

Other representations of profile: CSV, Excel, Schematron