- Actualizar fechaActualizacion en manual-index.ts (100+ capítulos)
- Actualizar fechas en archivos .md del manual (public/manual/)
- Actualizar fechas en documentación (docs/)
- Actualizar fechas en páginas legales (Privacidad, Descargo, AvisoLegal)
- Actualizar fechas en scripts de limpieza
- Reemplazar todas las referencias de 2024-12-XX a 2025-12-23
- Reemplazar '19 de diciembre de 2024' a '23 de diciembre de 2025'
- Corregir MenuSheet: instanciar componentes Icon correctamente (<Icon /> en lugar de {icon})
- Mover ErrorBoundary fuera de BrowserRouter para evitar errores de contexto
- Eliminar Link de ErrorBoundary (usar window.location.href en su lugar)
- Cambiar process.env.NODE_ENV a import.meta.env.DEV en ErrorBoundary
- Los errores 'Objects are not valid as a React child' y 'basename is null' ahora resueltos
- Eliminar segunda definición duplicada de 'uso-tensiometro'
- Mantener solo la primera definición (línea 116)
- Build ahora sin warnings de claves duplicadas
- Script cleanup_completo.sh con 6 fases de limpieza
- Fase 1: Eliminar archivos innecesarios
- Fase 2: Mover backups y duplicados
- Fase 3: Simplificar configuraciones
- Fase 4: Consolidar documentación
- Fase 5: Limpiar scripts
- Fase 6: Reinstalación y verificación
- Documentación completa en PLAN_LIMPIEZA_FASES.md
- Actualizar .dockerignore para excluir archivos innecesarios
- Excluir documentación, backups, scripts y configuraciones no Docker
- Reducir tamaño de imagen Docker
- Mantener solo archivos esenciales para build y ejecución
- Script cleanup_project.sh para limpieza automática
- Organiza backups, documentación, scripts y configuraciones
- Mantiene integridad de Docker, PM2 y GitHub Actions
- Crea backups antes de mover archivos
- Crear Dockerfile multi-stage para optimizar tamaño
- Crear docker-compose.yml para gestión fácil
- Crear deploy-docker.sh script de despliegue
- Crear .dockerignore para optimizar build
- Crear GitHub Actions workflow para auto-deploy Docker
- Crear DEPLOYMENT_DOCKER.md con documentación completa
- Actualizar .gitignore para Docker
- Puerto 8607 configurado en Docker
- Health check incluido en contenedor
- Multi-stage build para reducir tamaño de imagen final
- Corregir rutas de archivos para usar nombre completo del directorio
- Corregir navegación del capítulo 8.1.1 para apuntar a 7.3.6 como anterior
- Asegurar que todas las rutas apuntan a BLOQUE_15_ALTERACIONES_PSIQUIATRICAS_Y_CONTENCION
- Explicar qué es el registry y cómo funciona
- Ejemplos de uso (alias vs rutas directas)
- Lista completa de alias disponibles
- Funciones helper para búsqueda
- Ejemplo completo de uso
- Ventajas del sistema
- Próximos pasos para migración
- Memoizar Header con React.memo
- Memoizar iconos Menu y Search para evitar re-renders
- Usar useMemo y useCallback para handlers y datos
- Memoizar menuItems en MenuSheet
- Cerrar menú inmediatamente al hacer click (mejor feedback)
- Optimizar event handlers con requestAnimationFrame
- Reducir tiempo de renderizado de 315ms a <16ms
- Mejorar INP de enlaces del menú
- Explicar cómo funciona el sistema actual
- Detallar proceso de renderizado (MarkdownViewer → ReactMarkdown → img component)
- Proponer 4 opciones de mejora (alias, frontmatter, auto-detección, híbrido)
- Recomendar sistema híbrido con registry
- Incluir ejemplos de implementación
- Plan de migración progresiva
- Usar setTimeout para handleShare (no bloquear UI)
- Usar requestAnimationFrame para onClick handlers
- Reducir bloqueo de UI de 383ms a <16ms
- Mejorar tiempo de respuesta de interacciones
- Mantener funcionalidad completa
- Crear página de Política de Privacidad (/privacidad)
- Crear página de Descargo de Responsabilidad (/descargo-responsabilidad)
- Crear página de Aviso Legal (/aviso-legal)
- Actualizar página Acerca de con enlaces a páginas legales
- Mejorar botón compartir en MenuSheet (usar toast en lugar de alert)
- Añadir rutas en App.tsx para las nuevas páginas
- Lazy loading para todas las nuevas páginas
- Explicar por qué no se despliega automáticamente
- 3 opciones de configuración (GitHub integration, CLI manual, GitHub Actions)
- Troubleshooting común
- Checklist de verificación
- Análisis detallado del 40% restante
- Desglose de referencias en Markdown faltantes (17 de 93 capítulos)
- Lista de 21 medios visuales faltantes (prioridad alta)
- Plan de acción por fases (1A, 1B, 1C)
- Estimación de esfuerzo por tarea
- Criterios de completación
- Actualizar conclusión: 99% funcional (antes 98%)
- Marcar Fase 2 (UX) y Fase 3 (Optimización) como completadas
- Actualizar checklist de funcionalidades core
- Actualizar tabla de estimación de tiempo
- Marcar búsqueda avanzada, compartir y optimización como completadas
- Añadir botón de compartir en ProcedureCard y DrugCard
- Implementar Web Share API con fallback a clipboard
- Generar deep links a protocolos y fármacos específicos
- Incluir información relevante en el share (título, prioridad, categoría)
- Usar toast notifications para feedback al usuario
- Archivos de despliegue ya presentes en repo:
- deploy.sh (script de deploy automático)
- ecosystem.config.js (config PM2)
- nginx.conf.example (config Nginx)
- DEPLOYMENT.md (documentación completa)
- env.example (variables de entorno)
- Añadir filtros por tipo (Todos, Protocolos, Fármacos)
- Añadir filtros por categoría (dinámicos según tipo seleccionado)
- Mejorar visualización de resultados con badges de prioridad y edad
- Aumentar límite de resultados de 8 a 12
- Resetear filtros al cerrar el modal
- Añadir 'oxigenoterapia' a DrugCategory type
- UI responsive con botones de filtro
- Convertir todas las páginas (excepto Home y NotFound) a lazy loading con React.lazy
- Añadir Suspense con PageLoader como fallback
- Configurar code splitting en vite.config.ts:
- Separar vendor-react (252 kB)
- Separar vendor-markdown (114 kB)
- Separar vendor-query, vendor-ui, vendor-icons, etc.
- Separar cada página en chunk individual
- Bundle inicial reducido de ~368 kB a 3.29 kB (1.25 kB gzipped)
- Mejora significativa en tiempo de carga inicial
- Páginas se cargan bajo demanda al navegar
- Marcar como completadas: favoritos, historial, páginas faltantes, ErrorBoundary
- Actualizar estado de contenido visual (20 referencias añadidas)
- Ajustar porcentajes de completitud
- Reorganizar prioridades según estado actual
- Total: ~52-75 horas restantes (reducido de 72-105)
- Crear página GaleriaImagenes con vista de todas las infografías organizadas por bloques
- Añadir referencias a imágenes en capítulo de Collarín Cervical (10 imágenes)
- Añadir botón de acceso a galería desde índice del manual
- Corregir error de React Router (useNavigate sin importar en MenuSheet)
- Ajustar estructura de providers en App.tsx
- Total: 48 imágenes disponibles en galería y referencias en manual
- Añadir hook useServiceWorker para gestionar SW y actualizaciones
- Crear componente UpdateNotification para notificar actualizaciones
- Mejorar registro del SW con updateViaCache: 'none'
- Añadir verificación de actualizaciones al recuperar foco
- Mejorar manifest.json con iconos adicionales
- Añadir CACHE_VERSION en sw.js para control de actualizaciones
Mejoras:
- Detección automática de nuevas versiones del SW
- Banner visual cuando hay actualización disponible
- Botón para actualizar ahora o más tarde
- Verificación periódica (cada hora) + al recuperar foco
- Limpieza automática de caches antiguos
Documentación:
- VERIFICACION_PWA.md - Guía de verificación
- TEST_PWA.md - Tests y checklist
- RESUMEN_PWA_ACTUALIZACIONES.md - Resumen de mejoras
- Organizar 48 imágenes en public/assets/infografias/ por bloques
- Adaptar MarkdownViewer para procesar rutas de imágenes automáticamente
- Actualizar Service Worker para cachear imágenes (offline-first)
- Configurar Vite para incluir imágenes en build
- Crear documentación: guías de integración, sugerencias de medios, estado de imágenes
- Scripts de organización automática de imágenes
Cambios técnicos:
- MarkdownViewer normaliza rutas de imágenes (relativas → absolutas)
- Service Worker cachea /assets/infografias/ automáticamente
- Vite config actualizado para mantener estructura de carpetas
- 48 imágenes organizadas: bloque-0 (9), bloque-2 (27), bloque-3 (9), bloque-7 (1), bloque-12 (2)
Documentación:
- GUIA_INTEGRAR_IMAGENES_PWA.md
- GUIA_RUTAS_IMAGENES_MARKDOWN.md
- SUGERENCIAS_MEDIOS_VISUALES.md
- IMAGENES_NECESARIAS.md
- ESTADO_FINAL_IMAGENES_PWA.md
- RESUMEN_ORGANIZACION_IMAGENES.md
✅ CONTENIDO OPERATIVO DESARROLLADO
### Capítulos Completados (8.0-8.4)
- 8.0 Fundamentos de Transferencia: Marco conceptual, métodos SBAR/IMIST-AMBO
- 8.1 Preparación para Traslado: Checklists pre-traslado, verificación de paciente y material
- 8.2 Gestión durante Traslado: Protocolos de monitorización, detección de cambios, gestión de material
- 8.3 Comunicación Pre-Hospitalaria: Métodos estructurados, información crítica, actualizaciones
- 8.4 Documentación de Traslado: Información obligatoria, métodos de documentación, cumplimiento normativo
### Contenido Específico Desarrollado
- Protocolos detallados de monitorización según tipo de paciente
- Frecuencia de registro (cada 2-5 min crítico, cada 10-15 min estable)
- Sistema de alertas (ROJA/AMARILLA/VERDE)
- Checklists específicos de preparación pre-traslado
- Requisitos normativos y documentales
- Errores frecuentes con soluciones operativas
### Estilo Operativo TES
- Lenguaje técnico claro y operativo
- Checklists y protocolos paso a paso
- Tablas y algoritmos en texto
- Enfoque práctico, no académico
Todos los capítulos siguen la plantilla obligatoria de 8 secciones.
- 50+ sugerencias de infografías organizadas por prioridad
- Categorías: RCP, ABCDE, Triage, Fármacos, Anatomía, Flujogramas
- Especificaciones técnicas y priorización sugerida
- Complementa el listado existente de medios faltantes
- Añadido import de PediatricDoseCalculator
- Añadido import de RCPTimer
- Añadido import de OxygenDurationCalculator
- Añadido import de DripRateCalculator
- Resuelto ReferenceError: PediatricDoseCalculator is not defined
- Revertido btn-emergency-critical de negro a rojo original
- Los botones RCP y Vía Aérea vuelven a usar el color de emergencia crítico (rojo)
- Mantiene mejor contraste visual y consistencia con el diseño original
- Añadido estado activeTESCategory que faltaba en Farmacos.tsx
- Corregido tipo de activeCategory para incluir 'tes'
- Añadido meta tag mobile-web-app-capable (nuevo estándar)
- Mantenido apple-mobile-web-app-capable para compatibilidad
- Resuelto ReferenceError: activeTESCategory is not defined
- Añadido plugin de Vite para generar manifest.json dinámicamente con base path correcto
- Actualizado service worker para detectar base path dinámicamente
- Actualizado registro de service worker en main.tsx para usar base path
- Corregido manifest.json para funcionar en GitHub Pages (/guia-tes-digital/)
- Añadido listado completo de medios faltantes con descripciones
- Actualizado documentación de GitHub Pages
- Corregido símbolo > en ViaAerea.tsx
- ✅ Herramientas nuevas:
* Temporizador de RCP con alertas cada 2 minutos
* Calculadora de Duración de Botella de Oxígeno
* Calculadora de Goteo (gotas/min y ml/h)
* Tabla de perfusión Adrenalina agregada
- ✅ Actualización Protocolo RCP:
* Orden actualizado: Comprobar consciencia → Llamar 112 → Iniciar RCP
* Aplicado a RCP Adulto SVB y Pediátrico
- ✅ Cambios UI:
* Botones de emergencias críticas con fondo negro y texto blanco
* Enlaces de códigos corregidos
- ✅ Medicación TES:
* Nueva sección separada para medicación autorizada bajo prescripción
* Aviso legal prominente
* Sin dosis ni decisiones clínicas
- ✅ Correcciones:
* Errores de sintaxis JSX corregidos (símbolos < y >)
* Favicon SVG actualizado
* GitHub Pages configurado correctamente
- Actualizadas 93 rutas en manual-index.ts para apuntar a /manual/
- Simplificado ManualViewer para usar rutas directas del índice
- Agregados scripts de limpieza y actualización de rutas
- Documentación completa de la limpieza e integración
- 93 archivos del manual organizados en public/manual/
- Backup excluido del repositorio (muy pesado)