專案

一般

配置概況

動作

Bug #293

進行中
SC SC

ICD-10 編碼校準:乳房/胸壁、指甲受損、牙齒外傷(最小 P3)

Bug #293: ICD-10 編碼校準:乳房/胸壁、指甲受損、牙齒外傷(最小 P3)

是由 Sashiba Chou約 1 個月 前加入.

狀態:
New
優先權:
Normal
被分派者:
開始日期:
2026-06-20
完成日期:
2026-06-20 (逾期 42 天)
完成比例:

100%

預估工時:
1:00 小時

概述

背景

接續 #292,處理 id-11 回饋中個別碼選錯的細項。逐條查證 ICD 庫後確認:

  • (a) 乳房 vs 前胸壁(b) 指甲受損:正確碼存在、只是排序挑錯 → 真問題,修。
  • (c) 下巴、(d) 眉毛:經查 ICD 對下巴機械傷專碼(只有 burn/corrosion)、
    眉毛歸「眼瞼及眼周」解剖上合理 → 非 bug,不修(討論後排除)。
  • 修 (a)(b) 時,prompt 異動使既有「牙齒」flaky 案例穩定退步(門牙→臉部撕裂),
    故加入最小 P3 牙齒修補止血並補強。

問題與修正

(a) 體表胸部傷過度配到「乳房」

現象:「左胸擦傷」(未提乳房)→ top1 S20.112A 乳房,應為 S20.312A 前胸壁
根因:乳房碼與胸壁碼 facet 完全相同(abrasion/thorax),僅描述不同,無法用 facet 區分。
修正rag_service.faceted_search + faceted_search_proto,ranking-time,免重建):
原文未提 breast/乳 時,將描述含 "breast" 的碼降權至胸壁之後(非硬切);
有提乳房時維持乳房 top1(不矯枉過正)。

(b) 手指撕裂「伴/未伴指甲受損」選反

現象:「左小指指甲斷裂」→ top1「未伴指甲受損」,應為「伴有指甲受損」S61.3xx
且 Stage1 把指甲拆成獨立第二項傷。
根因:「指甲受損」資訊未被當成修飾擷取,且無對應 facet(僅存在於描述文字)。
修正

  • Stage1 新增 nail_damage 修飾(比照 foreign_body):指甲斷裂/受損/損傷/nail broken
    nail_damage=true,且指甲併入手指傷為單一項(不另開「nail」項)。
  • faceted_search ranking:nail_damage=true → 偏好「with damage to nail」碼;
    false → 偏好「without」;未判定 → 中性。

(c) 最小 P3 — 牙齒外傷編碼

現象:牙齒外傷沿用擦傷/撕裂,配到臉/口腔錯碼;多種講法不穩
(門牙斷裂→空、門牙缺損→口腔撕裂、門牙脫落→口腔撕裂)。
根因:牙齒外傷在 ICD 走 S02.5 牙折 / S03.2 牙脫位(依機轉),非 abrasion/laceration。
修正

  • Stage1 規則:牙/teeth/門牙 + 斷裂/折/缺損/崩injury_type=fracture
    • 脫落/鬆動/掉牙/脫位injury_type=dislocation;一律 body_region=mouth
  • 守門字表加 斷裂/缺損/崩(算骨折字)、脫落/掉牙/鬆動(算脫位字),
    使牙折/牙脫位不被既有守門誤殺。
  • 安全性已驗:加這些字不會讓「變形→骨折」復活——item-level evidence 守門
    會獨立擋掉「右手食指變形」(不論病歷他處是否含「斷裂」)。

影響檔案

檔案 說明
backend/rag_service.py (a) 乳房降權、(b) nail_damage 修飾+排序、(c) 牙齒 prompt+守門字
backend/scripts/faceted_search_proto.py (a)(b) 排序同步
backend/benchmark/icd10_benchmark_faceted.json +3 離線案例(a / a2 反向 / b)
backend/benchmark/icd10_benchmark_2026-06-19.json +4 live 案例(106 指甲 / 107 胸 / 108 牙折 / 109 牙脫位)
backend/benchmark/fixtures_2026-06-19.json +4 合成病歷(106–109)

驗證(全綠)

測試 結果
離線 faceted 檢索 30/30
06-19 live(含 a/b/牙齒) 15/15
06-12 回歸(牙齒退步已修回) 24/24
06-16 回歸 14/14
真 id-11 全管線 變形仍不漏編、門牙斷裂→S02.5、右下腹→S30.1、流鼻血→S00.33
牙齒講法 斷裂/缺損/上排牙齒斷裂→S02.5;脫落/鬆動→S03.2

不在本案範圍

  • 完整 P3 牙齒:前端「損傷類型」改為 Fracture/Loosening/Avulsion(依部位顯示選項)— 另案。
  • (c) 下巴 / (d) 眉毛:查證後判定非 bug,不修。
  • P4 外因碼:醫師決定先不做。
  • 牙齒抽取仍有 LLM 抖動,但碼家族(S02.5/S03.2)已綁 benchmark 守住。

備註

  • 全程 query-time / prompt 層修正,無 facet 資料變更,部署機免重建向量庫
  • 修法均複用既有家族:(a)=「特定構造降權」(同 P2)、(b)=「修飾旗標」(同 foreign_body)、
    (c) 牙齒=Stage1 映射+守門字。

沒有任何資料可供顯示

動作

匯出至 PDF Atom