codigo0/MODULO_1_ARBOLES_DECISION.md
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

4.9 KiB

MÓDULO 1: ÁRBOLES DE DECISIÓN BINARIOS

IMPLEMENTACIÓN COMPLETADA

Fecha: 2024-12-13
Estado: Completado y listo para uso
Compatibilidad: 100% aditivo, no modifica código existente


📁 ARCHIVOS CREADOS (NUEVOS)

1. src/data/decision-trees.ts

  • Tipo: Archivo de datos TypeScript
  • Contenido:
    • Tipos TypeScript: DecisionNodeType, DecisionNode, DecisionTree
    • 2 árboles de decisión implementados:
      • pcrRecognitionTree: Reconocimiento de PCR (Cap 4.0)
      • svbAdultTree: SVB Adulto (Cap 4.1)
    • Funciones helper: getDecisionTreeById, getDecisionTreesByCategory, getRootNode, getNodeById
  • Fuente: Manual TES Digital (Bloques 4.0, 4.1)

2. src/components/decision-trees/DecisionTreeViewer.tsx

  • Tipo: Componente React reutilizable
  • Funcionalidad:
    • Visualización interactiva de árboles de decisión
    • Navegación paso a paso (SÍ/NO)
    • Historial de decisiones (botón "Atrás")
    • Botón "Reiniciar" para volver al inicio
    • Redirección automática a procedimientos relacionados
    • Indicador de progreso (paso actual)
  • Dependencias: Componentes UI existentes (Button, Card, Alert, Badge)

3. Integración en src/pages/Escena.tsx

  • Cambios realizados:
    • Añadida nueva pestaña "Decisiones" (icono GitBranch)
    • Estado local para árbol seleccionado
    • Lista de árboles disponibles
    • Visualizador de árbol interactivo
  • NO modificado:
    • Ninguna pestaña existente
    • Ningún componente existente
    • Ninguna funcionalidad existente

🎯 FUNCIONALIDADES IMPLEMENTADAS

1. Árbol de Decisión: Reconocimiento de PCR

  • Pregunta 1: ¿Responde?
    • SÍ → No es PCR, evaluar ABCDE
    • NO → Pregunta 2
  • Pregunta 2: ¿Respira con normalidad?
    • SÍ → No es PCR, PLS
    • NO → PCR confirmada
  • Pregunta 3: ¿Estoy solo o con equipo?
    • SOLO → Activar 112 y empezar RCP
    • CON EQUIPO → Asignar roles y RCP coordinada

2. Árbol de Decisión: SVB Adulto

  • Pregunta 1: ¿ES SEGURO?
    • NO → Asegurar escena
    • SÍ → Pregunta 2
  • Pregunta 2: ¿RESPONDE?
    • SÍ → Evaluar ABCDE
    • NO → Pregunta 3
  • Pregunta 3: ¿RESPIRA NORMAL?
    • SÍ → PLS
    • NO → Iniciar RCP

🔗 INTEGRACIÓN CON EXISTENTE

Reutiliza:

  • Componentes UI existentes (Button, Card, Alert, Badge)
  • Sistema de routing existente (useNavigate)
  • Estilos existentes (Tailwind, clases personalizadas)
  • Estructura de páginas existente

No toca:

  • src/data/procedures.ts (sin cambios)
  • src/data/drugs.ts (sin cambios)
  • src/data/calculators.ts (sin cambios)
  • Componentes existentes (sin modificaciones)
  • Otras páginas (sin cambios)
  • Routing principal (sin cambios)

📱 USO EN LA APP

Acceso:

  1. Ir a página "Escena" (botón inferior)
  2. Seleccionar pestaña "Decisiones"
  3. Elegir un árbol de decisión
  4. Responder preguntas SÍ/NO paso a paso
  5. Llegar a la acción recomendada

Características:

  • Navegación intuitiva (SÍ/NO)
  • Historial de decisiones (botón "Atrás")
  • Redirección automática a procedimientos relacionados
  • Reinicio rápido del árbol
  • Indicador de progreso

🚀 PRÓXIMOS PASOS (MÓDULOS FUTUROS)

Este módulo está completamente funcional y listo para uso. Los siguientes módulos se añadirán de forma similar:

  • Módulo 2: Protocolos Transtelefónicos
  • Módulo 3: Guiones de Comunicación Operativa
  • Módulo 4: Checklists de Material
  • Módulo 5: Material e Inmovilización

CONFIRMACIÓN DE COMPATIBILIDAD

No rompe nada existente:

  • Todas las pestañas de Escena funcionan igual
  • Todas las demás páginas sin cambios
  • Todos los datos existentes intactos
  • Todos los componentes existentes sin modificaciones

Es completamente aditivo:

  • Nuevos archivos en nuevas carpetas
  • Nueva pestaña añadida (no modifica existentes)
  • Nuevos tipos TypeScript (no conflictos)
  • Nuevos componentes (no dependencias circulares)

Compatible hacia atrás:

  • Funciona con estructura existente
  • Reutiliza componentes UI existentes
  • Sigue patrones de código existentes
  • No requiere cambios en configuración

📝 NOTAS TÉCNICAS

Estructura de datos:

DecisionTree {
  id: string
  title: string
  category: 'soporte_vital' | 'escena' | 'material' | 'comunicacion'
  rootNodeId: string
  nodes: DecisionNode[]
}

DecisionNode {
  id: string
  type: 'question' | 'action' | 'redirect'
  text: string
  yes?: string  // ID siguiente si SÍ
  no?: string   // ID siguiente si NO
  action?: string
  redirectTo?: string
}

Extensibilidad:

  • Fácil añadir nuevos árboles: solo añadir a decisionTrees[]
  • Fácil añadir nuevos nodos: solo añadir al array nodes
  • Fácil añadir nuevas categorías: extender tipo category

MÓDULO 1 COMPLETADO Y LISTO PARA USO