專案

一般

配置概況

動作

Feature #413

進行中
SC

檢傷預載三票:紅區右鍵刪除 + context 合約 v2/draft 加就診序號 + 機轉建議標記卡(v0.7.0)

Feature #413: 檢傷預載三票:紅區右鍵刪除 + context 合約 v2/draft 加就診序號 + 機轉建議標記卡(v0.7.0)

是由 Sashiba Chou 於 約 2 個月 前加入.

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

0%

預估工時:

概述

檢傷預載三票:紅區右鍵刪除 + context 合約 v2 + 機轉建議標記卡

背景

預跑程式(開發中)將改為提供結構化檢傷資料(年齡/性別/病歷號/就診序號/過敏史/受傷經過),取代現行整篇檢傷文字靠 regex 解析。2026-08-03 與使用者討論定案三題並同日實作:

  1. 匯入檢傷單區塊在外掛模式收成摺疊備援;基本資料/機轉改結構化欄位直接帶入
  2. 檢傷機轉描述 → 人體圖「建議標記」(建議制,醫師採用才寫入,絕不自動寫入病歷)
  3. 人體圖/骨骼圖紅色標記區右鍵可刪除傷情(單筆確認、多筆先選再確認)

另發現既有隱患一併修正: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 暫存快取,代價僅當下未完成草稿)
  • 前端:applyContext v2 走欄位直接對映(不再過 regex;過敏結構組字串、主訴+機轉併入、機轉關鍵字推斷抽出為 inferMechanism 共用);啟動 URL 新增 seq 參數,reg_seq 取用優先序 URL seq > 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.py 56 項全 PASS(13.7s,含 LLM 管線)
  • tsc --noEmit 過;ESLint 新增檔案/程式碼零警告(既有 6 項舊警告不在本票範圍)
  • npm run build production build 過

待辦(本票範圍外)

  • 預跑程式照 §4.5 合約對接(預跑程式尚未完工)
  • 薄殼 exe 重建以帶上 &seq= 參數
  • 觸控螢幕長按觸發刪除選單(現場若有觸控終端再補)

沒有任何資料可供顯示

動作

匯出至 PDF Atom