feat(iit): Implement real-time quality control system

Summary:

- Add 4 new database tables: iit_field_metadata, iit_qc_logs, iit_record_summary, iit_qc_project_stats

- Implement pg-boss debounce mechanism in WebhookController

- Refactor QC Worker for dual output: QC logs + record summary

- Enhance HardRuleEngine to support form-based rule filtering

- Create QcService for QC data queries

- Optimize ChatService with new intents: query_enrollment, query_qc_status

- Add admin batch operations: one-click full QC + one-click full summary

- Create IIT Admin management module: project config, QC rules, user mapping

Status: Code complete, pending end-to-end testing
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-07 21:56:11 +08:00
parent 0c590854b5
commit 5db4a7064c
74 changed files with 13383 additions and 2129 deletions

View File

@@ -0,0 +1,32 @@
/**
* IIT 质控规则管理路由
*/
import { FastifyInstance } from 'fastify';
import * as controller from './iitQcRuleController.js';
export async function iitQcRuleRoutes(fastify: FastifyInstance) {
// 获取项目的所有质控规则
fastify.get('/:projectId/rules', controller.listRules);
// 获取规则统计
fastify.get('/:projectId/rules/stats', controller.getRuleStats);
// 获取单条规则
fastify.get('/:projectId/rules/:ruleId', controller.getRule);
// 添加规则
fastify.post('/:projectId/rules', controller.addRule);
// 更新规则
fastify.put('/:projectId/rules/:ruleId', controller.updateRule);
// 删除规则
fastify.delete('/:projectId/rules/:ruleId', controller.deleteRule);
// 批量导入规则
fastify.post('/:projectId/rules/import', controller.importRules);
// 测试规则逻辑(不需要项目 ID
fastify.post('/rules/test', controller.testRule);
}