8 KiB
8 KiB
✅ CHECKLIST DE VALIDACIÓN - FASE 4: BASE DE CONTENIDO
Versión: 1.0.0
Fecha: 2025-01-06
Estado: Validación Pendiente
🎯 OBJETIVO
Validar que la FASE 4 (Base de Contenido Canónica) está completa y lista para FASE 2 (Integración).
📋 CHECKLIST DE VALIDACIÓN
1. MODELO DE DATOS CANÓNICO
1.1 Interfaces TypeScript
ContentItemdefinida con todos los campos obligatoriosProtocolContentdefinida con estructura completaGuideContentdefinida con 8 seccionesManualContentdefinidaDrugContentdefinidaChecklistContentdefinidaMediaResourcedefinida (image y video)ContentResourceAssociationdefinidaContentVersiondefinidaAuditLogdefinida- Todos los enums definidos (ContentType, UsageType, Priority, etc.)
- Tipos exportados correctamente
- Sin errores de TypeScript
Archivo: admin-panel/shared/types/content-canonical.ts
1.2 Validación de Modelo
- Campos obligatorios marcados correctamente
- Tipos de datos correctos (UUID, string, number, boolean, array, JSONB)
- Constraints lógicos definidos (ej: version semver)
- Relaciones entre entidades claras
- Ejemplos reales incluidos (RCP, OVACE, ABCDE)
2. BASE DE DATOS (SUPABASE)
2.1 Schema SQL
- Tabla
content_itemscreada - Tabla
media_resourcescreada - Tabla
content_resource_associationscreada - Tabla
content_versionscreada - Tabla
audit_logscreada - Todos los ENUMs creados
- Foreign keys definidas correctamente
- Constraints aplicados (UNIQUE, CHECK, NOT NULL)
- Índices creados (B-tree, GIN)
- Triggers creados (updated_at, audit_log)
- Vistas útiles creadas
Archivo: docs/SUPABASE_SCHEMA.sql
2.2 Validación de Schema
- Schema ejecutable sin errores
- Todas las relaciones funcionan
- Índices optimizados para búsqueda
- Triggers funcionan correctamente
- Vistas devuelven datos correctos
2.3 Supabase Configuración
- Proyecto Supabase creado
- Base de datos configurada
- Storage bucket creado (
infografias,videos) - Políticas de Storage configuradas (público para lectura)
- API REST habilitada
- Row Level Security (RLS) configurado (si aplica)
3. CONTENT PACK
3.1 Especificación
- Estructura del pack definida
- Metadata completa
- Sección
contentdefinida - Sección
mediadefinida - Sección
linksdefinida - Verificación de integridad (hash) definida
- Ejemplo completo incluido (RCP Adulto SVB)
Archivo: docs/CONTENT_PACK_SPEC.md
3.2 Validación de Pack
- Formato JSON válido
- Estructura cumple especificación
- Hash calculado correctamente
- Solo contenido
publishedincluido - Solo última versión incluida
- Recursos asociados existen
- Enlaces bidireccionales correctos
4. DOCUMENTACIÓN
4.1 Documentación Completa
CONTENT_MODEL.mdcreado y completoSUPABASE_SCHEMA.sqlcreado y completoCONTENT_PACK_SPEC.mdcreado y completoCHECKLIST_VALIDACION_FASE_4.mdcreado (este documento)- Diagramas incluidos (textuales o visuales)
- Ejemplos reales incluidos (RCP, OVACE, ABCDE)
- Referencias cruzadas correctas
4.2 Calidad de Documentación
- Lenguaje claro y técnico
- Ejemplos comprensibles
- Sin ambigüedades
- Pensado para TES (no solo desarrolladores)
- Pensado para durabilidad (10+ años)
5. DESACOPLAMIENTO
5.1 Sin Modificaciones a Código Existente
- NO se modificó
src/data/procedures.ts - NO se modificó
src/data/drugs.ts - NO se modificaron rutas existentes
- NO se modificó Service Worker
- NO se modificaron componentes existentes
- Modelo es completamente independiente
5.2 Compatibilidad
- Modelo puede coexistir con código actual
- No hay conflictos de tipos
- No hay conflictos de nombres
- Preparado para migración gradual
6. EJEMPLOS REALES
6.1 Protocolo RCP Adulto SVB
- Ejemplo completo en Content Pack Spec
- Todos los campos presentes
- Pasos operativos completos
- Checklist integrado
- Recursos asociados (imágenes, vídeo)
- Fuentes clínicas (ERC)
6.2 Guía ABCDE Formativa
- Ejemplo en Content Model
- 8 secciones definidas
- Relación con protocolo operativo
- Recursos por sección
6.3 Fármaco Adrenalina
- Ejemplo en Content Model
- Dosis adulto/pediátrica
- Indicaciones y contraindicaciones
- Puntos críticos TES
7. VALIDACIONES Y CONSTRAINTS
7.1 Validaciones Definidas
- Validaciones de ContentItem documentadas
- Validaciones de ProtocolContent documentadas
- Validaciones de GuideContent documentadas
- Validaciones de MediaResource documentadas
- Validaciones de Association documentadas
7.2 Constraints SQL
- Constraints UNIQUE aplicados
- Constraints CHECK aplicados
- Constraints NOT NULL aplicados
- Foreign keys con CASCADE apropiado
8. PREPARACIÓN PARA FASE 2
8.1 Contratos Definidos
- Interfaces TypeScript listas para usar
- Schema SQL listo para migración
- Content Pack spec listo para implementación
- Documentación completa
8.2 Sin Dependencias Faltantes
- Todas las entidades definidas
- Todas las relaciones claras
- Sin referencias circulares problemáticas
- Extensible sin breaking changes
🧪 PRUEBAS RECOMENDADAS
Prueba 1: Schema SQL
-- Ejecutar schema completo
\i docs/SUPABASE_SCHEMA.sql
-- Verificar tablas creadas
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BY table_name;
-- Verificar enums creados
SELECT typname FROM pg_type WHERE typtype = 'e' ORDER BY typname;
Prueba 2: Insertar Ejemplo RCP
-- Insertar protocolo RCP Adulto SVB
INSERT INTO content_items (
id, type, slug, title, clinical_context, usage_type, priority, status,
source_guideline, version, latest_version, content, tags, created_by, created_at, updated_at
) VALUES (
'550e8400-e29b-41d4-a716-446655440000',
'protocol',
'rcp-adulto-svb',
'RCP Adulto - Soporte Vital Básico',
'RCP',
'operativo',
'critica',
'published',
'ERC',
'1.0.0',
'1.0.0',
'{"steps": [...]}'::jsonb,
ARRAY['rcp', 'svb', 'adulto'],
'system',
NOW(),
NOW()
);
-- Verificar inserción
SELECT * FROM content_items WHERE slug = 'rcp-adulto-svb';
Prueba 3: Content Pack JSON
// Validar estructura del pack
const pack: ContentPack = {
metadata: { ... },
content: { ... },
media: { ... },
links: { ... }
};
// Verificar hash
const hash = calculatePackHash(pack);
console.assert(hash === pack.metadata.hash, 'Hash incorrecto');
// Verificar JSON válido
JSON.parse(JSON.stringify(pack));
✅ CRITERIOS DE APROBACIÓN
Mínimos Requeridos:
- ✅ Todas las interfaces TypeScript definidas
- ✅ Schema SQL completo y ejecutable
- ✅ Content Pack spec completo con ejemplos
- ✅ Documentación completa
- ✅ Sin modificaciones a código existente
- ✅ Ejemplos reales incluidos
Calidad Esperada:
- ✅ Código sin errores de TypeScript
- ✅ Schema sin errores SQL
- ✅ Documentación clara y completa
- ✅ Ejemplos comprensibles
- ✅ Preparado para durabilidad (10+ años)
📝 NOTAS DE VALIDACIÓN
Validador: _________________
Fecha: _________________
Resultado: ☐ Aprobado ☐ Pendiente ☐ Rechazado
Comentarios:
[Espacio para comentarios del validador]
🚀 PRÓXIMOS PASOS (FASE 2)
Una vez validada FASE 4:
-
Implementar ContentAdapter
- LocalContentAdapter (fallback)
- PackContentAdapter (desde Content Pack)
-
Integrar en App
- Hooks (useProtocol, useDrug)
- Componentes de visualización
- Enlaces bidireccionales
-
Testing
- Testing de adaptadores
- Testing de fallback
- Testing de integración
Fin del Checklist