跳至主要内容

快速開始 Quick Start

有三種使用方式:①直接用線上 App、②用 SMART Launcher 啟動、③本機開發。

① 直接用線上 App(最快)

  1. 開啟 https://voho0000.github.io/medical-note-smart-on-fhir/
  2. 選擇資料來源:
    • 本地匯入:把健保存摺等來源的 FHIR Bundle .json 拖進去(資料只留在本機)。
    • SMART on FHIR:由支援的 EHR/沙盒啟動。
  3. 在右側用 AI 助理查詢資料、起草病歷、產生臨床摘要。

沒有 FHIR 檔?用姊妹專案 NHI-FHIR Bridge 把健保存摺一鍵轉成 FHIR JSON,再拖進來。

② 用 SMART Health IT Launcher 啟動

  1. SMART Health IT Launcher
  2. Launch URL 填:https://voho0000.github.io/medical-note-smart-on-fhir/smart/launch
  3. 選一位測試病人 → Launch,即會帶著 OAuth context 開啟 App。

③ 本機開發 Local Development

需要 Node.js 20+(CI 使用 24)。

git clone https://github.com/voho0000/medical-note-smart-on-fhir.git
cd medical-note-smart-on-fhir
npm install

# 開發
npm run dev:webpack # webpack,http://localhost:3000(推薦)
npm run dev # Turbopack,http://localhost:3001(較快、實驗性)

# 建置 / 啟動
npm run build
npm start

# 測試
npm test

SMART on FHIR 設定

在 FHIR 沙盒/伺服器註冊應用程式(public client + PKCE):

項目
Launch URL<origin>/smart/launch
Redirect URL<origin>/smart/callback
Client TypePublic(PKCE)
Scopeslaunch openid fhirUser patient/*.read online_access

本專案只用 public client + PKCE,不支援 client secret(靜態前端無法藏密碼)。

AI 模型

不自備金鑰時,請求會經由 Firebase Functions 代理(有每日免費額度)。也可在設定填自己的金鑰直接呼叫。

類別模型
免費內建(免金鑰,經代理)Gemini 3.1 Flash-Lite(預設)、GPT-5.4 Nano、Claude Haiku 4.5
進階(需自備金鑰)GPT-5.4/5.5 系列、Gemini 3 / 3.5 / 3.1 Pro、Claude Sonnet 4.6/Opus 4.8

醫學文獻搜尋使用 Perplexity(深入模式)。

技術堆疊 Tech Stack

  • 框架:Next.js 16(App Router、Turbopack)、靜態匯出
  • UI:shadcn/ui、Tailwind CSS 4
  • FHIR:fhirclient 2.6.3
  • AI:Vercel AI SDK(OpenAI、Gemini、Claude、Perplexity)
  • 後端:Firebase(Auth、Firestore、Functions)— 在另一個 repo:firebase-smart-on-fhir
  • 架構:Clean Architecture + 功能模組(feature-based)

➡️ 更多細節:功能總覽 · 系統架構