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¶
- Guías de Usuario - Manual completo de uso
- API Reference - Documentación de endpoints
- Testing Guide - Guía de testing
- Project Status - Estado del proyecto
🧪 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¶
- Fork el repositorio
- Crear una rama (
git checkout -b feature/nueva-funcionalidad) - Commit cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - 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 ✅