| .github/workflows | ||
| admin-panel | ||
| backend | ||
| coverage/.tmp | ||
| database/migrations | ||
| dist | ||
| docs | ||
| logs | ||
| medios_faltantes | ||
| node_modules | ||
| public | ||
| scorm | ||
| scripts | ||
| src | ||
| -quality | ||
| .ai-assistant.md | ||
| .cursorrules | ||
| .dockerignore | ||
| .gitignore | ||
| auditoria-assets-completa.md | ||
| bun.lockb | ||
| components.json | ||
| DEPLOY_LAB.md | ||
| docker-compose.dev.yml | ||
| docker-compose.lab.yml | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| ecosystem.config.cjs | ||
| env.example | ||
| eslint.config.js | ||
| index.html | ||
| LICENSE | ||
| manifest.json | ||
| MANIFESTO_MEDIOS.json | ||
| MEDIOS_REALES_NECESARIOS_FILTRADO.md | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| PROMPTS_MEDIOS_FALTANTES.md | ||
| README.md | ||
| README_ARCHITECTURE.md | ||
| README_DEV.md | ||
| README_FUTURE.md | ||
| README_TODO.md | ||
| SPEC.md | ||
| tailwind.config.ts | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite-plugin-fix-html-references.ts | ||
| vite-plugin-manifest.ts | ||
| vite-plugin-strip-preload-warning.ts | ||
| vite.config.ts | ||
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.
👤 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.mdydocs/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 arquitecturadocs/QUE_FALTA.md- Estado de tickets técnicos y tareas pendientesdocs/CONTENIDO_FALTANTE.md- Contenido faltante (protocolos, guías, glosario)
Documentación para desarrolladores
README_DEV.md- Reglas de desarrollo y principiosREADME_ARCHITECTURE.md- Arquitectura del sistemaREADME_TODO.md- Tareas pendientes con prioridades
Documentación técnica
docs/BACKLOG_MICRO_TICKETS.md- Backlog de fases ejecutadasdocs/ANDRAGOGIA_STRESS_READY_112.md- Principios de diseño UXdocs/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.mdy.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:
- Leer
README_DEV.mdpara reglas de desarrollo - Revisar
README_ARCHITECTURE.mdpara entender la arquitectura - Consultar
README_TODO.mdpara tareas pendientes - Seguir las reglas definidas en
.cursorrules
Desarrollado para Técnicos de Emergencias Sanitarias