## Context C3 已有 ho_record(submitted)、abnormal(handle_status)、C2 的 plan.change、C1 的 elder。C4 新增质控闸门,纯新增、不侵入脚手架。设计背景见 `docs/superpowers/specs/2026-10-15-服务机构端-C4质控闸门-design.md`。 ## Goals / Non-Goals **Goals:** qc + ho_record_correction 两表、全量质控(定时任务)、放行/退回(4001 自审自放行)、五类推送聚合、异常联动改计划、补正、admin 质控中心页。 **Non-Goals:** 上报池(二期)、真推送(APP 期)、APP 补正录入、家属端。 ## Decisions 1. **表命名**:`qc`(无前缀)、`ho_record_correction`(补正属留痕域 ho_)。 2. **全量质控**:`@Cron` 每小时扫描 submitted 无 qc → 生成 qc(pending)。 3. **qc 生命周期**:pending → passed/returned;退回补正后 recheck(first_qc_id)。 4. **放行自检**:四要素(1004) → 必拍(3001) → 幂等 → 非自审(4001)。 5. **五类推送** = pending/list 跨表聚合(异常/逾期/住院/计划/待质控),带消除条件。 6. **异常联动改计划**:复用 plan.change + link_plan_change。 7. **补正**:ho_record_correction 新增说明,不改原记录;≥3 次进质控重点。 8. **批量放行**:排除异常/未执行项/临时加项/时长异常/补正过。 ## 数据模型 qc(id/tenant_code/record_id/qc_type/qc_result/qc_note/qc_staff_id/qc_time/pass_time/first_qc_id,SOFT_DELETE)、ho_record_correction(id/tenant_code/record_id/qc_id/correction_note/corrected_by/corrected_at,子表不入 SOFT_DELETE)。UUID v7、@map snake_case、utf8mb4_general_ci。 ## 接口 qc:GET /qc/pending/list、GET /qc/detail、POST /qc/pass、POST /qc/return、POST /qc/exception/link、POST /qc/correct、POST /qc/batch-pass。权限码 qc.*;错误码域 46;规则号 1004/3001/4001 写 message。 ## Risks / Trade-offs - 定时任务延迟(≤1h)→ 可后续改 checkout 同步。 - 补正=新增说明(不可无痕修改)→ 合规。 - 自审自放行 4001 → 单人机构必须再配审的人(PRD 底线)。 ## Migration Plan 新增 2 表(utf8mb4_general_ci 手改)。迁移链损坏:migrate diff + 手工目录 + deploy。