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

156 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.