Blog/

「離線優先」不是「離線堪用」— xGrid 如何在沒有網路的環境中運作

大部分系統的離線模式是降級。xGrid 的離線模式是正常。在沒有基地台、沒有網路、沒有 IT 人員的災難現場,這個差異決定了系統能不能用。

一個思想實驗

把你的手機切到飛航模式。打開你最常用的 app。

有些 app 會直接白屏。有些會顯示快取的舊資料,但什麼也不能做。有些會讓你繼續操作,等恢復連線後再同步。

第三種,大多數人叫它「離線堪用」。它預設你會回到線上,離線只是一種暫時的不方便。

xGrid 不是這樣。xGrid 的預設狀態就是離線。它不等網路回來,因為在它的部署環境裡,網路可能永遠不會來。

這不是降級模式。這是正常模式。

整個醫療資訊系統,裝在一台裝置裡

xGrid 的核心是一台專用的邊緣運算裝置,大約一個手掌大,用行動電源就能供電。

這台裝置上同時運行三套系統:

  • xGrid 社區韌性網 (Community Grid) — 病患登錄、檢傷分類、臨床交班、處方開立
  • xGrid 醫療韌性網 (Medical Grid) — 庫存管理、血庫、手術追蹤、藥局調劑
  • xGrid READY — 設施物資盤點與韌性追蹤

三套系統各自獨立,各有自己的資料庫。裝置開機後自動啟動所有服務,任何一個服務異常都會在數秒內自動重啟。

然後,這台裝置自己開一個 WiFi 熱點。

護理師、醫師、藥師拿出手機,連上這個 WiFi,打開瀏覽器,就能開始工作。不需要路由器。不需要基地台。不需要任何雲端服務。

裝置本身就是基礎設施。

手機離開 WiFi 範圍怎麼辦?

護理師走到 50 公尺外的檢傷帳篷,手機斷開了 WiFi。她在手機上幫一個傷患做了檢傷分類。這筆資料會不見嗎?

不會。手機上的系統會把操作暫存在本地,等她走回 WiFi 範圍後自動同步。

而且,暫存不是無差別排隊。系統把操作分成三個優先級:

優先級類型範例
最高:臨床操作檢傷、醫囑、生命徵象、急救藥品保留 7 天,永不自動刪除
中等:營運操作庫存異動、藥品發放、血庫操作保留 3 天
最低:系統記錄畫面瀏覽、點擊紀錄同步後即刪

恢復連線時,臨床操作優先同步。如果頻寬不夠,系統紀錄可以被捨棄,而不影響任何病患資料。

像破窗授權(Break-Glass)、輸血記錄、管制藥品發放這類稽核關鍵操作,無論如何都不會被自動刪除——它們會一直保留到確認同步為止。

四道自動同步防線

手機恢復連線後,系統怎麼知道要同步?它不靠單一機制,而是用四道獨立的觸發條件:

  1. 切回畫面時 — 護理師從其他 app 切回系統,立刻嘗試同步
  2. 偵測到網路時 — 手機連上 WiFi 的瞬間,立刻同步
  3. 定時檢查 — 每 30 秒自動檢查一次,有待同步的資料就送出
  4. 關閉頁面前 — 最後一次嘗試,確保資料不會因為關掉瀏覽器而遺失

四道防線,至少有一道會觸發。實測中,離線資料的同步延遲通常在秒級,最差情況也在分鐘級。

離線倒數計時器

護理站螢幕上方有一條橫幅,用顏色告訴你「離線多久了」:

安全
超過 4 小時
注意
1–4 小時
警告
15 分鐘
危急
手機震動提醒

這不是在嚇人。它給操作者足夠的時間做決定:走回 WiFi 範圍同步,還是繼續在離線模式下工作。離線越久,手機上的資料和中央資料庫的差異越大。倒數計時器讓這個差異可見

為什麼不用雲端?

不是不能用。是不應該依賴。

災難醫療的部署環境:

  • 基地台可能倒了,沒有行動網路
  • 電力不穩定,裝置靠行動電源供電
  • 沒有 IT 人員,操作者是護理師和醫師
  • 沒有設定時間,開箱就要能用

在這些條件下,任何依賴雲端的系統都有一個致命問題:你在最需要它的時候,最可能連不上它。

xGrid 的答案是把「雲端」帶在身上。一台裝置 + 一個行動電源 + 幾支手機 = 一個完整的醫療資訊系統。開機到可用,30 秒。

「離線優先」的真正意思

不是「我們有離線模式」。

是「我們的系統在完全沒有外部依賴的情況下,依然能完成所有核心功能。」

每一個設計決策都從這個前提出發。選嵌入式資料庫而不是需要另一台伺服器的資料庫。選瀏覽器應用而不是需要應用商店的原生 app。選事件排隊而不是即時同步。選 WiFi 熱點而不是需要網路管理員設定的 VPN。

每一個「選」都在回答同一個問題:如果只有一台裝置和幾支手機,這個功能還能用嗎?

如果答案是「不能」,我們就重新設計,直到答案變成「能」。


延伸閱讀:為什麼選擇嵌入式資料庫? · 當牆壁被打穿時 — Safety-II 如何改變我們設計醫療系統的方式