專案

一般

配置概況

動作

Feature #390

進行中
SC

ICD Direct-Map 票 A:對照表建置 — 草表產生器 + 1081 列全數定稿(臨床八題定案固化)

Feature #390: ICD Direct-Map 票 A:對照表建置 — 草表產生器 + 1081 列全數定稿(臨床八題定案固化)

是由 Sashiba Chou3 天 前加入.

狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-07-30
完成日期:
完成比例:

0%

預估工時:

概述

ICD Direct-Map 票 A:對照表建置 — 草表產生器 + 1081 列全數定稿(臨床八題定案固化)

背景

Direct-Map 新功能立案(設計:docs/icd10-directmap-design.md,本票一併入庫):
表單「部位+傷情」查表直接出碼(0 秒、確定性),AI 退居掃尾——更快、更準、
AI 不分散注意力。先例:#293 牙齒寫死、#330 B1 點名補漏。

本票為分票計畫的 票 A:對照表建置——整個功能的地基。原則:不手刻,
以離線腳本從 reference/icd10_clean.csv(7.3 萬碼)自動比對產表,特殊部位由
急診醫師臨床拍板,決策固化進腳本(重跑永遠一致、有跡可循)。

變更內容

1. backend/scripts/gen_directmap_draft.py(新)— 對照表產生器

  • BodySvgPaths.tsx 抽 125 個軟組織區域(左右側正確拆分)+ 骨骼分段定義
  • 單詞邊界關鍵字比對(初版子字串比對誤傷:ear ⊂ forearm、male ⊂ female)
  • 圖上用語 → ICD 用語同義層(abdomen→abdominal wall、big toe→great toe、
    calf→lower leg、上背表淺→back wall of thorax…)
  • 皮膚裂傷鎖「laceration without foreign body」整句(否則比中血管/肌肉裂傷碼)
  • 無側別區域(胸/背/臀等)強制落 unspecified 碼
  • 內建側別稽核:列側別與比中碼側別矛盾即報警(抓出 8 條 bug 後歸零)

2. docs/directmap_draft/ 三張定稿表(1081 列,全數出碼)

列數 內容
soft_draft.csv 771 125 區域 × Abrasion/Laceration/Contusion/Burn×3度/Sprain(關節)
skeletal_draft.csv 267 骨/分段 × 側 × 未特定/移位/未移位(fallback 標記完備)
joint_spine_draft.csv 43 12 關節脫臼(含雙踝/三踝)+ 脊椎逐節(胸椎 T5 起成對)

3. 臨床八題定案(2026-07-30 使用者拍板,已固化進腳本)

頰/額燒傷→T20.x6 合併碼|胸→T21.x1 胸壁|口腔燒傷→T28.0(不分度)|
眼→T26.0x 眼瞼眼周|骨盆/恥骨燒傷→依性別 T21.x6/x7|臀部→下背及骨盆碼|
恥骨表淺傷→依性別外生殖器碼|臉部子區擦挫→頭部其他部位

4. flag 語意(票 B resolver 依此實作)

  • BY_GENDER(12 列):code=男碼、alt1=女碼,依表單性別擇一
  • USE_DISPLACED:變體無碼 → 落移位碼(ICD 慣例:未註明視為移位)
  • USE_UNSPECIFIED:分段僅次分類(Colles 家族等)→ 落該段未特定碼
  • NA_DENTAL:牙齒區走既有 #293

5. docs/icd10-directmap-design.md(新)— 完整設計文件

15 條決策紀錄(症狀五種→contusion、note 非空交 AI、Burn 程度複選、
關節熱區 12 顆座標已審定、骨分段子選單、子選單關閉=取消(病安)、
脊椎確定性多候選、rollback 雙保險)+ 分票計畫 A–E

驗收標準

  • 三張表 0 列 NEED_MANUAL(初版 197+105+10 → 迭代修正後歸零)
  • 側別稽核 0 矛盾(左列不得比中右碼、無側別列不得比中側別碼)
  • 抽驗關鍵列:左耳燒傷=T20.312(非前臂)、前臂裂傷=S51.812(非血管)、
    骨盆裂傷=S31.011(非肌肉)、上背挫傷=S20.22x 後胸壁
  • ICD 事實查證修正:坐骨=S32.6(非 S32.8)、胸椎 T5 起成對編碼、
    ICD 無「未特定掌骨」碼、肘脫臼=ulnohumeral joint

備註

  • 零 runtime 變更:本票僅離線工具+參考資料+文件,未動任何 API/前端流程
    → smoke test 門檻不適用(維護規約判定);表載入與測試表為票 B 範疇
  • 下一步票 B:backend Stage 0 resolver(查表引擎、structured_injuries payload、
    AI prompt 修改、ICD_DIRECTMAP flag、表完整性自動化測試)

沒有任何資料可供顯示

動作

匯出至 PDF Atom