Introducción
Cada cita en el sistema pasa por diferentes estados durante su ciclo de vida. Entender estos estados es fundamental para:- Gestionar correctamente el calendario y la disponibilidad
- Saber qué citas cuentan para tu plan de suscripción
- Entender el flujo de trabajo desde que se crea hasta que se completa una cita
- Interpretar reportes y estadísticas de tu clínica
Los 4 Estados de Cita
Pending
Cita PendienteLa cita ha sido creada pero aún no confirmada por el paciente. Es el estado inicial cuando se agenda una cita.
Confirmed
Cita ConfirmadaEl paciente confirmó la cita (por teléfono, WhatsApp o automáticamente). La cita está asegurada.
Completed
Cita CompletadaEl servicio fue prestado y la cita finalizó. El sistema marca automáticamente citas pasadas como completadas.
Cancelled
Cita CanceladaLa cita fue cancelada por el paciente o la clínica. Se mantiene en el historial pero no cuenta para el plan.
Flujo de Estados
El ciclo de vida de una cita sigue este flujo:Transiciones Válidas
| Desde | Hacia | Cómo |
|---|---|---|
| Pending | Confirmed | Manual (staff) o automático (WhatsApp) |
| Pending | Cancelled | Manual (staff cancela) |
| Confirmed | Completed | Automático (sistema cada 60s) |
| Confirmed | Cancelled | Manual (staff cancela) |
Transiciones Automáticas
El sistema gestiona automáticamente ciertas transiciones para reducir trabajo manual.Pending → Confirmed (Automático via WhatsApp)
Pending → Confirmed (Automático via WhatsApp)
Cuando un paciente agenda una cita a través del bot de WhatsApp, la cita se crea automáticamente como Confirmed (no pasa por Pending).Razón: El paciente ya interactuó directamente con el sistema, lo que implica confirmación implícita.Configuración: Esta lógica está en
app/services/appointment_orchestrator.pyConfirmed → Completed (Automático cada minuto)
Confirmed → Completed (Automático cada minuto)
Un job automático se ejecuta cada 60 segundos y marca como
Completed todas las citas confirmadas cuya fecha/hora de inicio ya pasó.Ejemplo: Una cita confirmada para las 15:00 será marcada como Completed automáticamente a las 15:01.Job: complete_appointments en app/scheduler.py (línea 238)Any → Cancelled (Manual)
Any → Cancelled (Manual)
La cancelación es siempre manual. El sistema no cancela citas automáticamente.Cuando se cancela una cita:
- El estado cambia a
Cancelled - La cita permanece en el historial (soft delete)
- El slot queda disponible nuevamente
- Se invalida el cache de disponibilidad
- Se registra en
audit_logsquién canceló y cuándo
Cambiar Estado Manualmente
Puedes cambiar el estado de una cita cuando sea necesario (excepto transiciones no permitidas).1
Abrir la Cita
Busca la cita desde:
- Calendario: Click en la cita
- Búsqueda: Usa el buscador de citas por paciente/fecha
- Lista de Citas: En el panel lateral
2
Click en Cambiar Estado
En el panel de detalles de la cita, busca el botón “Cambiar Estado” o el dropdown de estado actual.
3
Seleccionar Nuevo Estado
Elige el nuevo estado:
- Pending → Confirmed: Si el paciente confirmó por teléfono
- Pending/Confirmed → Cancelled: Si se cancela la cita
4
Confirmar Cambio
Confirma el cambio. El sistema:
- Actualiza el estado en la base de datos
- Registra el cambio en audit logs
- Invalida caches si es necesario
- Envía notificación al paciente si corresponde
Impacto de Cada Estado
Cada estado tiene diferentes efectos en el sistema.| Estado | Cuenta para Plan? | Aparece en Calendario? | Notifica al Paciente? |
|---|---|---|---|
| Pending | ✅ Sí | ✅ Sí (naranja) | ✅ Al crear |
| Confirmed | ✅ Sí | ✅ Sí (verde) | ✅ Al confirmar |
| Completed | ✅ Sí | ✅ Sí (gris) | ❌ No |
| Cancelled | ❌ No | ⚠️ Opcional (rojo) | ✅ Al cancelar |
Cuenta para Plan significa que la cita se contabiliza en el límite mensual de tu plan de suscripción. Las citas canceladas NO cuentan.
Detalles por Estado
Pending - Cita Pendiente
Pending - Cita Pendiente
Color: NaranjaComportamiento:
- ✅ Ocupa slot en el calendario (bloquea disponibilidad)
- ✅ Cuenta para el límite mensual del plan
- ✅ Aparece en reportes de citas pendientes
- ⚠️ Alta probabilidad de no-show si no se confirma
- Se envió notificación al crear la cita
- Se puede enviar recordatorio manual
Confirmed - Cita Confirmada
Confirmed - Cita Confirmada
Color: VerdeComportamiento:
- ✅ Ocupa slot en el calendario (bloquea disponibilidad)
- ✅ Cuenta para el límite mensual del plan
- ✅ Aparece en reportes de citas confirmadas
- ✅ Baja probabilidad de no-show
- Se envió confirmación al paciente
- Se envían recordatorios automáticos (24h y 2h antes)
- Después de la fecha/hora, pasa automáticamente a
Completed
Completed - Cita Completada
Completed - Cita Completada
Color: Gris/Verde OscuroComportamiento:
- ✅ Cuenta para el límite mensual del plan
- ✅ Aparece en historial del paciente
- ✅ Aparece en reportes de productividad
- ❌ No bloquea slots (está en el pasado)
- No se envía notificación al completar
- Puedes enviar encuesta de satisfacción manualmente
Cancelled - Cita Cancelada
Cancelled - Cita Cancelada
Color: RojoComportamiento:
- ❌ NO cuenta para el límite mensual del plan
- ✅ Libera el slot inmediatamente (disponible para reagendar)
- ✅ Aparece en historial del paciente (soft delete)
- ✅ Aparece en reportes de cancelaciones
- Se envió notificación de cancelación al paciente
- Puedes enviar mensaje de reprogramación
- La cita NO se elimina de la base de datos
- Se mantiene en el historial para auditoría
- Se registra quién canceló y cuándo en
audit_logs
Mejores Prácticas
Cancelled es soft deleteLas citas canceladas NO se eliminan de la base de datos. Esto permite:
- Mantener historial completo del paciente
- Auditoría de cancelaciones
- Análisis de no-show y patrones de cancelación
- Cumplimiento con regulaciones de privacidad (GDPR)
Reportes por Estado
El sistema genera reportes automáticos basados en estados de cita.Estadísticas Disponibles
Tasa de Confirmación
Pending → ConfirmedMide cuántas citas pendientes se confirman. Ideal: >80%
Tasa de No-Show
Confirmed → CancelledMide cuántas citas confirmadas se cancelan. Ideal: <10%
Tasa de Completitud
Confirmed → CompletedMide cuántas citas confirmadas se completan. Ideal: >90%
Productividad
Completed / DíaMide cuántas citas se completan por día. Métrica clave para facturación.
Acceder a Reportes
1
Ir a Dashboard
Navega a Dashboard desde el menú principal
2
Ver Estadísticas de Estados
En la sección “Citas por Estado”, verás:
- Total de citas por estado (gráfico circular)
- Tendencia semanal/mensual
- Comparación con periodos anteriores
3
Filtrar por Fecha
Usa los filtros de fecha para ver:
- Hoy
- Esta semana
- Este mes
- Personalizado
4
Exportar Datos
Click en “Exportar” para descargar un CSV con:
- Todas las citas
- Filtradas por estado
- Con detalles de paciente, servicio, proveedor
Casos Especiales
¿Puedo cambiar de Completed a Pending?
¿Puedo cambiar de Completed a Pending?
No. El flujo de estados es unidireccional.Razón: Las citas completadas representan servicios ya prestados. Cambiarlas a Pending comprometería la integridad de reportes de facturación y productividad.Si necesitas corregir: Cancela la cita completada y crea una nueva cita con la fecha correcta.
¿Puedo cambiar de Cancelled a Confirmed?
¿Puedo cambiar de Cancelled a Confirmed?
No. Las citas canceladas no se pueden reactivar.Razón: La cancelación es una acción definitiva que libera el slot y registra el evento en auditoría.Si el paciente quiere reagendar: Crea una nueva cita. El sistema la tratará como una cita independiente.
¿Qué pasa si una cita Pending nunca se confirma?
¿Qué pasa si una cita Pending nunca se confirma?
La cita permanecerá en estado Pending indefinidamente.Impacto:
- ✅ Sigue contando para tu límite mensual del plan
- ✅ Sigue ocupando el slot en el calendario
- ⚠️ Aumenta la probabilidad de no-show
- Implementa una política de confirmación (ej: “llamar 24h antes”)
- Cancela citas Pending no confirmadas antes de la fecha
- Usa recordatorios automáticos para confirmar
¿Puedo configurar transiciones automáticas personalizadas?
¿Puedo configurar transiciones automáticas personalizadas?
No directamente, pero puedes solicitar personalizaciones:Ejemplo de necesidad:
- Auto-cancelar citas Pending no confirmadas 24h antes
- Auto-confirmar citas Pending cuando el paciente responde WhatsApp
- Enviar encuesta de satisfacción al completar
¿Qué pasa con las citas del pasado si nunca se marcaron como Completed?
¿Qué pasa con las citas del pasado si nunca se marcaron como Completed?
El sistema las marca automáticamente como
Completed.Job automático (complete_appointments):- Se ejecuta cada 60 segundos
- Busca todas las citas
Confirmedcuyastarts_atya pasó - Las marca como
Completedautomáticamente
- Verifica que el job esté activo:
GET /system/scheduler/status - Revisa logs del scheduler:
grep "complete_appointments" app.log - Puedes ejecutar manualmente:
POST /system/scheduler/jobs/complete_appointments/run(requiere admin)
Próximos Pasos
Ver Calendario
Aprende a visualizar citas por estado en el calendario
Modificar Cita
Reagendar o cambiar detalles de una cita existente
Cancelar Cita
Proceso completo de cancelación y mejores prácticas