PR REVIEW EVIDENCE

perf(medical-order): bug4066-今日医嘱多选查询优化

hemo-backend #1390

  1. PR 提交时间2026-10-10 23:01:36
  2. 审核结束时间2026-10-10 23:07:02
  3. 固定版本12bc0502a13e
  4. 模型链gpt-5.6-terra → gpt-5.6-sol
  5. 门禁blocked
  6. 结果success

难度分

38
  • code_volume14改动集中于一个 SQL 片段、两处引用及对应的生成 SQL 测试。
  • architecture_complexity28涉及 MyBatis 动态 SQL、分页计数改写和数据库优化器提示之间的配合。
  • domain_knowledge43需要理解透析医嘱筛选条件、机构隔离和药品精确匹配的业务语义。
  • impact_scope61公共的今日医嘱列表和汇总统计接口均复用该提示,影响所有机构。
  • risk_level57关联顺序被强制后可能在宽日期范围的高频查询中放大扫描量。

完成分

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

固定范围

目标分支 SHA
910268048ae9cc79789cd652a40c4fc5f3117e5b
共同祖先 SHA
50edd5df8c4019e61b3e88ffc4ec728227faa8b2
PR head SHA
12bc0502a13e55d2e294b521f5b3442cb8d4d2f7
轻量检查
passed · 轻量检查通过

风险与证据

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

单个药品精确筛选也会被强制以透析记录为驱动表

按单个药品编码查询较长日期范围的医嘱时,列表和汇总统计可能响应明显变慢,数据量较大的机构存在查询超时风险。

证据:src/main/resources/mapper/PatientHemoMedRecordMapper.xml:222 <if test="requst.drugNameQueryType != null and requst.drugNameQueryType == 1 and requst.drugName != null and requst.drugName != '' and requst.clientCode != null and requst.clientCode != '' and requst.queryDateBegin != null and requst.queryDateBegin != '' and requst.queryDateEnd != null and requst.queryDateEnd != ''"> /*+ JOIN_PREFIX(a) */

建议:仅在实际药品编码数量超过一个或达到经验证的阈值时添加该提示;在具有代表性数据量的环境中,分别对单药和多药、短日期和宽日期范围执行 EXPLAIN 或 EXPLAIN ANALYZE,核对索引、驱动表与扫描行数。