コード例 #1
0
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"))
コード例 #2
0
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)
コード例 #3
0
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"})
コード例 #4
0
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)
コード例 #5
0
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"})
コード例 #6
0
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)
コード例 #7
0
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"})
コード例 #8
0
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")
コード例 #9
0
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"})
コード例 #10
0
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"))
コード例 #11
0
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([])
コード例 #12
0
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
コード例 #13
0
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})
コード例 #14
0
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"})
コード例 #15
0
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"))
コード例 #16
0
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)
コード例 #17
0
def afficher_profil():

    pra = sm.PraticienSess(session["pseudo"])
    return render_template("praticien/profil/mon_identite.html",
                           praticien=pra.praticien_db)
コード例 #18
0
def choisir_questionnaire():
    praticien = sm.PraticienSess(session["pseudo"])
    questionnaires = praticien.recuperer_questionnaires()
    return render_template(
        "praticien/questionnaire/choisir_questionnaire.html",
        questionnaires=questionnaires)
コード例 #19
0
ファイル: main_routes.py プロジェクト: skilvit/skilvit-web
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)
コード例 #20
0
def supprimer_compte_praticien():
    praticien = sm.PraticienSess(session["pseudo"])
    praticien.supprimer_compte()
    return redirect("/tcc/deconnexion_praticien")