def enregistrer_analyse(self, id, analyse, etat_patient): print("Etat:" + str(etat_patient) + ", Analyse:" + analyse) dao_questionnaire.dao_Questionnaire().update_questionnaire2( id, analyse, etat_patient) page = super().header() page = page + '<fieldset ><legend>Confirmation enregistrement</legend>' page = page + "Analyse enregistrée.<br><a href='suivi_patient?id=" + str( self.patient_selected.get_id()) + "'>Retour</a>" page = page + "</div></fieldset>" page = page + super().footer() return page
def valider_questionnaire(self): id_patient = model_global.get_user_id() self.questionnaire_jour.set_id_patient(id_patient) #enregistrer questionnaire idques = dao_questionnaire.dao_Questionnaire().insert_questionnaire(self.questionnaire_jour) #Enregistrer les responses for rep in self.reponses_parametres : rep.set_id_questionnaire(idques) dao_reponse.dao_Reponse().insert_reponse(rep) for rep in self.reponses_sympt_frequents : rep.set_id_questionnaire(idques) dao_reponse.dao_Reponse().insert_reponse(rep) for rep in self.reponses_sympt_moins_frequents : rep.set_id_questionnaire(idques) dao_reponse.dao_Reponse().insert_reponse(rep) for rep in self.reponses_sympt_graves : rep.set_id_questionnaire(idques) dao_reponse.dao_Reponse().insert_reponse(rep) #page = str(idques) + "; " + str(self.questionnaire_jour.get_date()) + "; " + str(self.questionnaire_jour.get_heure()) + "; " + str(self.questionnaire_jour.get_id_patient()) page = super().header() page = page + '''<fieldset class="cadre"> <legend> Questionnaire du jour : ''' + self.date + ''' </legend>''' page = page + 'Votre questionnaire a bien été validé !<br><a href="accueil_patient">Retour accueil</a>' page = page + "</fieldset>" page = page + super().footer() return page
def init_listes_questions(self): id_patient = model_global.get_user_id() #Récupère la liste des question de la rubrique self.liste_parametres = dao_question.dao_Question().get_questions_niveau(0) #Récupère les données du dernier questionnaire self.reponses_parametres = dao_reponse.dao_Reponse().get_last_reponse_patient(id_patient, 0) #Récupère les valeurs par défaut des questions si première saisie if len(self.reponses_parametres) == 0 : self.liste_parametres = dao_question.dao_Question().get_questions_niveau(0) self.reponses_parametres = [] for quest in self.liste_parametres : rep = reponse.Reponse() rep.set_id_question(quest.get_id()) rep.set_reponse(quest.get_valeur()) self.reponses_parametres.append(rep) #Symptomes fréquents self.liste_sympt_frequents = dao_question.dao_Question().get_questions_niveau(1) self.reponses_sympt_frequents = dao_reponse.dao_Reponse().get_last_reponse_patient(id_patient, 1) if len(self.reponses_sympt_frequents) == 0 : self.liste_sympt_frequents = dao_question.dao_Question().get_questions_niveau(1) self.reponses_sympt_frequents = [] for quest in self.liste_sympt_frequents : rep = reponse.Reponse() rep.set_id_question(quest.get_id()) rep.set_reponse(quest.get_valeur()) self.reponses_sympt_frequents.append(rep) #Symptomes moins fréquents self.liste_sympt_moins_frequents = dao_question.dao_Question().get_questions_niveau(2) self.reponses_sympt_moins_frequents = dao_reponse.dao_Reponse().get_last_reponse_patient(id_patient, 2) if len(self.reponses_sympt_moins_frequents) == 0 : self.liste_sympt_moins_frequents = dao_question.dao_Question().get_questions_niveau(2) self.reponses_sympt_moins_frequents = [] for quest in self.liste_sympt_moins_frequents : rep = reponse.Reponse() rep.set_id_question(quest.get_id()) rep.set_reponse(quest.get_valeur()) self.reponses_sympt_moins_frequents.append(rep) #Symptomes graves self.liste_sympt_graves = dao_question.dao_Question().get_questions_niveau(3) self.reponses_sympt_graves = dao_reponse.dao_Reponse().get_last_reponse_patient(id_patient, 3) if len(self.reponses_sympt_graves) == 0 : self.liste_sympt_graves = dao_question.dao_Question().get_questions_niveau(3) self.reponses_sympt_graves = [] for quest in self.liste_sympt_graves : rep = reponse.Reponse() rep.set_id_question(quest.get_id()) rep.set_reponse(quest.get_valeur()) self.reponses_sympt_graves.append(rep) #Commentaire quest = dao_questionnaire.dao_Questionnaire().get_last_questionnaire(id_patient) if not (quest == None) : self.questionnaire_jour.set_commentaire(quest.get_commentaire())
def accueil_patient(self): id_patient = model_global.get_user_id() print("Id user session=" + str(id_patient)) page = super().header() page = page + '''<fieldset class="cadre"> <legend> Espace personnel </legend>''' page = page + '''<ul> <li class="button_vert"><a href="evolution_patient?id=''' + str(id_patient)+ '''">Voir mon évolution</a></li>''' if dao_questionnaire.dao_Questionnaire().jour_rempli(id_patient) == 0: page = page + '''<li class="button_vert"><a href="questionnaire_patient">Questionnaire du jour</a></li>''' else : page = page + '''<li class="button_vert">Questionnaire du jour REMPLI</li>''' page = page + ''' <li class="button_vert"><a href="edition_patient">Modifier mes informations personnelles</a></li> </ul></fieldset>''' page = page + super().footer() return page
def evolution_patient(self, id) : page = super().header() page = page + '''<div style="width:800px; margin: auto;"><fieldset class="cadre"> <legend> Mon évolution </legend> <div>''' page = page + '''<table> <tr><th class="titre">Date</th><th class="titre">Analyse du médecin</th><th class="titre">Etat</th></tr>''' liste = dao_questionnaire.dao_Questionnaire().get_questionnaires_patient(id) count = 1 for q in liste: analyse = "Pas encore analysé par le médecin." if not ((q.get_analyse() == None) or (q.get_analyse() == "")): analyse = q.get_analyse() if count % 2 == 0: page = page + '<tr class="ligne_gris">' else : page = page + '<tr>' page = page + '<td><a href="resume_questionnaire?id_patient=' + str(q.get_id_patient()) + '&id=' + str(q.get_id()) + '">' + q.get_date() + '</a></td><td>' + analyse + '</td>' #Couleur de l'etat if q.get_etat_patient() == -1: page = page + "<td class='etat_non_analyse'> </td>" elif q.get_etat_patient() == 0: page = page + "<td class='etat_gerrie'> </td>" elif q.get_etat_patient() == 1: page = page + "<td class='etat_moyen'> </td>" elif q.get_etat_patient() == 2: page = page + "<td class='etat_grave'> </td>" elif q.get_etat_patient() == 3: page = page + "<td class='etat_tres_grave'> </td>" elif q.get_etat_patient() == 4: page = page + "<td class='etat_decede'> </td>" page = page + '</tr>' count = count + 1 page = page + "</table>" page = page + '</div></fieldset><div style="width:100px; margin:auto;"><a href="accueil_patient">Retour accueil</a></div></div>' page = page + super().footer() return page
def resume_questionnaire(self, id_patient, id): page = super().header() quest = dao_questionnaire.dao_Questionnaire().get_questionnaire(id) page = page + '''<div class="cadre"><fieldset class="cadre"> <legend> Résumé''' page = page + '''</legend>''' page = page + '<div><table>' #Parametres page = page + "<tr><td colspan=2 class='cel_titre_ribrique'><b>Questionnaire du : " + quest.get_date() + "</b></td></tr>" page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Paramêtres</td></tr>" page = page + self.ligne_reponse(0, quest) #Frequents page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Symptômes fréquents</td></tr>" page = page + self.ligne_reponse(1, quest) #Moins frequents page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Symptômes moins fréquents</td></tr>" page = page + self.ligne_reponse(2, quest) #Graves page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Symptômes graves</td></tr>" page = page + self.ligne_reponse(3, quest) page = page + "</table>" page = page + "</div>" page = page + "</fieldset>" page = page + '<fieldset class="cadre"><legend>Commentaire</legend><div>' if quest.get_commentaire() == None: page = page + "" else: page = page + quest.get_commentaire() page = page + "</div></fieldset>" page = page + '<fieldset class="cadre"><legend>Analyse du médecin</legend><div>' page = page + '<div class="conteneur_analyse">' if quest.get_analyse() == None: page = page + "" else : page = page + quest.get_analyse() page = page + '</div>' page = page + '<div class="div_etat_patient">' if quest.get_etat_patient() == -1 : page = page + '<div class="etat_non_analyse">Non analysé</div>' elif quest.get_etat_patient() == 0 : page = page + '<div class="etat_gerrie">Guéri</div>' elif quest.get_etat_patient() == 1 : page = page + '<div class="etat_moyen"> Moyen</div>' elif quest.get_etat_patient() == 2 : page = page + '<div class="etat_grave"> Grave</div>' elif quest.get_etat_patient() == 3 : page = page + '<div class="etat_tres_grave"> Très grave</div>' elif quest.get_etat_patient() == 4 : page = page + '<div class="etat_decede"> Décédé</div>' page = page + '''</div> </div>''' page = page + "</fieldset>" page = page + '</div><div style="width:150px; margin:auto;"><a href="evolution_patient?id=' + str(id_patient) + '">Retour évolution</a></div></div>' page = page + super().footer() return page
def analyse_questionnaire_patient(self, id): page = super().header() quest = dao_questionnaire.dao_Questionnaire().get_questionnaire(id) page = page + '<div class="cadre">' page = page + self.infos_patient(quest.get_id_patient()) page = page + '''<div class="cadre"><fieldset class="cadre"> <legend> Suivi de : <b>''' + self.patient_selected.get_prenom( ) + " " + self.patient_selected.get_nom() + " - " + str( self.patient_selected.get_nss()) page = page + '''</legend>''' page = page + '<table classe="cadre">' #Parametres page = page + "<tr><td colspan=2 class='cel_titre_ribrique'><b>Questionnaire du : " + quest.get_date( ) + "</b></td></tr>" page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Paramêtres</td></tr>" page = page + self.ligne_reponse(0, quest) #Frequents page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Symptômes fréquents</td></tr>" page = page + self.ligne_reponse(1, quest) #Moins frequents page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Symptômes moins fréquents</td></tr>" page = page + self.ligne_reponse(2, quest) #Graves page = page + "<tr><td colspan=2 class='cel_titre_ribrique'>Symptômes graves</td></tr>" page = page + self.ligne_reponse(3, quest) page = page + "</table>" page = page + "</fieldset>" page = page + '<fieldset class="cadre" ><legend>Commentaire</legend>' page = page + quest.get_commentaire() page = page + "</fieldset>" page = page + '<fieldset class="cadre"><legend>Analyse</legend><div>' page = page + "<form action='enregistrer_analyse' method='GET'>" page = page + '<input type="hidden" name="id" value="' + str(id) + '">' page = page + '<div class="conteneur_analyse"><div class="text_analyse"><textarea id="reponse" name="analyse" rows="8" cols="50" >' + quest.get_analyse( ) + '</textarea></div>' page = page + '''<div class="radio_etat"> <div><input type="radio" id="non_analyse" name="etat_patient" value=-1 ''' if quest.get_etat_patient() == -1: page = page + "checked" page = page + '''> <label for="non_analyse" >Non analysé</label></div> <div><input type="radio" id="gerrie" name="etat_patient" value=0''' if quest.get_etat_patient() == 0: page = page + "checked" page = page + '''> <label for="gerrie" class="couleur_gerrie">Guéris</label></div> <div class="couleur_moyen"><input type="radio" id="moyen" name="etat_patient" value=1 ''' if quest.get_etat_patient() == 1: page = page + "checked" page = page + '''> <label for="moyen">Moyen</label></div> <div class="couleur_grave"><input type="radio" id="grave" name="etat_patient" value=2 ''' if quest.get_etat_patient() == 2: page = page + "checked" page = page + '''> <label for="grave">Grave</label></div> <div class="couleur_tres_grave"><input type="radio" id="tres_grave" name="etat_patient" value=3 ''' if quest.get_etat_patient() == 3: page = page + "checked" page = page + '''> <label for="tres_grave">Très grave</label></div> <div><input type="radio" id="decede" name="etat_patient" value=4 ''' if quest.get_etat_patient() == 4: page = page + "checked" page = page + '''> <label for="decede" class="couleur_decede">Décèdé</label></div> </div> <div><input type="submit" value="Valider" class="button_vert"></div></div>''' page = page + "</form>" page = page + "</div></fieldset></div>" page = page + super().footer() return page
def suivi_patient(self, id=-1, rubrique=0): self.patient_selected = dao_patient.dao_Patient().get_patient(id) page = super().header() page = page + "<div class='cadre'>" page = page + self.infos_patient(id) page = page + "</div>" page = page + '''<fieldset class="cadre"> <legend> Suivi </legend> <div>''' page = page + '''<div class="liste_questions"> <div class="rubriques">''' #Parametres if int(rubrique) == 0: page = page + '''<div class="button_selected"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=0">Paramêtres</a></div>''' else: page = page + '''<div class="button"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=0">Paramêtres</a></div>''' #Frequents if int(rubrique) == 1: page = page + '''<div class="button_selected"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=1">Symptômes fréquents</a></div>''' else: page = page + '''<div class="button"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=1">Symptômes fréquents</a></div>''' #Moins Frequents if int(rubrique) == 2: page = page + '''<div class="button_selected"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=2">Symptômes moins fréquents</a></div>''' else: page = page + '''<div class="button"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=2">Symptômes moins fréquents</a></div>''' #Graves if int(rubrique) == 3: page = page + '''<div class="button_selected"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=3">Symptômes graves</a></div>''' else: page = page + '''<div class="button"><a href="suivi_patient?id=''' + str( id) + '''&rubrique=3">Symptômes graves</a></div>''' page = page + "</div>" page = page + "<table>" page = page + "<tr>" page = page + "<th> </th>" #Creation des colonnes liste_questions = dao_question.dao_Question().get_questions_niveau( rubrique) for quest in liste_questions: page = page + "<th>" + quest.get_intitule() + "</th>" page = page + "<th>Etat</th>" page = page + "</tr>" #Création des lignes questionnaires = dao_questionnaire.dao_Questionnaire( ).get_questionnaires_patient(self.patient_selected.get_id()) count = 2 indic = 0 for q in questionnaires: if count % 2 == 0: page = page + "<tr class='ligne_gris'>" else: page = page + "<tr>" page = page + "<td><a href='analyse_questionnaire_patient?id=" + str( q.get_id()) + "'>" + q.get_date() + "</a></td>" #les réponses indic = 0 comp = None curr_quest = None niv_alerte = None type_q = None reponses = dao_reponse.dao_Reponse().get_reponses_questionnaire( q.get_id(), rubrique) for rep in reponses: print("Reponse:" + rep.to_string()) curr_quest = liste_questions[indic] comp = curr_quest.get_comparateur() niv_alerte = curr_quest.get_reponse_alerte() type_q = curr_quest.get_type_reponse() if niv_alerte == None: page = page + '<td>' else: #Si reponse numérique if type_q == "Numérique": print("Question Numérique") val = float(rep.get_reponse()) niv_alerte = float(niv_alerte) #Si comparateur : = if comp == 2: if val == niv_alerte: page = page + '<td class="rep_alerte">' else: page = page + '<td>' #Si comparateur : > elif comp == 0: if val > niv_alerte: page = page + '<td class="rep_alerte">' else: page = page + '<td>' #Si comparateur : > elif comp == 1: if val < niv_alerte: page = page + '<td class="rep_alerte">' else: page = page + '<td>' #Si reponse Textuelle else: print("Question Textuelle :" + rep.get_reponse() + "; alerte:" + niv_alerte) if rep.get_reponse() == niv_alerte: page = page + '<td class="rep_alerte">' else: page = page + '<td>' page = page + str(rep.get_reponse()) + "</td>" indic = indic + 1 print("Etat patient=" + str(q.get_etat_patient())) if q.get_etat_patient() == -1: page = page + "<td class='etat_non_analyse'> </td>" elif q.get_etat_patient() == 0: page = page + "<td class='etat_gerrie'> </td>" elif q.get_etat_patient() == 1: page = page + "<td class='etat_moyen'> </td>" elif q.get_etat_patient() == 2: page = page + "<td class='etat_grave'> </td>" elif q.get_etat_patient() == 3: page = page + "<td class='etat_tres_grave'> </td>" elif q.get_etat_patient() == 4: page = page + "<td class='etat_decede'> </td>" page = page + "</tr>" count = count + 1 page = page + "</table>" page = page + "</div>" page = page + "</fieldset>" page = page + '<div style="width: 200px; margin: auto;"><a href="liste_patients">Retour liste des patients</a></div>' page = page + super().footer() return page
def tableau_chiffres(self): #Aujourdhui aujourdhui = date.today() auj = aujourdhui.strftime("%d/%m/%Y") #Il y a 7 jours jours = aujourdhui - timedelta(days=7) _7jours = jours.strftime("%Y-%m-%d") #Mois en cours jours = date.today() #Au debut du mois jours = jours.replace(day=1) _mois = jours.strftime("%Y-%m-%d") #Mois dernier jours = jours - timedelta(days=1) _fin_mois_dernier = jours.strftime("%Y-%m-%d") jours = jours.replace(day=1) _debut_mois_dernier = jours.strftime("%Y-%m-%d") page = self.entete() page = page + '''<div><div class="titre"> <h3>Les chiffres du Coronavirus en temps réel <br>''' + auj + '''</h3> </div>''' page = page + '<div class="box">' page = page + ''' <div class="conteneur_recap"> <div class="case_recap"> <fieldset> <legend> Aujourd'hui </legend> <div> <div class="recap_nouveaux">''' + str(dao_patient.dao_Patient().get_nbr_nouveaux_patients_aujourdhui()) + ''' : Nouveaux</div> <div class="recap_gerrie">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_jour_etat(0)) + ''' : Guéris</div> <div class="recap_moyen">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_jour_etat(1)) + ''' : Etat moyen</div> <div class="recap_grave">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_jour_etat(2)) + ''' : Etat grave</div> <div class="recap_tres_grave"> ''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_jour_etat(3)) + ''' : Etat très grave</div> <div class="recap_decede">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_jour_etat(4)) + ''' : Décès</div> </div> </fieldset> </div> <div class="case_recap"> <fieldset> <legend> Les 7 derniers jours </legend> <div> <div class="recap_nouveaux">''' + str(dao_patient.dao_Patient().get_nbr_patients_depuis(_7jours)) + ''' : Nouveaux patients</div> <div class="recap_gerrie">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(0, _7jours)) + ''' : Guéris</div> <div class="recap_moyen">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(1, _7jours)) + ''' : Etat moyen</div> <div class="recap_grave">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(2, _7jours)) + ''' : Etat grave</div> <div class="recap_tres_grave"> ''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(3, _7jours)) + ''' : Etat très grave</div> <div class="recap_decede">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(4, _7jours)) + ''' : Décès</div> </div> </fieldset> </div> </div> <div class="conteneur_recap"> <div class="case_recap"> <fieldset> <legend> Le mois en cours </legend> <div> <div class="recap_nouveaux">''' + str(dao_patient.dao_Patient().get_nbr_patients_depuis(_mois)) + ''' : Nouveaux patients</div> <div class="recap_gerrie">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(0, _mois)) + ''' : Guéris</div> <div class="recap_moyen">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(1, _mois)) + ''' : Etat moyen</div> <div class="recap_grave">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(2, _mois)) + ''' : Etat grave</div> <div class="recap_tres_grave"> ''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(3, _mois)) + ''' : Etat très grave</div> <div class="recap_decede">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_depuis(4, _mois)) + ''' : Décès</div> </div> </fieldset> </div> <div class="case_recap"> <fieldset> <legend> Le mois dernier </legend> <div> <div class="recap_nouveaux">''' + str(dao_patient.dao_Patient().get_nbr_patients_dates(_debut_mois_dernier, _fin_mois_dernier)) + ''' : Nouveaux patients</div> <div class="recap_gerrie">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_dates(0, _debut_mois_dernier, _fin_mois_dernier)) + ''' : Guéris</div> <div class="recap_moyen">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_dates(1, _debut_mois_dernier, _fin_mois_dernier)) + ''' : Etat moyen</div> <div class="recap_grave">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_dates(2, _debut_mois_dernier, _fin_mois_dernier)) + ''' : Etat grave</div> <div class="recap_tres_grave">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_dates(3, _debut_mois_dernier, _fin_mois_dernier)) + ''' : Etat très grave</div> <div class="recap_decede">''' + str(dao_questionnaire.dao_Questionnaire().questionnaire_etat_dates(4, _debut_mois_dernier, _fin_mois_dernier)) + ''' : Décès</div> </div> </fieldset> </div> </div>''' page = page + '''</div> <div class="navigation_pages"><a href="/accueil/">Accueil</a></div> </div>''' page = page + self.footer() return page