一个面向 GitHub 展示的智能医疗导诊全栈项目。项目提供症状初筛、科室推荐、医院匹配、导诊报告、AI 健康问答、健康档案、历史记录和数据统计能力。它的目标是展示完整的前后端工程闭环,而不是替代医生诊断或作为生产级医疗系统上线。
项目核心记忆点:用户完成症状分析后,可以生成一份可复制、可打印、可追溯的“智能导诊报告”。
- 症状分析:基于本地规则引擎识别常见症状,输出风险等级、可能方向、推荐科室和建议。
- 医院推荐:根据用户位置、推荐科室、医院等级、距离和评分生成推荐列表。
- 推荐理由:医院卡片展示“匹配科室、医院等级、距离、评分”等说明。
- 导诊报告:自动汇总症状、风险等级、推荐科室、医院推荐、注意事项和免责声明。
- AI 医生:可选接入通义千问;未配置 API Key 时给出友好提示,不阻断主流程。
- 健康档案:保存昵称、年龄、性别、过敏史、慢性病、常用药、紧急联系人。
- 历史记录:症状分析成功后自动保存,可查看历史详情。
- 健康统计:展示症状频率、风险等级分布、推荐科室占比。
- 地图降级:未配置高德地图 Key 时,地图区域显示提示,核心流程仍可使用。
| 模块 | 技术 |
|---|---|
| 前端 | React, Vite, React Router, Tailwind CSS, Radix UI, lucide-react |
| 后端 | Flask, Flask-CORS, Flask-SQLAlchemy |
| 数据库 | SQLite |
| AI 服务 | DashScope / 通义千问,可选配置 |
| 地图服务 | 高德地图 JS API,可选配置 |
截图文件位于 screenshots/。如果你刚克隆项目,可以先本地运行后重新截图。
| 首页 | 医院推荐 | 导诊报告 |
|---|---|---|
![]() |
![]() |
![]() |
| 健康档案 | 历史记录 | 健康统计 |
|---|---|---|
![]() |
![]() |
![]() |
flowchart LR
User["用户"] --> Frontend["React 前端"]
Frontend --> Symptoms["症状分析 API"]
Frontend --> Hospitals["医院推荐 API"]
Frontend --> Profile["健康档案/历史/统计 API"]
Frontend --> AI["AI 问答 API"]
Frontend --> Map["高德地图 JS API"]
Symptoms --> SQLite["SQLite"]
Hospitals --> SQLite
Profile --> SQLite
AI --> DashScope["DashScope 可选"]
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python src\main.py后端默认运行在 http://127.0.0.1:5000。
cd frontend
npm install
npm run dev -- --host 127.0.0.1前端默认运行在 http://127.0.0.1:5173。
项目可以无 Key 运行,未配置时会自动降级。
后端 backend/.env.example:
DASHSCOPE_API_KEY=
WEATHER_API=
FLASK_ENV=development
PORT=5000前端 frontend/.env.example:
VITE_AMAP_JS_API_KEY=详细接口见 docs/API.md。
GET /api/config/statusPOST /api/symptoms/analyzePOST /api/hospitals/recommendGET /api/profilePOST /api/profileGET /api/analysis/historyPOST /api/analysis/historyGET /api/analysis/statsPOST /api/ai/chat- 前端路由:
/report/:id
- 前后端分离,覆盖从输入、分析、推荐、保存到统计的完整链路。
- 分析完成后生成正式导诊报告,可复制、可打印,适合作品集展示。
- AI 和地图都是可选增强能力,缺少 Key 时不影响核心演示。
- 使用 SQLite 保存健康档案和历史分析记录,刷新页面后仍可查看。
- 后端接口统一返回
success/data/message或success/error。 - 医疗类项目保留安全边界:只做辅助建议,不提供确诊和处方。
运行前端构建:
cd frontend
npm run build运行后端接口烟测:
cd backend
python ..\scripts\smoke_api.py本项目仅用于学习、演示和 GitHub 项目展示。页面中所有分析、建议、AI 回复和医院推荐均不能替代专业医生诊断。若出现胸痛、呼吸困难、意识模糊、大量出血、高热不退等紧急情况,请立即拨打 120 或前往急诊。





