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

155
omop/INTERFACE_FEATURES.md Normal file
View File

@@ -0,0 +1,155 @@
# Fonctionnalités de l'Interface Web OMOP
## ✅ État Actuel
L'interface web est **entièrement fonctionnelle** et connectée à l'API FastAPI.
### 🔗 Connexions API Actives
Toutes les pages sont connectées aux endpoints de l'API via React Query :
#### 📊 Dashboard
- **Endpoint**: `/api/stats/summary` - Statistiques globales (rafraîchissement auto toutes les 5s)
- **Endpoint**: `/api/stats/etl?limit=10` - Historique des 10 dernières exécutions ETL
- **Affichage**:
- Nombre de patients OMOP
- Nombre de visites médicales
- Nombre de conditions/diagnostics
- Enregistrements en attente dans staging
- Statistiques des exécutions 24h (total, réussies, échouées)
- Tableau détaillé de l'historique ETL
#### ⚙️ ETL Manager
- **Endpoint**: `POST /api/etl/run` - Lancer un pipeline ETL
- **Endpoint**: `GET /api/etl/jobs` - Liste des jobs en cours (rafraîchissement auto toutes les 2s)
- **Fonctionnalités**:
- Formulaire de configuration du pipeline
- Sélection table source (staging) et cible (OMOP)
- Configuration batch size et nombre de workers
- Mode séquentiel optionnel
- Suivi en temps réel des jobs actifs avec progression
#### 🗄️ Schema Manager
- **Endpoint**: `POST /api/schema/create` - Créer les schémas
- **Endpoint**: `GET /api/schema/validate` - Valider les schémas
- **Endpoint**: `GET /api/schema/info` - Informations sur les schémas
- **Fonctionnalités**:
- Création de tous les schémas ou individuellement (OMOP, Staging, Audit)
- Validation automatique de la structure
- Affichage du nombre de tables par schéma
#### ✅ Validation
- **Endpoint**: `POST /api/validation/run` - Lancer la validation
- **Endpoint**: `GET /api/validation/unmapped-codes?limit=50` - Codes non mappés
- **Fonctionnalités**:
- Lancement de la validation des données
- Liste des codes sources non mappés vers OMOP
- Fréquence d'apparition et dernière occurrence
#### 📝 Logs
- **Endpoint**: `GET /api/logs/?lines=X&level=Y` - Logs système (rafraîchissement auto toutes les 3s)
- **Endpoint**: `GET /api/logs/errors?limit=50` - Erreurs de validation
- **Fonctionnalités**:
- Filtrage par nombre de lignes (50, 100, 200, 500)
- Filtrage par niveau (INFO, WARNING, ERROR, CRITICAL)
- Affichage console-style des logs
- Tableau des erreurs de validation avec détails
## 🎯 Tooltips en Français
Tous les éléments de l'interface disposent maintenant d'infobulles explicatives en français :
### Dashboard
- Vue d'ensemble en temps réel du pipeline OMOP CDM
- Explication de chaque statistique (patients, visites, conditions, en attente)
- Détails sur les exécutions récentes (24h)
- Historique ETL avec statuts et durées
### ETL Manager
- Explication du concept ETL (Extract-Transform-Load)
- Table source : données brutes du staging
- Table cible : tables OMOP standardisées
- Taille de batch : impact sur performances et mémoire
- Nombre de workers : parallélisation et charge CPU
- Mode séquentiel : pour débogage ou petits volumes
- Jobs en cours : suivi temps réel avec rafraîchissement auto
### Schema Manager
- Gestion des 3 schémas (OMOP, Staging, Audit)
- Création individuelle ou complète
- Validation automatique de la structure OMOP CDM 5.4
### Validation
- Vérification qualité et conformité OMOP
- Processus de validation (intégrité, valeurs, vocabulaires)
- Codes non mappés : nécessitent attention pour qualité
### Logs
- Consultation logs et erreurs système
- Filtres par lignes et niveau de sévérité
- Rafraîchissement automatique toutes les 3s
- Erreurs de validation détaillées
## 🚀 Accès à l'Interface
- **Frontend**: http://localhost:4400
- **API**: http://localhost:8001
- **Documentation API**: http://localhost:8001/docs
## 🔧 Technologies Utilisées
### Frontend
- **React** 18 avec Vite
- **React Router** pour la navigation
- **React Query** (@tanstack/query) pour la gestion des appels API
- **Axios** pour les requêtes HTTP
- **Recharts** pour les graphiques
- **CSS** personnalisé avec design moderne
### Backend
- **FastAPI** avec Uvicorn
- **SQLAlchemy** pour l'ORM
- **PostgreSQL** 16.11
- **Pydantic** pour la validation
## 📦 Composants Réutilisables
### Tooltip.jsx
Composant d'infobulle générique avec :
- Affichage au survol
- Style moderne avec ombre
- Flèche de pointage
- Support texte multiligne
### HelpIcon.jsx
Icône d'aide (?) avec tooltip intégré :
- Design circulaire bleu
- Curseur "help"
- Intégration facile dans n'importe quel élément
## 🎨 Design
- Interface moderne et épurée
- Navigation latérale avec icônes
- Cartes pour regrouper les informations
- Badges colorés pour les statuts
- Grille responsive pour les statistiques
- Tableaux stylisés pour les données
- Console-style pour les logs
## ✨ Fonctionnalités Avancées
1. **Rafraîchissement automatique** : Dashboard, ETL jobs et logs se mettent à jour automatiquement
2. **Gestion d'état optimisée** : React Query avec cache et invalidation intelligente
3. **Feedback utilisateur** : Alertes pour succès/erreurs, états de chargement
4. **Validation formulaires** : Contrôles côté client avant envoi
5. **Accessibilité** : Tooltips informatifs pour tous les utilisateurs
6. **Internationalisation** : Interface entièrement en français
## 📝 Notes pour les Collaborateurs
L'interface est conçue pour être **intuitive et auto-explicative** grâce aux tooltips en français. Chaque élément dispose d'une explication contextuelle accessible au survol de l'icône (?).
Les données affichées sont **en temps réel** et se rafraîchissent automatiquement sans nécessiter de rechargement de page.
Toutes les actions (création schémas, lancement ETL, validation) fournissent un **feedback immédiat** via des alertes et des mises à jour visuelles.