# 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](https://img.shields.io/badge/Estado-En%20desarrollo-blue) ![PWA](https://img.shields.io/badge/PWA-Ready-green) ![TypeScript](https://img.shields.io/badge/TypeScript-5.8-blue) ![React](https://img.shields.io/badge/React-19-blue) ![License](https://img.shields.io/badge/License-MIT-green) ## 👤 Autor **Javier Fernández** · [@planetazuzu](https://github.com/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 ```bash # 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) ```bash npm run dev # Abre en http://localhost:8096 ``` #### Frontend + Backend local (con Docker) ```bash npm run dev:local # Inicia PostgreSQL + Redis en Docker # Frontend: http://localhost:8096 # Backend: http://localhost:3000 ``` #### Backend solo ```bash cd backend npm run dev # Backend en http://localhost:3000 ``` ### Build producción ```bash # 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**