Files
plates-server/src/medications/dto/medication-record-query.dto.ts
richarjiang 188b4addca feat(medications): 新增完整的药物管理和服药提醒功能
实现了包含药物信息管理、服药记录追踪、统计分析、自动状态更新和推送提醒的完整药物管理系统。

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

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

53 lines
1.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { ApiProperty } from '@nestjs/swagger';
import { IsOptional, IsString, IsDateString, IsEnum } from 'class-validator';
import { MedicationStatusEnum } from '../enums/medication-status.enum';
/**
* 查询服药记录 DTO
*/
export class MedicationRecordQueryDto {
@ApiProperty({
description: '指定日期YYYY-MM-DD',
example: '2025-01-15',
required: false,
})
@IsOptional()
@IsString()
date?: string;
@ApiProperty({
description: '开始日期YYYY-MM-DD',
example: '2025-01-01',
required: false,
})
@IsOptional()
@IsString()
startDate?: string;
@ApiProperty({
description: '结束日期YYYY-MM-DD',
example: '2025-01-31',
required: false,
})
@IsOptional()
@IsString()
endDate?: string;
@ApiProperty({
description: '指定药物ID',
example: 'med_001',
required: false,
})
@IsOptional()
@IsString()
medicationId?: string;
@ApiProperty({
description: '状态筛选',
enum: MedicationStatusEnum,
required: false,
})
@IsOptional()
@IsEnum(MedicationStatusEnum)
status?: MedicationStatusEnum;
}