專案

一般

配置概況

動作

Bug #292

進行中
SC SC

ICD-10 編碼 P1+P2 修正:症狀誤編/漏編 + 腹部挫傷誤升級內臟

Bug #292: ICD-10 編碼 P1+P2 修正:症狀誤編/漏編 + 腹部挫傷誤升級內臟

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

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

100%

預估工時:
1:00 小時

概述

背景

#291 後重跑 6/19 回饋,faceted 管線仍有兩類問題(取自 id 11 真實病歷
「騎機車自摔」多處傷)。本案處理其中 P1、P2 兩項(P3 牙齒、P4 外因碼另案)。

醫師決策(2026-06-20 拍板)

  1. deformity(變形):維持「症狀一律跳過」,不破例當骨折/脫位。
  2. 流鼻血(epistaxis):外傷情境認定為鼻挫傷 S00.33(非 R04.0、非跳過)。
  3. 外因碼(V/W/X/Y)先不做(P4 整章擱置)。

問題與修正

P1 — 症狀被誤編為外傷碼 / 流鼻血漏編

現象

  • 「右手食指變形」「左大腿變形」→ 被幻覺成撕裂傷/挫傷/骨折(應跳過)。
  • 「後頸痛」「下背痛」→ 被編成挫傷/扭傷(應跳過)。
  • 「流鼻血」→ 漏編(應為鼻挫傷 S00.33)。

根因

  • Stage1(gpt-4o-mini)會「從症狀推論診斷」:變形→骨折、痛→挫傷,
    且把症狀洗白成傷口字眼(raw_text 不留症狀詞),note-level 守門在
    混合病歷會被鄰近真傷/「瘀青」污染而失效。

修正(backend/rag_service.py

  • Stage1 prompt:中文症狀詞、禁止從症狀推論診斷、流鼻血→鼻挫傷例外、
    空輸出範例、要求逐項輸出 evidence 逐字來源
  • _llm_chattemperature=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_injuriesexpect_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 資料變更)。

沒有任何資料可供顯示

動作

匯出至 PDF Atom