Ver Upcoming Closures
Los Upcoming Closures (Próximos Cierres) son advertencias tempranas que te muestran todos los cierres que empezarán en los próximos 14 días. Esto te ayuda a planificar con anticipación y gestionar la disponibilidad futura de tu clínica.¿Qué son Upcoming Closures?
Los upcoming closures son cierres que cumplen estas características:- Starts_at (fecha de inicio) está dentro de los próximos 14 días
- Status: Activos (no cancelados)
- Visibilidad: Se muestran en Dashboard, API, y lista de cierres
¿Por qué 14 días?
El período de 14 días fue elegido porque:- 2 semanas es un período razonable para planificar
- Tiempo suficiente para notificar clientes si es necesario
- No tan lejano que los cierres sean irrelevantes
- Configurable en backend si necesitas otro valor
Configuración backend: El valor de 14 días está en
app/services/configuration_status_service.py (variable UPCOMING_CLOSURES_DAYS = 14). Solo admins pueden modificarlo.Dónde Ver Upcoming Closures
Tienes 3 formas de ver upcoming closures:1. Dashboard (Widget)
El Dashboard incluye un widget dedicado “Próximos Cierres”:
- Dashboard principal → Sección “Alertas” → Widget “Próximos Cierres”
- Icono de alerta (⚠️) si hay cierres próximos
- Countdown: “En X días”
- Fechas de inicio y fin
- Tipo (clinic-wide o provider)
- Razón del cierre
- Click en cierre → Ver detalles
- Botón “Editar” → Modificar fechas/razón
- Botón “Cancelar” → Eliminar cierre
2. Configuration-Status Endpoint
Endpoint API que retorna estado completo de la clínica: Request:3. Lista de Cierres
La página de gestión de cierres incluye una sección “Upcoming”: Ubicación:- Gestión → Cierres → Tab “Upcoming Closures”
- Ver todos los cierres próximos en una lista
- Filtrar por proveedor
- Ordenar por días hasta inicio
- Acciones bulk (cancelar múltiples)
Información Mostrada
Cada upcoming closure incluye:| Campo | Descripción | Ejemplo |
|---|---|---|
| Fecha de inicio | Cuándo empieza el cierre | 2026-08-01 00:00 |
| Fecha de fin | Cuándo termina el cierre | 2026-08-15 23:59 |
| Tipo | Clinic-wide o Provider-specific | Clinic-wide |
| Proveedor | Nombre del proveedor (si aplica) | Dr. García (o null si clinic-wide) |
| Razón | Motivo del cierre | Vacaciones de verano |
| Days until start | Días restantes hasta inicio (countdown) | 7 días |
Ordenamiento
Los upcoming closures se ordenan pordays_until_start ascendente:
- Más cercanos primero: Cierres que empiezan en 1-2 días aparecen arriba
- Menos urgentes abajo: Cierres que empiezan en 12-14 días aparecen abajo
Cómo Ver Upcoming Closures
1
Navegar a Dashboard o Cierres
Elige uno de los siguientes:Opción A: Dashboard
- Ir a Dashboard principal
- Buscar sección “Alertas”
- Widget “Próximos Cierres”
- Ir a Gestión → Cierres
- Click en tab “Upcoming Closures”
2
Revisar lista de cierres próximos
El sistema mostrará todos los cierres que empiezan en los próximos 14 días:Si hay cierres próximos:
- Lista ordenada por días hasta inicio
- Countdown para cada cierre
- Iconos de alerta para cierres muy cercanos (<3 días)
- Mensaje: “No hay cierres programados en los próximos 14 días”
- Sugerencia: “Planifica vacaciones con anticipación”
3
Ver detalles de un cierre
Click en cualquier cierre para ver detalles completos:
- Fechas exactas (inicio y fin con hora)
- Tipo de cierre (clinic-wide o provider)
- Proveedor (si aplica)
- Razón
- Preview de impacto (cuántos slots se bloquearán)
- Estado actual (activo, pendiente)
4
Acciones rápidas
Desde la vista de upcoming closures, puedes:Editar cierre:
- Click en icono de editar (✏️)
- Modificar fechas, razón, o proveedor
- Guardar cambios
- Click en icono de eliminar (🗑️)
- Confirmar cancelación
- El cierre se elimina inmediatamente
- Click en “Ver Impacto”
- Muestra cuántos slots se bloquearán
- Útil para validar que el cierre es correcto
Ejemplos de Upcoming Closures
Ejemplo 1: Vacaciones próximas (7 días)
Ejemplo 1: Vacaciones próximas (7 días)
Escenario: Hoy es 25/07/2026, vacaciones empiezan el 01/08/2026.Upcoming closure mostrado:Acciones sugeridas:
- ✅ Tiempo suficiente para notificar clientes
- ✅ Revisar calendario: ¿hay citas agendadas para esas fechas?
- ✅ Considerar cancelar/mover citas existentes
Ejemplo 2: Permiso médico urgente (2 días)
Ejemplo 2: Permiso médico urgente (2 días)
Escenario: Hoy es 01/02/2026, permiso médico empieza el 03/02/2026.Upcoming closure mostrado:Acciones sugeridas:
- ⚠️ MUY CERCANO: Notificar clientes afectados HOY
- ⚠️ Revisar citas del Dr. García 3-4 febrero
- ⚠️ Ofrecer re-agendar con otros proveedores
Ejemplo 3: Capacitación futura (12 días)
Ejemplo 3: Capacitación futura (12 días)
Escenario: Hoy es 01/03/2026, capacitación empieza el 13/03/2026.Upcoming closure mostrado:Acciones sugeridas:
- ✅ NO urgente: Tiempo suficiente para planificar
- ✅ Ana sigue disponible por la tarde (14:00-18:00)
- ✅ Impacto mínimo, no requiere acciones especiales
Ejemplo 4: Múltiples cierres solapados
Ejemplo 4: Múltiples cierres solapados
Escenario: Dos cierres próximos en fechas cercanas.Upcoming closures mostrados:Acciones sugeridas:
- ⚠️ Cierres consecutivos: Validar que no afecten mucho disponibilidad
- ✅ No solapan: Dr. García (4-5 feb), Dra. López (6 feb mañana)
- ✅ Dra. López disponible 6 feb tarde
Filtrado y Configuración
Filtrado por Tipo
Puedes filtrar upcoming closures por tipo:- Todos: Muestra clinic-wide + provider-specific
- Solo clinic-wide: Solo cierres de toda la clínica
- Solo provider-specific: Solo cierres de proveedores individuales
- Filtrar “Solo clinic-wide” para ver cierres críticos (impacto HIGH)
- Filtrar por proveedor para planificar sustituciones
Configuración del Período (14 días)
El período de 14 días es configurable en backend: Archivo:app/services/configuration_status_service.py
- Editar variable
UPCOMING_CLOSURES_DAYS - Reiniciar servidor
- Nuevas consultas usarán el nuevo valor
- 7 días: Para clínicas pequeñas con planificación semanal
- 14 días: Balance entre relevancia y anticipación (default)
- 30 días: Para clínicas grandes con planificación mensual
Casos Especiales
No veo upcoming closures pero tengo cierres creados
No veo upcoming closures pero tengo cierres creados
Problema: Creé cierres, pero no aparecen en “Upcoming Closures”.Causas posibles:1. Cierres empiezan en >14 días:
- Solo se muestran cierres que empiezan en ≤14 días
- Si tus cierres empiezan en 20 días, no aparecerán aún
- Solución: Esperar a que estén dentro de la ventana de 14 días
- Solo se muestran cierres futuros
- Si el cierre ya empezó, no es “upcoming” (es “active” o “completed”)
- Solución: Revisar lista de “Active Closures” o “Past Closures”
- Solo se muestran cierres con status ACTIVE
- Si cancelaste el cierre, no aparecerá
- Solución: Verificar que el cierre no fue cancelado por error
Veo cierres que ya pasaron en upcoming closures
Veo cierres que ya pasaron en upcoming closures
Problema: Upcoming closures muestra cierres con fechas pasadas.Causa: Bug en el sistema (no debería pasar).Solución:
- Reportar a soporte con detalles:
- IDs de los cierres afectados
- Fechas de inicio/fin
- Timestamp de cuando viste el error
- Temporary workaround: Refrescar la página (Ctrl+F5)
- Si persiste, verificar zona horaria del servidor vs cliente
Countdown no se actualiza en tiempo real
Countdown no se actualiza en tiempo real
Problema: “Days until start” muestra “7 días” pero ya pasó un día.Causa: El countdown se calcula al cargar la página, no se actualiza automáticamente.Solución:
- Refrescar la página para ver countdown actualizado
- El sistema NO usa WebSocket para countdown (solo para status changes)
- Recomendación: Revisar upcoming closures diariamente
¿Cómo ver cierres de >14 días?
¿Cómo ver cierres de >14 días?
Problema: Quiero ver cierres que empiezan en 30 días.Solución:
- Navega a lista completa de cierres: Gestión → Cierres → “Todos”
- Filtra por rango de fechas:
starts_at >= hoyANDstarts_at <= hoy + 30 días - Ordena por
starts_atascendente
- Pedir a admin que aumente
UPCOMING_CLOSURES_DAYSa 30 (configuración backend)
Mejores Prácticas
Upcoming closures NO afectan citas existentes:Los upcoming closures solo bloquean NUEVAS citas. Si ya hay citas agendadas en ese período, NO se cancelan automáticamente. Debes manejarlas manualmente.