3.1 KiB
3.1 KiB
✅ CHECKLIST IMPLEMENTACIÓN - Sistema de Contenido Externo
Fecha: 2025-01-06
Estado: Base Implementada
✅ COMPONENTES BASE IMPLEMENTADOS
Frontend (App)
- ContentAdapter Interface (
src/services/content-adapter.ts)- Interface definida
- LocalContentAdapter (fallback)
- ExternalContentAdapter (pack)
- ContentAdapterFactory
- Hook React
useContentAdapter() - Conversión ContentItem → Procedure/Drug
- Cache en localStorage
Backend
-
Generador Content Pack (
backend/src/services/pack-generator.js)- Lee desde PostgreSQL
- Incluye recursos multimedia
- Calcula hash SHA-256
- Genera JSON optimizado
-
API Content Pack (
backend/src/routes/content-pack.js)GET /api/content-pack/latest.jsonGET /api/content-pack/:version.json- Cache headers (ETag, Cache-Control)
- Generación on-the-fly
-
Base de Datos
- Schema
tes_contentcreado - Tablas principales creadas
- 23 items migrados
- Schema
-
API Estadísticas (
backend/src/routes/stats.js)GET /api/stats/content- Dashboard actualizado
⏳ PENDIENTE (Siguiente Fase)
Panel Admin
-
Editor de Protocolos Completo
- Tabs: Básico, Pasos, Checklist, Recursos
- Preview "Modo Escena"
- Asociación de imágenes/vídeos
-
Editor de Guías
- 8 secciones por guía
- Markdown editor
- Asociación con protocolos
-
Editor de Manual
- Markdown estructurado
- Asociación de infografías
- Versionado
-
Gestor de Recursos
- Upload de imágenes/vídeos
- Metadatos
- Asociación a contenido
- Detección de recursos huérfanos
-
Generador de Pack desde UI
- Botón "Generar Pack"
- Selección de versión
- Descarga de JSON
-
Sistema de Validación
- Roles (admin, tes_validador, formador, medico)
- Flujo: draft → in_review → approved → published
- Registro de auditoría
-
Exportación SCORM
- Generación desde guías
- Packaging ZIP
- Descarga
🧪 TESTING
Verificar Content Pack
# 1. Obtener pack
curl http://localhost:3000/api/content-pack/latest.json
# 2. Verificar metadata
curl -s http://localhost:3000/api/content-pack/latest.json | \
python3 -c "import sys, json; d=json.load(sys.stdin); \
print(f\"Items: {d['metadata']['total_items']}\")"
Verificar Adapter en App
import { getProtocol, getAllProtocols } from '@/services/content-adapter';
const protocol = getProtocol('rcp-adulto-svb');
const protocols = getAllProtocols();
✅ RESTRICCIONES VERIFICADAS
- NO modifica
src/data/procedures.ts - NO modifica
src/data/drugs.ts - NO modifica Service Worker
- NO modifica rutas existentes
- NO modifica componentes actuales
- TODO es aditivo y desacoplado
- Fallback total garantizado
- App funciona igual si falla
✅ Base del sistema implementada correctamente!