You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KoSanté BI — Plateforme d'Analyse & Suivi des PVVIH
Projet Data Engineering & Business Intelligence
Développé par Konaté Soumahila — Data & AI Engineer
Formation : Master 2 MBDS — Université Côte d'Azur / ESATIC Abidjan
📋 Contexte
Une ONG ivoirienne spécialisée dans la prise en charge des Personnes Vivant avec le VIH/SIDA (PVVIH) à Abidjan, Côte d'Ivoire, active depuis plus de 30 ans, gère plus de 6 000 dossiers patients et assure le suivi médical, le traitement ARV et le conseil-dépistage.
Problème résolu
Les données de suivi étaient dispersées dans deux bases Access non connectées, sans tableau de bord centralisé. La direction ne disposait d'aucun indicateur consolidé pour piloter l'activité et produire les rapports bailleurs (PEPFAR, Fonds Mondial).
KoSanté BI transforme ces données brutes en une plateforme analytique complète alignée sur le standard 95-95-95 de l'ONUSIDA.
Note : TblRegistreCDV est une table indépendante (registre anonyme de dépistage).
Les KPIs de dépistage sont calculés indépendamment — conformément aux pratiques PNLS CI.
Microsoft Access Database Engine (driver ODBC 32 ou 64 bits)
Les fichiers .mdb dans le dossier data/
Installation
# 1. Cloner le projet
git clone https://github.com/SOUMAHIL/kosante-bi.git
cd kosante-bi
# 2. Installer les dépendances
pip install -r requirements.txt
# 3. Configurer les chemins dans config.py# (adapter DB_CLINIQUE et DB_PHARMACIE à votre machine)# 4. Lancer le pipeline ETL complet
python etl/extract.py
python etl/transform.py
python etl/load.py
# 5. Lancer le dashboard
streamlit run dashboard/app.py
Ou en un clic
Double-clic sur lancer_dashboard.bat
📈 Phases du projet
Phase
Description
Statut
Phase 1
Setup · Extraction Access → CSV · Audit qualité
✅ Terminée
Phase 2
Transformation · Nettoyage · Schéma DuckDB
✅ Terminée
Phase 3
Dashboard Streamlit · 6 menus · Listings
✅ Terminée
Phase 4
Finalisation · Déploiement
🔄 En cours
🔍 Phase 1 — Détail technique
Extraction (extract.py)
Connexion via pyodbc (driver ODBC Microsoft Access)
Un patient est ACTIF si :
✅ Il a une dispensation ARV dans TblRegime (REGIME IS NOT NULL)
✅ DatePDV = DateRegime + JOURS + 28 jours >= aujourd'hui
✅ DECES = -1 → exclu (décédé)
✅ Transf = -1 → exclu (transféré ou arrêt volontaire)
✅ NumInc > 0
Patient STABLE → dernière CV + 12 mois
Patient NON STABLE + CV ≤1000 → dernière CV + 6 mois
Patient NON STABLE + CV >1000 → dernière CV + 4 mois
Patient NE (0 CV) → DateMiseTARV + 6 mois
Patient NE (1 CV supprimée) → date CV + 6 mois
Patient NE (1 CV non supp.) → date CV + 4 mois