Commit 7d5497b5 by luoqi

fix(recall): 词典加"间隙不足" — 缺牙无空间需先正畸,同属无修复指征(一线反馈⑥)

李强 BJ0U017401 牙36;46:检查"缺失,与邻牙间隙不足"(缺牙十年邻牙倾倒)→ 直接种植
修复无空间,临床需先正畸 → 推"快去修复"的召回是错的(一线"建议正畸"同此判断)。

"间隙不足"归入 NO_RESTORATION_GAP_EXAM_PATTERNS(三处消费方共用:后端 gap/对账 oracle/
牙位事实视图,一词全生效)。共现"缺牙"护栏挡掉正畸拥挤语境(全库 844 段间隙不足仅
246 段共现缺牙,均真·缺牙无空间)。

验证:李强 36;46 缺牙召回消失,牙体损伤/龋齿真实项保留;21 人理由 45→44 净减一条
(无误杀);recompute exit=0。仅本地,未部署。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
parent 21ae9e68
......@@ -11,8 +11,8 @@
| ② | 李姝妤 BJ0U005102 | 外院矫正,4.21 转院 → **回访记录有提到外院**(4.21 常规回访,结果"已在外院矫正中",已入 PAC 回访表/历史联系可见,但召回未消费回访文本);客户动态数据与数仓核对中 | ⏸ 待定 |
| ③ | 秦溢泽 BJ0A057103 | 1.27 取资料未回复 → **召回正确**:1.27 EMR"今取正畸资料…约日复诊"+ planned 正畸/充填;2.23 回访"微信约看方案",此后无到诊 → 方案悬置,正是该召的人("取资料"归流程类不算治疗,口径正确) | ✅ 正确召回 |
| ④ | 祁小夏 BJ0U016979 | 31;41 缺,11.22 修复 → **误召:固定桥牙位盲点** — 31;41 由 32;33;42;43 基牙桥修复(11.15 备牙/11.22 戴桥),治疗牙位只写基牙不含桥体 → 重叠判定失败。修复 2(桥区间)后召回消失 | ✅ 已修 |
| ⑤ | 王敏 BJ0U017412 | 26;37;47 缺;"26 无间隙" → **误召:无修复指征在检查文本里** — 诊断只写"牙列缺损",检查 exam_findings 写"缺失,缺牙间隙已关闭"。修复 3 后 26 移除,37;47 真缺牙保留 | ✅ 已修 |
| ⑥ | 李强 BJ0U017401 | 36;46 间隙不足→建议正畸 → 待核 | ⬜ |
| ⑤ | 王敏 BJ0U017412 | 26;37;47 缺;"26 无间隙" → **误召:无修复指征在检查文本里** — 诊断只写"牙列缺损",检查 exam_findings 写"缺失,缺牙间隙已关闭"。修复 3 后 26 移除,37;47 真缺牙保留 | ✅ 已修 |
| ⑥ | 李强 BJ0U017401 | 36;46 间隙不足→建议正畸 → **误召:同⑤(检查文本无修复指征)** — 检查"缺失,与邻牙间隙不足"(缺牙十年邻牙倾倒,需先正畸找回空间)。词典加"间隙不足"后召回消失 | ✅ 已修 |
| ⑦ | 黄琳 BJ0U015883 | ✓ 认可(17 缺失) | ⬜ |
| ⑧ | 余奕铭 BJ0F022277 | 外院/无意愿 → 待核(预计信息差) | ⬜ |
| ⑨ | 刘强 BJ0U016929 | ✓ 认可(正畸) | ⬜ |
......@@ -33,5 +33,5 @@
- **修复 1(拆线归外科)**:光杆"拆线"原被分流到流程类不算治疗 → 术后复诊日复述缺失诊断时无法证明已启动 → 误召(①⑪)。改 manifest route + assembler 映射 `拆线: surgical`,根源生效。
- **修复 2(固定桥牙位盲点)**:桥的治疗记录牙位只写基牙,桥体悬住的缺失牙不在牙位里 → 重叠判定失败 → 误召(④⑯)。改 gap 排除:prosthodontic 同弓 ≥2 牙 → 基牙跨度区间内牙位计入已修复(FDI 转弓位序;连续多冠跨度=颗数,填洞为空操作无副作用)。已知取舍:缺牙两侧独立单冠且未做桥的罕见场景会被误销。
- **修复 3(检查文本无修复指征)**:缺牙"间隙关闭/无修复间隙"在 emr_record.exam_findings 文本里(非诊断字段)→ 召回看不到 → 误召(⑤)。gap 排除加分支:解析 exam_findings JSON,牙位 message 中"缺失/缺牙"与"间隙关闭/无修复间隙"同段共现 → 该牙计入已解决(词典 NO_RESTORATION_GAP_EXAM_PATTERNS 单一源;共现限定排除正畸"关闭间隙"治疗噪音,全库 104 患者命中)。Layer C 上线后平移给抽取器。
- 21 人本地基线 diff:三修复共修 5 例误召(①47、⑪26;27、④31;41、⑯36、⑤26 收缩),其余理由零变动、无误杀。
- **修复 3(检查文本无修复指征)**:缺牙"间隙关闭/无修复间隙"在 emr_record.exam_findings 文本里(非诊断字段)→ 召回看不到 → 误召(⑤)。gap 排除加分支:解析 exam_findings JSON,牙位 message 中"缺失/缺牙"与"间隙关闭/无修复间隙"同段共现 → 该牙计入已解决(词典 NO_RESTORATION_GAP_EXAM_PATTERNS 单一源:间隙关闭/已关闭/无修复间隙/间隙不足;共现限定排除正畸"关闭间隙"治疗噪音,全库 104 患者命中)。Layer C 上线后平移给抽取器。
- 21 人本地基线 diff:三修复共修 6 例误召(①47、⑪26;27、④31;41、⑯36、⑤26 收缩、⑥36;46),其余理由零变动、无误杀。
......@@ -279,7 +279,15 @@ export const RESTORATION_INELIGIBLE_DX_NAMES = ['废用牙', '无功能牙'] as
/// 王敏 BJ0U017412 牙26:诊断只写"牙列缺损",检查里写"缺失,缺牙间隙已关闭"→ 间隙没了无需修复。
/// ⚠️ 必须与"缺失/缺牙"在同一牙位 message 共现 —— 单独"间隙关闭"绝大多数是正畸语境
/// (矫正过程关闭间隙=治疗动作),会误排;共现限定后全库 104 患者(2026-06 实测)。
export const NO_RESTORATION_GAP_EXAM_PATTERNS = ['间隙关闭', '间隙已关闭', '无修复间隙'] as const;
/// 「间隙不足」(李强 BJ0U017401 牙36;46:缺牙十年邻牙倾倒,空间不够直接修复 → 需先正畸)
/// 也归此类:对 K08 缺牙召回效果一致(不该推"快去种植修复")。共现"缺牙"护栏已挡掉正畸
/// 拥挤语境(全库 844 段「间隙不足」仅 246 段共现缺牙,均为真·缺牙无空间)。
export const NO_RESTORATION_GAP_EXAM_PATTERNS = [
'间隙关闭',
'间隙已关闭',
'无修复间隙',
'间隙不足',
] as const;
/// 判断诊断 name_zh 是否属"无修复必要"(废用牙/无功能牙)
export function isRestorationIneligibleDxName(nameZh: string | null | undefined): boolean {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment