feat(swift): implement agenda planning module (Epic 4 UI)

- Add AgendaBlock core component with list, create, cancel, reschedule modes
- Implement AgendaListView with patient/type/location details and actions
- Implement AgendaCreateForm with fuzzy patient search and validation
- Implement AgendaCancelView with disambiguation support
- Implement AgendaRescheduleForm with date/time picker
- Integrate with server actions (create, cancel, reschedule)
- Add radio-group UI component
- Update documentation and status
This commit is contained in:
colinislit
2025-12-27 22:29:11 +01:00
parent 0031bd5fd1
commit a6b63665e1
18 changed files with 5874 additions and 19 deletions

View File

@@ -183,18 +183,25 @@ export async function classifyIntentWithAI(input: string): Promise<AIClassificat
const processingTimeMs = performance.now() - startTime;
// Build entities object with backward compatibility
const entities: ExtractedEntities = {
patientName: validated.entities?.patientName,
category: validated.entities?.category as VerpleegkundigCategory | undefined,
content: validated.entities?.content,
query: validated.entities?.query,
// Legacy fields for backward compatibility
date: validated.entities?.date,
time: validated.entities?.time,
};
// For agenda intents, we'll rely on local entity extraction
// AI just provides the basic fields (patientName, date, time)
// and the local extractor will structure them properly
return {
intent: validated.intent as SwiftIntent,
confidence: validated.confidence,
entities: {
patientName: validated.entities?.patientName,
category: validated.entities?.category as VerpleegkundigCategory | undefined,
content: validated.entities?.content,
query: validated.entities?.query,
date: validated.entities?.date,
time: validated.entities?.time,
identifier: validated.entities?.identifier,
},
entities,
source: 'ai',
processingTimeMs,
reasoning: validated.reasoning,