예제 #1
0
        public static void PostHospitalisation(Citoyen citoyen, Hospitalisation hospitalisation, Traitement traitement, Chambre chambre, Lit lit)
        {
            if (ConnexionBD.Instance().EstConnecte())
            {
                PutHospitalisationTerminees(citoyen);

                // On crée la nouvelle hospitalisation liée au patient
                ConnexionBD.Instance().ExecuterRequete(

                    "INSERT INTO hospitalisations (idCitoyen, dateDebut, dateFin, contexte) " +
                    "VALUES ((SELECT idCitoyen FROM citoyens c WHERE c.numAssuranceMaladie = '" + citoyen.AssMaladie + "'), " +
                    "'" + hospitalisation.DateDebut.ToString() + "', " +
                    "'" + hospitalisation.DateFin.ToString() + "', " +
                    "'" + hospitalisation.Contexte + "') "
                    );

                // On crée la nouvelle liste de symptôme lié à l'hospitalisation
                hospitalisation.LstSymptomes.ForEach(symptome => {
                    ConnexionBD.Instance().ExecuterRequete(

                        "INSERT INTO symptomes (idHospitalisation, description, estActif) " +
                        "VALUES ((SELECT idHospitalisation FROM hospitalisation h " +
                        "INNER JOIN citoyen c ON c.idCitoyen = h.idCitoyen " +
                        "WHERE h.dateDebut = '" + hospitalisation.DateDebut.ToString() + "' AND " +
                        "c.numAssuranceMaladie = '" + citoyen.AssMaladie + "' ), " +     // Fin de la valeur idHospitalisation
                        "'" + symptome.Description + "', " +
                        "'" + symptome.EstActif + "') ");
                });

                // Ensuite, il faut créer le lien en bd entre l'hospitalisation et le traitement assigné
                ConnexionBD.Instance().ExecuterRequete(

                    "INSERT INTO hospitalisationstraitements (idHospitalisation, idTraitement, estEnCours) " +
                    "VALUES ((SELECT idHospitalisation FROM hospitalisations h INNER JOIN citoyens c WHERE (c.numAssuranceMaladie = '" + citoyen.AssMaladie + "') AND (h.dateDebut = '" + hospitalisation.DateDebut.ToString() + "')), " +
                    "(SELECT idTraitement FROM traitements t WHERE t.nom = '" + traitement.Nom + "'), " +
                    "true) "
                    );

                PutHospitalisationTraitement(hospitalisation, traitement);

                // Ensuite, il faut mettre à jour le lit dans lequel le citoyen est hospitalisé s'il a été assigné dans un lit disponible
                // Si le citoyen était assigné à un autre lit, il faut le sortir de ce lit pour le libérer.
                // TODO: Il va falloir mettre l'ancien lit en entretien par défaut lorsque l'infirmière-chef aura le menu pour modifier l'état des lits
                if (citoyen.Lit.Numero != null)
                {
                    DataModelLit.PutAncienLitCitoyen(citoyen);
                }

                if (lit != null)
                {
                    DataModelLit.PutNouveauLitCitoyen(lit, citoyen);
                }

                //On change le lit du patient dans la mémoire aussi!
                citoyen.Lit = lit;
            }
        }
예제 #2
0
        public static void PutChambre(Chambre chambre)
        {
            if (ConnexionBD.Instance().EstConnecte())
            {
                ConnexionBD.Instance().ExecuterRequete(
                    string.Format(
                        "UPDATE Chambres " +
                        "SET nom = '{0}' " +
                        "WHERE idChambre = {1}",
                        chambre.Numero, chambre._identifiant
                        )
                    );

                DataModelLit.PutLits(chambre._identifiant, new List <Lit>(chambre.Lits));
                DataModelEquipement.DeleteEquipementsChambre(chambre._identifiant);
                DataModelEquipement.PostEquipementsChambres(chambre._identifiant, new List <Equipement>(chambre.Equipements));
            }
        }
예제 #3
0
        public static List <Chambre> GetChambres(string idDepartement, string extends = "")
        {
            List <Chambre> chambres = new List <Chambre>();

            if (ConnexionBD.Instance().EstConnecte())
            {
                List <int> idChambres = new List <int>();

                ConnexionBD.Instance().ExecuterRequete(
                    string.Format(
                        "SELECT idChambre _id, nom " +
                        "FROM Chambres " +
                        "WHERE idDepartement = {0}",
                        idDepartement
                        ), lecteur =>
                {
                    chambres.Add(new Chambre {
                        _identifiant = int.Parse(lecteur.GetString("_id")), Numero = lecteur.GetString("nom")
                    });
                    if (extends != "")
                    {
                        idChambres.Add(int.Parse(lecteur.GetString("_id")));
                    }
                }
                    );

                for (int i = 0; i < idChambres.Count; ++i)
                {
                    if (extends.ToLower().Contains("lits"))
                    {
                        chambres[i].Lits = new ObservableCollection <Lit>(DataModelLit.GetLits(idChambres[i]));
                    }
                    if (extends.ToLower().Contains("equipements"))
                    {
                        chambres[i].Equipements = new ObservableCollection <Equipement>(DataModelEquipement.GetEquipements(idChambres[i]));
                    }
                }
            }

            return(chambres);
        }
예제 #4
0
        public static void PostChambre(int idDepartement, Chambre chambre)
        {
            if (ConnexionBD.Instance().EstConnecte())
            {
                ConnexionBD.Instance().ExecuterRequete(
                    string.Format(
                        "INSERT INTO Chambres (nom, idDepartement) " +
                        "VALUES ('{0}', {1}) ",
                        chambre.Numero, idDepartement
                        )
                    );

                int idChambre = GetIdChambre(chambre.Numero);

                if (idChambre != -1)
                {
                    DataModelLit.PostLits(idChambre, new List <Lit>(chambre.Lits));
                    DataModelEquipement.PostEquipementsChambres(idChambre, new List <Equipement>(chambre.Equipements));
                }
            }
        }
예제 #5
0
        public static void DeleteChambre(Chambre chambre)
        {
            if (ConnexionBD.Instance().EstConnecte())
            {
                ConnexionBD.Instance().ExecuterRequete(
                    string.Format(
                        "DELETE FROM Chambres " +
                        "WHERE idChambre = {0}",
                        chambre._identifiant
                        )
                    );

                if (chambre.Lits != null && chambre.Lits.Count > 0)
                {
                    DataModelLit.DeleteLits(chambre._identifiant);
                }
                if (chambre.Equipements != null && chambre.Equipements.Count > 0)
                {
                    DataModelEquipement.DeleteEquipementsChambre(chambre._identifiant);
                }
            }
        }