動作
Improvement #391
進行中
SC
Direct-Map 對照表雙 AI 審核修正:語意計分排序 + 章節白名單 + D1–D4 臨床定案(29 斷言全 PASS)
Improvement #391:
Direct-Map 對照表雙 AI 審核修正:語意計分排序 + 章節白名單 + D1–D4 臨床定案(29 斷言全 PASS)
狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-07-30
完成日期:
完成比例:
0%
預估工時:
概述
Direct-Map 對照表雙 AI 審核修正:語意計分排序 + 章節白名單 + D1–D4 臨床定案(29 斷言全 PASS)¶
背景¶
#390 產出的三張對照表(1,081 列)依使用者要求進行雙 AI 審核:
- 方法一:四路內部 AI 對抗審核(一致性全掃/章節歸屬/高風險深查/臨床抽審),各自獨立、任務為「推翻這張表」
- 方法二:外部異家模型(非 Claude)逐列審核
共收 40+ 條發現,經逐條對 reference/icd10_clean.csv 核實後幾乎全數屬實。
根因一個:舊排序「最短描述優先」——ICD 命名慣例中罕見型/重症型描述較短
(Other/Inferior/Central/with penetration/with damage to nail 都比 Unspecified/without 短),
導致約 160+ cell 系統性選錯。完整明細:docs/directmap_draft/審核發現與修正明細.md(本票入庫)。
變更內容¶
1. 產生器結構性修正(backend/scripts/gen_directmap_draft.py,治本)¶
- 語意計分排序取代長度排序:unspecified 加分;other/multiple sites/穿透/甲床/方位型態詞降權
-
傷型章節白名單:擦挫傷只准 S_0 系、裂傷 S_1、扭傷 S_3、燒傷 T2x——
「頭部挫傷→胰臟頭 S36」這類跨章誤命中含 alt 欄結構性絕跡 -
變體選碼鏈:骨折未註明移位 → 純未特定 → 該段唯一碼 → displaced+
USE_DISPLACED
(ICD 慣例),絕不落 nondisplaced - 單詞邊界比對(ear⊂forearm 陷阱)、裂傷鎖「laceration without foreign body」整句
(排除血管/肌肉/穿透碼)、視圖後綴與 Upper Back 分離、無側別區強制 unspecified 碼
2. 修正的重大錯誤(節錄;全表主碼變動 160+ 列)¶
| 錯誤 | 修正 |
|---|---|
| 頭部挫傷 → 胰臟頭挫傷 S36.220A | S00 系頭部碼 |
| 體表裂傷 → 血管/肌肉裂傷(S25/S55/S65/S95/S39,~45 列) | S_1 皮膚裂傷碼 |
| 裂傷預設「穿透體腔」(腹/背/骨盆) | without penetration |
| 上背→上臂碼、下背→小腿碼、左耳燒傷→前臂碼 | 正確部位碼 |
| 指/趾傷 80 列全預設「傷及指甲」 | without damage to nail |
| 脫臼 14 列=罕見亞型(髖中央脫位/肩鎖 Rockwood VI/Other) | Unspecified dislocation |
| 脊椎「區域未特定」=C1/T1/L1 | S12.9XX/S22.009/S32.009 |
| 轉子間骨折=骨凸撕脫(apophyseal) | intertrochanteric |
| 掌面燒傷=手背碼、薦骨=Zone I 嚴重移位 | T23.x5 掌面碼、S32.10XA |
3. D1–D4 臨床定案(2026-07-30 使用者拍板,固化進產生器)¶
-
D1(b):移位碼綁型態/子部位(oblique/avulsion/coronoid/頸基部…)→ 不寫死,
落該段未特定碼(52 列型態假定歸零);移位細節寫 note 交 AI - D2:胸部擦挫裂改前胸壁專碼(S20.319A/S20.219A/S21.119A),與上背對稱
- D3:後腦 head_back 改頭皮專碼(S00.01/S01.01/S00.03/T20.x5)
-
D4(b):骨盆燒傷改 T21.x9 軀幹其他部位;生殖器碼專屬恥骨區;
性別未知 → 男女兩碼皆出候選供醫師勾選(resolver 規則,票 B 實作)
4. backend/tests/directmap_assert.py(新)— 29 條硬性斷言常駐入庫¶
每類審核發現固化為檢查(內臟/穿透/甲床/型態零殘留、脫臼扭傷全未特定、
側別稽核、D1–D4 定案…);重產必跑,全 PASS 才准入庫(維護規約同 smoke test)
5. 文件¶
-
docs/directmap_draft/審核發現與修正明細.md(新):40+ 條發現逐條
「錯誤情境/成因/解法/現況」完整紀錄 -
docs/icd10-directmap-design.md:D1–D4 定案、flag 語意補全、resolver 規則
驗收標準¶
- 斷言套件 29 條全 PASS(含 D1–D4 各一條)
- 內部複審(審核 agent 以自有腳本對修正版重掃):前版重大 7 條全清零、
維持修復、零新問題;過程中抓到的一條修正回歸(頸部燒傷)已修回 - 外部審核獨有發現(尺骨喙狀突/髂坐骨撕脫/股骨頸基部)已核實並依 D1 處理
- 側別稽核 0 矛盾;1,444 碼位存在性/描述一致性/章節歸屬全數通過
- 定稿表:soft 771 + skeletal 247 + joint_spine 43 = 1,061 列,NEED_MANUAL=0
備註¶
- 零 runtime 變更:僅離線產生器+參考資料+測試+文件,未動 API/前端 → smoke test 門檻不適用
- 審核方法紀錄:4 個對抗式 subagent(prompt 要求「設法推翻」)+ 外部模型審核包;
agent 發現一律逐條對參照庫核實後才採納(agent 也會幻覺) - 待辦(票 B):resolver 實作(含 BY_GENDER 性別未知雙碼、同碼去重、缺變體列落未特定列)、
_score()加「具名部位命中」護欄、表載入
沒有任何資料可供顯示
動作