Skip to content
All projects
Core engineering libraryData Manager

data_quality_manager.py — Data-Quality Engine

BCHPR · used by 11 projects · 2023 – present

REDCap validates one field at a time, at entry. It cannot express “this specimen date precedes the enrolment date on a different form”, or “these two record IDs are the same participant”. This 14,274-line engine does, and it remembers — every issue it raises has an open date, a close date, and a resolution time.

Highlights

  • Seven-dimension quality taxonomy (completeness, validity, accuracy, consistency, timeliness, uniqueness, integrity) with 35 error categories mapped onto it.
  • Fluent QueryBuilder over a declarative, immutable schema — referencing an undeclared field fails at build time rather than silently yielding null.
  • Six selectable scoring algorithms, defaulting to defect density (failures per opportunity to fail) rather than ticket-closure velocity.
  • SQLite tuned for SharePoint-synced drives: WAL where safe, DELETE journaling where it is not, busy timeouts, and configurable integrity-check depth — a full check on a multi-GB tracker can stall for tens of minutes.
  • History auto-pruned to the three most recent runs after one tracker database reached 35 million rows and 8.8 GB.
  • Duplicate-record analysis is a quarter of the file: pairwise field comparison, concordance scoring, and generated merge plans for same-participant / different-record-ID collisions.
  • Carries no study-specific checks. Each project writes its own against the engine — including a non-clinical inventory use, which is the genuine test of the schema abstraction.