# backend/qc Specification ## Purpose 定义服务机构端质控闸门的后端行为——全量质控、放行/退回(自审自放行 4001)、五类推送聚合、异常联动改计划、补正。 ## Requirements ### Requirement: 全量质控生成 定时任务 MUST 扫描 `record_status='submitted'` 且无 qc 记录的留痕 → 生成 qc(qc_result=pending)。非抽检。 #### Scenario: 兜底生成 - **WHEN** 一条留痕 submitted 后无 qc - **THEN** 定时任务为其生成 qc 记录 ### Requirement: 放行 `POST /qc/pass` MUST 按序校验:① 四要素齐(时间/项目/时长/护理员,否则 1004)→ ② 必拍已拍(3001)→ ③ 状态=待质控(幂等)→ ④ **放行人 ≠ 录入人**(4001 自审自放行);通过则 qc_result=passed + pass_time。 #### Scenario: 自审自放行拒绝 - **WHEN** 放行人 = 该记录的录入人 - **THEN** 返回 4001 拒绝 #### Scenario: 缺要素拒绝 - **WHEN** 留痕缺必填要素 - **THEN** 返回 1004 拒绝 ### Requirement: 退回 `POST /qc/return` MUST qc_note 必填 → qc_result=returned;退回后护理员可补正。 #### Scenario: 退回需原因 - **WHEN** 退回缺 qc_note - **THEN** 拒绝 ### Requirement: 五类主动推送聚合 `GET /qc/pending/list` MUST 聚合五类:异常待处理(abnormal.handle_status=open)、逾期未做(order 过时段无 record 超 24h)、住院仍有派单(elder.treat_status=hosp_pause 且有未完成 order)、计划未制定(待遇生效 5 工作日无 active plan)、留痕待放行(qc pending);每类带消除条件。 #### Scenario: 逾期未做 - **WHEN** 工单过时段超 24h 仍无 record - **THEN** 出现在「逾期未做」待办 ### Requirement: 异常处理与联动改计划 `POST /qc/exception/link` MUST 复用 plan.change 生成新 plan + 回填 record_abnormal.link_plan_change=true。 #### Scenario: 异常联动改计划 - **WHEN** 质控员判断异常需加专项 - **THEN** 生成新计划并回填 link_plan_change ### Requirement: 补正 `POST /qc/correct` MUST 写 ho_record_correction(correction_note)+ record 重新 submitted(触发 recheck);不可补正签到时间/定位/照片;同记录补正 ≥3 次 ⇒ 进质控重点。 #### Scenario: 补正不改原值 - **WHEN** 补正一条留痕 - **THEN** 原记录不动,新增更正说明,record 重新进质控 ### Requirement: 批量放行 `POST /qc/batch-pass` MUST 排除有异常/未执行项/临时加项/时长异常/补正过的记录。 #### Scenario: 批量安全边界 - **WHEN** 批量放行含异常记录 - **THEN** 拒绝(必须逐条看)