From b5ac625bdf312851ad3d7acf5dfdc5a94fcbf0be Mon Sep 17 00:00:00 2001 From: Denise sur Lya Date: Thu, 12 Nov 2020 23:47:51 +0100 Subject: =?UTF-8?q?V=202.2=20:=20possibilit=C3=A9=20d'avoir=20des=20pr?= =?UTF-8?q?=C3=A9mas=20(b=C3=AAta)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configuration.py | 3 +++ data/changelog_data.txt | 11 +++++++++- gestion_donnees.py | 10 +++++++++- templates/index.html | 2 ++ trace_courbe.py | 53 +++++++++++++++++++++++++++++++++++++++---------- 5 files changed, 66 insertions(+), 13 deletions(-) diff --git a/configuration.py b/configuration.py index c56e569..79bcd6d 100644 --- a/configuration.py +++ b/configuration.py @@ -113,6 +113,9 @@ DEFAUT["tracevide"] = "" DEFAUT["memechelle"] = "" DEFAUT["positionlegende"] = "hg" +DEFAUT["prematurite"] = "0j" +DEFAUT["agecorrige"] = "oui" + # initialiser la config def config_init(): diff --git a/data/changelog_data.txt b/data/changelog_data.txt index 2eda864..3b680f3 100644 --- a/data/changelog_data.txt +++ b/data/changelog_data.txt @@ -1,8 +1,17 @@ +"Version 2.2","12/11/2020","

Ajout de la possibilité d'avoir la courbe ajustée pour les prématurés. Attention c'est encore en bêta ! Le principe c'est simplement les courbes OMS décalées de la durée de prématurité, ce qui convient plus ou moins bien aux enfants nés prématurés une fois qu'ils ont atteint l'âge du terme en âge corrigé. +

+Tout retour sur cette fonctionnalité est le bienvenu ! +

" + "Version 2.1","28/07/2020","

Petites améliorations :

" +

" "Version 2.0","28/07/2020","

Nouveauté : courbes de taille disponible !

diff --git a/trace_courbe.py b/trace_courbe.py index a967916..d004dcb 100644 --- a/trace_courbe.py +++ b/trace_courbe.py @@ -3,7 +3,7 @@ from configuration import CONFIG from gestionOMS import * from gestion_unites import * -from gestion_donnees import calcule_max_graphique +from gestion_donnees import calcule_max_graphique, convertit_jours_vers_python import matplotlib.pyplot as plt @@ -24,7 +24,6 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): print(conf) print(conf["non_sauve"]) if conf["non_sauve"].get("maxi",0) == 0: - print("bla") jour_maxi = calcule_max_graphique(l_jours) else: jour_maxi = conf["non_sauve"]["maxi"]+1 @@ -45,11 +44,27 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): else: unite = conf["non_sauve"]["unite"] + #debug("prématurité dans la config : "+conf["prematurite"],liste_err) + prema = int(convertit_jours_vers_python(conf["prematurite"],liste_err)) + ## Gestion des prémas, deux cas : + # Si agecorrige est oui, alors on veut juste soustraire la valeur de préma + # à toutes les données. + # Si agecorrige est non, alors on veut ajouter la valeur de préma aux courbes de référence. + + debug("Prématurité : "+str(prema)+"age corrigé : "+conf["agecorrige"],liste_err) + + + if prema>0 and conf["agecorrige"] == "oui": + l_jours = [j-prema for j in l_jours] + jour_maxi = jour_maxi - prema +# debug("liste des jours : "+str(l_jours),liste_err) + else: + debug("bla",liste_err) l_jours_conv = convertit_tableau(l_jours,unite,liste_err) # Attention, comme les jours commencent à partir de 0, faut enlever 1 pour avoir la borne... age_maxi = convertitunite(jour_maxi-1,unite,liste_err) - debug("cree_figure : conversion des unités ok",liste_err) + debug("cree_figure : conversion des unités ok : "+str(l_jours_conv),liste_err) titre = "Courbe de "+typedonnee+" OMS" @@ -79,13 +94,22 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): else: erreur("Type de courbe invalide"+conf["typecourbe"],liste_err) return "" - - debug("cree_figure : géré le type de courbe ok. Liste des data labels : "+str(liste_data_labels),liste_err) - debug("Fichier d'où extraire les données : "+fichier_oms,liste_err) # Si y'a un nom on met "courbe de machin" if conf["nom"] !="": titre += " de " +conf["nom"] + + + if prema>0: + titre+= ", préma de "+conf["prematurite"] + if conf["agecorrige"] == "oui": + titre+=" (courbe en âge corrigé)" + else: + titre+=" (courbe en âge réel, données OMS décalées)" + + debug("cree_figure : géré le type de courbe ok. Liste des data labels : "+str(liste_data_labels),liste_err) + debug("Fichier d'où extraire les données : "+fichier_oms,liste_err) + # convertir les unités @@ -98,14 +122,18 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): return "" debug("cree_figure : on va convertir données OMS à la bonne unité",liste_err) - try: - coljour = convertit_tableau(extraire_colonne(t,0,jour_maxi),unite,liste_err) + try: + coljour= (extraire_colonne(t,0,jour_maxi)) + if prema>0 and conf["agecorrige"] != "oui": + coljour = [j + prema for j in coljour] + coljour = convertit_tableau(coljour,unite,liste_err) except: erreur("Problème à la conversion du tableau OMS. jour_maxi = "+str(jour_maxi)+" unite = "+unite,liste_err) return "" debug("cree_figure : prête à créer la figure",liste_err) - #### La figure + #### La figure, params + fig = plt.figure(num=None, figsize=(conf["largeur"], conf["hauteur"]), dpi=100, facecolor=conf["couleurs"]["fond"]) plt.rcParams['axes.facecolor'] = conf["couleurs"]["fond"] plt.rcParams['axes.edgecolor']= conf["couleurs"]["cadretxt"] @@ -140,14 +168,17 @@ def cree_figure(conf,l_jours,l_poids,typedonnee,liste_err): #warning("Jusque là ça marche",liste_err) debug("cree_figure : prête à tracer la courbe de l'enfant",liste_err) - + + + ### Tracé pour de bon if l_jours != []: plt.plot(l_jours_conv,l_poids,label=conf["nom"],color=conf["couleurs"]["cadretxt"],marker='o') + debug("Tracé de la courbe enfant, avec les jours "+str(l_jours_conv),liste_err) plt.xlabel("Âge en "+unite,color=conf["couleurs"]["cadretxt"]) plt.ylabel(typedonnee.capitalize()+" en "+CONFIG["unites_typedonnees"][typedonnee],color=conf["couleurs"]["cadretxt"]) plt.title(titre,color=conf["couleurs"]["cadretxt"]) - plt.axis([0,age_maxi,poids_min,poids_max]) + plt.axis([min(0,l_jours_conv[0]),age_maxi,poids_min,poids_max]) if conf['legende']=="oui": legende = plt.legend(loc=conf['positionlegende']) -- cgit v1.2.3