codigo0/docs/FASE_2_PROGRESO.md

3.9 KiB

📋 FASE 2: INTEGRACIÓN CONTENT ADAPTER - PROGRESO

Fecha: 2025-01-06
Estado: EN PROGRESO


COMPLETADO

1. ContentAdapter Implementado

  • LocalContentAdapter - Usa datos locales (procedures.ts, drugs.ts)
  • ExternalContentAdapter - Usa Content Pack JSON desde /api/content-pack/latest.json
  • ContentAdapterFactory - Selecciona automáticamente el adapter disponible
  • Fallback automático: External → Local si falla
  • Cache en localStorage con expiración de 24 horas

2. Integración en Páginas

  • src/pages/SoporteVital.tsx - Usa getAllProtocols() del ContentAdapter
  • src/pages/Farmacos.tsx - Usa getAllDrugs() del ContentAdapter
  • src/pages/RCP.tsx - Usa ContentAdapter para fármacos

3. Backend Content Pack

  • Endpoint /api/content-pack/latest.json disponible
  • Generación on-the-fly si no existe archivo
  • Cache headers (ETag, Cache-Control)
  • Incluye solo contenido published

🔄 EN PROGRESO

1. Verificación Content Pack

  • Verificar que Content Pack se genera correctamente
  • Probar carga desde frontend
  • Verificar fallback cuando Content Pack no está disponible

2. Migración de Páginas Restantes

  • src/pages/ViaAerea.tsx - Migrar de useProtocol a ContentAdapter
  • src/pages/Shock.tsx - Migrar de useProtocol a ContentAdapter
  • Mantener compatibilidad con sistema anterior durante transición

3. Indicadores Visuales

  • Añadir badge/indicador cuando se usa contenido externo vs local
  • Mostrar estado de carga del Content Pack
  • Mostrar última actualización del Content Pack

📊 ESTADO ACTUAL

Componente Estado Notas
ContentAdapter Completo Implementado y funcionando
SoporteVital Integrado Usa ContentAdapter
Farmacos Integrado Usa ContentAdapter
RCP ⚠️ Híbrido Usa ambos sistemas
ViaAerea ⚠️ Sistema anterior Usa useProtocol hook
Shock ⚠️ Sistema anterior Usa useProtocol hook
Content Pack API Disponible /api/content-pack/latest.json
Generación Pack Verificando Necesita pruebas

🎯 PRÓXIMOS PASOS

  1. Verificar Content Pack

    • Probar generación desde backend
    • Verificar formato JSON correcto
    • Probar carga desde frontend
  2. Migrar Páginas Restantes

    • Actualizar ViaAerea.tsx para usar ContentAdapter
    • Actualizar Shock.tsx para usar ContentAdapter
    • Mantener fallback a datos locales
  3. Añadir Indicadores Visuales

    • Badge "Contenido Externo" cuando se usa Content Pack
    • Indicador de última actualización
    • Estado de carga visible
  4. Optimizaciones

    • Lazy loading del Content Pack
    • Mejorar cache (IndexedDB en lugar de localStorage)
    • Compresión del Content Pack si es muy grande

🧪 PRUEBAS NECESARIAS

  • Content Pack se genera correctamente desde backend
  • Content Pack se carga desde frontend sin errores
  • Fallback a datos locales funciona cuando Content Pack no está disponible
  • Cache funciona correctamente (24 horas)
  • Todas las páginas muestran contenido correctamente
  • No hay regresiones en funcionalidad existente

📝 NOTAS TÉCNICAS

Carga del Content Pack

  • URL: /api/content-pack/latest.json
  • Cache: localStorage con clave content_pack
  • Expiración: 24 horas
  • Fallback: Si falla, usa datos locales

Compatibilidad

  • No rompe funcionalidad existente
  • Fallback garantizado
  • Sin cambios en rutas ni componentes
  • Datos locales siempre disponibles

Sistemas Coexistentes

  • Sistema 1: content-pack.ts + useProtocol hook (existente)
  • Sistema 2: content-adapter.ts (nuevo, más completo)

Ambos sistemas pueden coexistir durante la transición.


Estado: Integración básica completada. Continuando con verificaciones y mejoras.