Files
aivanov_database/omop/README_WEB_INTERFACE.md
2026-03-05 01:20:15 +01:00

4.6 KiB

Interface Web OMOP Pipeline

Interface web professionnelle pour gérer le pipeline ETL OMOP CDM 5.4.

Architecture

  • Backend: FastAPI (Python)
  • Frontend: React + Vite
  • Communication: REST API + WebSocket (temps réel)

Installation

Backend (FastAPI)

cd omop

# Installer les dépendances API
pip install -r requirements-api.txt

# Lancer le serveur API
python run_api.py

L'API sera disponible sur http://localhost:8000 Documentation Swagger: http://localhost:8000/docs

Frontend (React)

cd omop/frontend

# Installer les dépendances
npm install

# Lancer le serveur de développement
npm run dev

L'interface sera disponible sur http://localhost:3000

Fonctionnalités

📊 Dashboard

  • Vue d'ensemble des statistiques
  • Nombre de patients, visites, conditions
  • Historique des exécutions ETL
  • Graphiques de performance

⚙️ ETL Manager

  • Lancer des pipelines ETL
  • Configurer les paramètres (batch size, workers)
  • Suivre les jobs en cours
  • Voir les statistiques d'exécution

🗄️ Schema Manager

  • Créer les schémas (OMOP, Staging, Audit)
  • Valider les schémas
  • Voir l'état des tables

Validation

  • Lancer la validation des données
  • Voir les codes non mappés
  • Consulter les erreurs de validation

📝 Logs

  • Consulter les logs système
  • Filtrer par niveau (INFO, WARNING, ERROR)
  • Voir les erreurs de validation en base

API Endpoints

ETL

  • POST /api/etl/run - Lancer un pipeline ETL
  • GET /api/etl/jobs - Lister les jobs
  • GET /api/etl/jobs/{job_id} - Statut d'un job
  • POST /api/etl/extract - Extraction seule
  • POST /api/etl/transform - Transformation seule
  • POST /api/etl/load - Chargement seul

Schema

  • POST /api/schema/create - Créer un schéma
  • GET /api/schema/validate - Valider les schémas
  • GET /api/schema/info - Info sur les schémas

Statistics

  • GET /api/stats/etl - Stats ETL
  • GET /api/stats/data-quality - Métriques qualité
  • GET /api/stats/summary - Résumé global

Validation

  • POST /api/validation/run - Lancer validation
  • GET /api/validation/unmapped-codes - Codes non mappés

Logs

  • GET /api/logs/ - Logs système
  • GET /api/logs/errors - Erreurs de validation

Développement

Structure Frontend

frontend/
├── src/
│   ├── api/
│   │   └── client.js          # Client API Axios
│   ├── pages/
│   │   ├── Dashboard.jsx      # Page dashboard
│   │   ├── ETLManager.jsx     # Gestion ETL
│   │   ├── SchemaManager.jsx  # Gestion schémas
│   │   ├── Validation.jsx     # Validation
│   │   └── Logs.jsx           # Logs
│   ├── App.jsx                # Application principale
│   ├── App.css                # Styles
│   └── main.jsx               # Point d'entrée
├── index.html
├── package.json
└── vite.config.js

Structure Backend

src/api/
├── routers/
│   ├── etl.py         # Routes ETL
│   ├── schema.py      # Routes schémas
│   ├── stats.py       # Routes statistiques
│   ├── validation.py  # Routes validation
│   └── logs.py        # Routes logs
└── main.py            # Application FastAPI

Production

Build Frontend

cd frontend
npm run build

Les fichiers statiques seront dans frontend/dist/

Servir avec FastAPI

Vous pouvez servir le frontend depuis FastAPI en ajoutant:

from fastapi.staticfiles import StaticFiles

app.mount("/", StaticFiles(directory="frontend/dist", html=True), name="static")

Déploiement

  1. Build le frontend: npm run build
  2. Copier frontend/dist/ vers le serveur
  3. Lancer l'API: uvicorn src.api.main:app --host 0.0.0.0 --port 8000
  4. Configurer un reverse proxy (nginx) si nécessaire

Configuration

CORS

Le backend autorise les origines:

Pour la production, modifier dans src/api/main.py:

app.add_middleware(
    CORSMiddleware,
    allow_origins=["https://votre-domaine.com"],
    ...
)

Base de données

L'API utilise la configuration de config.yaml pour se connecter à PostgreSQL.

Captures d'écran

Dashboard

  • Statistiques en temps réel
  • Graphiques de performance
  • Historique des exécutions

ETL Manager

  • Formulaire de lancement
  • Suivi des jobs en cours
  • Configuration des paramètres

Schema Manager

  • Création de schémas en un clic
  • Validation automatique
  • État des tables

Support

Pour toute question ou problème, consulter la documentation API sur http://localhost:8000/docs