+"Version 2.2","12/11/2020","<p>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é.
+<ul>
+<li>Si vous n'êtes pas concerné(e), laisser ""0j"" (0 jours) en prématurité (logique non ?)</li>
+<li>Si vous préférez l'âge corrigé, cocher la case. L'âge de l'enfant sera alors potentiellement négatif.</li>
+<li>Si vous préférez l'âge réel, c'est la courbe OMS qui sera alors décalée</li>
+</ul>
+Tout retour sur cette fonctionnalité est le bienvenu !
+</p>"
+
"Version 2.1","28/07/2020","<p>Petites améliorations :
<ul>
<li>Bug corrigé : quand on ajoute des lignes, maintenant ça ajoute aussi des saisies de taille ! ^^</li>
<li>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.</li>
-</ul>"
+</ul></p>"
"Version 2.0","28/07/2020","<p>Nouveauté : courbes de taille disponible !
<ul>
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:
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
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"]):
if lj[cle_mini]== []:
cle_mini = cle
elif lj[cle] != []:
- if convertit_jours_vers_python(lj[cle][0],[])<convertit_jours_vers_python(lj[cle_mini][0],[]):
+ if convertit_jours_vers_python(lj[cle][0],initialise_erreurs())<convertit_jours_vers_python(lj[cle_mini][0],initialise_erreurs()):
cle_mini = cle
return cle_mini
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
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
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"
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
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"]
#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'])