動作
Feature #163
已結束
SC
SC
實作全端使用者認證、病歷持久化與 UI 優化
Feature #163:
實作全端使用者認證、病歷持久化與 UI 優化
概述
h3. 將系統從單機原型升級為多使用者醫療紀錄平台,新增 JWT 認證、SQLite 病歷/模板 CRUD,並優化歷史側邊欄與使用者設定介面的易用性。
h1. 變更範圍
h2. Backend(新增 4 檔、修改 2 檔)
- 新增 auth.py:JWT + bcrypt 認證模組(24 小時 token 過期)
- 新增 database.py:SQLAlchemy + SQLite 設定
- 新增 models.py:User / Template / MedicalRecord ORM 模型
- 新增 schemas.py:Pydantic 驗證 schema
- 修改 main.py:新增 /register、/token、/users/me、/users/me/password、/records CRUD、/templates CRUD 等 API 端點
- 修改 requirements.txt:新增 sqlalchemy、python-jose、passlib、python-multipart
h2. Frontend(新增 4 檔、修改 4 檔)
- 新增 auth-context.tsx:React Context 認證狀態管理(localStorage token 持久化)
- 新增 Login.tsx:登入/註冊雙模式表單
- 新增 HistorySidebar.tsx:病歷歷史側邊欄(讀取/刪除/切換紀錄)
- 新增 UserSettingsModal.tsx:使用者設定(變更密碼 + 模板 CRUD 含編輯功能)
- 修改 layout.tsx:包裝 AuthProvider
- 修改 page.tsx:認證閘門、側邊欄佈局、病歷切換確認對話框
- 修改 TraumaAssessment.tsx:erNote 狀態提升至表單容器
- 修改 ReviewTab.tsx:產生病歷時自動存檔至後端
h2. UI 優化
- 時間戳記:後端 created_at 視為 UTC,前端補 Z 後以瀏覽器本地時區顯示
- 智慧標籤:age/gender 缺一項時獨立顯示(如 ? y/o Female、50 y/o ?)
- 刪除確認:病歷與模板刪除前皆彈出 window.confirm 確認
- 模板編輯器:對話框寬度 80vw、文字區域最小高度 60vh,支援編輯既有模板(PUT 更新)
h1. 其他
- 更新 CLAUDE.md:記錄 Anaconda 環境、完整架構說明、技術棧與開發進度
SC 是由 Sashiba Chou 於 約 2 個月 前更新
- 狀態 從 New 變更為 Closed
動作