public ActionResult CONSULTERGROSSESSE(String idGrossesse, int resultat, String specialisteID)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONSULTER_GROSSESSE"))
                {
                    GROSSESSE grossesse = dal.ObtenirGrossesseParId(idGrossesse);
                    if (grossesse != null)
                    {
                        if (grossesse.Resultat == 0 && resultat != 0)
                        {
                            grossesse.Resultat        = resultat;
                            grossesse.DateResultat    = DateTime.Now;
                            grossesse.MedecinTraitant = dal.ObtenirUtilisateurParId(specialisteID);
                            dal.ModifierGrossesse(grossesse);
                        }
                        return(RedirectToAction("CONSULTERGROSSESSE", new { id = CRYPTAGE.StringHelpers.Decrypt(grossesse.GrossesseID) }));
                    }
                    else
                    {
                        return(View("Error"));
                    }
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }
        public ActionResult CONSULTERGROSSESSE(String id)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONSULTER_GROSSESSE"))
                {
                    GROSSESSE grossesse = dal.ObtenirGrossesseParId(CRYPTAGE.StringHelpers.Encrypt(id));
                    if (grossesse != null)
                    {
                        if (grossesse.Resultat == 0)
                        {
                            ViewBag.Choix = true;
                            //Affichage vue enregistrement résultat grossesse
                            // 0 (par défaut) : grossesse en cours
                            // 1 : Grossesse à terme | Accouchement par césarienne
                            // 2 : Grossesse à terme | Accouchement normal
                            //-1 : Grossesse à terme | Enfant(s) décédé(s) à la naissance
                            //-2 : Fausse couche
                            //-3 : Grossesse à terme | Décès de la mère
                            //-4 : Grossesse à terme | Décès de la mère et de(s) l'enfant(s)

                            ViewBag.GrossesseID      = grossesse.GrossesseID;
                            ViewBag.NomPatient       = CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Patient.Nom).ToUpper() + " " + CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Patient.Prenom);
                            ViewBag.CodeDossier      = CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Code);
                            ViewBag.UtilisateurID    = HttpContext.User.Identity.Name;
                            ViewBag.ListeSpecialiste = dal.ObtenirTousLesSpecialistes();
                            return(View("ConsulterSuiviGrossesse"));
                        }
                        else
                        {
                            ViewBag.Choix             = false;
                            ViewBag.GrossesseID       = grossesse.GrossesseID;
                            ViewBag.NomPatient        = CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Patient.Nom).ToUpper() + " " + CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Patient.Prenom);
                            ViewBag.CodeDossier       = CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Code);
                            ViewBag.CodeGroupe        = CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.GC.Code);
                            ViewBag.Specialiste       = CRYPTAGE.StringHelpers.Decrypt(grossesse.MedecinTraitant.Personne.Nom).ToUpper() + " " + CRYPTAGE.StringHelpers.Decrypt(grossesse.MedecinTraitant.Personne.Prenom);
                            ViewBag.ResultatGrossesse = dal.GetEtatGrossesse(grossesse);
                            ViewBag.DateResultat      = grossesse.DateResultat;

                            return(View("ConsulterSuiviGrossesse"));
                        }
                    }
                    else
                    {
                        ViewBag.ErrorMessage = dal.getErrorMessageArchivedFolder();
                        return(View("Error"));
                    }
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }
        public ActionResult CONFIGURERVISITEPRENATALE(String id)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONFIGURER_VISITE_PRENATALE"))
                {
                    ViewBag.AfficheBouton = false;
                    GROSSESSE grossesse = dal.ObtenirGrossesseParId(CRYPTAGE.StringHelpers.Encrypt(id));
                    if (grossesse != null)
                    {
                        if (grossesse.Resultat == 0)
                        {
                            ViewBag.AfficheBouton = true;
                        }

                        ViewBag.NomPatient       = CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Patient.Nom).ToUpper() + " " + CRYPTAGE.StringHelpers.Decrypt(grossesse.Maternite.Dossier.Patient.Prenom);
                        ViewBag.GrossesseId      = grossesse.GrossesseID;
                        ViewBag.Etatgrossesse    = dal.GetEtatGrossesse(grossesse);
                        ViewBag.ListeSpecialiste = new SelectList(dal.ObtenirTousLesSpecialistes(), "Id", "NomSpecialiste");

                        List <SampleVisitePrenatale> listeSampleVisitePrenatale = null;
                        List <VISITEPRENATALE>       listeVisitePrenatale       = dal.ObtenirToutesLesVisitesPrenatalesGrossesse(grossesse);
                        if (listeVisitePrenatale != null)
                        {
                            listeSampleVisitePrenatale = new List <SampleVisitePrenatale>();
                            foreach (var v in listeVisitePrenatale)
                            {
                                if (v != null)
                                {
                                    listeSampleVisitePrenatale.Add(dal.ConvertirVisitePrenataleSampleVisitePrenatale(v));
                                }
                            }
                            listeSampleVisitePrenatale.OrderBy(v => v.Date);
                        }

                        return(View("ConsulterVisitesPrenatales", listeSampleVisitePrenatale));
                    }

                    return(View("Error"));
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }
        public ActionResult CONFIGURERVISITEPRENATALE(AddVisit newVisit)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONFIGURER_VISITE_PRENATALE"))
                {
                    if (ModelState.IsValid)
                    {
                        GROSSESSE tempG = dal.ObtenirGrossesseParId(newVisit.GrossesseID);
                        if (tempG != null)
                        {
                            VISITEPRENATALE tempV = new VISITEPRENATALE();
                            tempV.Grossesse       = tempG;
                            tempV.Observation     = "";
                            tempV.Rdv             = new RENDEZVOUS();
                            tempV.Rdv.Horaire     = newVisit.DateVisite;
                            tempV.Rdv.Actif       = true;
                            tempV.Rdv.Commentaire = "Visite prénatale";
                            tempV.Rdv.Emetteur    = dal.ObtenirUtilisateurParId(newVisit.SpecialisteID);
                            tempV.Rdv.Manque      = false;
                            tempV.Rdv.Recepteur   = tempG.Maternite.Dossier;
                            tempV.Rdv.Recu        = false;

                            tempV.Rdv.RendezVousID = dal.EnregistrerRendezVous(tempV.Rdv);

                            tempV.Rdv = dal.ObtenirRendezVousParId(tempV.Rdv.RendezVousID);

                            tempV.VisitePrenataleID = dal.EnregistrerVisitePrenatale(tempV);

                            return(RedirectToAction("CONFIGURERVISITEPRENATALE", new { id = CRYPTAGE.StringHelpers.Decrypt(tempV.VisitePrenataleID) }));
                        }
                    }
                }

                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }

            return(View("Error"));
        }