No results
This file contains ambiguous Unicode characters
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.
📊 Analytics et Intelligence Artificielle
Graphiques d'affluence, prédictions, recommandations et export de données.
Vue d'Ensemble
QueueMed collecte des événements analytiques à chaque action significative dans la file d'attente, puis les transforme en graphiques, métriques et recommandations intelligentes.
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ PIPELINE ANALYTICS │
│ │
│ Événements ──▶ Stockage ──▶ Agrégation ──▶ Visualisation │
│ │ │
│ └──▶ Recommandations IA │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ patient │ │ MySQL │ │ GROUP BY │ │ Recharts │ │
│ │ _joined │──▶│ analytics│──▶│ hour,day │──▶│ Barres │ │
│ │ _called │ │ _events │ │ week │ │ Camembert│ │
│ │ _done │ │ │ │ │ │ Courbes │ │
│ │ _absent │ │ │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
Événements Collectés
| Type d'événement | Déclencheur | Données capturées |
|---|---|---|
patient_joined |
Patient rejoint la file | heure, jour, taille file |
patient_called |
Médecin appelle | temps d'attente, position |
patient_done |
Consultation terminée | durée consultation |
patient_absent |
Patient ne se présente pas | temps d'attente avant absence |
queue_opened |
File ouverte | heure d'ouverture |
queue_closed |
File fermée | heure de fermeture, patients restants |
Structure d'un Événement
┌─────────────────────────────────────────────────────────────────┐
│ analytics_events │
├─────────────────────────────────────────────────────────────────┤
│ id : 12847 │
│ clinicId : 5 │
│ eventType : "patient_called" │
│ ticketNumber : 13 │
│ waitMinutes : 22 │
│ consultationMin : null (rempli à patient_done) │
│ queueSizeAtEvent : 7 │
│ hourOfDay : 10 │
│ dayOfWeek : 3 (mercredi) │
│ metadata : { "patientName": "Jean D." } │
│ createdAt : 2026-05-20 10:32:15 │
└─────────────────────────────────────────────────────────────────┘
Métriques Calculées
Métriques Principales
| Métrique | Formule SQL | Période | Usage |
|---|---|---|---|
| Patients/jour | COUNT(*) WHERE eventType='patient_joined' GROUP BY DATE |
Par jour | Volume |
| Temps d'attente moyen | AVG(waitMinutes) WHERE eventType='patient_called' |
7 jours | Performance |
| Taux de présence | COUNT(done) / COUNT(done + absent) * 100 |
7 jours | Fiabilité |
| Durée consultation | AVG(consultationMinutes) WHERE eventType='patient_done' |
7 jours | Calibrage |
| Pic d'affluence | MAX(COUNT) GROUP BY hourOfDay |
30 jours | Planification |
| Taille file max | MAX(queueSizeAtEvent) |
Par jour | Capacité |
Métriques Dérivées
| Métrique | Calcul | Insight |
|---|---|---|
| Tendance | Comparaison J vs J-7 | Croissance/décroissance |
| Jour le plus chargé | MAX(COUNT) GROUP BY dayOfWeek |
Planification RH |
| Heure creuse | MIN(COUNT) GROUP BY hourOfDay |
Optimisation planning |
| Taux d'abandon | COUNT(absent) / COUNT(joined) |
Satisfaction patient |
Visualisations
Graphique d'Affluence par Heure
Patients
│
12 ┤ ▓▓
10 ┤ ▓▓ ▓▓ ▓▓
8 ┤ ▓▓ ▓▓ ▓▓ ▓▓
6 ┤ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
4 ┤ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
2 ┤ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
0 ┼──────────────────────────────────────────────────
8h 9h 10h 11h 12h 14h 15h 16h 17h
Répartition par Jour de la Semaine
Lundi ████████████████████████████████████████ 45
Mardi ██████████████████████████████████ 38
Mercredi ████████████████████████████████████████████████████ 62
Jeudi ████████████████████████████████████ 40
Vendredi ██████████████████████████████████████████████████ 58
Samedi ████████████████ 15
Dimanche ██████ 5
Camembert des Statuts
┌────────────────────────┐
│ │
│ ╭──────────────╮ │
│ ╱ Done 72% ╲ │
│ │ │ │
│ │ ┌──────────┐ │ │
│ │ │Absent 18%│ │ │
│ │ └──────────┘ │ │
│ ╲ Canceled 10% ╱ │
│ ╰──────────────╯ │
│ │
└────────────────────────┘
Recommandations IA
Fonctionnement
Les recommandations sont générées côté serveur en analysant les patterns dans les données :
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ MOTEUR DE RECOMMANDATIONS │
│ │
│ 1. Agrégation des 30 derniers jours │
│ 2. Détection de patterns : │
│ ├── Pics d'affluence récurrents │
│ ├── Tendance temps d'attente │
│ ├── Taux d'absence élevé │
│ └── Jours sous-utilisés │
│ 3. Génération de recommandations contextuelles │
│ │
└─────────────────────────────────────────────────────────────────────┘
Exemples de Recommandations
| Pattern Détecté | Recommandation |
|---|---|
| Pic mercredi 9h-11h | « Envisagez d'ouvrir plus tôt le mercredi ou d'ajouter du personnel d'accueil. » |
| Temps d'attente en hausse | « Le temps d'attente moyen a augmenté de 12%. Réduisez la durée de consultation ou augmentez la rotation. » |
| Taux d'absence > 20% | « 1 patient sur 5 ne se présente pas. Activez les notifications SMS pour réduire les absences. » |
| Samedi sous-utilisé | « Le samedi ne représente que 6% de votre activité. Envisagez de fermer pour optimiser vos coûts. » |
| File > 30 patients | « Votre file dépasse régulièrement 30 patients. Envisagez de réduire la taille max ou d'ajouter un créneau. » |
Export CSV
Format
Le fichier CSV exporté contient toutes les colonnes de la table analytics_events :
id,clinicId,eventType,ticketNumber,waitMinutes,consultationMinutes,queueSizeAtEvent,hourOfDay,dayOfWeek,createdAt
12845,5,patient_joined,11,,,,10,3,2026-05-20 10:15:00
12846,5,patient_called,11,17,,,10,3,2026-05-20 10:32:00
12847,5,patient_done,11,17,12,,10,3,2026-05-20 10:44:00
Utilisation
| Action | Résultat |
|---|---|
| Cliquer "Export CSV" | Télécharge un fichier .csv |
| Filtrage | Par cabinet uniquement |
| Période | Tous les événements disponibles |
| Compatibilité | Excel, Google Sheets, LibreOffice |
Procédures tRPC Analytics
| Procédure | Input | Output | Description |
|---|---|---|---|
analytics.get |
{ clinicId, days } |
{ totalPatients, avgWait, peakHour, ... } |
Stats par cabinet |
analytics.getAll |
{ days } |
Array<{ clinicId, totalPatients, avgWait }> |
Stats globales |
analytics.exportCsv |
{ clinicId } |
string (CSV) |
Export brut |
Évolutions Prévues (v2.0)
| Fonctionnalité | Description | Priorité |
|---|---|---|
| Prédictions ML | Prédire l'affluence du lendemain | Haute |
| Alertes automatiques | Notification si file > seuil | Moyenne |
| Rapports PDF | Export hebdomadaire automatique | Moyenne |
| Comparaison inter-cabinets | Benchmarking entre cabinets | Basse |
| Heatmap calendrier | Vue annuelle de l'affluence | Basse |
🏥 QueueMed
Navigation
📖 Général
👥 Guides Utilisateur
⚙️ Technique
📊 Fonctionnalités
🔗 Liens Rapides
🏥 QueueMed — Gestion intelligente de file d'attente médicale | Développé par tarzzan | git.cosmolan.fr