Initial commit

This commit is contained in:
Dom
2026-03-05 01:20:15 +01:00
commit c0c50e56f0
364 changed files with 62207 additions and 0 deletions

View File

@@ -0,0 +1,204 @@
# 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)
```bash
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)
```bash
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
```bash
cd frontend
npm run build
```
Les fichiers statiques seront dans `frontend/dist/`
### Servir avec FastAPI
Vous pouvez servir le frontend depuis FastAPI en ajoutant:
```python
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:
- http://localhost:3000 (dev Vite)
- http://localhost:5173 (dev Vite alternatif)
Pour la production, modifier dans `src/api/main.py`:
```python
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