232 lines
5.7 KiB
Markdown
232 lines
5.7 KiB
Markdown
# 📋 RESUMEN EJECUTIVO - PLAN TÉCNICO SISTEMA DE CONTENIDO
|
|
|
|
**Fecha:** 2025-01-06
|
|
**Versión:** 1.0
|
|
**Documento Completo:** `docs/PLAN_TECNICO_SISTEMA_CONTENIDO.md`
|
|
|
|
---
|
|
|
|
## 🎯 OBJETIVO
|
|
|
|
Convertir la auditoría completa en un **sistema técnico ejecutable** que permita:
|
|
- Gestionar contenido externo (protocolos, guías, recursos) sin tocar código
|
|
- Asociar imágenes/vídeos a contenido específico
|
|
- Validar contenido con TES reales
|
|
- Versionar cambios sin romper producción
|
|
- Mantener offline-first y compatibilidad total
|
|
|
|
---
|
|
|
|
## 📐 ARQUITECTURA PROPUESTA
|
|
|
|
### Base de Datos: **Supabase** (Principal) / **PocketBase** (Alternativa)
|
|
|
|
**Supabase elegido por:**
|
|
- ✅ PostgreSQL completo con relaciones
|
|
- ✅ Storage integrado (imágenes/vídeos)
|
|
- ✅ API REST automática
|
|
- ✅ Panel admin web incluido
|
|
- ✅ Offline-first compatible (Content Pack JSON)
|
|
- ✅ Gratis hasta 500MB
|
|
|
|
**Flujo:**
|
|
```
|
|
Supabase (Cloud)
|
|
→ Content Pack JSON
|
|
→ App PWA (Cache local)
|
|
→ Funciona 100% offline
|
|
```
|
|
|
|
---
|
|
|
|
## 🏗️ FASES DE IMPLEMENTACIÓN
|
|
|
|
### FASE 4: Base de Contenido (PRIMERO)
|
|
|
|
**Modelo de Datos Canónico:**
|
|
- `BaseContentItem` (protocolo, guía, manual, fármaco, checklist)
|
|
- `MediaResource` (imágenes y vídeos con metadatos)
|
|
- `ContentResourceAssociation` (asociación contenido ⇄ recursos)
|
|
- `ContentPack` (distribución como JSON)
|
|
|
|
**Características:**
|
|
- ✅ Desacoplado de `procedures.ts` y `drugs.ts`
|
|
- ✅ Versionado integrado
|
|
- ✅ Prioridades (crítica/alta/media/baja)
|
|
- ✅ Estados (draft/in_review/approved/published/archived)
|
|
- ✅ Fuentes clínicas (ERC, SEMES, etc.)
|
|
|
|
**Esquema BD:**
|
|
- `content_items` (contenido principal)
|
|
- `media_resources` (imágenes/vídeos)
|
|
- `content_resource_associations` (relaciones)
|
|
- `content_versions` (historial)
|
|
- `audit_logs` (auditoría)
|
|
|
|
---
|
|
|
|
### FASE 2: Integración Estructural (DESPUÉS)
|
|
|
|
**Capa de Lectura:**
|
|
- `ContentAdapter` interface (contrato)
|
|
- `LocalContentAdapter` (fallback a código actual)
|
|
- `PackContentAdapter` (lee desde Content Pack)
|
|
- `ContentAdapterFactory` (selección automática)
|
|
|
|
**Estrategia de Fallback:**
|
|
1. Intentar Content Pack (si existe)
|
|
2. Si falla → contenido local (`procedures.ts`, `drugs.ts`)
|
|
3. Si falla → error controlado
|
|
|
|
**Enlaces Bidireccionales:**
|
|
- Protocolo → Guía → Manual
|
|
- Guía → Protocolo → Recursos
|
|
- Manual → Guía → Protocolo
|
|
- Sin cambiar rutas existentes
|
|
|
|
---
|
|
|
|
### FASE 3: Validación y Escalado (DESPUÉS)
|
|
|
|
**Sistema de Validación:**
|
|
- Flujo: `draft` → `in_review` → `approved` → `published`
|
|
- Validadores TES con roles (tes/medico/formador)
|
|
- Comentarios y sugerencias
|
|
- Expiración de validación
|
|
|
|
**Feedback desde App:**
|
|
- Botón de feedback en cada contenido
|
|
- Tipos: error/suggestion/question/praise
|
|
- Screenshot opcional
|
|
- Contexto (sección, paso, recurso)
|
|
|
|
**Versionado:**
|
|
- Versión semántica (1.2.3)
|
|
- Breaking changes marcados
|
|
- Rollback a versiones anteriores
|
|
- Changelog automático
|
|
|
|
---
|
|
|
|
## 🎛️ PANEL DE ADMINISTRACIÓN
|
|
|
|
### Funcionalidades:
|
|
|
|
**Editor de Protocolo:**
|
|
- ✅ Editar pasos, warnings, checklist
|
|
- ✅ Asociar imágenes/vídeos (drag-and-drop)
|
|
- ✅ Cambiar prioridades
|
|
- ✅ Preview "Modo TES"
|
|
- ✅ Versionar cambios
|
|
|
|
**Gestor de Recursos:**
|
|
- ✅ Upload imágenes/vídeos
|
|
- ✅ Editar metadatos (alt, caption, tags)
|
|
- ✅ Asociar a contenido específico
|
|
- ✅ Ver recursos sin asociar
|
|
|
|
**Dashboard:**
|
|
- ✅ Estado de contenido (completos/incompletos)
|
|
- ✅ Protocolos sin recursos críticos
|
|
- ✅ Contenido pendiente de validación
|
|
- ✅ Actividad reciente
|
|
|
|
**Restricciones:**
|
|
- ❌ NO modificar rutas
|
|
- ❌ NO cambiar componentes
|
|
- ❌ NO afectar Service Worker
|
|
- ✅ SÍ editar contenido y recursos
|
|
|
|
---
|
|
|
|
## 📅 ROADMAP (16 Semanas)
|
|
|
|
| Semana | Fase | Tareas |
|
|
|--------|------|--------|
|
|
| 1-2 | Fase 4.1 | Modelo de datos, tipos TypeScript |
|
|
| 3-4 | Fase 4.2 | Supabase, esquema BD, migración |
|
|
| 5-6 | Fase 2.1 | ContentAdapter, fallback |
|
|
| 7 | Fase 2.2 | Enlaces bidireccionales |
|
|
| 8-9 | Fase 3.1 | Sistema de validación |
|
|
| 10 | Fase 3.2 | Versionado |
|
|
| 11-12 | Panel 1 | Editor protocolo, gestor recursos |
|
|
| 13-14 | Panel 2 | Editor guías, biblioteca, auditoría |
|
|
| 15-16 | Testing | Validación con TES, optimización |
|
|
|
|
---
|
|
|
|
## ✅ MÉTRICAS DE ÉXITO
|
|
|
|
### Fase 4 (Base):
|
|
- Modelo completo y documentado
|
|
- BD configurada y funcionando
|
|
- Contenido migrado sin pérdida
|
|
|
|
### Fase 2 (Integración):
|
|
- App consume contenido externo
|
|
- Fallback 100% funcional
|
|
- Enlaces bidireccionales operativos
|
|
|
|
### Fase 3 (Validación):
|
|
- Validación funcional
|
|
- Feedback operativo
|
|
- Versionado completo
|
|
|
|
### Panel Admin:
|
|
- Edición sin tocar código
|
|
- Upload de recursos funcional
|
|
- Asociación operativa
|
|
|
|
---
|
|
|
|
## 🔑 DECISIONES CLAVE
|
|
|
|
1. **Supabase como opción principal**
|
|
- PostgreSQL robusto
|
|
- Storage integrado
|
|
- API automática
|
|
- Panel admin incluido
|
|
|
|
2. **Content Pack como distribución**
|
|
- JSON descargable
|
|
- Cache local en app
|
|
- Offline-first garantizado
|
|
- Sin dependencia de BD en producción
|
|
|
|
3. **Fallback a local siempre**
|
|
- Compatibilidad 100%
|
|
- Sin romper producción
|
|
- Migración gradual
|
|
|
|
4. **Versionado semántico**
|
|
- Control de cambios
|
|
- Rollback seguro
|
|
- Changelog automático
|
|
|
|
---
|
|
|
|
## 🚫 LO QUE NO SE TOCA
|
|
|
|
- ❌ `src/data/procedures.ts`
|
|
- ❌ `src/data/drugs.ts`
|
|
- ❌ Sistema de búsqueda
|
|
- ❌ Service Worker
|
|
- ❌ Rutas de navegación
|
|
- ❌ Componentes existentes
|
|
|
|
**Todo se hace vía Content Pack y adaptadores.**
|
|
|
|
---
|
|
|
|
## 📚 DOCUMENTACIÓN COMPLETA
|
|
|
|
- **Plan Técnico Completo:** `docs/PLAN_TECNICO_SISTEMA_CONTENIDO.md`
|
|
- **Auditoría:** `docs/AUDITORIA_COMPLETA_ESTADO_APP.md`
|
|
- **Modelo de Datos:** Ver sección 4.1 del plan técnico
|
|
- **Esquema BD:** Ver sección 4.2 del plan técnico
|
|
|
|
---
|
|
|
|
**Estado:** ✅ Diseño Completo - Listo para Implementación
|
|
|