# Data Quality Rules - Aotearoa Immunisation Register (AIR) FHIR Implementation Guide (API-V1) v1.28.0-SNAPSHOT

* [**Table of Contents**](toc.md)
* **Data Quality Rules**

## 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

| | | |
| :--- | :--- | :--- |
| 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

| | | | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 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](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.](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-idhttps://standards.digital.health.nz/ns/hpi-person-idhttps://standards.digital.health.nz/ns/medical-council-idhttps://standards.digital.health.nz/ns/nursing-council-idhttps://standards.digital.health.nz/ns/air-cir-idhttps://standards.digital.health.nz/ns/pharmacy-council-idhttps://standards.digital.health.nz/ns/paramedic-council-idhttps://standards.digital.health.nz/ns/midwifery-council-idhttps://HCAA health worker identification number must pass the checksum criteria when the health worker system is[https://standards.digital.health.nz/ns/hpi-person-id](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,](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](https://standards.digital.health.nz/ns/air-vhw-id)or[https://standards.digital.health.nz/ns/medical-council-id](https://standards.digital.health.nz/ns/medical-council-id)or[https://standards.digital.health.nz/ns/nursing-council-id](https://standards.digital.health.nz/ns/nursing-council-id)or[https://standards.digital.health.nz/ns/air-cir-id](https://standards.digital.health.nz/ns/air-cir-id)or[https://standards.digital.health.nz/ns/pharmacy-council-id](https://standards.digital.health.nz/ns/pharmacy-council-id)or[https://standards.digital.health.nz/ns/paramedic-council-id](https://standards.digital.health.nz/ns/paramedic-council-id)or[https://standards.digital.health.nz/ns/midwifery-council-id](https://standards.digital.health.nz/ns/midwifery-council-id)or[https://HCA](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. |

