排除闸 ⑤a 的"actual 无牙位 → 视为覆盖该类全部牙位"对所有 excludeCats 生效,
导致一次无牙位外科处置(如切开引流)被当成"全口 surgical 治疗",误杀同患者所有
含 surgical 类目的 per-tooth 召回(K03/K06 等)。
实测 826790:K03 不良修复体@31;32;41;42;43(2024-11-28)被 2025-05-30 的无牙位
切开引流(surgical)误排除;而 11;12(2025-12-30,晚于引流)正常召回 → 自相矛盾。
修:无牙位 actual 仅当 category ∈ {periodontic, orthodontic} 才视为全口覆盖
(实测 actual 牙位有/无分布:牙周 134:1、正畸 19:1 压倒性无牙位 = 整牙弓治疗;
surgical 1:41、restorative 1:91、prosthodontic 0:19 压倒性 per-tooth,无牙位多是
录入缺失或急性处置)。其余类目要求 actual 有牙位且与诊断牙位交集。
验证:826790 → 新增 hard_tissue_damage@31;32;41;42;43 召回;45;46(K06)仍被
牙周全口洁治正确排除(periodontic 保留全口覆盖)。本地 100 患者 patientsHit 37→39
(救回 2 个被无牙位外科误杀的)。全量 89 测试通过,tsc 0。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .claude | Loading commit data... | |
| apps | Loading commit data... | |
| deploy | Loading commit data... | |
| docs | Loading commit data... | |
| packages | Loading commit data... | |
| scripts | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .npmrc | Loading commit data... | |
| .prettierrc | Loading commit data... | |
| README.md | Loading commit data... | |
| docker-compose.prod.yml | Loading commit data... | |
| docker-compose.yml | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| liu.cjs | Loading commit data... | |
| package.json | Loading commit data... | |
| pnpm-lock.yaml | Loading commit data... | |
| pnpm-workspace.yaml | Loading commit data... | |
| tsconfig.base.json | Loading commit data... | |
| turbo.json | Loading commit data... |