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

## Data Quality Rules

# Immunisation Event Data Quality Rules

### Summary

This page describes all of the validation rules, and quality indications, that will be applied when an Immunisation event is being created or updated within ImmSOT.

### Quality Indication

Indication | Description | Weighting
--- | --- | ---
1 - MINOR | Where a data element that fails validation does not materially impact AIR’s ability to assess vaccination state against the schedule | 1
2 - MODERATE | Where a data element that fails validation materially impacts AIR’s ability to assess vaccination state against the schedule or undermines the auditability of the record | 2
3 - MAJOR | Where the vaccine can not be determined or where a data element that fails validation may mean sub-potent delivery. | 3

### Rules

Rule Name | Field (Database Field name) | FHIR API Name | Run Criteria | Violation Code | Weighting | Quality Matrix Rule | Validation Message
--- | --- | --- | --- | --- | --- | --- | ---
valid_nhi | immunisation_event.nhi | patient | Status is ‘Completed' or 'not done’ | 30 | 3 - major | An Immunisation Event must always be associated to a consumer record. | The NHI number provided does not exist in the NHI. An immunisation event must include a valid NHI number.
recognised_vaccine_code | vaccine_code | vaccineCode | Status is ‘Completed' or 'not done’ | 170 | 3 - major | A vaccine code must be part of the air-vaccine-product-code value set. | The vaccine code is unrecognised. A vaccine code should be part of the air-vaccine-product-code value set.
valid_vaccine_expiration_date | expiration_date | expirationDate | Status is 'Completed' | 270 | 3 - major | A vaccine batch expiry date must not be before the immunisation event date. | An immunisation event should have a vaccine batch expiry date, and the vaccine batch expiry date should not be before the immunisation event date.
valid_diluent_expiration_date | diluent_expiration_date | air-diluent.diluentExpiryDate | Status is 'Completed' | 500 | 3 - major | A diluent expiry date must not be before the immunisation event date. | An immunisation event should have a diluent expiry date, and the diluent expiry date should not be before the immunisation event date.
valid_vaccine_expiration_date_current_year | expiration_date | expirationDate | Status is ‘Completed’ | 280 | 1 - minor | A vaccine batch expiry date must not be before the immunisation event date. | The vaccine batch expiry date should not be before the immunisation event date.
valid_diluent_expiration_date_current_year | diluent_expiration_date | air-diluent.diluentExpiryDate | Status is ‘Completed’ | 520 | 1 - minor | A diluent expiry date must not be before the immunisation event date. | An immunisation event should have a diluent expiry date, and the diluent expiry date should not be before the immunisation event date.
esam | N/A | N/A | N/A | N/A | N/A | N/A | N/A
valid_facility | facility_id | location.managingOrganisation | Status is ‘Completed' or 'not done’ | 390 | 1 - minor | A facility must pass the facility checksum criteria. A facility ID must begin with “F”. The facility system must be https://standards.digital.health.nz/ns/hpi-facility-id | The facility ID / system is unrecognised. The facility ID should begin with "F", it should pass the facility checksum criteria, and the facility system must be https://standards.digital.health.nz/ns/hpi-facility-id.
recognised_route_code | route_code | route | Status is 'Completed' | 290 | 1 - minor | A route code must be part of the air-route-code value set | The route code is unrecognised. A route code should be part of the air-route-code value set.
recognised_body_site | body_site_code | site.coding[].code | Status is 'Completed' | 310 | 1 - minor | A body site code must be part of the air-site-code value set | The body site code is unrecognised. A body site code should be part of the air-site-code value set.
recognised_health_worker_function_code | health_worker_function | performer[].function | Status is ‘Completed' or 'not done’ | 470 | 1 - minor | A health worker function value must be part of the air-vaccinator-function-code value set. | One or more health worker function value is unrecognised. A health worker function value should be part of the air-vaccinator-function-code value set.
valid_health_worker_id | identification_number | performer[].actor | Status is ‘completed’ or ‘not done’ | 430 | 2 - moderate | The health worker system must be one of the following: https://standards.digital.health.nz/ns/air-vhw-id https://standards.digital.health.nz/ns/hpi-person-id https://standards.digital.health.nz/ns/medical-council-id https://standards.digital.health.nz/ns/nursing-council-id https://standards.digital.health.nz/ns/air-cir-id https://standards.digital.health.nz/ns/pharmacy-council-id https://standards.digital.health.nz/ns/paramedic-council-id https://standards.digital.health.nz/ns/midwifery-council-id https://HCA A health worker identification number must pass the checksum criteria when the health worker system is https://standards.digital.health.nz/ns/hpi-person-id | One or more health worker is unrecognised. An immunisation event should have a health worker identification number that passes the checksum criteria when the system is https://standards.digital.health.nz/ns/hpi-person-id, or it should have a health worker identification number and the system https://standards.digital.health.nz/ns/air-vhw-id or https://standards.digital.health.nz/ns/medical-council-id or https://standards.digital.health.nz/ns/nursing-council-id or https://standards.digital.health.nz/ns/air-cir-id or https://standards.digital.health.nz/ns/pharmacy-council-id or https://standards.digital.health.nz/ns/paramedic-council-id or https://standards.digital.health.nz/ns/midwifery-council-id or https://HCA
recognised_indication_code | reasonCode.value | code | Status is 'Completed' or 'not done’ | 150 | 2 - moderate | An indication code must be part of the air-indication-code value set. | One or more indication code is unrecognised. An indication code should be part of the air-indication-code value set.
required_vaccine_batch_number | lot_number | lotNumber | Status is ‘Completed' AND Status Reason is not ‘Overseas Vaccination’ or ‘Historic Vaccination’ | 250 | 1 - minor | An immunisation event must have a vaccine batch number | An immunisation event should have a vaccine batch number.
recognised_status_reason_code | status_reason_code | statusReason | Status is ‘Completed’ or ‘not done’ | 510 | 2 - Moderate | A status reason must be part of the air-status-reason-code value set | The status reason is unrecognised. A status reason should be part of the air-status-reason-code value set.
immunisation_event_date_after_DOD | immunisation_event_date | occurrence | Status is ‘Completed’ or ‘not done’ | 710 | 2 - Moderate | Where a consumer has a date of death, the Immunisation occurrence date must not be after | The immunisation event date is after the consumer’s date of death
immunisation_event_date_before_DOB | immunisation_event_date | occurrence | Status is ‘Completed’ or ‘not done’ | 720 | 2 - Moderate | The Immunisation occurrence date must be on or after the consumer’s date of birth | The immunisation event date is before the consumer’s date of birth
immunisation_event_future_date | immunisation_event_date | occurrence | Status is ‘Completed’ or ‘not done’ | 750 | 2 - Moderate | The immunisation occurrence date cannot be in the future | The immunisation event date cannot be in the future
duplicates | N/A | N/A | Status is ‘Completed’ or ‘not done’ | 800 | N/A - Duplicates do not have a weighting and do not contribute to scoring | Two or more immunisation events must not match on consumer, vaccine code, and occurrence date (excluding the time component). | This Immunization resource has been identified as a duplicate of existing Immunization resources
serology_observation_date_future | serology_observation.datetime |  | Immunisation Event Status is ‘Completed’ or ‘not done’ | 610 | 2 - Moderate | The serology observation date cannot be in the future | The serology observation date cannot be in the future
recognised_ relationship _code | imms.relationship.code | AIRRelatedPerson.relationship.coding.code | Status is ‘Completed' or 'not done’ |  | 1 - minor | A relationship code should be part of the air-related-person-relationship value set | The related person relationship code is unrecognised. A relationship code should be part of the air-related-person-relationship value set.