1. 项目背景与核心价值
中老年人养老健康管理正面临数字化转型的关键时期。根据卫健委最新数据,我国60岁以上老年人口已达2.8亿,其中约8%选择机构养老。传统养老院的健康管理普遍存在三大痛点:纸质记录易丢失、数据更新滞后、家属无法实时掌握老人状况。这个毕业设计项目正是针对这些痛点,提出了一套完整的数字化解决方案。
系统采用SpringBoot+Android双端架构,实现了健康数据采集、异常预警、家属可视化的闭环管理。与市面上同类产品相比,其创新点在于:
- 微信小程序轻量化入口,降低使用门槛
- 多模态数据融合(体征数据+护理记录+活动轨迹)
- 基于时间序列的智能预警算法
- 家属端与护理端的权限隔离设计
提示:选择养老健康系统作为毕设的优势在于:需求明确、社会价值高、技术栈覆盖面广,且容易找到真实用户进行需求验证。
2. 技术架构设计
2.1 整体技术选型
系统采用三层架构设计:
code复制表现层:微信小程序 + Android护理端App
业务层:SpringBoot 2.7 + Shiro权限控制
数据层:MySQL 8.0 + Redis缓存
技术选型考量:
- SpringBoot:简化配置,内置Tomcat方便部署,Starter机制快速集成MyBatis等组件
- Android原生开发:相比跨平台方案更能保证护理端的数据采集稳定性
- MySQL:关系型数据存储的最佳平衡点,JSON类型支持半结构化护理记录
- 小程序:利用微信生态的传播优势,避免单独安装App的负担
2.2 核心数据模型
主要数据库表设计:
sql复制CREATE TABLE `elderly` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL,
`room_num` VARCHAR(10),
`health_status` ENUM('normal','attention','warning'),
`guardian_id` INT COMMENT '家属用户ID'
);
CREATE TABLE `health_data` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
`elderly_id` INT NOT NULL,
`type` ENUM('temperature','blood_pressure','blood_oxygen'),
`value` DECIMAL(10,2),
`measure_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`nurse_id` INT COMMENT '记录人'
);
注意:实际开发中建议添加复合索引(elderly_id, measure_time)以提高查询效率
3. 关键功能实现
3.1 健康数据采集模块
Android端核心代码结构:
java复制// 数据采集服务
public class HealthMonitorService extends Service {
private BluetoothGatt mGatt;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// 蓝牙连接医疗设备
connectBluetoothDevice();
return START_STICKY;
}
private void uploadData(HealthData data) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://your-api.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiService api = retrofit.create(ApiService.class);
Call<ResponseBody> call = api.uploadHealthData(data);
call.enqueue(...);
}
}
3.2 智能预警算法
采用滑动窗口算法检测异常值:
python复制# 伪代码示例
def detect_abnormal(values, window_size=5, threshold=2):
abnormalities = []
for i in range(len(values) - window_size + 1):
window = values[i:i+window_size]
mean = np.mean(window[:-1])
if abs(window[-1] - mean) > threshold * np.std(window[:-1]):
abnormalities.append(i + window_size - 1)
return abnormalities
实际项目中可扩展:
- 针对血压的"双阈值"检测(收缩压/舒张压不同标准)
- 结合用药时间的药效期预警
- 基于历史数据的个性化基线计算
4. 开发注意事项
4.1 多端同步问题
常见坑点及解决方案:
-
时间不同步:强制所有设备使用NTP服务器时间
bash复制# Android端配置 adb shell settings put global auto_time 1 adb shell settings put global auto_time_zone 1 -
数据冲突:采用乐观锁机制
java复制@Update("UPDATE health_data SET value=#{value}, version=version+1 WHERE id=#{id} AND version=#{version}") int updateWithVersion(HealthData data);
4.2 性能优化要点
-
小程序端:
- 使用分包加载减少首屏时间
- 对健康数据图表采用按需渲染
- 利用云开发减轻服务器压力
-
服务端:
yaml复制# application.yml 关键配置 spring: datasource: hikari: maximum-pool-size: 20 connection-timeout: 30000 redis: lettuce: pool: max-active: 50
5. 毕设答辩加分项
- 真实数据验证:联系当地养老院获取脱敏数据测试
- 对比实验:与传统纸质记录方式对比响应速度
- 扩展方向:
- 接入智能手环等IoT设备
- 增加AI健康建议功能
- 开发语音交互模块方便老年用户
我在开发过程中特别深的一点体会是:养老系统的UI设计必须遵循"大字体、高对比、少操作"原则。例如血压录入界面,我们最终采用了滑块选择而非键盘输入,使护理人员戴着手套也能操作。这种细节往往比技术复杂度更能决定系统的实际可用性。
