系统设计注重用户体验,通过友好的界面设计和高效的交互逻辑,确保了操作
的简便性。安全性方面,系统采用了JWT鉴权和数据加密技术,保障了用户数据的
安全。在性能优化上,通过数据库索引、缓存机制和代码优化等措施,提升了系统
响应速度和数据处理能力。
整体架构与设计思路
本系统采用前后端分离的四层架构:表示层(Vue 3 + Element Plus)、业务逻辑层(Spring Boot)、数据访问层(Spring Data JPA)和数据层(MySQL)。核心设计思路是围绕医疗随访场景,实现用户管理、病患信息管理、随访计划、诊断记录、提醒统计等功能,并通过JWT保障接口安全,使用Axios进行前后端交互。此外还设计了安全、日志、缓存、消息等辅助模块,提升系统的可维护性和扩展性。
我负责的模块与量化结果
我独立完成了整个系统的开发,包括后端所有RESTful API(共16个接口,涵盖登录、注册、病患CRUD、随访CRUD、诊断记录查询等),前端8个核心页面(登录、注册、病患管理、随访管理、诊断记录、数据统计等),以及5张数据库表的设计与实现。系统支持用户角色区分(医生/护士/管理员),随访提醒通过定时任务自动触发,数据统计模块以图表形式展示随访完成率。经测试,系统在100并发下平均响应时间小于300ms,满足日常医疗场景需求。
遇到的难点与解决方案
1. 跨域资源共享(CORS)问题:前后端分离导致浏览器拦截请求。解决方案是在Spring Boot中配置CORS过滤器,允许指定域名和请求方法,同时在前端代理中设置转发规则。
2. 数据库连接池配置:初期高并发下连接泄漏。通过调整HikariCP的`maximumPoolSize`、`connectionTimeout`等参数,并启用`leakDetectionThreshold`监控,最终稳定了连接复用。
3. JWT token失效与刷新机制:最初未设计刷新逻辑,用户需频繁登录。后增加了refresh token接口,并在前端拦截器中判断token过期时自动静默刷新,提升了用户体验。
4. 随访定时任务重复执行:使用`@Scheduled`时多实例部署会重复触发。改用分布式锁(Redis)保证单次执行,同时将任务与随访时间绑定,避免了重复提醒。