動作
Feature #413
進行中
SC
檢傷預載三票:紅區右鍵刪除 + context 合約 v2/draft 加就診序號 + 機轉建議標記卡(v0.7.0)
Feature #413:
檢傷預載三票:紅區右鍵刪除 + context 合約 v2/draft 加就診序號 + 機轉建議標記卡(v0.7.0)
狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-08-03
完成日期:
完成比例:
0%
預估工時:
概述
檢傷預載三票:紅區右鍵刪除 + context 合約 v2 + 機轉建議標記卡¶
背景¶
預跑程式(開發中)將改為提供結構化檢傷資料(年齡/性別/病歷號/就診序號/過敏史/受傷經過),取代現行整篇檢傷文字靠 regex 解析。2026-08-03 與使用者討論定案三題並同日實作:
- 匯入檢傷單區塊在外掛模式收成摺疊備援;基本資料/機轉改結構化欄位直接帶入
- 檢傷機轉描述 → 人體圖「建議標記」(建議制,醫師採用才寫入,絕不自動寫入病歷)
- 人體圖/骨骼圖紅色標記區右鍵可刪除傷情(單筆確認、多筆先選再確認)
另發現既有隱患一併修正:draft 以病歷號單獨為 key,同日二次就診會還原上次就診的草稿 → key 改為 (病歷號, 就診序號)。
變更內容¶
票 A:紅區右鍵刪除(軟組織圖 + 骨骼圖)¶
- 新增共用
DeleteInjuryDialog:單筆傷情直接確認框;多筆先列清單選取再確認 - 兩圖所有可點區域(主圖/特寫/頭骨特寫/關節熱區)掛
onContextMenu;無傷情的區域不攔截右鍵 - 父區域因子區域變紅時,清單涵蓋所有導致變紅的傷情(含
_unspecified虛擬部位;#399 教訓) - 軟組織側複用
removeInjury既有 pain-sync 回退,行為與清單垃圾桶鈕一致
票 B:context 合約 v2 + draft key + 匯入區摺疊¶
-
合約 v2 定稿於
his_plugin/DESIGN.md§4.5(給預跑程式對接):reg_seq/triage_no/patient{}/triage{}(主訴/機轉/生命徵象)/history{}(病史/過敏);v1 扁平格式永久相容(無contract_version即 v1) - backend:
plugin_context加reg_seq+structured(v2 原樣保存,未知欄位不擋 → 前向擴充);plugin_draft改複合主鍵 (patient_no, reg_seq),draft 三端點加?reg_seq=(預設 0 相容);啟動 migration(context ALTER、draft 舊表重建 — 72h 暫存快取,代價僅當下未完成草稿) - 前端:
applyContextv2 走欄位直接對映(不再過 regex;過敏結構組字串、主訴+機轉併入、機轉關鍵字推斷抽出為inferMechanism共用);啟動 URL 新增seq參數,reg_seq 取用優先序 URLseq> context v2 > 0;帶回成功清草稿同步帶 reg_seq - 薄殼 shell:啟動 URL 附
&seq=<reg_seq>( exe 需重建才生效;未重建走 context 備援,行為正確) - 外掛模式「匯入檢傷單」收成一列摺疊備援(預跑失敗/檢傷未打完時展開手貼);獨立網頁版維持原樣
票 C:機轉建議標記卡 + 幽靈標記¶
- 新增查表引擎
frontend/src/lib/triage-suggestions.ts:純前端、不 import BodySvgPaths(不拖 SVG 數據進主 bundle);建議 = 部位詞 × 傷型詞同子句共現,寧漏勿錯(只收高頻無歧義詞條) - 軟組織/骨骼頁籤頂部琥珀色建議卡:完整項一鍵 [採用];缺側別給 [左][右] 快捷鈕;缺傷型/燒傷缺程度 → 採用時開既有傷型 dialog 補完;部位模糊(背部→上背/下背、小腿開放性骨折→脛/腓)給選項鈕
- 「全部採用」只作用於完整項(定案:缺側別/傷型不可被一鍵帶過)
- 完整建議在圖上畫琥珀虛線幽靈標記,點擊 = 採用;採用後變紅色正式標記(含 pain-sync)
- 忽略的建議記入表單欄位
triageSuggestionsDismissed隨 draft 持久化,重開不再跳;已手動標記的建議自動消化;頁籤顯示待確認數 badge - 骨骼側只對「開放性骨折」「脫臼」明確字眼建議(護理師通常不描述骨折);脫臼對映關節熱區
- 只有已採用項才進病歷文字與 ICD 查詢,建議狀態完全不影響輸出
其他¶
-
version.ts→ v0.7.0 + CHANGELOG - smoke test 新增 9.10–9.12(v2 上傳/讀回/扁平同步、draft 雙序號隔離、自清)
驗收標準¶
- 紅區右鍵:單筆直接確認、多筆先選再確認;父區右鍵列出子區傷情;刪除後 pain-sync 正確回退
- v2 context 上傳 → 讀回 reg_seq/structured/扁平欄位同步(smoke 9.10)
- draft (病歷號, reg_seq) 隔離:不同序號互不可見、不帶 seq 視同 0(smoke 9.11–9.12)
- v1 扁平 context 行為不變(smoke 9.3–9.4 原檢查全 PASS)
- 查表引擎實測:「左小腿撕裂傷」直出完整建議、「手掌擦傷」出左右二選、「雙側膝蓋擦挫傷」展開兩筆、「右手背燙傷」不被「背」誤吃、「後背痛」「手術後傷口」不出建議
- 建議未採用不進病歷;忽略後重開不再跳;手動標記自動消化
-
backend/tests/smoke_test.py56 項全 PASS(13.7s,含 LLM 管線) -
tsc --noEmit過;ESLint 新增檔案/程式碼零警告(既有 6 項舊警告不在本票範圍) -
npm run buildproduction build 過
待辦(本票範圍外)¶
- 預跑程式照 §4.5 合約對接(預跑程式尚未完工)
- 薄殼 exe 重建以帶上
&seq=參數 - 觸控螢幕長按觸發刪除選單(現場若有觸控終端再補)
沒有任何資料可供顯示
動作