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:
@@ -11,6 +11,7 @@ export interface AiAnalysisCardProps {
|
||||
triggerLabel?: string;
|
||||
permission?: string;
|
||||
metrics?: string[];
|
||||
taskId?: string;
|
||||
}
|
||||
|
||||
type AnalysisState = 'idle' | 'loading' | 'success' | 'error';
|
||||
@@ -21,6 +22,7 @@ export function AiAnalysisCard({
|
||||
triggerLabel = 'AI 分析',
|
||||
permission = 'ai.analysis.manage',
|
||||
metrics,
|
||||
taskId,
|
||||
}: AiAnalysisCardProps) {
|
||||
const [state, setState] = useState<AnalysisState>('idle');
|
||||
const [content, setContent] = useState('');
|
||||
@@ -38,6 +40,9 @@ export function AiAnalysisCard({
|
||||
if (analysisType === 'trends' || analysisType === 'checkup-plan') {
|
||||
body.patient_id = sourceRef;
|
||||
}
|
||||
if (analysisType === 'follow-up-summary') {
|
||||
body.source_id = taskId || sourceRef;
|
||||
}
|
||||
if (metrics) {
|
||||
body.metrics = metrics;
|
||||
}
|
||||
@@ -55,7 +60,7 @@ export function AiAnalysisCard({
|
||||
setErrorMsg('分析请求失败');
|
||||
setState('error');
|
||||
}
|
||||
}, [analysisType, sourceRef, metrics]);
|
||||
}, [analysisType, sourceRef, metrics, taskId]);
|
||||
|
||||
const handleReset = useCallback(() => {
|
||||
setState('idle');
|
||||
|
||||
Reference in New Issue
Block a user