实现了包含药物信息管理、服药记录追踪、统计分析、自动状态更新和推送提醒的完整药物管理系统。 核心功能: - 药物 CRUD 操作,支持多种剂型和自定义服药时间 - 惰性生成服药记录策略,查询时才生成当天记录 - 定时任务自动更新过期记录状态(每30分钟) - 服药前15分钟自动推送提醒(每5分钟检查) - 每日/范围/总体统计分析功能 - 完整的 API 文档和数据库建表脚本 技术实现: - 使用 Sequelize ORM 管理 MySQL 数据表 - 集成 @nestjs/schedule 实现定时任务 - 复用现有推送通知系统发送提醒 - 采用软删除和权限验证保障数据安全
53 lines
1.1 KiB
TypeScript
53 lines
1.1 KiB
TypeScript
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;
|
||
} |