# H-DCRS **Repository Path**: yangchunwang/h-dcrs ## Basic Information - **Project Name**: H-DCRS - **Description**: 基于高血压患者的膳食推荐系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 高血压药物 - 膳食协同推荐系统 (HDCRS) ## 项目简介 面向高血压患者的药物 - 膳食协同推荐系统,采用 Java + Spring Boot + Maven + MyBatis-Plus + MySQL 5.7 + Vue2 技术栈开发。系统包含**用户端**(患者)和**管理端**(医护人员)两大核心模块,支持用户管理、血压数据管理、药物管理、膳食管理、协同推荐、数据统计分析等功能,实现药物推荐与膳食推荐的深度协同,为高血压患者提供科学、安全、个性化的健康管理方案。 ## 技术栈 ### 后端 - Java 1.8 - Spring Boot 2.7.18 - Maven - MyBatis-Plus 3.5.3.1 - MySQL 5.7 - JWT 0.9.1 - Hutool 5.8.22 ### 前端 - Vue 2.6.14 - Vue Router 3.5.1 - Vuex 3.6.2 - Element UI 2.15.13 - Axios 0.27.2 ## 系统功能 ### 用户端功能 1. **用户注册/登录** - JWT 令牌认证 - 用户名密码登录 - 用户注册 2. **个人信息管理** - 基本信息(年龄、性别、身高、体重) - 病史、并发症 - 用药史 - 膳食偏好、饮食禁忌 - 过敏史 3. **血压数据管理** - 血压记录(收缩压、舒张压、心率) - 血压趋势查询 - 高血压分级 4. **药物管理** - 用药记录(药物名称、剂量、频率) - 用药提醒设置 - 用药执行记录 - 停药管理 5. **膳食管理** - 膳食记录(早餐、午餐、晚餐、加餐) - 营养摄入计算(能量、钠、钾等) - 食物库查询 6. **协同推荐** - 药物 - 膳食相互作用检查 - 个性化膳食推荐 - 需避免的食物 - 推荐的食物 7. **健康知识学习** - 疾病知识 - 用药指导 - 膳食指导 - 运动指导 - 心理调适 ### 管理端功能 1. **用户管理** - 用户信息审核 - 用户状态管理 2. **膳食数据库维护** - 食物信息管理 - 营养成分维护 3. **推荐方案审核** - 协同推荐规则管理 - 药物 - 食物相互作用规则 4. **健康数据统计** - 用户健康数据分析 - 用药统计 - 膳食统计 ## 项目结构 ``` H-DCRS/ ├── database/ # 数据库相关 │ └── hdcrs_schema.sql # 数据库表结构 ├── src/main/java/com/hdcrs/ │ ├── HypertensionDietRecommendationApplication.java # 启动类 │ ├── common/ # 公共类 │ │ ├── Result.java # 统一返回结果 │ │ ├── ResultCode.java # 返回状态码枚举 │ │ └── BusinessException.java # 业务异常 │ ├── config/ # 配置类 │ │ ├── CorsConfig.java # 跨域配置 │ │ └── MybatisPlusConfig.java # MyBatis-Plus 配置 │ ├── controller/ # 控制器层 (RESTful API) │ │ ├── UserController.java │ │ ├── HealthController.java │ │ ├── FoodController.java │ │ ├── DietController.java │ │ └── RecommendationController.java │ ├── service/ # 服务层接口 │ │ ├── IUserService.java │ │ ├── IHealthRecordService.java │ │ ├── IFoodService.java │ │ ├── IDietRecordService.java │ │ ├── IDietRecommendationService.java │ │ ├── INutritionStatisticsService.java │ │ └── impl/ # 服务层实现 │ ├── mapper/ # 数据访问层 │ │ ├── UserMapper.java │ │ ├── HealthRecordMapper.java │ │ ├── FoodMapper.java │ │ ├── DietRecordMapper.java │ │ ├── DietRecommendationMapper.java │ │ └── NutritionStatisticsMapper.java │ ├── entity/ # 实体类 │ │ ├── User.java │ │ ├── HealthRecord.java │ │ ├── Food.java │ │ ├── DietRecord.java │ │ ├── DietRecommendation.java │ │ └── NutritionStatistics.java │ └── handler/ # 处理器 │ └── GlobalExceptionHandler.java # 全局异常处理 ├── src/main/resources/ │ ├── application.yml # 应用配置文件 │ └── mapper/ # MyBatis XML 映射文件 ├── frontend/ # Vue 前端项目 │ ├── public/ │ │ └── index.html │ ├── src/ │ │ ├── api/ # API 接口 │ │ │ ├── user.js │ │ │ ├── health.js │ │ │ ├── food.js │ │ │ ├── diet.js │ │ │ └── recommendation.js │ │ ├── router/ # 路由配置 │ │ │ └── index.js │ │ ├── store/ # 状态管理 │ │ │ └── index.js │ │ ├── utils/ # 工具类 │ │ │ └── request.js │ │ ├── views/ # 页面组件 │ │ │ ├── Home.vue │ │ │ ├── Login.vue │ │ │ ├── Dashboard.vue │ │ │ ├── Health.vue │ │ │ ├── Diet.vue │ │ │ ├── Food.vue │ │ │ └── Recommendation.vue │ │ ├── App.vue │ │ └── main.js │ ├── package.json │ └── vue.config.js └── pom.xml ``` ## 数据库表设计 ### 核心表结构 1. **user (用户表)** - 存储用户基本信息、角色、身体指标等 2. **health_record (健康档案表)** - 存储用户健康信息,包括血压、血糖、血脂等指标 - 高血压分级、并发症、用药情况等 3. **blood_pressure_record (血压记录表)** - 日常血压测量记录 4. **food (食物库表)** - 食物营养成分信息(能量、蛋白质、脂肪、钠、钾等) - 是否适合高血压患者食用 5. **diet_record (膳食记录表)** - 用户每日饮食记录 6. **nutrition_statistics (营养摄入统计表)** - 每日营养摄入汇总统计 7. **diet_recommendation (膳食推荐表)** - 系统生成的个性化膳食推荐方案 8. **recommendation_history (推荐记录表)** - 推荐算法执行历史 9. **doctor (医生/营养师表)** - 专业人士信息 10. **consultation (咨询记录表)** - 用户与医生的咨询记录 11. **system_config (系统配置表)** - 系统参数配置 12. **message (消息通知表)** - 系统消息通知 ## 快速开始 ### 后端启动 1. 创建数据库并导入表结构: ```bash mysql -u root -p < database/hdcrs_schema.sql ``` 2. 修改 `src/main/resources/application.yml` 中的数据库连接配置 3. 启动后端服务: ```bash mvn spring-boot:run ``` 后端服务将在 http://localhost:8080/api 启动 ### 前端启动 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install ``` 3. 启动开发服务器: ```bash npm run dev ``` 前端服务将在 http://localhost:3000 启动 ## API 接口 ### 用户相关 - GET /api/user/list - 获取用户列表 - GET /api/user/{id} - 获取用户详情 - POST /api/user - 创建用户 - PUT /api/user - 更新用户 - DELETE /api/user/{id} - 删除用户 ### 健康档案 - GET /api/health/list?userId={userId} - 获取健康档案列表 - GET /api/health/{id} - 获取健康档案详情 - POST /api/health - 创建健康档案 - PUT /api/health - 更新健康档案 ### 食物库 - GET /api/food/list - 获取食物列表 - GET /api/food/list?category={category} - 按分类获取食物 - GET /api/food/{id} - 获取食物详情 - GET /api/food/search?name={name} - 搜索食物 ### 膳食记录 - GET /api/diet/list?userId={userId}&date={date} - 获取膳食记录 - POST /api/diet - 创建膳食记录 - DELETE /api/diet/{id} - 删除膳食记录 ### 膳食推荐 - GET /api/recommendation/list?userId={userId} - 获取推荐列表 - GET /api/recommendation/{id} - 获取推荐详情 - POST /api/recommendation - 创建推荐 - PUT /api/recommendation - 更新推荐 ## 架构特点 1. **分层架构**: Controller -> Service -> Mapper 清晰的分层设计 2. **RESTful API**: 遵循 RESTful 规范的接口设计 3. **统一响应**: 统一的返回结果格式 Result 4. **全局异常处理**: 统一的异常处理机制 5. **逻辑删除**: 使用 MyBatis-Plus 的逻辑删除功能 6. **跨域支持**: 配置了跨域访问支持 7. **分页支持**: MyBatis-Plus 分页插件 ## 下一步 请告诉我具体的业务逻辑需求,我将进一步完善系统功能,包括: - 用户认证授权(JWT) - 膳食推荐算法 - 数据可视化统计 - 医生咨询功能 - 消息通知功能 - 更多业务功能