feat(ai): Phase 2A-3 随访页 AI 辅助生成小结 — SSE 端点 + 前端集成

- AnalysisType 新增 FollowUpSummary 变体(as_str/prompt_name)
- HealthDataProvider 新增 get_follow_up_summary_data() + FollowUpSummaryDataDto
- erp-health 实现随访数据查询(task + records + PII 解密)
- 新增 /ai/analyze/follow-up-summary SSE 端点
- SanitizationService 新增 sanitize_follow_up_data()
- 前端 analysisSse.ts/AiAnalysisCard 支持 follow-up-summary 类型
- FollowUpTaskList 操作列新增「AI 小结」按钮
This commit is contained in:
iven
2026-05-19 00:54:15 +08:00
parent 205f6fb5a2
commit 2660f1afff
10 changed files with 223 additions and 13 deletions

View File

@@ -9,9 +9,9 @@ use erp_ai::dto::{AgentGenerateResponse, ChatMessage, ChatMessageRole, ToolCall,
use erp_ai::error::AiResult;
use erp_ai::provider::AiProvider;
use erp_core::health_provider::{
AppointmentSummaryDto, HealthDataProvider, HealthReportDto, LabItemDto, LabReportDto,
LabReportListItemDto, MedicationSummaryDto, PatientSummaryDto, TimeRange, TrendAnalysisDto,
VitalSignDto,
AppointmentSummaryDto, FollowUpSummaryDataDto, HealthDataProvider, HealthReportDto, LabItemDto,
LabReportDto, LabReportListItemDto, MedicationSummaryDto, PatientSummaryDto, TimeRange,
TrendAnalysisDto, VitalSignDto,
};
use futures::Stream;
use std::pin::Pin;
@@ -195,6 +195,13 @@ impl HealthDataProvider for MockHealthDataProvider {
) -> erp_core::error::AppResult<Vec<LabReportListItemDto>> {
Ok(vec![])
}
async fn get_follow_up_summary_data(
&self,
_tenant_id: Uuid,
_task_id: Uuid,
) -> erp_core::error::AppResult<FollowUpSummaryDataDto> {
unimplemented!()
}
}
// === 测试 ===