Commit fd7ab151 by luoqi

fix: endodontic milestone 字典词根化(杨光宗 27 根管 bug)

杨光宗 27 牙真实临床:
  2026-04-10/04-20/05-04  3 次根管治疗(磨牙) actual
  2026-05-18              K03 + 非美学区树脂充填 actual
临床:完整"根管 + 后续充填修复"链 ✓ 已闭环

改前 UI:根管治疗·27 ★潜在新链(0/2 步骤)  错!
根因:endodontic milestone steps=["开髓","根管充填"] minSteps=2
     host subtype "根管治疗(磨牙)" includes 任一 step 都 false → matched=0/2
     → s3Reached=false → status=discovered → ★ 误标

修法(跟 periodontic 同款词根化):
  steps: ["开髓","根管充填"] → ["根管","根充","开髓"]
  minSteps: 2 → 1
  rationale:
    - "根管治疗(磨牙)" includes "根管" ✓
    - "根管充填" includes "根充" ✓
    - "开髓" includes "开髓" ✓
  minSteps 降 1 因:host subtype 不区分 step 类型(同次 actual 字典只能 hit 1),
  强制 minSteps=2 实际上要求 2 个 distinct step,但 host 永远只 1 个匹配

改后验证:
  根管治疗·27: status=closed stage=5 target=False(已闭环,跟 K03 后充填+复诊一起)
  S3 done=True "根管·1/3 步骤"
  SQL ⑤a 排除生效:K04 被 endodontic actual overlap 排除,不进召回池

向下兼容:其他患者根管动作真正写"开髓"/"根管充填"的也照常 hit
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
parent a73f5d7c
...@@ -297,7 +297,10 @@ export const TreatmentMilestones = { ...@@ -297,7 +297,10 @@ export const TreatmentMilestones = {
// implant 字典加"种植牙冠修复" / "种植冠修复" 同义词 — host 实际写法,字典缺会让做完种植牙的患者 // implant 字典加"种植牙冠修复" / "种植冠修复" 同义词 — host 实际写法,字典缺会让做完种植牙的患者
// 仍卡 stage=3 ongoing 误判为"未完成"(罗国标种植已植入+上部修复都做,显示 entered 是错的) // 仍卡 stage=3 ongoing 误判为"未完成"(罗国标种植已植入+上部修复都做,显示 entered 是错的)
implant: { steps: ['种植体植入', '种植上部修复', '种植牙冠修复', '种植冠修复'], minSteps: 2, lifecycle: 'linear' }, implant: { steps: ['种植体植入', '种植上部修复', '种植牙冠修复', '种植冠修复'], minSteps: 2, lifecycle: 'linear' },
endodontic: { steps: ['开髓', '根管充填'], minSteps: 2, lifecycle: 'linear' }, // W4 末:词根匹配,跟 periodontic 同款。"根管治疗(磨牙)" includes "根管" / "根管充填" includes "根充"
// minSteps 降到 1 — host subtype 不区分"开髓 vs 根充",同 subtype 多次 actual 字典也只能 hit 1 step
// 杨光宗 27 牙做了 3 次"根管治疗(磨牙)" + 1 次 K03 后充填,临床完整;旧版 minSteps=2 卡 0/2 不合理
endodontic: { steps: ['根管', '根充', '开髓'], minSteps: 1, lifecycle: 'linear' },
orthodontic: { steps: ['矫治器', '保持器'], minSteps: 1, lifecycle: 'long_term' }, orthodontic: { steps: ['矫治器', '保持器'], minSteps: 1, lifecycle: 'long_term' },
// W4 末:steps 改为更宽的"治疗动作词根",匹配 host subtype 包含即可 // W4 末:steps 改为更宽的"治疗动作词根",匹配 host subtype 包含即可
// "牙周刮治术" includes "刮治" / "全口龈上洁治" includes "洁治" / "牙周维护" includes "维护" // "牙周刮治术" includes "刮治" / "全口龈上洁治" includes "洁治" / "牙周维护" includes "维护"
......
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