Saltar a contenido

Sistema de Posturografía EPPA

Sistema web de análisis postural basado en evaluación fotográfica, con backend Python/FastAPI y frontend Next.js/React. Dentro del monorepo LABIS, este frente vive en fronts/eppa/.

🎯 Características

  • 4 Vistas de Análisis: Anterior, Posterior, Lateral Derecha, Lateral Izquierda
  • 8 Regiones Anatómicas: Análisis independiente por región
  • Validado contra MATLAB: 100% de tests pasando (31/31)
  • API REST: Endpoints individuales por región
  • Interfaz Web: Captura de marcadores y visualización de resultados
  • Exportación: Resultados en CSV y PNG

🚀 Inicio Rápido

Requisitos

  • Node.js 18+
  • Python 3.9+
  • npm o yarn

Instalación

# 1. Clonar el repositorio
git clone <repo-url>

# 2. Entrar al frente EPPA e instalar dependencias frontend
cd labis-eppa-software/fronts/eppa
npm install

# 3. Instalar dependencias backend
python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate
pip install -r python/requirements.txt

# 4. Configurar variables de entorno
cp .env.local.example .env.local
# Editar .env.local con tus credenciales

Ejecutar en Desarrollo

# Terminal 1: Frontend (Next.js)
npm run dev

# Terminal 2: Backend (Python API)
./start-api.sh
# O manualmente: source venv/bin/activate && cd python && python api.py

La aplicación estará disponible en: - Frontend: http://localhost:9002 - API Backend: http://localhost:8000 - Documentación API: http://localhost:8000/docs

📁 Estructura del Proyecto

fronts/eppa/
├── src/                      # Frontend Next.js/React
│   ├── app/                 # Rutas de la aplicación
│   │   ├── analysis/       # Pantallas de análisis (4 vistas)
│   │   └── marker-capture/ # Captura de marcadores
│   ├── components/          # Componentes React
│   └── lib/                # Utilidades y API client
│
├── python/                   # Backend Python
│   ├── api.py              # API FastAPI principal
│   ├── calculations*.py    # Cálculos por vista
│   ├── test_*.py           # Tests automatizados
│   └── utils/              # Utilidades
│
├── datos/                    # Datos del proyecto
│   ├── data/               # Datos principales
│   │   ├── marcadores/    # Archivos .mat de MATLAB
│   │   └── matlab/        # Código MATLAB original
│   ├── ejemplos-pacientes/ # Datos de ejemplo
│   ├── imagenes/           # Imágenes de análisis
│   └── resultados-analisis/# Resultados guardados
│
├── docs/                     # Documentación
│   ├── api/                # Docs de API
│   ├── testing/            # Docs de testing
│   └── guides/             # Guías de usuario
│
├── matlab_validation/        # Validación vs MATLAB
│   ├── scripts/            # Scripts de validación
│   └── docs/               # Documentación
│
└── tests/                    # Tests de integración

📚 Documentación

🧪 Testing

# Ejecutar tests de Python
pytest python/test_matlab_integration.py -v

# Ejecutar tests de integración
pytest tests/ -v

# Ver cobertura
pytest --cov=python python/test_matlab_integration.py

Estado actual: 31/31 tests pasando (100%) ✅

🔧 Desarrollo

Backend (Python/FastAPI)

Los cálculos están organizados por vista: - calculations.py - Vista Anterior - calculations_posterior.py - Vista Posterior - calculations_lateral.py - Vistas Laterales

Cada región anatómica tiene su propio endpoint en api.py.

Frontend (Next.js/React)

Las pantallas de análisis están en src/app/analysis/: - anterior/ - Vista Anterior - posterior/ - Vista Posterior - lateral-derecha/ - Vista Lateral Derecha - lateral-izquierda/ - Vista Lateral Izquierda

API Client

El cliente TypeScript está en src/lib/api-client.ts y maneja todas las llamadas a la API.

📊 Vistas de Análisis

Vista Anterior

  • Región Cérvico-Cefálica (3 mediciones)
  • Región Tronco-Columna (3 mediciones)
  • Cintura Escapular (1 medición)
  • Cintura Pélvica-Miembro Inferior (3 mediciones)

Vista Posterior

  • Región Cérvico-Cefálica (1 medición)
  • Región Tronco-Columna (3 mediciones)
  • Región Pélvica (1 medición)
  • Región Pie-Tobillo (2 mediciones)

Vistas Laterales

  • Cada vista lateral analiza 4 regiones:
  • Cabeza (ángulo horizontal)
  • Tronco (ángulo vertical)
  • Codo (ángulo articular)
  • Rodilla (ángulo articular)

🤝 Contribuir

  1. Fork el repositorio
  2. Crear una rama (git checkout -b feature/nueva-funcionalidad)
  3. Commit cambios (git commit -am 'Agregar nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Crear Pull Request

📝 Licencia

[Especificar licencia]

👥 Autores

  • Desarrollo original: [Tu nombre]
  • Validación MATLAB: [Equipo]

🙏 Agradecimientos

  • Sistema basado en código MATLAB original
  • Validado con datos reales de pacientes
  • Interfaz diseñada para uso clínico

Versión: 1.0 Última actualización: Octubre 2025 Estado: Producción ✅