feat(health): 药物提醒后端 API + 后台任务统一 + dead code 清理
P1-3: medication_reminder 全栈实现
- migration 000096: 创建 medication_reminder 表(含患者关联/提醒时间/频率)
- entity + dto + service + handler: 完整 CRUD(乐观锁/软删除/审计日志)
- 路由注册: GET /patients/{id}/medication-reminders, POST/PUT/DELETE
- HealthError 新增 MedicationReminderNotFound
P2-4: 后台任务启动统一
- appointment_reminder 迁移到 HealthModule::on_startup()(启动时立即执行 + 周期循环)
- 删除 main.rs 中重复的 overdue_checker/points_expiration/appointment_reminder 调用
- 所有 Health 后台任务现由模块 on_startup 统一管理
P2-5: Web dead code 清理
- 删除 healthData.ts 中 getMiniTrend/getMiniToday(小程序专用端点,Web 无调用)
- 删除 patients.ts 中 getHealthSummary(标记 TODO 未使用)
This commit is contained in:
@@ -220,21 +220,4 @@ export const healthDataApi = {
|
||||
}>(`/health/patients/${patientId}/trends/${encodeURIComponent(indicator)}`);
|
||||
return data.data;
|
||||
},
|
||||
|
||||
// Mini program endpoints
|
||||
getMiniTrend: async (params: { indicator?: string; days?: number }) => {
|
||||
const { data } = await client.get<{
|
||||
success: boolean;
|
||||
data: { date: string; value: number }[];
|
||||
}>('/health/vital-signs/trend', { params });
|
||||
return data.data;
|
||||
},
|
||||
|
||||
getMiniToday: async () => {
|
||||
const { data } = await client.get<{
|
||||
success: boolean;
|
||||
data: VitalSigns | null;
|
||||
}>('/health/vital-signs/today');
|
||||
return data.data;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -131,15 +131,6 @@ export const patientApi = {
|
||||
await client.post(`/health/patients/${id}/tags`, { tag_ids: tagIds });
|
||||
},
|
||||
|
||||
// TODO: 未使用,待未来健康摘要功能接入时启用
|
||||
getHealthSummary: async (id: string) => {
|
||||
const { data } = await client.get<{
|
||||
success: boolean;
|
||||
data: Record<string, unknown>;
|
||||
}>(`/health/patients/${id}/health-summary`);
|
||||
return data.data;
|
||||
},
|
||||
|
||||
listFamilyMembers: async (id: string) => {
|
||||
const { data } = await client.get<{
|
||||
success: boolean;
|
||||
|
||||
Reference in New Issue
Block a user