快速開始 Quick Start
有三種使用方式:①直接用線上 App、②用 SMART Launcher 啟動、③本機開發。
① 直接用線上 App(最快)
- 開啟 https://voho0000.github.io/medical-note-smart-on-fhir/
- 選擇資料來源:
- 本地匯入:把健保存摺等來源的 FHIR Bundle
.json拖進去(資料只留在本機)。 - SMART on FHIR:由支援的 EHR/沙盒啟動。
- 本地匯入:把健保存摺等來源的 FHIR Bundle
- 在右側用 AI 助理查詢資料、起草病歷、產生臨床摘要。
沒有 FHIR 檔?用姊妹專案 NHI-FHIR Bridge 把健保存摺一鍵轉成 FHIR JSON,再拖進來。
② 用 SMART Health IT Launcher 啟動
- 開 SMART Health IT Launcher。
- Launch URL 填:
https://voho0000.github.io/medical-note-smart-on-fhir/smart/launch - 選一位測試病人 → 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 Type | Public(PKCE) |
| Scopes | launch 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)