279 lines
10 KiB
Markdown
279 lines
10 KiB
Markdown
# 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
|