🗂 1. Sources de données
| Source | Donnée | Fréquence | Licence | Statut |
|---|---|---|---|---|
| Santé Publique France (SPF) | Incidence grippale ILI, COVID-19, Mpox | Hebdomadaire | Open data Etalab | RÉEL |
| SUM'EAU / data.gouv.fr | SARS-CoV-2 dans les eaux usées (signal précoce) | Hebdomadaire | Open data Etalab | RÉEL |
| ECDC opendata | Cas Mpox Union Européenne / EEE | Hebdomadaire | CC BY 4.0 | RÉEL |
| WHO Disease Outbreak News | Alertes épidémiques mondiales officielles | Quotidien | Public | RÉEL |
| Open-Meteo | Qualité de l'air (PM2.5, PM10, AQI européen) | Horaire | CC BY 4.0 | RÉEL |
| WAQI (World Air Quality Index) | AQI stations locales | Horaire | Token requis | RÉEL |
| OpenStreetMap / Overpass API | Pharmacies locales (géolocalisation) | Continue | ODbL | RÉEL |
| Score régional /100 | Indice respiratoire composite | — | — | ESTIMATIF |
RÉEL = données issues de sources officielles vérifiables · ESTIMATIF = modèle interne pondéré, non validé cliniquement · DÉSACTIVÉ = source indisponible
📊 2. Algorithme de détection — Z-score (OMS 7-1-7)
Le score Z mesure l'écart d'une valeur hebdomadaire par rapport à la norme historique des 52 semaines précédentes.
Seuils d'alerte — Algorithme OMS 7-1-7
| Niveau | Seuil Z | p-value | Signification clinique |
|---|---|---|---|
| 🟢 NORMAL | z < 1.5σ | p > 6.7% | Signal dans la norme historique — aucune action requise |
| ⚠️ JAUNE | z ≥ 1.5σ | p < 6.7% | Augmentation inhabituelle — surveiller, renforcer la déclaration |
| 🟠 ORANGE | z ≥ 2.0σ | p < 2.3% | Signal épidémique probable — déclencher l'investigation |
| 🔴 ROUGE | z ≥ 3.0σ | p < 0.3% | Épidémie confirmée — déclarer aux autorités, activer la réponse |
🤖 3. Pipeline IA — Analyse automatique SPF
Fonctionnement
| Étape | Description |
|---|---|
| 1. Collecte | Chaque lundi à 09h UTC, un script GitHub Actions récupère 5 pages de Santé Publique France |
| 2. Compression locale | Le texte HTML est nettoyé localement puis réduit aux titres, dates, régions, maladies, chiffres et signaux importants |
| 3. Synthèse LLM | Seuls les extraits compacts sont envoyés au modèle Groq/Llama-3.3-70b avec un budget strict de tokens |
| 4. Validation | Le JSON est validé par format avant publication ; un fallback heuristique local est utilisé si l'IA échoue |
| 5. Publication | Le fichier data/spf-live.json est commité sur GitHub → Netlify redéploie en < 2 min |
Modèle utilisé
Llama-3.3-70b-versatile via Groq API. Le pipeline n'envoie jamais les bulletins complets groupés au modèle : il compresse d'abord localement les sources, limite la réponse et bascule vers une synthèse locale courte en cas d'erreur API.
🧭 3b. Orientation clinique — non diagnostique
Le vérificateur de symptômes BreathIQ n'établit aucun diagnostic. Il classe les informations saisies vers un niveau de recours prudent : urgence, régulation médicale, médecin le jour même, pharmacie ou auto-surveillance.
| Signal | Orientation prioritaire | Raison |
|---|---|---|
| Dyspnée au repos, cyanose, douleur thoracique, confusion | Urgences / régulation | Signes de gravité cardiorespiratoire ou neurologique |
| Fièvre + raideur de nuque, purpura, convulsions | Urgence immédiate | Méningite ou sepsis à exclure rapidement |
| Fièvre + retour zone à risque fièvre hémorragique | Régulation médicale avant déplacement | Éviter l'exposition non contrôlée d'autres patients et soignants |
| Nourrisson, senior, grossesse, immunodépression | Seuil d'avis médical abaissé | Terrain à risque de complication |
| Symptômes légers sans signe rouge | Pharmacie ou auto-surveillance | Orientation prudente avec réévaluation si aggravation |
📍 3c. Recherche de soins locaux
La recherche locale transmet uniquement la latitude, la longitude et le type de recours demandé. Les symptômes saisis ne sont pas envoyés aux API de cartographie.
| Couche | Usage | Statut |
|---|---|---|
| OpenStreetMap / Overpass | Pharmacies, hôpitaux, médecins, cliniques, dispensaires, centres de santé | ACTIF |
| Normalisation BreathIQ | Format unique : type, distance, source, téléphone, site, horaires, confiance | ACTIF |
| Ranking de pertinence | Distance, type adapté, source, téléphone/horaires, fraîcheur | ACTIF |
| FINESS / RPPS / API FHIR Annuaire Santé | Source officielle française à brancher via adaptateur serveur | PRÉPARÉ |
| WHO GHFD / HDX / Google Places / HERE / Mapbox | Extensions internationales ou premium | PRÉPARÉ |
🌍 4. Alertes OMS — Disease Outbreak News
Chaque jour à 07h UTC, un pipeline récupère le flux RSS officiel des Disease Outbreak News (DON) de l'OMS.
| Source | URL | Fréquence |
|---|---|---|
| WHO DON RSS | who.int/feeds/entity/csr/don/en/rss.xml | Quotidien |
| WHO Emergencies | who.int/emergencies/disease-outbreak-news | Quotidien |
Classification du niveau de risque automatique basée sur les mots-clés du titre (PHEIC, Ebola, outbreak…). Classification définitive = OMS uniquement.
🌬️ 5. Indice Respiratoire Global /100 — Méthodologie et limites
Pondération
| Composante | Poids | Source | Statut |
|---|---|---|---|
| Qualité air (AQI) | 40% | Open-Meteo / WAQI | RÉEL |
| Circulation virale | 30% | SPF national (extrapolé région) | ESTIMATIF |
| Indice pollinique | 20% | Modèle saisonnier approximatif | ESTIMATIF |
| Météo | 10% | Open-Meteo | RÉEL |
🔬 6. Checker de symptômes — Moteur diagnostique
Algorithme
Moteur bayésien pondéré basé sur les critères de définition de cas ILI (OMS), CURB-65, FLU score et SARI. Chaque symptôme coché incrémente le score de probabilité des pathogènes correspondants selon des coefficients issus de la littérature.
Références
OMS Influenza Surveillance, ECDC Case Definitions, CDC Influenza, HCSP France, Critères SARI (Severe Acute Respiratory Illness).
⚠️ 7. Limites et incertitudes
🔒 8. Données personnelles et RGPD
| Donnée | Stockage | Transmission | Durée |
|---|---|---|---|
| Préférences (thème, langue) | localStorage navigateur | Aucune | Jusqu'à effacement |
| Profil soignant (pays, spécialité) | localStorage navigateur | Aucune | Jusqu'à effacement |
| Déclarations de cas | localStorage navigateur | Aucune | Jusqu'à effacement |
| Position géographique (optionnel) | Mémoire session uniquement | API Open-Meteo/WAQI (coordonnées arrondies) | Session uniquement |
Aucune donnée personnelle n'est transmise à des serveurs BreathIQ. Les données de déclaration de cas ne quittent jamais votre navigateur.
📬 9. Contact et signalement
Pour signaler une erreur médicale, une donnée incorrecte ou une amélioration :
Dr Clément Médeau — Docteur en médecine, La Rochelle (France)
BreathIQ est un projet indépendant open-source. Il n'est affilié à aucune institution publique.