Data Dictionary

This section defines all variables collected on the MOH Quality Assurance Register: Initial Test (CM-QAI) — their names, labels, types, formats, constraints, OCR models, and required status. The form captures 15 patient/client rows per page plus a shared page-level header.


Summary

Variable Summary — CM-QAI EN v1.2
Category Count
Total variables (per row) 21
Page-level header variables 6
Required (per row) 11
Optional (per row) 8
Conditionally required (per row) 1
OCR-processed (digit boxes or checkboxes) 19
Handwritten only (freetext — not extracted by OCR) 2
Note

Records per form: 15 patient rows per scanned page. All per-row variables repeat 15 times on each physical form. Page-level fields (testing kit expiry dates, discard page) appear once in the header.


Identifiers

Important

The patient/client code links this record to the patient across registers and over time. Errors in this field break cross-form linkage. Always verify the code against the source register.

The clientCode is a composite identifier structured as Book, Record, and Check sub-components, printed as separate box groups on the physical form. No check-digit algorithm is documented for this form version. Missing values are permitted for anonymous testing scenarios.


Page-Level Header Fields

These fields appear once per page in the form header and apply to all 15 rows on that page. They document the testing kits in use at the time of service.


Patient Identification & Visit

These fields identify each patient/client row and record the date of service.

Note

The visit date is split across two fields: visitDay (2 boxes, date_dd model) and visitDate (4 boxes covering month and year). Both must be combined in the data pipeline to reconstruct the full DD/MM/YY date.


Demographics

Basic patient demographic characteristics recorded at the time of testing.


Service Classification

These fields classify how and where the patient accessed HIV testing services. Codes are printed in the form legend.

Note

Legend codes for Entry Point (A), Screening Strategy (B), and Risk Category (C) are printed directly on the form header. Data entry staff must refer to the printed legend when completing these fields.


Screening Test Results

Results of the HIV, Syphilis, and Hepatitis B screening tests. Each result is captured as one of three mutually exclusive options: NR (Not Reactive), R (Reactive), or INV (Invalid).

Important

Result interpretation note (printed on form): At this stage, NR = NEGATIVE final result for HIV, Syphilis, and Hepatitis B; R = POSITIVE final result for Syphilis and Hepatitis B only.


Provider & Preventive Services

Records the identity of the provider and the preventive services offered to HIV-negative clients.

Warning

Conditional field — preventiveServices: This field should be completed only when the HIV Test-1 result (screeningTest1Result) is NR (Not Reactive). The field is always printed on the paper form but must remain blank for reactive or invalid results.


Quality Control & Row Management

Administrative fields for supervisors to flag data quality issues at the row or page level.

Note

Discard logic: discardRow flags a single patient row for exclusion; discardPage (header field) flags the entire page of 15 rows. Both are checked during data pipeline processing before analysis.


OCR Model Reference

The table below summarises all OCR models used on this form and the character sets they recognise.

OCR Models — CM-QAI EN v1.2
OCR Model Characters Detected Use on This Form
date_dd Integer 01–31 (2 boxes) Day of visit (visitDay), HIV Test-1 expiry day
date_mm Integer 01–12 (2 boxes) Month component of visit date and kit expiry dates
date_nearby_yy 2-digit year: current year ± 1 Year component of visit date
int Digits 0–9 Year component of kit expiry dates (full YY)
single Oval: marked (X) or unmarked All checkbox/bubble fields (sex, results, services, etc.)
string (implied) Letters A–Z Provider initials
int (implied) Digits 0–9 Age, entry point, screening strategy, risk category
Handwritten Free text — not extracted by OCR Syphilis kit name, Hepatitis B kit name
Note

🤖 Verification behaviour: All fields on this form have hide = "certain". This means a field is automatically hidden from the human verifier when the OCR engine is confident in its reading. Fields with low-confidence OCR scores are presented to the verifier for manual correction.


Generated automatically from CM-QAI EN v1.2 source files. Last updated: 2026-06-30.