Commit Graph

7 Commits

Author SHA1 Message Date
richarjiang
f04c2ccd5d feat(medications): 添加药物超时提醒功能
在MedicationRecord模型中添加overdueReminderSent字段追踪超时提醒状态,在提醒服务中新增定时任务检查超过服药时间1小时的未服用记录,并向用户发送鼓励提醒。该功能每10分钟检查一次,避免重复发送提醒,帮助用户及时补服错过的药物。
2025-11-14 14:47:44 +08:00
richarjiang
5a9be42a93 feat(medications): 添加药品AI分析功能,支持智能用药指导
新增基于GLM-4.5V大模型的药品AI分析服务,为用户提供专业的用药指导和健康建议:

- 新增MedicationAnalysisService服务,集成GLM视觉和文本模型
- 实现流式SSE响应,支持实时返回AI分析结果
- 药品模型新增aiAnalysis字段,持久化存储分析结果
- 添加药品识别度判断,无法识别时引导用户补充信息
- 集成用户使用次数限制,免费用户次数用完后提示开通会员
- 支持图片识别分析,结合药品外观提供更准确的建议
- 提供全面的用药指导:适应症、用法用量、注意事项、副作用等
2025-11-12 17:07:39 +08:00
richarjiang
e6f3c79104 refactor(medications): 简化服药时间更新逻辑,采用删除重建策略
将更新服药时间的处理方式从复杂的记录更新逻辑改为删除当天记录并重新生成。
这样做的好处:
- 简化代码逻辑,移除了 updateTodayUntakenRecords 方法及其 75 行代码
- 与激活状态更新的处理方式保持一致,提高代码可维护性
- 避免了时间匹配和记录排序的复杂性,更加可靠
- 系统会在定时任务中自动根据新的服药时间重新生成正确的记录
2025-11-11 15:54:09 +08:00
richarjiang
d9c144ff87 feat(medications): 添加提醒发送状态追踪,防止重复推送
- 新增 reminder_sent 字段到服药记录表,用于标记提醒发送状态
- 添加数据库索引优化未发送提醒记录的查询性能
- 提醒检查频率从 5 分钟优化至 1 分钟,提升及时性
- 添加主进程检测机制,避免多进程环境下重复发送提醒
- 增强错误处理和发送结果统计功能
2025-11-11 11:13:44 +08:00
richarjiang
2850eba7cf feat(medications): 优化药物删除功能,添加事务处理和批量操作
- 在药物删除时使用事务确保数据一致性
- 删除药物时同时软删除所有相关用药记录
- 优化删除操作性能,使用批量更新替代循环删除
- 扩展删除范围,从删除未服用记录改为删除当天所有记录
- 添加完善的错误处理和日志记录
2025-11-10 14:46:10 +08:00
richarjiang
e25002e018 feat(medications): 新增药物激活状态管理及相关记录更新功能 2025-11-10 11:04:36 +08:00
richarjiang
188b4addca feat(medications): 新增完整的药物管理和服药提醒功能
实现了包含药物信息管理、服药记录追踪、统计分析、自动状态更新和推送提醒的完整药物管理系统。

核心功能:
- 药物 CRUD 操作,支持多种剂型和自定义服药时间
- 惰性生成服药记录策略,查询时才生成当天记录
- 定时任务自动更新过期记录状态(每30分钟)
- 服药前15分钟自动推送提醒(每5分钟检查)
- 每日/范围/总体统计分析功能
- 完整的 API 文档和数据库建表脚本

技术实现:
- 使用 Sequelize ORM 管理 MySQL 数据表
- 集成 @nestjs/schedule 实现定时任务
- 复用现有推送通知系统发送提醒
- 采用软删除和权限验证保障数据安全
2025-11-07 17:29:11 +08:00