# EPICA: EPIC-CL-010 - Telemedicina ## Metadata | Campo | Valor | |-------|-------| | **ID** | EPIC-CL-010 | | **Nombre** | Telemedicina | | **Modulo** | telemedicina | | **Fase** | Fase 2 - Extensión | | **Prioridad** | P1 (Alto) | | **Estado** | Backlog | | **Story Points** | 55 | | **Sprint(s)** | Sprint 11-14 | --- ## Descripcion Módulo 100% nuevo para consultas médicas remotas. Videoconsultas con WebRTC, sala de espera virtual, compartir pantalla para resultados, prescripción electrónica a distancia y grabación de consultas con consentimiento. --- ## Objetivo de Negocio - Ampliar alcance geográfico - Atención sin desplazamiento - Seguimiento de crónicos remoto - Nuevas fuentes de ingreso - Adaptación post-pandemia --- ## Historias de Usuario | ID | Historia | Prioridad | SP | Estado | |----|----------|-----------|-----|--------| | US-CL010-001 | Como paciente, quiero agendar teleconsulta desde el portal | P0 | 5 | Backlog | | US-CL010-002 | Como paciente, quiero entrar a sala de espera virtual antes de la consulta | P0 | 5 | Backlog | | US-CL010-003 | Como médico, quiero iniciar videollamada cuando el paciente esté listo | P0 | 8 | Backlog | | US-CL010-004 | Como médico, quiero compartir pantalla para mostrar resultados al paciente | P0 | 5 | Backlog | | US-CL010-005 | Como médico, quiero documentar nota clínica durante la videoconsulta | P0 | 3 | Backlog | | US-CL010-006 | Como médico, quiero generar receta electrónica al finalizar | P0 | 3 | Backlog | | US-CL010-007 | Como paciente, quiero recibir recordatorio 10 min antes de la consulta | P0 | 3 | Backlog | | US-CL010-008 | Como paciente, quiero grabar la consulta con consentimiento del médico | P2 | 8 | Backlog | | US-CL010-009 | Como paciente, quiero enviar fotos de síntomas antes de la consulta | P1 | 5 | Backlog | | US-CL010-010 | Como médico, quiero terminar la videollamada y cerrar consulta | P0 | 2 | Backlog | | US-CL010-011 | Como admin, quiero ver reportes de teleconsultas realizadas | P1 | 3 | Backlog | | US-CL010-012 | Como paciente, quiero evaluar la calidad de la teleconsulta | P2 | 5 | Backlog | **Total Story Points:** 55 SP --- ## Flujo de Teleconsulta ``` ┌─────────────┐ │ AGENDAR │ ← Paciente selecciona teleconsulta └──────┬──────┘ │ ▼ (-10 min) ┌─────────────┐ │ RECORDATORIO│ ← Email/WhatsApp con link └──────┬──────┘ │ ▼ ┌─────────────┐ │SALA_ESPERA │ ← Paciente espera en sala virtual └──────┬──────┘ │ ▼ (Médico inicia) ┌─────────────┐ │ VIDEOLLAMADA│ ← WebRTC activo └──────┬──────┘ │ ├── Chat de texto ├── Compartir pantalla ├── Enviar archivos │ ▼ ┌─────────────┐ │ CERRAR │ ← Médico termina llamada └──────┬──────┘ │ ▼ ┌─────────────┐ │ RECETA │ ← Envío electrónico │ + NOTA │ ← Documentación └──────┬──────┘ │ ▼ ┌─────────────┐ │ ENCUESTA │ ← Satisfacción del paciente └─────────────┘ ``` --- ## Arquitectura WebRTC ``` ┌─────────────────────────────────────────────────────────┐ │ ARQUITECTURA TELEMEDICINA │ ├─────────────────────────────────────────────────────────┤ │ │ │ PACIENTE MÉDICO │ │ ┌──────────┐ ┌──────────┐ │ │ │ Browser │ │ Browser │ │ │ │ (WebRTC) │ │ (WebRTC) │ │ │ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ ┌──────────────────┐ │ │ │ └────┤ TURN/STUN ├──────┘ │ │ │ Server │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌────────┴─────────┐ │ │ │ Signaling │ │ │ │ Server │ │ │ │ (WebSockets) │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌────────┴─────────┐ │ │ │ Backend API │ │ │ │ (Express) │ │ │ └──────────────────┘ │ │ │ │ CARACTERÍSTICAS: │ │ ├── Video HD (720p/1080p) │ │ ├── Audio bidireccional │ │ ├── Compartir pantalla │ │ ├── Chat de texto │ │ ├── Transferencia de archivos │ │ └── Grabación (opcional) │ │ │ └─────────────────────────────────────────────────────────┘ ``` --- ## Criterios de Aceptacion de la Epica **Funcionales:** - [ ] Agendar teleconsulta - [ ] Sala de espera virtual - [ ] Videollamada WebRTC - [ ] Compartir pantalla - [ ] Chat durante consulta - [ ] Enviar archivos - [ ] Documentación de consulta - [ ] Prescripción electrónica - [ ] Grabación con consentimiento - [ ] Encuesta de satisfacción **No Funcionales:** - [ ] Latencia < 200ms - [ ] Video HD estable - [ ] Funciona en móvil y desktop - [ ] Conexión cifrada (SRTP) **Tecnicos:** - [ ] WebRTC con TURN/STUN - [ ] WebSockets para signaling - [ ] Integración con consultas - [ ] Almacenamiento de grabaciones --- ## Dependencias **Esta epica depende de:** | Epica/Modulo | Estado | Bloqueante | |--------------|--------|------------| | EPIC-CL-001 Fundamentos | Backlog | Si | | EPIC-CL-002 Pacientes | Backlog | Si | | EPIC-CL-003 Citas | Backlog | Si | | EPIC-CL-004 Consultas | Backlog | Si | | EPIC-CL-005 Recetas | Backlog | Si | --- ## Desglose Tecnico **Database:** - [ ] Schema: `telemedicine` - [ ] Tablas: 6 (teleconsultations, waiting_rooms, recordings, chat_messages, file_shares, satisfaction_surveys) - [ ] Funciones: 2 (generate_room_token, log_session) - [ ] Indices: Por médico, paciente, fecha, estado **Backend:** - [ ] Modulo: `telemedicine` - [ ] Entities: 5 (Teleconsultation, WaitingRoom, Recording, ChatMessage, Survey) - [ ] WebSocket Server para signaling - [ ] Endpoints: 15 - [ ] Tests: 25 **Frontend:** - [ ] Paginas: 4 (WaitingRoom, VideoCall, PreCallCheck, PostCallSurvey) - [ ] Componentes: 15 (VideoPlayer, ScreenShare, ChatBox, FileShare, Controls, etc.) - [ ] WebRTC implementation - [ ] Stores: 1 (telemedicineStore) --- ## Endpoints API | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | POST | /api/telemedicine/sessions | Crear sesión | | GET | /api/telemedicine/sessions/:id | Estado de sesión | | POST | /api/telemedicine/sessions/:id/join | Unirse a sala | | POST | /api/telemedicine/sessions/:id/signal | Señalización WebRTC | | POST | /api/telemedicine/sessions/:id/end | Terminar llamada | | POST | /api/telemedicine/sessions/:id/chat | Enviar mensaje | | POST | /api/telemedicine/sessions/:id/files | Subir archivo | | POST | /api/telemedicine/sessions/:id/record | Iniciar grabación | | POST | /api/telemedicine/sessions/:id/survey | Enviar encuesta | --- ## Integraciones Externas | Servicio | Propósito | Alternativas | |----------|-----------|--------------| | Twilio | TURN/STUN + Video | Daily.co, Vonage | | AWS S3 | Almacenamiento de grabaciones | GCP, Azure | | WebRTC nativo | Comunicación P2P | - | --- ## Riesgos | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|--------------|---------|------------| | Conexión inestable | Media | Alto | Reconexión automática | | Problemas de audio/video | Media | Alto | Pre-call check | | Privacidad de grabaciones | Baja | Alto | Encriptación + RBAC | --- ## Nota Técnica Este módulo es **100% nuevo** y no tiene equivalente en el ERP-Core. Requiere infraestructura especializada para streaming de video y cumplimiento de regulaciones de datos médicos. --- ## Definition of Ready (DoR) - [x] Historias de usuario definidas - [x] Criterios de aceptacion claros - [x] Dependencias identificadas - [x] Estimacion completada - [ ] Proveedor de video seleccionado - [ ] Infraestructura TURN/STUN lista ## Definition of Done (DoD) - [ ] Videollamada funcionando - [ ] Sala de espera operativa - [ ] Integración con consultas - [ ] Grabación opcional - [ ] Tests E2E 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