156 lines
5.9 KiB
Markdown
156 lines
5.9 KiB
Markdown
# 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.
|