erp-clinicas/docs/08-epicas/EPIC-CL-010-telemedicina.md

10 KiB

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)

  • Historias de usuario definidas
  • Criterios de aceptacion claros
  • Dependencias identificadas
  • 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