Commit graph

40 commits

Author SHA1 Message Date
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  Ticket 1.1: Estructura Clean Architecture en backend
-  Ticket 1.2: Schemas Zod compartidos
-  Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares)
-  Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares)
-  Ticket 1.5: Eliminación de duplicidades (~50 líneas)

Cambios principales:
- Creada estructura Clean Architecture en backend/src/
- Schemas Zod compartidos en backend/src/shared/schemas/
- Refactorización modular de drugs y procedures
- Utilidades genéricas en src/utils/ (filter, validation)
- Eliminados scripts obsoletos y documentación antigua
- Corregidos errores: QueryClient, import test-error-handling
- Build verificado y funcionando correctamente
2026-01-25 21:09:47 +01:00
planetazuzu 4e2efa0bed Add missing assets and update RCP references 2026-01-20 20:10:40 +01:00
planetazuzu e4b3adb6e6 Restore markdown width and emergency cleanup 2026-01-20 09:28:20 +01:00
planetazuzu f30c29614f Restore markdown width constraints and add overlay cleanup 2026-01-19 20:53:52 +01:00
planetazuzu 9d20d3c163 Adjust guide layout width and markdown viewer 2026-01-19 20:40:37 +01:00
planetazuzu a4ec6660ee Fix guide infographic rendering and add emergency mode 2026-01-19 20:32:53 +01:00
planetazuzu 035aa9c477 Ampliar ancho de guías en desktop 2026-01-19 17:46:07 +01:00
planetazuzu 1760e86f6f Corregir ruta de infografía ABCDE 2026-01-19 17:42:09 +01:00
planetazuzu 8d96dbe8a8 Eliminar código muerto y dependencias no usadas 2026-01-19 17:31:27 +01:00
planetazuzu a6cf4adba2 Añadir cálculo naloxona y guía peso RN 2026-01-19 09:43:28 +01:00
planetazuzu 0014c17873 Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
planetazuzu 53fad0c4b0 fix: corregir errores de React useLayoutEffect y code splitting
- Asegurar que React se carga antes que otros chunks en vite.config.ts
- Incluir scheduler en vendor-react para evitar errores de useLayoutEffect
- Suprimir errores de extensiones del navegador (message channel closed)
- Mejorar manejo de errores en main.tsx con mensajes amigables
2026-01-02 10:11:56 +01:00
planetazuzu a26963654f Implementación completa: Guías de Refuerzo (Modo Formativo)
- Arquitectura paralela para Guías de Refuerzo
- Nuevos componentes: GuideCard, GuideHeader, GuideNavigation, etc.
- Vistas formativas: GuideIndex, GuideViewer, GuideSectionViewer
- Layout específico GuideLayout (sin BottomNav)
- Índice de guías con ABCDE Operativo y RCP Adulto SVB
- Corrección de Service Worker para desarrollo
- Enlaces de navegación en menú y página principal
- Documentación completa de implementación
2025-12-27 19:29:00 +01:00
planetazuzu a313cfe066 fix: Correcciones críticas y mejoras PWA
- Fix: ErrorBoundary movido dentro de BrowserRouter para resolver error de contexto React Router
- Fix: Service Worker actualizado con Promise.allSettled para manejar errores de caché
- Feat: Iconos PWA optimizados (192x192, 512x512, maskable)
- Feat: Scripts de diagnóstico y limpieza de desarrollo
- Feat: Documentación de diagnóstico de errores
- Update: React Router future flags configurados
- Update: Manifest.json con iconos y screenshots configurados
- Clean: Eliminados archivos obsoletos y documentación antigua
- Docs: Actualizado RESUMEN_MANUAL_TES.md y CHECKLIST_PWA_COMPLETA.md
2025-12-23 11:42:44 +01:00
planetazuzu 27cac410ae chore: actualizar todas las fechas a 2025-12-23
- 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'
2025-12-23 10:39:14 +01:00
planetazuzu 1b2d3af2ff fix: corregir orden de providers en App.tsx
- Mover ErrorBoundary al nivel más externo
- Corregir orden de cierre de tags JSX
- Build ahora exitoso sin errores de sintaxis
2025-12-23 10:21:22 +01:00
planetazuzu d9cf9f282a fix: corregir errores de renderizado React y React Router
- 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
2025-12-23 10:20:44 +01:00
planetazuzu 9194f2a102 fix: eliminar clave duplicada 'uso-tensiometro' en image-registry.ts
- Eliminar segunda definición duplicada de 'uso-tensiometro'
- Mantener solo la primera definición (línea 116)
- Build ahora sin warnings de claves duplicadas
2025-12-23 10:18:26 +01:00
planetazuzu 7496ef4bd7 feat: configurar despliegue en puerto 8607 con auto-deploy desde GitHub
- Actualizar ecosystem.config.js para puerto 8607
- Mejorar deploy.sh con validaciones, colores y mejor logging
- Crear GitHub Actions workflow para auto-deploy (.github/workflows/deploy.yml)
- Crear script webhook alternativo (webhook-deploy.sh)
- Crear documentación completa (DEPLOYMENT_SERVER.md)
- Actualizar package.json start:production para puerto 8607
- Añadir opciones: --skip-git, validaciones de entorno, verificación de build
- Incluir 3 métodos de auto-deploy: GitHub Actions, Webhook, Cron polling
2025-12-21 14:17:51 +01:00
planetazuzu 33f97d9d22 fix: corregir rutas de archivos del bloque 15 y navegación
- 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
2025-12-21 14:13:20 +01:00
planetazuzu d3884cb500 feat: añadir plan de estructura para alteraciones psiquiátricas y contención
- Crear PLAN_ESTRUCTURA_PSIQUIATRIA.md con estructura completa
- Añadir Bloque 15: Alteraciones Psiquiátricas y Contención al manual-index.ts
- Crear capítulo 15.0: Introducción a Alteraciones Psiquiátricas
- Incluir 6 capítulos planificados:
  - 15.0 Introducción
  - 15.1 Reconocimiento
  - 15.2 Protocolo de Crisis
  - 15.3 Contención Psiquiátrica (Salvavidas) - DETALLADO
  - 15.4 Agitación Psicomotriz
  - 15.5 Crisis Ansiedad y Riesgo Suicida
- Documentar marco legal (Ley de Salud Mental)
- Incluir checklist de implementación
- Especificar medios visuales necesarios
- Integrar en Parte VII: Situaciones Especiales y Trauma
2025-12-21 14:12:24 +01:00
planetazuzu 4ad67065c1 feat: implementar sistema híbrido de registry de imágenes (Opción 4)
- Crear image-registry.ts con metadatos centralizados
- Añadir 20+ imágenes al registry con alias, alt, captions y tags
- Modificar MarkdownViewer para resolver alias desde registry
- Añadir soporte para captions automáticos con <figure> y <figcaption>
- Mantener compatibilidad con rutas directas (sistema actual)
- Migrar 12 referencias en Markdown a usar alias:
  - Collarín cervical (4 referencias)
  - Constantes vitales (3 referencias)
  - ABCDE y Triage (2 referencias)
  - Oxigenoterapia y BVM (3 referencias)
- Funciones helper: findImagesByBlock, findImagesByTags, findImageById
- Mejora: referencias más cortas, metadatos centralizados, captions automáticos
2025-12-21 12:25:33 +01:00
planetazuzu 8f54f831e9 perf: optimizar renderizado de Header y MenuSheet
- 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ú
2025-12-21 12:19:35 +01:00
planetazuzu 86ca7bfe4a perf: optimizar event handlers en MenuSheet para mejorar INP
- 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
2025-12-21 12:11:11 +01:00
planetazuzu 8576d1656a feat: añadir páginas legales y mejorar botón compartir
- 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
2025-12-21 12:05:24 +01:00
planetazuzu acb3e648bf feat: implementar compartir protocolos y fármacos específicos + config despliegue
- 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)
2025-12-21 08:12:17 +01:00
planetazuzu 25902ee110 feat: implementar búsqueda avanzada con filtros por categoría
- 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
2025-12-20 23:47:58 +01:00
planetazuzu 7f85eba09c feat: implementar lazy loading y code splitting para optimización
- 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
2025-12-20 23:16:23 +01:00
planetazuzu 4ea658a0bd feat: añadir galería de imágenes y referencias en capítulos del manual
- 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
2025-12-20 21:36:49 +01:00
planetazuzu 13085a24b9 feat: mejorar sistema de actualizaciones PWA
- 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
2025-12-19 22:26:55 +01:00
planetazuzu 1a7f9ae008 feat: organizar imágenes para PWA y adaptar MarkdownViewer
- 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
2025-12-19 21:14:20 +01:00
planetazuzu 15e1110498 fix: Renumeración Bloque 2→4 (Soporte Vital) y resolución de conflictos organizacionales
🔧 CORRECCIONES CRÍTICAS DE ORGANIZACIÓN

### Renumeración Bloque 2 → 4 (Soporte Vital Básico)
- Resuelto conflicto crítico: dos bloques compartían numeración 'Bloque 2'
- Renumerados 9 archivos de BLOQUE_02_* → BLOQUE_04_*
- Actualizados títulos internos: 2.0-2.8 → 4.0-4.8
- Actualizadas referencias cruzadas en múltiples capítulos

### Resolución de Duplicidades
- Glucómetro: Convertido 3.11 a redirect hacia 1.7 (ubicación definitiva)
- Actualizadas referencias a Glucómetro (3.11, 1.5 → 1.7)

### Documentación
- Generado DIAGNOSTICO_ORGANIZACIONAL_CRITICO.md
- Generado PLAN_RENUMERACION_COMPLETO.md
- Generado INFORME_RENUMERACION_BLOQUE_2_4.md

### Archivos Afectados
- 9 archivos renumerados (03_SOPORTE_VITAL_BASICO/)
- 10+ archivos con referencias actualizadas
- 1 archivo convertido a redirect (BLOQUE_03_11_GLUCOMETRO.md)

Fixes: Conflictos de numeración detectados en auditoría organizacional
2025-12-19 16:43:38 +01:00
planetazuzu 76985703a5 fix: Añadir imports faltantes de calculadoras en Herramientas.tsx
- 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
2025-12-17 17:35:02 +01:00
planetazuzu 6945857bd1 revert: Restaurar color original de botones críticos en página principal
- 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
2025-12-17 17:29:49 +01:00
planetazuzu 202baf9401 fix: Corregir error activeTESCategory y meta tag deprecado
- 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
2025-12-17 17:26:24 +01:00
planetazuzu b9413d4d0d feat: Corregir rutas PWA para GitHub Pages y añadir listado de medios faltantes
- 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
2025-12-17 16:19:37 +01:00
planetazuzu b06c9cad90 fix: Corregir símbolo > sin escapar en Shock.tsx para build de Vercel 2025-12-17 15:34:25 +01:00
planetazuzu a42c467cd8 feat: Implementación completa de herramientas y actualización de protocolos
-  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
2025-12-17 15:19:57 +01:00
planetazuzu 5808062d6b feat: Limpieza e integración completa del Manual TES
- 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)
2025-12-17 12:37:03 +01:00
planetazuzu af02a569a2 feat: Aplicación completa Manual TES Digital
- Integración de 93 capítulos del manual completo
- Componente MarkdownViewer para renderizar archivos .md
- Navegación jerárquica completa (ManualIndex)
- Sistema de búsqueda mejorado
- Página ManualViewer con navegación anterior/siguiente
- Scripts de verificación del manual
- Puerto configurado en 8096
- Configuración de despliegue (Vercel, Netlify, GitHub Pages)
- Todos los problemas detectados corregidos
2025-12-17 12:12:10 +01:00