Spaces:
Sleeping
Sleeping
Update src/module/Indicateurs_DQ.py
Browse files- src/module/Indicateurs_DQ.py +10 -9
src/module/Indicateurs_DQ.py
CHANGED
|
@@ -5,7 +5,7 @@ Responsabilité : Audit complet, détection d'anomalies, analyses spécifiques h
|
|
| 5 |
Style : Gotham UI + Analyses médicales avancées
|
| 6 |
|
| 7 |
Fonctionnalités :
|
| 8 |
-
- ✅ Accès Google Sheets (via
|
| 9 |
- ✅ Upload fichier Excel local
|
| 10 |
- ✅ 6 sections complètes d'analyse DQ
|
| 11 |
- ✅ Métriques hospitalières spécifiques
|
|
@@ -71,13 +71,14 @@ def safe_pct(num, den):
|
|
| 71 |
# =====================================================
|
| 72 |
|
| 73 |
@st.cache_data(ttl=3600)
|
| 74 |
-
def load_from_google_sheets(
|
|
|
|
| 75 |
"""
|
| 76 |
Charge les données depuis Google Sheets SANS passer par ETL.
|
| 77 |
Garantit qu'aucune anomalie n'est filtrée.
|
| 78 |
|
| 79 |
Args:
|
| 80 |
-
|
| 81 |
sheet_name: Nom de la feuille Google Sheets
|
| 82 |
|
| 83 |
Returns:
|
|
@@ -95,7 +96,7 @@ def load_from_google_sheets(client, sheet_name: str) -> dict:
|
|
| 95 |
for name in sheet_names:
|
| 96 |
try:
|
| 97 |
# Récupération directe depuis Google Sheets
|
| 98 |
-
worksheet =
|
| 99 |
data = worksheet.get_all_records()
|
| 100 |
df = pd.DataFrame(data)
|
| 101 |
|
|
@@ -497,12 +498,12 @@ def plot_completeness_radar(analyzer: HospitalDataQualityAnalyzer):
|
|
| 497 |
# ================= DASHBOARD PRINCIPAL ===============
|
| 498 |
# =====================================================
|
| 499 |
|
| 500 |
-
def show_dq_dashboard(
|
| 501 |
"""
|
| 502 |
Dashboard Data Quality complet avec support Google Sheets et Upload Fichier.
|
| 503 |
|
| 504 |
Args:
|
| 505 |
-
|
| 506 |
sheet_name: Nom de la feuille Google Sheets (optionnel)
|
| 507 |
"""
|
| 508 |
st.markdown("## 🛡️ CENTRE DE CONTRÔLE DATA QUALITY")
|
|
@@ -511,12 +512,12 @@ def show_dq_dashboard(client=None, sheet_name=None):
|
|
| 511 |
dataframes = None
|
| 512 |
|
| 513 |
# ================= MODE DE CHARGEMENT =================
|
| 514 |
-
if
|
| 515 |
-
# Mode Google Sheets (prioritaire si
|
| 516 |
st.info("📊 **Mode : Google Sheets**")
|
| 517 |
|
| 518 |
with st.spinner("🔄 Chargement depuis Google Sheets..."):
|
| 519 |
-
dataframes = load_from_google_sheets(
|
| 520 |
|
| 521 |
else:
|
| 522 |
# Mode Upload Fichier
|
|
|
|
| 5 |
Style : Gotham UI + Analyses médicales avancées
|
| 6 |
|
| 7 |
Fonctionnalités :
|
| 8 |
+
- ✅ Accès Google Sheets (via _client)
|
| 9 |
- ✅ Upload fichier Excel local
|
| 10 |
- ✅ 6 sections complètes d'analyse DQ
|
| 11 |
- ✅ Métriques hospitalières spécifiques
|
|
|
|
| 71 |
# =====================================================
|
| 72 |
|
| 73 |
@st.cache_data(ttl=3600)
|
| 74 |
+
def load_from_google_sheets(_client, sheet_name: str) -> dict:
|
| 75 |
+
|
| 76 |
"""
|
| 77 |
Charge les données depuis Google Sheets SANS passer par ETL.
|
| 78 |
Garantit qu'aucune anomalie n'est filtrée.
|
| 79 |
|
| 80 |
Args:
|
| 81 |
+
_client: _client Google Sheets
|
| 82 |
sheet_name: Nom de la feuille Google Sheets
|
| 83 |
|
| 84 |
Returns:
|
|
|
|
| 96 |
for name in sheet_names:
|
| 97 |
try:
|
| 98 |
# Récupération directe depuis Google Sheets
|
| 99 |
+
worksheet = _client.open(sheet_name).worksheet(name)
|
| 100 |
data = worksheet.get_all_records()
|
| 101 |
df = pd.DataFrame(data)
|
| 102 |
|
|
|
|
| 498 |
# ================= DASHBOARD PRINCIPAL ===============
|
| 499 |
# =====================================================
|
| 500 |
|
| 501 |
+
def show_dq_dashboard(_client=None, sheet_name=None):
|
| 502 |
"""
|
| 503 |
Dashboard Data Quality complet avec support Google Sheets et Upload Fichier.
|
| 504 |
|
| 505 |
Args:
|
| 506 |
+
_client: _client Google Sheets (optionnel)
|
| 507 |
sheet_name: Nom de la feuille Google Sheets (optionnel)
|
| 508 |
"""
|
| 509 |
st.markdown("## 🛡️ CENTRE DE CONTRÔLE DATA QUALITY")
|
|
|
|
| 512 |
dataframes = None
|
| 513 |
|
| 514 |
# ================= MODE DE CHARGEMENT =================
|
| 515 |
+
if _client is not None and sheet_name is not None:
|
| 516 |
+
# Mode Google Sheets (prioritaire si _client fourni)
|
| 517 |
st.info("📊 **Mode : Google Sheets**")
|
| 518 |
|
| 519 |
with st.spinner("🔄 Chargement depuis Google Sheets..."):
|
| 520 |
+
dataframes = load_from_google_sheets(_client, sheet_name)
|
| 521 |
|
| 522 |
else:
|
| 523 |
# Mode Upload Fichier
|