237 lines
7.3 KiB
Markdown
237 lines
7.3 KiB
Markdown
# 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](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**
|