Validation & Queries¶
Comprehensive data quality management system for ensuring data integrity.
Validation Types¶
Real-Time Validation¶
Field-level validation during data entry:
const schema = z.object({
age: z.number().min(18).max(120),
email: z.string().email(),
weight: z.number().positive(),
visit_date: z.date().max(new Date()), // Cannot be in future
});
Validation rules: - Required fields - Must be filled - Data type - Number, date, text, etc. - Range checks - Min/max values - Format validation - Email, phone, regex - Dependency rules - Conditional requirements
Post-Submission Validation¶
Batch validation after data submission:
- Cross-field validation - Internal consistency
- Outlier detection - Statistical anomalies
- Completeness checks - Missing required data
- Logic checks - Business rule violations
Custom Validation Rules¶
Researchers can define study-specific rules:
{
"rule_name": "bmi_consistency",
"condition": "weight / (height ** 2) != bmi",
"severity": "warning",
"message": "Calculated BMI does not match entered BMI"
}
Quality Flags¶
Data records can have multiple quality flags:
| Flag | Description | Action |
|---|---|---|
| ✓ Valid | Passes all validation | None required |
| ⚠️ Warning | Non-critical issue | Review recommended |
| ❌ Error | Critical issue | Correction required |
| ❓ Query | Discrepancy identified | Response required |
| 🔍 Review | Pending review | SDV needed |
| ✅ Verified | Source-verified | No action |
Query Management¶
Creating Queries¶
await api.createQuery({
study_id: study_id,
participant_id: participant_id,
field_name: "systolic_bp",
query_type: "clarification",
severity: "medium",
message: "Value seems unusually high (180 mmHg). Please verify.",
assigned_to: coordinator_id,
});
Query Workflow¶
Query states: - Open - Query created, not yet assigned - Assigned - Assigned to data entry staff - Responded - Staff provided response - Resolved - Reviewer accepted response - Escalated - Requires PI/sponsor review
Query Dashboard¶
Portal provides query management interface:
- List all queries by status
- Filter by participant, study, severity
- Bulk assign queries
- Export query log
Source Data Verification (SDV)¶
SDV Process¶
- Select records for verification (random or targeted)
- Compare data to source documents
- Mark as verified or create query
- Track SDV completion percentage
SDV Modes¶
- 100% SDV - All data verified (critical studies)
- Risk-based SDV - Targeted verification
- Random SDV - Sample-based approach
SDV Tracking¶
{
"study_id": "STUDY-001",
"target_sdv_percentage": 20,
"current_sdv_percentage": 18.5,
"records_total": 1000,
"records_verified": 185,
"records_with_queries": 12
}
Data Monitoring¶
Real-Time Monitoring Dashboard¶
- Enrollment rate
- Data completeness
- Query rate
- SDV progress
- Protocol deviations
Automated Alerts¶
Configure alerts for:
{
"alert_type": "data_quality",
"condition": "error_rate > 5%",
"recipients": ["coordinator@study.org"],
"frequency": "daily"
}
Data Cleaning¶
Batch Operations¶
Clean data across multiple records:
// Remove trailing spaces from all text fields
await api.cleanData({
study_id: study_id,
operation: "trim_text",
dry_run: true, // Preview changes first
});
// Standardize date formats
await api.cleanData({
study_id: study_id,
operation: "standardize_dates",
target_format: "YYYY-MM-DD",
});
Data Transformations¶
Apply transformations to specific fields:
- Text normalization - Case, whitespace
- Date standardization - Format consistency
- Unit conversion - Imperial ↔ metric
- Calculated fields - Derived values (BMI, eGFR)
Quality Metrics¶
Track data quality over time:
{
"period": "2026-01",
"metrics": {
"completeness": 0.98,
"accuracy": 0.95,
"error_rate": 0.02,
"query_rate": 0.05,
"sdv_rate": 0.20,
"time_to_resolution_days": 2.3
}
}
Validation Reports¶
Generate reports for monitoring:
- Data Quality Report - Overall quality metrics
- Query Log - All queries and resolutions
- SDV Report - Verification status
- Outlier Report - Statistical anomalies
- Completeness Report - Missing data
Integration with REDCap¶
Validation rules sync with REDCap:
- Import validation rules from REDCap
- Export queries to REDCap
- Sync data quality indicators
See REDCap Integration for details.
Next Steps¶
- REDCap Integration - External system sync
- Data Entry - Manual data entry
- Cognitive Assessments - Automated capture
- Portal Pages - UI reference