醫師最討厭的工作
問任何一位骨科醫師「你最不喜歡工作的哪個部分」,答案很少是手術本身。通常是:
「寫病歷。」
評估紀錄、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 直接寫進正式紀錄。
實際操作流程
一個回診場景
病患剛做完 ROM 測量,醫師在 AI 工具裡打了一句:
「王先生術後六週,ROM 120/0,走路不太痛了,可以進階。」
AI 會做三件事:
- 自動讀取病患資料 — 查 VAS 趨勢、PROM 分數、運動遵從率、上次評估紀錄
- 填入欄位 — 把 ROM 120/0 填進屈曲/伸直欄位,progression 設為「進階」,根據趨勢資料預填 S/O/A/P 四區筆記
- 追問未提到的項目 — 「你沒有提到積液程度和運動後 VAS,需要填嗎?上次評估是 trace effusion、VAS 3。」
醫師回覆「積液消了,VAS 2」,AI 補完草稿,透過 MCP Server 送出。
Doctor PWA 端
- 評估列表中出現一筆新紀錄,帶有紫色 badge — 表示「AI 草稿,待確認」
- 醫師點開,看到完整的 S/O/A/P + ROM + VAS + 積液 + progression 決策
- 確認沒問題 → 點「確認」→ 紀錄正式生效,badge 消失;phase advancement 在此刻才會執行
整個流程的目標:醫師交代兩句話,AI 填完表單。原本要手動點選十幾個欄位的工作,變成一次對話。
技術架構
| 層級 | 說明 |
|---|---|
| MCP Server v2.0.0 | 2 支寫入工具(draft_assessment, draft_prescription)+ 6 支讀取工具(趨勢、警報、PROM 等) |
| API 預設拒絕 | 白名單制 — 只有明確列在 allowlist 的 endpoint 才能被 AI Token 存取 |
| Draft-only enforcement | API 層面強制: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、本地模型 — 都可以。
理由很簡單:
- AI 模型半年就換一代 — 綁定特定供應商是短視的
- 資料主權 — 醫師選擇哪個 AI 供應商,就決定了資料經過誰的伺服器。Enterprise 版通常不會留存資料
- 成本 — 不同的 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 的可靠性提升到一定程度,我們可以考慮更多的自動化。但起步時,寧可保守。
兩句話填完一張表
最後,回到最初的問題:醫師最討厭的工作。
有了 Doctor AI Phase 2,回診時的流程從「打開表單 → 逐欄手動填入 → 存檔」變成「跟 AI 說兩句話 → AI 追問漏的 → 確認」。醫師不需要記得每個欄位在哪裡、不需要從零開始寫 SOAP notes。AI 已經看過病患趨勢,只需要你補上今天門診的觀察。
省下來的時間,可以花在更重要的事情上 — 比如跟病患多說兩句話。
如果你想試試 Doctor AI,在 Doctor PWA「我的」→「API Token」頁面產生 Token,連接你慣用的 AI 工具即可。設定只需要 3 分鐘。
