專案

一般

配置概況

動作

Fix #291

進行中
SC SC

ICD-10 脊椎部位歸類修正 + M 章節骨折污染清除

Fix #291: ICD-10 脊椎部位歸類修正 + M 章節骨折污染清除

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

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

100%

預估工時:
1:00 小時

概述

摘要

修正 faceted pipeline 兩個 facet 資料瑕疵(來源 docs/icd10_feedback_2026-06-19.json id 8/9):脊椎椎節部位標註錯誤、M 章節非外傷骨折污染外傷候選。修正後頸椎骨折不再回疲勞性骨折碼。屬資料層修正,向量庫需重建;線上邏輯僅 Stage1 prompt 增 1 條映射。

背景 / 問題

  • id 8(C2 頸椎閉鎖性骨折):AI 只回 M48.42XA(疲勞性骨折,非外傷),正解應為 S12.1xx
  • id 9(T1/T12 胸椎骨折):歸類偏差(wrong_body_part)。

根因(兩個耦合的 facet 資料 bug):

  1. 脊椎部位標註錯誤且不一致:頸椎 S12 有 64/71 被標 back(應為 neck);胸椎 S22.0 在 thorax/back 之間分裂;薦椎 S32.1 在 pelvis/back 之間分裂。→ 「Cervical Spine」查詢(region=neck)撈不到被標 back 的 S12。
  2. M 章節非外傷骨折污染:228 條(encounter A)M48/M80/M84(疲勞/骨質疏鬆/病理性骨折)被標 injury_type=fracture,混進外傷候選;neck 區唯一的「fracture」剩 M48.42,故 C2 錯配它。

變更內容

資料修補 backend/scripts/patch_facets_spine.py(新增,一次性,idempotent)

就地修補 data/icd10_facets_validated.json

  • Part 1code 開頭 M 且 injury_type=fracture → 改 pathological_fracture(不再匹配外傷 fracture;仍保留於庫可被一般查詢)。實改 1314 筆
  • Part 2:脊椎部位確定性重新歸類,實改 689 筆
    • S12/S13/S14 頸椎 → neck(back→neck 447)
    • S22.0/S22.1/S23/S24 胸椎 → thorax
    • S32.0/S33 腰椎 → back
    • S32.1/S32.2/S34 薦/尾椎 → pelvis

線上 backend/rag_service.py

  • STAGE1_FACETED_PROMPT body_region 映射增 1 條:cervical spine→neck, thoracic spine→thorax, lumbar spine→back, sacrum/coccyx→pelvis

向量庫

  • 由修補後 facets 重跑 build_faceted_collection.py 重建 icd10_codes_faceted(73681 碼)。

測試 backend/scripts/test_spine_fix.py(新增)

頸/胸/腰/薦椎骨折各一題,綁碼段(非綁 LLM 命名):驗 top5 出現該椎節外傷碼段(S12/S22.0/S32.0/S32.1)且無疲勞/病理/骨質疏鬆污染。

驗證結果(live, OpenAI)

  • 脊椎專項:C2→S12.11x、T1→S22.018A、L1→S32.0xx、薦椎→S32.1xx,皆無 M 污染 — 全 PASS。
  • 回歸無打壞:離線檢索 21/21、原始 24/24、新反例 14/14。
  • 反向生題 v3:desc 骨折 7/9→9/9、subcat 94%→100%(femur→M84、脊椎漏接皆修復)。
  • 回饋對照:id 8、9 由錯誤轉正確。

部署注意

  • data/chroma_db/ 為 gitignored 生成物。部署機須依序重跑:
    scripts/patch_facets_spine.pyscripts/build_faceted_collection.py

風險 / 回滾

  • 仍在 ICD_PIPELINE=faceted 旗標下,legacy 不受影響。
  • 已備份 data/icd10_facets_validated.bak.json;舊向量庫 icd10_codes 未動。

已知後續(本 ticket 不含)

依 06-19 回饋,尚有 dental 牙折、外因碼(貓抓/咬)、徵象/疼痛誤編、腹部挫傷過度配內臟等新類別待處理。

擬納入此 commit 的檔案

  • M backend/rag_service.py
  • A backend/scripts/patch_facets_spine.py
  • A backend/scripts/test_spine_fix.py

(排除既有 scratch:scripts/test_faceted_query.py、scripts/validate_facets_sample.py、debug_icd10_output.md)

沒有任何資料可供顯示

動作

匯出至 PDF Atom