PR REVIEW EVIDENCE

chore(ktv): 下机Kt/V改为上一条值脚本与3683上线后补跑记录

hemo-backend #1386

  1. PR 提交时间2026-10-09 19:39:31
  2. 审核结束时间2026-10-09 19:45:21
  3. 固定版本2f03fe774cb6
  4. 模型链gpt-5.6-terra → gpt-5.6-sol
  5. 门禁already_merged
  6. 结果success

难度分

52
  • code_volume28新增 122 行 SQL 生成脚本及两段运行手册记录。
  • architecture_complexity35脚本生成多阶段 SQL,并复用已有备份表完成备份、更新、验证和回滚。
  • domain_knowledge66涉及透析 Kt/V、下机记录状态、人工强制修改及临床数据回滚约束。
  • impact_scope65脚本面向生产透析监测记录,实际覆盖范围由输入 CSV 决定,材料未证明医院范围。
  • risk_level76变更会批量修改和回滚临床监测数据,错误筛选条件可能影响既有修复结果。

完成分

94
  • correctness80最终风险固定扣分:medium 1×20;合计 -20
  • completeness100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • code_quality100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • security100本次静态审核未发现该维度的确认问题;不代表绝对完善
  • details100本次静态审核未发现该维度的确认问题;不代表绝对完善

固定范围

目标分支 SHA
74ff94abb8d6c3fdb9a8ddef1f3898ad6a0aa3bd
共同祖先 SHA
30b5975b9265f305b20e0677d61f99bcb07ff449
PR head SHA
2f03fe774cb625750ae103e046ed3fdfab367574
轻量检查
passed · 轻量检查通过

风险与证据

medium · 已确认 · 已计入完成分

回滚脚本会跨批次恢复历史 TO_PREV 记录

回滚当前批次时,先前批次中仍保持修复值的下机 Kt/V 也可能被恢复为旧值,导致已经完成修复的透析记录回退,并使临床数据和核对结果失真。

证据:scripts/ktv-end-repair/gen_to_previous_sql.py:89 f.write('UPDATE patient_hemo_med_monitor_data m JOIN %s b ON m.id = b.id\n' 'SET m.data_kt_v = b.old_data_kt_v, m.ktv_source_type = b.old_ktv_source_type,\n' ' m.ktv_hct_percent_snapshot = b.old_ktv_hct_percent_snapshot,\n' ' m.ktv_blood_flow_snapshot = b.old_ktv_blood_flow_snapshot,\n' ' m.ktv_start_time_snapshot = b.old_ktv_start_time_snapshot,\n' ' m.update_time = b.old_update_time\n' 'WHERE %s AND b.backed_up_at IS NOT NULL AND m.data_kt_v = b.new_ktv;\n' % (table, only))

建议:为每次生成写入唯一批次标识,并在备份、更新、回滚、核对和校验语句中统一按该标识过滤;回滚前核对目标批次的记录数。