當 AI 學會寫病歷 — Draft-Only Enforcement 的設計哲學
Blog/
||||||

當 AI 學會寫病歷 — Draft-Only Enforcement 的設計哲學

iRehab Doctor AI Phase 2 讓 AI 可以起草臨床評估紀錄,但只能存草稿。為什麼我們選擇 draft-only enforcement,而不是讓 AI 直接發布?從 MCP Server 到紫色 badge,一個醫療 AI 寫入系統的設計思考。

醫師最討厭的工作

問任何一位骨科醫師「你最不喜歡工作的哪個部分」,答案很少是手術本身。通常是:

「寫病歷。」

評估紀錄、SOAP notes、追蹤報告、品質報表。這些文書作業佔據大量時間,但每一份都必須精確。你不能亂寫,但你也不想每次都從零開始打字。

這就是 Doctor AI 想解決的問題。


Phase 1:AI 會讀了

2026 年初,我們推出 Doctor AI Phase 1。醫師透過 API Token 連接自己慣用的 AI 工具(Claude Code、Gemini CLI、Codex CLI 等),AI 可以:

  • 讀取病患的 VAS 趨勢、遵從率、PROM 分數
  • 產生週報和趨勢摘要
  • 回答「哪些病患遵從率偏低?」「這位病患的恢復速度正常嗎?」之類的問題

Phase 1 是 read-only 的。AI 可以看,但不能改任何東西。身分證、電話、Email 等個資在送入 AI 前自動移除。

這很好,但醫師開始問:「AI 都已經看完資料了,可以幫我寫 SOAP notes 嗎?」


Phase 2:AI 會寫了(但只能存草稿)

Phase 2 開放了寫入權限。AI 現在可以幫醫師起草臨床評估紀錄(Assessment)。

但這裡有一個關鍵的設計決策:

AI 的寫入只能存為草稿。永遠不會自動發布。

我們把這個原則叫做 draft-only enforcement

為什麼不讓 AI 直接發布?

因為臨床決策的最終責任在醫師身上。

AI 可以根據 VAS 趨勢建議「疼痛改善中,建議進階」,但它不知道今天門診時病患走進來時看起來很不舒服。它不知道病患昨天跌倒了。它不知道病患對某個處方有心理抗拒。

這些 context 是 AI 目前無法完全掌握的。所以正確的做法是:AI 提供草稿,醫師在 30 秒內掃一眼、修改、確認。而不是 AI 直接寫進正式紀錄。


兩條路線:你用 App 還是 CLI?

大多數骨科醫師的 AI 工具是手機上的 ChatGPT 或 Gemini,不是 terminal 裡的 CLI。所以我們設計了兩條路線,都通往同一個目標:醫師不用打字。

Path A:App 用戶(多數醫師)

這是最常見的使用方式:

  1. 助理/PT 在 Doctor PWA 填完 Step 1(VAS、傷口)和 Step 2(ROM、測試)
  2. 按下「AI 輔助 SOAP」按鈕 — 系統自動生成一段 prompt,包含今天量測的所有數字,但不含任何病患姓名或身分證
  3. Prompt 自動複製到剪貼簿 + 一鍵跳轉到 ChatGPT / Gemini / Claude
  4. 助理對 AI 口述病人狀況:「這位阿嬤術後六週,走路還會痛,但比上次好很多,膝蓋腫脹消了」
  5. AI 回覆 SOAP notes → 複製回 Doctor PWA → 系統自動解析成 S/O/A/P 四欄
  6. 助理存為草稿
  7. 醫師親自看診後,開 PWA 看到「待確認」→ 掃一眼 → 確認

iRehab 本身不會把任何病患可識別資訊傳到 AI。 Prompt 只包含格式指令和臨床數字(VAS 3/10、ROM 120/0、effusion: none)。醫師或助理在外部 AI 工具中說了什麼,是他們自己的臨床行為。

Path B:CLI 用戶(進階醫師)

少數醫師用 Claude Code、Gemini CLI 等命令列工具。這條路線更強大:

  1. AI 透過 MCP Server 直接讀取病患資料(有 API Token 授權 + PII 自動移除)
  2. 醫師說:「王先生術後六週,ROM 120/0,可以進階」
  3. AI 自動填入欄位、追問缺漏項目、存為草稿
  4. 醫師在 PWA 確認

Path B 的 AI 有完整的 patient context(VAS 趨勢、PROM 分數、上次評估),所以生成的 SOAP 品質更高。但需要設定 API Token(3 分鐘)。


三角分工:助理 + AI + 醫師

台灣骨科門診的現實:一個時段 30-50 位病人,醫師平均每人 3-5 分鐘。醫師的核心價值在臨床判斷,不在打字。

我們把工作拆成三份:

角色做什麼不做什麼
助理 / PT量 ROM、記 VAS、填傷口狀態、按 AI 輔助 SOAP、對 AI 口述病情、存草稿不做臨床判斷、不決定 progression
AI把口述轉成結構化 SOAP、解析填入四欄不自動發布、不取代醫師診察
醫師親自看診(觸診、問診)、審閱 SOAP 草稿、確認或修改不用打字、不用記欄位在哪

醫師 key in 量 = 0。只需要:看、改(如果有需要)、確認。

技術架構

層級說明
MCP Server v2.0.02 支寫入工具(draft_assessment, draft_prescription)+ 6 支讀取工具(趨勢、警報、PROM 等)
API 預設拒絕白名單制 — 只有明確列在 allowlist 的 endpoint 才能被 AI Token 存取
Draft-only enforcementAPI 層面強制:AI Token 只能寫入 status=draft 的紀錄,無法直接設定 status=published
Scope 管理醫師在 Doctor PWA 的 Token Scope 管理 UI 中,明確授權哪些寫入權限

安全邊界

我們對 Doctor AI 設定了明確的安全邊界:

AI 可以做的

  • 讀取病患的復健資料(VAS、PROM、運動紀錄、評估歷史)
  • 根據醫師口頭交代,起草評估紀錄(SOAP notes + ROM + VAS + 積液 + progression)
  • 起草運動處方(從運動庫選取項目、設定組數次數)
  • 追問醫師未提到的欄位(這是 AI 工具的自然對話能力,不是 server 功能)
  • 產生趨勢分析和週報

AI 不能做的

  • 直接發布任何紀錄(必須經醫師確認)
  • 直接推進 phase(phase advancement 延遲到醫師確認草稿時才執行)
  • 起草術式紀錄或自費紀錄(目前僅支援評估和處方)
  • 存取個資(身分證、電話、Email 自動移除)
  • 存取超出該醫師權限範圍的病患資料
  • 自動診斷或自動開立處方

如果 AI 寫錯了?

不會有任何後果 — 因為它只是草稿。醫師在確認前看到任何問題,直接刪除或修改即可。草稿不會進入病患的正式紀錄,不會影響 PROM 排程,不會觸發任何臨床流程。


BYO-LLM:不綁定,不代管

另一個設計決策:iRehab 不內嵌特定的 AI 聊天框。

我們提供標準的 MCP Server 和 API Token 介面,讓醫師自由選擇 AI 工具。Claude Code、Gemini CLI、Codex CLI、本地模型 — 都可以。

理由很簡單:

  1. AI 模型半年就換一代 — 綁定特定供應商是短視的
  2. 資料主權 — 醫師選擇哪個 AI 供應商,就決定了資料經過誰的伺服器。Enterprise 版通常不會留存資料
  3. 成本 — 不同的 AI 供應商有不同的定價。醫師應該有選擇權

iRehab 的角色是提供安全的資料存取層,而不是成為 AI 供應商。


出嘴巴就好:語音輸入 + AI 填表

一個常見的問題:「我不想打字,可以用說的嗎?」

答案是可以,而且不需要任何額外設定。

iPhone、Mac、Android 都內建了聽寫功能 — 在任何輸入框點麥克風鍵就能用。醫師在 AI 工具的輸入框裡按麥克風,講完送出,AI 就會把自然語言對應到表單欄位。

這不需要「訓練」模型。MCP Server 定義了每個欄位的 schema(ROM 的屈曲/伸直、VAS 0-10、積液分級等),LLM 讀了 schema 就知道怎麼對應。醫師說「屈曲一百二,伸直零度」,AI 自動填入 kneeFlexion: 120, kneeExtension: 0

用 CLAUDE.md 定義你的快捷語

如果你用 Claude Code,可以在專案的 CLAUDE.md 裡寫你的慣用語:

# 我的慣用語
- 「可以進」= progressionDecision: advance
- 「退一階」= progressionDecision: regress
- 「腫」= effusionGrade,問我程度
- 沒提到的欄位一律問我,不要自己猜

AI 每次都會遵守這些規則,等於用自然語言定義了一套快捷指令。其他 AI 工具也有類似的系統提示詞設定。

目前的限制

  • 系統聽寫對中文日常用語辨識率很高,但英文醫學縮寫(ROM、VAS、TKA)偶爾會聽錯
  • 不能邊講邊看 AI 即時填入 — 要講完送出後 AI 才處理
  • 語音輸入的品質取決於你的設備和環境,不是 iRehab 可以控制的

信任但驗證

「Draft-only enforcement」這個名字借鑑了一個老原則:信任但驗證(Trust but verify)。

我們信任 AI 的能力 — 它確實可以根據資料產出合理的臨床評估草稿。但我們也驗證 — 每一筆草稿都必須經過人類醫師的眼睛和判斷。

這不是對 AI 的不信任。這是對「臨床決策必須有人類在 loop 中」的堅持。

在 AI 技術持續進步的過程中,draft-only 是一個可以逐步放寬的起點。當 AI 的可靠性提升到一定程度,我們可以考慮更多的自動化。但起步時,寧可保守。


醫師的手不用碰鍵盤

最後,回到最初的問題:醫師最討厭的工作。

有了 AI SOAP Assist,門診流程從:

醫師看診 → 醫師打字 → 醫師存檔(每人 5-10 分鐘)

變成:

助理量測 → 助理 + AI 生成 SOAP → 醫師看診 → 醫師確認(每人 30 秒-1 分鐘)

醫師不需要記得每個欄位在哪裡、不需要從零開始寫 SOAP notes、不需要碰鍵盤。省下來的 60% 打字時間,可以花在真正需要醫師做的事 — 觸診、問診、跟病患多說兩句話。

Path A(手機 ChatGPT):不需要任何設定,打開 Doctor PWA 就能用。 Path B(CLI/MCP):在 Doctor PWA「我的」→「API Token」頁面產生 Token,連接你慣用的 AI 工具。設定只需要 3 分鐘。

完整設定指南:denovortho.com/irehab/ai-setup