codigo0/README.md

227 lines
6.9 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.
---
## 🎯 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**