def contacter_patient(index): if request.method == "POST": praticien = sm.PraticienSess(session["pseudo"]) le_patient = praticien.acceder_patient(index) if le_patient: sujet = request.form["sujet-message"] corps = request.form["corps-message"] if envoyer_message_praticien_vers_patient(praticien, le_patient, sujet, corps): flash(lazy_gettext("Le message a correctement été envoyé.")) else: flash( lazy_gettext( "Erreur lors de l'envoi, veuillez réessayer plus tard." )) return render_template( "praticien/ses_patients/contacter_patient.html") else: return redirect(url_for("main.afficher_patient_inaccessible")) else: praticien = sm.PraticienSess(session["pseudo"]) le_patient = praticien.acceder_patient(index) if le_patient: print(le_patient) return render_template( "praticien/ses_patients/contacter_patient.html", patient=le_patient) else: return redirect(url_for("main.afficher_patient_inaccessible"))
def donner_taches(): if request.method == "POST": # TODO enregistrer les tâches au patient voulu praticien = sm.PraticienSess(session["pseudo"]) praticien.ajouter_tache_patient(request.form["patient_id"], request.form["tache"]) flash(lazy_gettext("La tâche a bien été attribuée.")) return render_template("praticien/taches/donner_taches.html", message="valide") else: praticien = sm.PraticienSess(session["pseudo"]) ses_patients = praticien.acceder_patients() return render_template("praticien/taches/donner_taches.html", patients=ses_patients)
def charger_commentaires_entrees(): if request.method == "POST": formulaire = request.form # print(formulaire) patient_id = int(formulaire["patient_id"]) tabl_ids = [(i.split(':')[0], int(i.split(':')[1])) for i in json.loads(formulaire["entrees_ids"])] praticien = sm.PraticienSess(session["pseudo"]) commentaires_voulus = praticien.charger_commentaire_sur_entree_patient( patient_id, tabl_ids) if commentaires_voulus: l = [] for commentaire in commentaires_voulus: l.append({ 'name': commentaire.tablename + ':' + str(commentaire.id_entree), 'id_commentaire': commentaire.get_id(), 'texte': commentaire.annotation }) return jsonify(l) else: return jsonify({"success": "false"})
def gerer_ses_patients(): praticien = sm.PraticienSess(session["pseudo"]) ses_patients = praticien.acceder_patients() nouveaux_patients = praticien.acceder_nouveaux_patients() print(nouveaux_patients) return render_template("praticien/ses_patients/gestion_patients.html", patients=ses_patients, nouveaux_patients=nouveaux_patients)
def supprimer_fiche_seance(): if request.method == "POST": formulaire = request.form patient_id = int(formulaire["patient_id"]) fiche_id = int(formulaire["fiche_id"]) praticien = sm.PraticienSess(session["pseudo"]) praticien.supprimer_fiche_seance(patient_id, fiche_id) return jsonify({"success": "true"})
def afficher_fiches_seances(index): praticien = sm.PraticienSess(session["pseudo"]) patient = praticien.acceder_patient(index) fiches_seances = praticien.afficher_fiches_seances(index) if patient is None: return redirect(url_for("main.afficher_patient_inaccessible")) return render_template("praticien/ses_patients/fiches_seances.html", fiches_seances=fiches_seances, patient=patient)
def modifier_fiche_seance(): if request.method == "POST": formulaire = request.form patient_id = int(formulaire["patient_id"]) fiche_id = int(formulaire["fiche_id"]) texte = str(formulaire["texte"]) praticien = sm.PraticienSess(session["pseudo"]) praticien.modifier_fiche_seance(patient_id, fiche_id, texte) return jsonify({"success": "true"})
def suppression_patient(index): if request.method == "POST": # TODO remove patient pass else: praticien = sm.PraticienSess(session["pseudo"]) ses_patients = praticien.acceder_patients() return render_template( "praticien/ses_patients/suppression_patient.html")
def supprimer_commentaire_entree(): if request.method == "POST": formulaire = request.form patient_id = int(formulaire["patient_id"]) comment_id = int(formulaire["comment_id"]) praticien = sm.PraticienSess(session["pseudo"]) praticien.supprimer_commentaires_sur_entree_patient( patient_id, comment_id) return jsonify({"success": "true"})
def afficher_anamnese_patient(index): praticien = sm.PraticienSess(session["pseudo"]) patient = praticien.acceder_patient(index) if patient is not None: anamneses = praticien.lire_anamnese_patient(patient.get_id()) return render_template("praticien/ses_patients/afficher_anamnese.html", patient=patient, categories=dbm.Anamnese.categories, anamneses=anamneses) return redirect(url_for("main.afficher_patient_inaccessible"))
def verifier_enregistrer_questionnaire(): print(request.form) if len(request.form): # data = {elem.split("=")[0]: elem.split("=")[1] for elem in request.form["data"].split("&")} # request.form = data print("on a reçu la validation") print(request.form) resultat = serie_questionnaire_en_json(request.form) # dico = [elem for elem in request.form if "question" in elem] # questions = [elem for elem in dico if len(elem.split("_")) == 2] # questions = sorted(questions) # poids = [sorted([elem for elem in dico if "question_"+str(i)+"_poids" in elem and len(elem.split("_")) == 4]) # for i in range(1, len(questions)+1)] # reponses = [sorted([elem for elem in dico if "question_"+str(i)+"_reponse" in elem and len(elem.split("_")) == 4]) # for i in range(1, len(questions)+1)] # print(questions) # print(reponses) # print(poids) # questions = ["question_"+str(i+1) for i in range(len(questions))] # reponses = [["question_"+str(i+1)+"_reponse_"+str(j) # for j in range(1, len(reponses[i])+1)] for i in range(len(reponses))] # poids = [["question_"+str(i+1)+"_poids_"+str(j) for j in range(1, len(poids[i])+1)] for i in range(len(poids))] # resultat = [] # for i in range(len(questions)): # # print("question "+str(i)) # # print(request.form[questions[i]]) # resultat.append({"question": request.form[questions[i]], "propositions": []}) # for j in range(len(reponses[i])): # # print("réponse "+str(j)) # # print(request.form[reponses[i][j]]) # resultat[i]["propositions"].append({"reponse": request.form[reponses[i][j]], # "poids":request.form[ poids[i][j]]}) # # print("poids "+str(j)) # # print(request.form[poids[i][j]]) print("resultat", resultat) # print(questions) # print(reponses) # print(poids) # enregistrement fichier # with open("static/json_files/formulaire.json", "w") as f: # json.dump(resultat, f) # enregistrement base de données praticien = sm.PraticienSess(session["pseudo"]) praticien.creer_questionnaire(resultat) flash("Le questionnaire a correctement été enregistré.") # return send_from_directory("static/json_files", "formulaire.json", as_attachment=True, # mimetype="application/json") return jsonify(resultat) else: return jsonify([])
def voir_taches_donnees(): # TODO récupérer les tâches données praticien = sm.PraticienSess(session["pseudo"]) ses_patients = praticien.acceder_patients() taches = dm.get_taches(ses_patients) return render_template( "praticien/taches/taches_donnees.html", patients={patient.get_id(): patient for patient in ses_patients}, taches=taches) # endregion
def ajouter_patient_ajax(): if "POST" == request.method: praticien = sm.PraticienSess(session["pseudo"]) email_patient = request.form["email"] patient = praticien.ajouter_patient(email_patient) if patient is None: return jsonify({"ajoute": False}) else: return jsonify({ "ajoute": True, "prenom": patient.prenom, "nom": patient.nom }) else: return jsonify({"ajoute": False})
def ajouter_commentaire_entree(): if request.method == "POST": formulaire = request.form texte = formulaire["texte"] name = formulaire["name"] patient_id = formulaire["patient_id"] tablename, entry_id = name.split(":") praticien = sm.PraticienSess(session["pseudo"]) commentaire_id = praticien.ajouter_commentaire_sur_entree_patient( entry_id, tablename, texte, patient_id) if commentaire_id: return jsonify({ "success": "true", "commentaire_id": commentaire_id }) else: return jsonify({"success": "false"})
def ajouter_fiche_seance(index): form = FicheSeancePatientForm() praticien = sm.PraticienSess(session["pseudo"]) if form.validate_on_submit(): date_heure = dm.DateHeure.from_select_datetime(request.form, "") praticien.ajouter_fiche_seance(index, form.contenu.data, date_heure) flash(lazy_gettext("La fiche consultation/séance a bien été ajoutée.")) return redirect(url_for("main.afficher_fiches_seances", index=index)) else: patient = praticien.acceder_patient(index) if patient: return render_template( "praticien/ses_patients/creer_fiche_seance.html", aujourdhui=datetime.datetime.today(), patient=patient, form=form) else: return redirect(url_for("main.afficher_patient_inaccessible"))
def visualiser_patient(index): if request.method == "POST": if "analyse_patient" in request.form: return redirect(url_for("main.visualiser_patient", index=index)) elif "contacter_patient" in request.form: return redirect(url_for("main.contacter_patient", index=index)) elif "suppression_patient" in request.form: return redirect(url_for("main.suppression_patient", index=index)) elif "afficher_anamnese_patient" in request.form: return redirect( url_for('main.afficher_anamnese_patient', index=index)) else: praticien = sm.PraticienSess(session["pseudo"]) patient = praticien.acceder_patient(index) if patient is None: return redirect(url_for("main.afficher_patient_inaccessible")) pass entrees = praticien.voir_entrees_patient(patient.get_id()) commentaires = praticien.voir_commentaires(patient.get_id()) return render_template( "praticien/ses_patients/visualisation_patient.html", patient=patient, entrees=entrees, commentaires=commentaires)
def afficher_profil(): pra = sm.PraticienSess(session["pseudo"]) return render_template("praticien/profil/mon_identite.html", praticien=pra.praticien_db)
def choisir_questionnaire(): praticien = sm.PraticienSess(session["pseudo"]) questionnaires = praticien.recuperer_questionnaires() return render_template( "praticien/questionnaire/choisir_questionnaire.html", questionnaires=questionnaires)
def affichage_demande_suivi(): if request.method == 'POST': print(request.form) # check if the post request has the file part if 'fichier_suivi' in request.files: print("on a un fichier") file = request.files['fichier_suivi'] # if user does not select file, browser also # submit an empty part without filename if file.filename == '': print("no selected file") flash('No selected file') return redirect(request.url) if file and allowed_file_json(file.filename): print("on a passé ça") filename = secure_filename(file.filename) texte = json.loads(str(file.read(), encoding="utf8")) # print(texte) corpus = dm.Corpus() corpus.from_json_app(texte) lignes = corpus.to_json() corpus.trier() # print("json : ", corpus.to_json()) # with open(os.path.join(DIRECTORY_JSON_FILES, "transitoire_"+session["pseudo"]+".json"), "w") as f: # json.dump(corpus.to_json(), f) session.modified = True # print('session', session) # file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) else: print("aucun fichier") # flash('No file part')a # return redirect(request.url) print("selection_patient" in request.form) if "selection_patient" in request.form: selected_patient_id = request.form["selection_patient"] praticien_sess = sm.PraticienSess(session["pseudo"]) ses_patients = praticien_sess.acceder_patients() selected_patient = ses_patients[int(selected_patient_id) - 1] print("son patient", selected_patient) patient_sess = sm.PatientSess(selected_patient.email) # texte = patient_sess.to_json() lignes = patient_sess.tout_obtenir() # for ligne in lignes: # print("lignes json", type(ligne)) # print("lignes json", ligne) if "affichage" in request.form: print("affichage") print(lignes) return render_template( "praticien/analyse/affichage_fichier_suivi_tcc.html", lignes=lignes) if "affichage_pdf" in request.form: print("affichage_pdf") contenu = [{'text': 'Situations', "style": "header"}] # TODO récupérer les données et les mettre en format PDF pour pdfmaker # for entree in ["Entree", "prise_medicament"]: table1 = [[ "Date", "Heure", "Intensité", "Situation", "Emotions et sensations" ]] for ligne in lignes["Entree"]: table1.append([ ligne["date"], ligne["heure"], ligne["intensite"], ligne["situation"], ligne["emotions_sensations"] ]) contenu.append({ "table": { "headerRows": 1, "widths": ['*', 'auto', 100, '*'], "body": table1 } }) contenu.append({"text": "Prise de médicament", "syle": "header"}) table2 = [["Date", "Heure", "Médicament", "Dosage"]] for ligne in lignes["prise_medicament"]: table2.append([ ligne["date"], ligne["heure"], ligne["medicament"], ligne["dosage"] ]) contenu.append({ "table": { "headerRows": 1, "widths": ['*', 'auto', 100, '*'], "body": table2 } }) data = {"content": contenu} return render_template( "praticien/analyse/affichage_pdf_fichier_suivi_tcc.html", data=data) if "analyse" in request.form: print("Dans analyse") # TODO redirect vocabu = dm.Vocabulaire("") session["voca"] = '{}' vocabu.from_json(session["voca"]) contenu = [{'text': 'Rapport', "style": "header"}] data_pdf = {"content": contenu} return render_template( "praticien/analyse/analyse_fichier_suivi.html", dico=vocabu.d, champs=champs, lignes=lignes, types=champs, data_pdf=data_pdf) else: print("on est dans le sinon") praticien_sess = sm.PraticienSess(session["pseudo"]) ses_patients = praticien_sess.acceder_patients() # print(ses_patients) return render_template("praticien/demande_fichier_suivi_tcc.html", patients=ses_patients)
def supprimer_compte_praticien(): praticien = sm.PraticienSess(session["pseudo"]) praticien.supprimer_compte() return redirect("/tcc/deconnexion_praticien")