-
fix(plan): 乳牙牙位归一化统一 — 修 K00 召回链显示"暂不召回"自相矛盾 · 368b2a9e
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"误并)。luoqi committed
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| treatment-initiation-recall.scenario.ts | Loading commit data... |