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é.
+
+
Si vous n'êtes pas concerné(e), laisser ""0j"" (0 jours) en prématurité (logique non ?)
+
Si vous préférez l'âge corrigé, cocher la case. L'âge de l'enfant sera alors potentiellement négatif.
+
Si vous préférez l'âge réel, c'est la courbe OMS qui sera alors décalée
+
+Tout retour sur cette fonctionnalité est le bienvenu !
+
"
+
"Version 2.1","28/07/2020","
Petites améliorations :
Bug corrigé : quand on ajoute des lignes, maintenant ça ajoute aussi des saisies de taille ! ^^
Par défaut, les saisies de taille sont masquées (car la plupart du temps on regarde le poids). On peut cliquer pour afficher les tailles.
-
"
+"
"Version 2.0","28/07/2020","
Nouveauté : courbes de taille disponible !
diff --git a/gestion_donnees.py b/gestion_donnees.py
index 3523e7e..880614d 100644
--- a/gestion_donnees.py
+++ b/gestion_donnees.py
@@ -21,6 +21,7 @@ def convertit_jours_vers_python(chaine,liste_err):
Si un des caractères n'est ni un nombre, ni une lettre "autorisée" ni une espace,
on affiche un warning et on ignore ce caractère
"""
+# debug("conversion de "+chaine+" vers un nb de jours",liste_err)
chainenombre = ""
agejours = 0.
for lettre in chaine:
@@ -52,6 +53,7 @@ def convertit_jours_vers_python(chaine,liste_err):
if agejours<0:
warning("L'âge est négatif !",liste_err)
agejours = 0
+# debug("On a convertit ! Résultat : "+str(agejours),liste_err)
return agejours
# python -> json
@@ -209,6 +211,12 @@ def gere_configuration(data,liste_err):
naissance = convertit_date_vers_python(naissance,liste_err)
configuration["naissance"] = naissance
+ prematurite = data.get("prematurite","")
+ j = convertit_jours_vers_python(prematurite,liste_err)
+ configuration["prematurite"] = convertit_age_vers_texte(j)
+
+ configuration["agecorrige"] = gere_checkbox(data.get("agecorrige",""))
+
# Type de courbe. Au pire on met P
tyc = data.get("typecourbe","")
if not (tyc in ["P","Z"]):
@@ -383,7 +391,7 @@ def fusionne_donnees(listes_jours,listes_donnees):
if lj[cle_mini]== []:
cle_mini = cle
elif lj[cle] != []:
- if convertit_jours_vers_python(lj[cle][0],[]) masculin |
Cliquer ici pour saisir les dates comme du texte.
+
Afficher l'âge corrigé
Si l'enfant est prématuré, saisir de quelle durée (en mois, jours, semaines, voir syntaxe plus bas). Sinon, laisser 0j. Attention c'est encore en bêta !
+
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