系統運作說明
這份說明寫給導入本系統的醫院技術窗口與臨床主管。內容涵蓋系統定位、多租戶設計、評分邏輯、各設定 tab 的用途與資料治理重點。
系統定位
高齡周全性評估(CGA)智慧系統採用 Astro 5 SSG + Svelte 5 + IndexedDB, 所有頁面在 build 時靜態產出,部署在 GitHub Pages 上、零後端。 使用者端評估過程的事件、作答結果、分流摘要都儲存在 使用者瀏覽器的 IndexedDB,不會送到任何第三方。
跨裝置共享靠 SMART on FHIR:受測者完成評估後可選擇將結果以 Observation + DiagnosticReport 推送到醫院的 FHIR Server,
醫師端工作台再從 Server 拉回展示。
多租戶機制
系統用連線中的 FHIR base URL 作為 tenant 識別碼。 `tenantSettings`、`customEducation`、`recommendationOverlays` 全部以此 ID 做 partition。
醫院 A 跟醫院 B 即使共用同一台裝置(瀏覽器)開啟,切換 FHIR Server 後設定不會混淆。
未連線時走「預設租戶」(tenant id = default),用內建衛教與系統預設規則。
評分邏輯(CGA 分流)
- 分層軸(CFS):進入評估時由臨床/照護者判定臨床衰弱量表 CFS 1–9,gate 後續適用的領域子項與建議,但 不參與計分。
- 逐量表計分:各 CGA 量表(GDS-15、Barthel、MNA-SF、SPMSQ…) 各有驗證過的固定切分點(cutoff)。將原始分對照量表分段(band), 得到該領域的 severity(normal/monitor/refer)。作答不全者標為 incomplete。
- 整體分流(取最嚴重領域):
- refer(建議轉介):任一領域為 refer
- monitor(追蹤觀察):無 refer 但有 monitor
- normal(正常):所有領域皆 normal
- incomplete(未完成):所有領域皆未完成
各設定 Tab 的用途
- FHIR Server 設定
- 新增、編輯醫院 FHIR Server(base URL、Client ID、scopes)。儲存後到 /workspace/ 即可連線。
- 規則管理
- 生命徵象警示閾值(正常 / 注意 / 警告)的 YAML 規則。覆寫系統預設、影響所有預警觸發。
- Webhook 設定
- 當預警產生時,向外部系統(醫院 HIS、Slack、訊息中介)發送 webhook 的 URL 與簽章。
- 通知偏好
- 瀏覽器通知、聲音、批次間隔。儲存在本機,不同裝置獨立設定。
- 模型管理
- 檢視 / 更新本機 ONNX 模型(繪圖分類、姿態判斷)的版本與發佈日期。
- 衛教管理
- 醫院自上傳的衛教內容(文章 / 影片),會出現在
/education/列表與評估後推薦。 - 評估推薦
- per severity × 領域(top.sub)自訂評估後給個案/照護者看的衛教清單。可選「合併系統預設」或「完全取代」。
- 系統說明
- 本頁。
PHI 與資料治理
- 使用者端 IndexedDB:包含個案基本資料、評估事件、PII。屬於該裝置的本地資料,不會自動上傳任何位置。使用者清除瀏覽器資料即刪除。
- FHIR 上傳:只有使用者明確選擇收案機構並送出才會推送,且僅傳 Observation + DiagnosticReport(分數、結論),不傳原始事件 timeline。
- URL 安全:所有 assessment id 都是隨機 UUID v4,不含 PII;結果頁加
referrer no-referrer避免外洩。 - 共用設備:診所共用裝置請確保每次評估前清空本機,或使用獨立的使用者 profile。
部署注意事項
- 部署為純靜態網站;GitHub Pages、Vercel、Cloudflare Pages、Nginx 皆可。
- 建議 HTTPS + custom domain。SMART on FHIR 通常要求 HTTPS redirect_uri。
scripts/base.mjs控制 base path;部署於子目錄需改BASE_PATH。- 無 server 端日誌;錯誤回報可考慮接 Sentry / 自家 Webhook。
- 規則 / 衛教 / 推薦 都存在使用者裝置的 IndexedDB — 建議搭配 export / import 功能(未來迭代)做備援。
已知限制 / 未來工作
- 多個案切換、家庭/代理模式尚未實作。
- FHIR 端的 DiagnosticReport 反查不含原始事件 timeline。
- i18n 目前只支援 zh-TW。