review-implies-treatment.spec.ts
3.79 KB
-
fix(召回): 「种植/正畸/牙周复查」按类目解除对应缺口 —— 复查是修复体在位的证据 · 0d458785
宋志宏 TS0M001982 牙46;36;37:三颗种植冠在位、按约复查,却被判"缺失牙未启动 修复"。那次就诊里四处表述都说明修复体存在(诊断「种植术后」/ 本次治疗「种植复查」/ 检查所见「种植冠无松动」/ 主诉「种植戴牙术后1年余」),PAC 一处也没接住 —— 唯一带牙位的证据「种植复查」落在 review 类目,而 review 被刻意排除在 STRUCTURAL_RESOLVER_CATEGORIES 之外。 那个排除本身是对的:生产带牙位的 review 共 4.4 万条,「观察」11,165 / 「观察,必要时拔除」928 /「无治疗」623 —— 这些恰恰说明还没治,整类放行会误销。 做法:新增 REVIEW_IMPLIES_TREATMENT(复查词 → 蕴含的治疗类目), resolvedTeethSql 加一条 UNION 分支,两道闸都不能松: ① 词形闸:必须「治疗词 + 复查/复诊」——「正畸复诊」(在做)vs「正畸会诊」(还在谈) 只差一字,生产各 35 / 103 条;泛指「复查/常规复查/定期复查」刻意不收。 ② 类目闸:按 resolverCategoriesFor 过滤 —— 生产实测 19 条候选里 9 条是跨类目 错配(牙周复查去解 K02 龋齿 4 条 / 种植复查去解 K06 牙龈 1 条 / 正畸复查去解 K01 阻生 1 条),必须挡住。 生产验证前提:带牙位「种植复查」覆盖 3,893 个牙位,3,434(88.2%)在同一颗牙上 找得到 implant/prosthodontic 的 actual 治疗,患者级 95.2% —— 蕴含关系成立。 剩下 11.8% 正是本规则要救的(外院种的 / 摄入窗口之前 / 治疗记录漏牙位)。 影响面:窄口径 19 条候选 → 类目闸后实际约 10 条生效。宽口径(subtype 含「复」) 391 条**未采纳** —— 那 372 条差额混着"一颗从没治过的牙上做了常规复查", 误销的代价不对称(少召不报错)。全口场景(K05/K07)实测无一命中,gapWhere 不动。 测试:新增 39 条(词形闸 24 / 类目闸 7 / 表自洽 3 等),全量 1526 条通过; type-check 17 个错为 main 既有,本次引入 0 个。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed