erp-clinicas/docs/08-epicas/EPIC-CL-003-citas.md

11 KiB

EPICA: EPIC-CL-003 - Citas (Agenda Médica)

Metadata

Campo Valor
ID EPIC-CL-003
Nombre Citas (Agenda Médica)
Modulo citas
Fase Fase 1 - MVP
Prioridad P0 (Critico)
Estado Backlog
Story Points 42
Sprint(s) Sprint 3-4

Descripcion

Sistema de agenda médica para programación de citas. Gestión de horarios por médico y consultorio, confirmación de citas, recordatorios automáticos, lista de espera y módulo de check-in para llegada de pacientes.


Objetivo de Negocio

  • Optimizar uso de consultorios
  • Reducir ausentismo con recordatorios
  • Mejorar experiencia del paciente
  • Control de tiempos de espera
  • Maximizar productividad médica

Historias de Usuario

ID Historia Prioridad SP Estado
US-CL003-001 Como recepcionista, quiero agendar cita seleccionando médico, fecha y hora disponible P0 5 Backlog
US-CL003-002 Como recepcionista, quiero ver agenda del día por médico en formato calendario P0 5 Backlog
US-CL003-003 Como recepcionista, quiero confirmar cita vía WhatsApp o llamada P0 3 Backlog
US-CL003-004 Como paciente, quiero recibir recordatorio automático 24h antes de mi cita P0 5 Backlog
US-CL003-005 Como recepcionista, quiero reagendar cita manteniendo historial P0 3 Backlog
US-CL003-006 Como recepcionista, quiero registrar check-in del paciente al llegar P0 3 Backlog
US-CL003-007 Como médico, quiero ver mis citas del día con datos del paciente P0 3 Backlog
US-CL003-008 Como admin, quiero configurar horarios de atención por médico P0 5 Backlog
US-CL003-009 Como recepcionista, quiero gestionar lista de espera para cancelaciones P1 3 Backlog
US-CL003-010 Como paciente, quiero agendar cita desde portal web o app P1 5 Backlog
US-CL003-011 Como admin, quiero bloquear horarios por vacaciones o eventos P1 2 Backlog

Total Story Points: 42 SP


Flujo de Cita

┌─────────────┐
│  AGENDADA   │  ← Cita programada
└──────┬──────┘
       │
       ▼ (-24h)
┌─────────────┐
│ RECORDATORIO│  ← Envío automático WhatsApp/SMS
└──────┬──────┘
       │
       ├── Sin respuesta ────────────┐
       ▼                             │
┌─────────────┐                      │
│ CONFIRMADA  │                      │
└──────┬──────┘                      │
       │                             │
       ▼ (Día de la cita)            │
┌─────────────┐                      │
│  CHECK-IN   │  ← Paciente llega    │
└──────┬──────┘                      │
       │                             │
       ▼                             │
┌─────────────┐                      │
│ EN_CONSULTA │  ← Médico inicia     │
└──────┬──────┘                      │
       │                             │
       ▼                             ▼
┌─────────────┐               ┌─────────────┐
│  ATENDIDA   │               │ NO_ASISTIO  │
└─────────────┘               └─────────────┘

Configuración de Agenda

┌─────────────────────────────────────────────────────────┐
│              AGENDA DEL DR. GARCÍA                      │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  HORARIO DE ATENCIÓN                                    │
│  ├── Lunes a Viernes: 09:00 - 14:00, 16:00 - 20:00     │
│  ├── Sábados: 09:00 - 14:00                             │
│  └── Domingos: No labora                                │
│                                                         │
│  DURACIÓN DE CITAS                                      │
│  ├── Primera vez: 45 minutos                            │
│  ├── Seguimiento: 20 minutos                            │
│  └── Procedimiento: 60 minutos                          │
│                                                         │
│  CONSULTORIOS                                           │
│  ├── Consultorio 1 (Principal)                          │
│  └── Consultorio 3 (Alterno)                            │
│                                                         │
│  BLOQUEOS                                               │
│  ├── 15-22 Dic: Vacaciones                              │
│  └── Cada miércoles 10:00-11:00: Junta médica           │
│                                                         │
└─────────────────────────────────────────────────────────┘

Vista de Agenda

┌─────────────────────────────────────────────────────────┐
│  DR. GARCÍA - Lunes 9 Diciembre 2024                    │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  09:00 │ ████████████████████ Juan Pérez (Primera vez)  │
│  09:45 │                      - DISPONIBLE -            │
│  10:00 │ ████████ María López (Seguimiento) ✓ Confirmada│
│  10:20 │                      - DISPONIBLE -            │
│  10:40 │ ████████ Carlos Ruiz (Seguimiento)             │
│  11:00 │                      ▓▓▓ JUNTA MÉDICA ▓▓▓      │
│  12:00 │ ████████████████████████████████ Procedimiento │
│  13:00 │ ████████ Ana García (Seguimiento) ✓ En sala    │
│  13:20 │ ████████ Pedro Soto (Seguimiento)              │
│  13:40 │                      - DISPONIBLE -            │
│                                                         │
│  ────────────── DESCANSO ──────────────                 │
│                                                         │
│  16:00 │ ████████████████████ Nuevo paciente (1a vez)   │
│  ...                                                    │
│                                                         │
└─────────────────────────────────────────────────────────┘

Criterios de Aceptacion de la Epica

Funcionales:

  • Agendar citas con validación de disponibilidad
  • Vista de agenda diaria/semanal por médico
  • Confirmación de citas
  • Recordatorios automáticos (WhatsApp/SMS/Email)
  • Check-in de pacientes
  • Reagendar y cancelar citas
  • Lista de espera
  • Configuración de horarios

No Funcionales:

  • Carga de agenda < 2 segundos
  • Envío de recordatorio en < 1 minuto
  • Soporte para 10+ médicos simultáneos

Tecnicos:

  • Integración con WhatsApp Business API
  • Calendario sincronizable (Google Calendar, Outlook)
  • Notificaciones push para app
  • Tiempo real con WebSockets

Dependencias

Esta epica depende de:

Epica/Modulo Estado Bloqueante
EPIC-CL-001 Fundamentos Backlog Si
EPIC-CL-002 Pacientes Backlog Si

Esta epica bloquea:

Epica/Modulo Razon
EPIC-CL-004 Consultas Requiere cita para iniciar consulta
EPIC-CL-008 Facturación Requiere citas para facturar

Desglose Tecnico

Database:

  • Schema: appointments
  • Tablas: 7 (appointments, schedules, schedule_blocks, waiting_list, reminders, check_ins, appointment_types)
  • Funciones: 3 (check_availability, send_reminder, calculate_wait_time)
  • Indices: Por médico, fecha, paciente, estado

Backend:

  • Modulo: appointments
  • Entities: 6 (Appointment, Schedule, ScheduleBlock, WaitingList, Reminder, CheckIn)
  • Endpoints: 18
  • Jobs: Envío de recordatorios
  • Tests: 35

Frontend:

  • Paginas: 5 (Calendar, AppointmentForm, DayView, WeekView, WaitingList)
  • Componentes: 15 (CalendarGrid, TimeSlot, AppointmentCard, CheckInModal, etc.)
  • WebSockets para actualizaciones en tiempo real
  • Stores: 1 (appointmentsStore)

Endpoints API

Metodo Endpoint Descripcion
POST /api/appointments Crear cita
GET /api/appointments/:id Detalle de cita
PATCH /api/appointments/:id Actualizar cita
DELETE /api/appointments/:id Cancelar cita
GET /api/appointments/calendar/:doctorId Agenda del médico
GET /api/appointments/availability Horarios disponibles
POST /api/appointments/:id/confirm Confirmar cita
POST /api/appointments/:id/check-in Registrar llegada
GET /api/schedules/:doctorId Horarios del médico
POST /api/schedules/:doctorId/blocks Bloquear horario
GET /api/waiting-list Lista de espera

Riesgos

Riesgo Probabilidad Impacto Mitigacion
Overbooking Media Alto Validación de disponibilidad
Recordatorios no enviados Media Medio Reintentos + logs
Ausentismo alto Media Medio Confirmación + lista de espera

Definition of Ready (DoR)

  • Historias de usuario definidas
  • Criterios de aceptacion claros
  • Dependencias identificadas
  • Estimacion completada
  • Horarios de médicos definidos
  • Proveedor de WhatsApp Business API seleccionado

Definition of Done (DoD)

  • Agenda funcional por médico
  • Recordatorios automáticos enviándose
  • Check-in operativo
  • Lista de espera activa
  • Tests de integración pasando
  • Documentación de API

Historial

Fecha Cambio Autor
2025-12-08 Creacion de epica Claude-Agent

Creada por: Claude-Agent Fecha: 2025-12-08 Ultima actualizacion: 2025-12-08