Find a file
planetazuzu 0201f16cf4
Some checks are pending
Auto Deploy to Server / deploy (push) Waiting to run
Update lab configuration 2026-03-22
2026-03-22 22:50:29 +01:00
.github/workflows Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
.planning Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
admin-panel Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
backend Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
database/migrations Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
dist Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
docs Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
logs Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
medios_faltantes Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
public Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
scorm Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
src Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
.dockerignore Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
.gitignore Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
bun.lockb feat: Aplicación completa Manual TES Digital 2025-12-17 12:12:10 +01:00
components.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
docker-compose.dev.yml Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
docker-compose.lab.yml Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
docker-compose.prod.yml Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
docker-compose.yml Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
Dockerfile Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
ecosystem.config.cjs Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
env.example Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
eslint.config.js Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
index.html Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
LICENSE Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
manifest.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
MANIFESTO_MEDIOS.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
package-lock.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
package.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
postcss.config.js Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
README.md Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
tailwind.config.ts Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
tsconfig.app.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
tsconfig.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
tsconfig.node.json Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
vite-plugin-fix-html-references.ts Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
vite-plugin-manifest.ts Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
vite-plugin-strip-preload-warning.ts Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00
vite.config.ts Update lab configuration 2026-03-22 2026-03-22 22:50:29 +01:00

EMERGES TES - Guía Digital de Protocolos de Emergencias 🏥

Aplicación web progresiva (PWA) diseñada como herramienta de referencia rápida para Técnicos de Emergencias Sanitarias (TES) y profesionales de emergencias médicas.

Estado PWA TypeScript React License

👤 Autor

Javier Fernández · @planetazuzu
TES · Developer · La Rioja 🇪🇸


🎯 Objetivo Funcional

EMERGES TES es un socio cognitivo que reduce la carga cognitiva en emergencias médicas proporcionando:

  • Acceso rápido a información crítica (< 2 clics)
  • Protocolos operativos estructurados (RCP, vía aérea, shock, etc.)
  • Vademécum de fármacos con dosis, indicaciones y contraindicaciones
  • Calculadoras médicas (Glasgow, perfusiones, dosis pediátricas)
  • Guías formativas asociadas a protocolos
  • Funcionalidad offline-first (funciona sin conexión)
  • Diseño optimizado para uso bajo presión y estrés

No es:

  • Un sistema de diagnóstico automático
  • Una herramienta de IA que toma decisiones clínicas
  • Un sustituto de la formación reglada del profesional
  • Un reemplazo del criterio clínico

📊 Estado Actual del Proyecto

Estado: En desarrollo activo

Completado

  • Frontend PWA: React 19 + TypeScript, funcional con Service Worker
  • Backend API: Express + PostgreSQL con Clean Architecture
  • Protocolos: 50+ protocolos operativos estructurados
  • Fármacos: 100+ fármacos con dosis y especificaciones
  • Guías formativas: Guías de refuerzo asociadas a protocolos
  • Herramientas clínicas: Checklists, calculadoras, pathways
  • Validación médica: Workflow completo de revisión y aprobación
  • Glosario: Backend completo con ~74 términos migrados
  • Medios: Sistema de gestión de imágenes/vídeos/documentos
  • Tests: Tests unitarios backend (servicios) y tests integración API

⚠️ En Progreso / Pendiente

  • Frontend glosario: La app aún no consume GET /api/glossary (usa datos locales)
  • Cobertura frontend: Objetivo 80% (en aumento)
  • Contenido: Categoría "Escena" vacía en protocolos (ver docs/CONTENIDO_FALTANTE.md)

Documentación detallada: Ver docs/QUE_FALTA.md y docs/CONTENIDO_FALTANTE.md


⚠️ ACLARACIÓN FUNDAMENTAL: ¿Qué son los "Tickets"?

Los tickets NO son funcionalidad de negocio

IMPORTANTE: En este proyecto, los "tickets" (TICKET-001, TICKET-002, etc.) NO son una funcionalidad de negocio.

  • NO existe un sistema de tickets de soporte, incidencias o solicitudes de usuarios
  • NO hay entidades llamadas "tickets" en el código
  • NO hay lógica de negocio asociada a tickets

Los tickets son tareas técnicas de desarrollo

Los tickets son únicamente una forma de dividir, organizar y seguir las tareas pendientes de desarrollo de la aplicación.

  • Son equivalentes a issues o tickets técnicos de JIRA / GitHub
  • Representan tareas técnicas o pasos de desarrollo
  • Sirven para planificación y seguimiento del trabajo
  • Están documentados en docs/QUE_FALTA.md y docs/BACKLOG_MICRO_TICKETS.md

Ejemplo: TICKET-013 significa "Implementar ValidationService para workflow de validación médica" (tarea técnica completada).

Entidades reales del dominio

Las entidades reales del dominio de la aplicación son:

  • ContentItem: Protocolos, guías, manuales, checklists
  • Drug: Fármacos con especificaciones técnicas
  • GlossaryTerm: Términos médicos del glosario
  • MediaResource: Imágenes, vídeos, documentos
  • MedicalReview: Revisiones médicas de contenido

Ninguna de estas entidades se llama "ticket" ni tiene relación con tickets.

Si en el futuro se añade un sistema de tickets de negocio

Si en el futuro se añade un sistema de tickets de soporte/incidencias como nueva funcionalidad, deberá tratarse como una FEATURE independiente, no implementada actualmente.


🛠️ Stack Tecnológico

Frontend

  • React 19 + TypeScript 5.8
  • Vite 7 - Build tool
  • Tailwind CSS 3.4 + shadcn/ui - UI Framework
  • React Router 6.3 - Navegación SPA
  • PWA - Service Worker + Manifest
  • Vitest - Testing

Backend

  • Node.js + TypeScript
  • Express 4.18 - Framework web
  • PostgreSQL - Base de datos relacional
  • Redis - Caché (opcional)
  • Zod - Validación de esquemas
  • Vitest + Supertest - Testing

Arquitectura

  • Clean Architecture en backend (Domain → Application → Infrastructure → Presentation)
  • Arquitectura funcional React en frontend
  • Type Safety estricto (sin any)

🚀 Instalación y Ejecución

Requisitos previos

  • Node.js 20+
  • PostgreSQL 14+
  • Redis (opcional, para caché)

Instalación

# Clonar repositorio
git clone [url-del-repositorio]
cd guia-tes

# Instalar dependencias frontend
npm install

# Instalar dependencias backend
cd backend
npm install
cd ..

Ejecución

Solo frontend (desarrollo)

npm run dev
# Abre en http://localhost:8096

Frontend + Backend local (con Docker)

npm run dev:local
# Inicia PostgreSQL + Redis en Docker
# Frontend: http://localhost:8096
# Backend: http://localhost:3000

Backend solo

cd backend
npm run dev
# Backend en http://localhost:3000

Build producción

# Frontend
npm run build

# Backend
cd backend
npm run build

Documentación detallada: Ver docs/DESPLIEGUE_LOCAL.md para configuración completa con Docker.


📚 Documentación

Documentación principal

  • SPEC.md - Especificación maestra del proyecto (fuente de verdad)
  • .cursorrules - Reglas de desarrollo y arquitectura
  • docs/QUE_FALTA.md - Estado de tickets técnicos y tareas pendientes
  • docs/CONTENIDO_FALTANTE.md - Contenido faltante (protocolos, guías, glosario)

Documentación para desarrolladores

  • README_DEV.md - Reglas de desarrollo y principios
  • README_ARCHITECTURE.md - Arquitectura del sistema
  • README_TODO.md - Tareas pendientes con prioridades

Documentación técnica

  • docs/BACKLOG_MICRO_TICKETS.md - Backlog de fases ejecutadas
  • docs/ANDRAGOGIA_STRESS_READY_112.md - Principios de diseño UX
  • docs/CHECKLIST_ANTES_ACEPTAR_CAMBIOS.md - Checklist de calidad

🔄 Evolución de la Arquitectura

Nota importante: La arquitectura puede evolucionar según las necesidades del proyecto.

  • Las decisiones arquitectónicas están documentadas en SPEC.md y .cursorrules
  • Cualquier cambio arquitectónico debe documentarse explícitamente
  • Se prioriza la mantenibilidad y claridad del código

📄 Licencia

[Especificar licencia si aplica]


👥 Contribución

Este proyecto está en desarrollo activo. Para contribuir:

  1. Leer README_DEV.md para reglas de desarrollo
  2. Revisar README_ARCHITECTURE.md para entender la arquitectura
  3. Consultar README_TODO.md para tareas pendientes
  4. Seguir las reglas definidas en .cursorrules

Desarrollado para Técnicos de Emergencias Sanitarias