bug(李梦维案例):召回原因有"牙发育/萌出异常 牙位 1;4"(K00),但治疗链那条
显示"已发现·暂不召回"(target=false),自相矛盾。
根因:两套牙位归一化口径不一致(仅乳牙 Palmer 记号分叉):
- scenario 的 parseToothSet:/^\d+/ 只取前导数字 → "1B"→"1"(剥 Palmer 字母)
→ reason 牙位/sub_key = "1;4"
- chain-composer:原样保留 → chain 牙位 = "1B;4C"
- plan-aggregate target 匹配用共享 toothSet:保留 Palmer → "1B;4C"→{1B,4C}
→ toothOverlap({1,4}, {1B,4C}) = 空 → target=false → UI"暂不召回"
(恒牙 FDI 36/46 两边都 "36" 一致,只乳牙 1B/4C 这种分叉)
修复:scenario 的 parseToothSet 改为委托共享 toothSet(单一真理源),
不再自己剥字母。乳牙 reason 牙位 → "1B;4C",跟 chain + target 匹配口径一致。
验证(本地重算后):active K00 reason 牙位已保留 Palmer(@3E / @2C / @1C;2C
等 209 条),与 chain 对齐 → target=true → ★潜在新链。
(李梦维本例 plan=assigned 被引擎跳过不重算,需 unassign 后才刷新 — 数据状态非 bug)
union-find 合并也受益:1B / 1C 现在是不同乳牙(不再都归"1"误并)。
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| admin | Loading commit data... | |
| agent | Loading commit data... | |
| ai | Loading commit data... | |
| auth | Loading commit data... | |
| facts | Loading commit data... | |
| patient | Loading commit data... | |
| persona | Loading commit data... | |
| plan | Loading commit data... | |
| plan-aggregate | Loading commit data... | |
| sync | Loading commit data... |