動作
Bug #292
進行中
SC
SC
ICD-10 編碼 P1+P2 修正:症狀誤編/漏編 + 腹部挫傷誤升級內臟
Bug #292:
ICD-10 編碼 P1+P2 修正:症狀誤編/漏編 + 腹部挫傷誤升級內臟
開始日期:
2026-06-20
完成日期:
2026-06-20 (逾期 42 天)
完成比例:
100%
預估工時:
1:00 小時
概述
背景¶
#291 後重跑 6/19 回饋,faceted 管線仍有兩類問題(取自 id 11 真實病歷
「騎機車自摔」多處傷)。本案處理其中 P1、P2 兩項(P3 牙齒、P4 外因碼另案)。
醫師決策(2026-06-20 拍板)¶
- deformity(變形):維持「症狀一律跳過」,不破例當骨折/脫位。
- 流鼻血(epistaxis):外傷情境認定為鼻挫傷 S00.33(非 R04.0、非跳過)。
- 外因碼(V/W/X/Y):先不做(P4 整章擱置)。
問題與修正¶
P1 — 症狀被誤編為外傷碼 / 流鼻血漏編¶
現象
- 「右手食指變形」「左大腿變形」→ 被幻覺成撕裂傷/挫傷/骨折(應跳過)。
- 「後頸痛」「下背痛」→ 被編成挫傷/扭傷(應跳過)。
- 「流鼻血」→ 漏編(應為鼻挫傷 S00.33)。
根因
- Stage1(gpt-4o-mini)會「從症狀推論診斷」:變形→骨折、痛→挫傷,
且把症狀洗白成傷口字眼(raw_text 不留症狀詞),note-level 守門在
混合病歷會被鄰近真傷/「瘀青」污染而失效。
修正(backend/rag_service.py)
- Stage1 prompt:中文症狀詞、禁止從症狀推論診斷、流鼻血→鼻挫傷例外、
空輸出範例、要求逐項輸出evidence逐字來源。 -
_llm_chat設temperature=0(消除抽樣抖動,結果可重現)。 -
extract_injuries_structured多層判定性守門,核心為 item-level
「逐字來源」守門:來源若為純症狀(含症狀詞、無真實傷口詞,雙語)即丟棄,
不論 injury_type 被洗成什麼;輔以 vocab gate 與 note-level 字面依據守門
(fracture/dislocation 須明文、contusion/sprain 須依據,含瘀青與 epistaxis 例外)。
P2 — 腹部體表挫傷被過度配到內臟¶
現象:「右下腹壁瘀青」→ 首選腎臟等內臟挫傷(應為腹壁 S30.1)。
根因(非降權,是側別過濾誤殺):_faceted_where 的
laterality $in [lat,"unspecified"],在病歷有寫側別時,把無側別中線/體壁碼
(laterality 為 ""(約 2.6 萬筆)/"null")整批濾掉,腹壁 S30.1 連候選都進不來。
修正:$in 加入 "", "null" 兩個無側別桶(query-time,免重建向量庫);
同步 backend/scripts/faceted_search_proto.py。
影響檔案¶
| 檔案 | 說明 |
|---|---|
backend/rag_service.py |
P1 prompt + 守門 + temp=0、P2 where 修正 |
backend/scripts/faceted_search_proto.py |
P2 離線原型同步 |
backend/benchmark/run_benchmark.py |
新增 expect_no_injuries、expect_code_prefix_any、chest↔thorax 同義 |
backend/benchmark/icd10_benchmark_faceted.json |
+2 P2 腹部案例 |
backend/benchmark/icd10_benchmark_2026-06-19.json |
新增 P1 反例(含 104/105 混合污染) |
backend/benchmark/fixtures_2026-06-19.json |
P1 合成病歷 |
docs/icd10-next-stage-proposal.md |
標記 P1/P2 完成 + 決策紀錄 |
驗證¶
| 測試 | 結果 |
|---|---|
| P1 06-19(含混合污染,live) | 10/10(連跑兩次穩定) |
| 06-12 回歸(live) | 24/24 |
| 06-16 回歸(live) | 14/14 |
| 離線 faceted 檢索 | 25/25 |
| 真 id-11 全管線(經 HTTP,跑 2 次) | 變形不漏編、流鼻血→S00.33、右下腹→S30.1、真傷全保留 |
不在本案範圍¶
- P3 牙齒(門牙斷裂等 dental)— 沿用既有不穩,另案。
- P4 外因碼(貓咬→W55 等)— 醫師決定先不做。
- 眉毛/下巴部位碼浮動 — 既有 mapping 議題,另案。
備註¶
- 部署機需重跑離線建庫流程?否(本次 P2 為 query-time,無 facet 資料變更)。
沒有任何資料可供顯示
動作