private void btnAfficherAdmission_Click(object sender, RoutedEventArgs e)
        {
            AdmissionAffichee adm = dgListeAdmissions.SelectedItem as AdmissionAffichee;

            if (adm != null)
            {
                //AfficherAdmission fenetreAA = new AfficherAdmission(adm);
                //fenetreAA.ShowDialog();

                Admission sAdmission = myBdd.Admissions.SingleOrDefault(a => a.IdAdmission == adm.IdAdmission);
                if (sAdmission != null)
                {
                    AfficherAdmission fenetreAA = new AfficherAdmission(sAdmission);
                    fenetreAA.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Aucune admission n'est choisie", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else
            {
                MessageBox.Show("Aucune admission n'est choisie", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
        } // btnCongedierMedecin_Click

        private void btnSupprimerMedecin_Click(object sender, RoutedEventArgs e)
        {
            Medecin sMedecin = dgListeMedecins.SelectedItem as Medecin;

            if (sMedecin != null && sMedecin.IdMedecin != null)
            {
                // Verification si le medecin choisi pour suppression est lie a un dossier d'admission
                Admission dossierAdmission = myBdd.Admissions.FirstOrDefault(x => x.idMedecin == sMedecin.IdMedecin);

                if (dossierAdmission != null)
                {
                    MessageBox.Show("Suppression est impossible: le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + "est lié à un dossier d'admission",
                                    "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
                else
                {
                    var resultat = MessageBox.Show("Êtes-vous certain de vouloir supprimer le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + "?",
                                                   "Attention", MessageBoxButton.YesNo, MessageBoxImage.Question);

                    if (resultat == MessageBoxResult.Yes)
                    {
                        Medecin med = myBdd.Medecins.SingleOrDefault(x => x.IdMedecin == sMedecin.IdMedecin);
                        myBdd.Medecins.Remove(med);

                        try
                        {
                            myBdd.SaveChanges();
                            MessageBox.Show("Le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + " supprimé avec succès",
                                            "Confirmation", MessageBoxButton.OK, MessageBoxImage.Information);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Erreur d'enregistrement",
                                            MessageBoxButton.OK, MessageBoxImage.Error);
                        }

                        afficherMedecins();
                    } // if MessageBoxResult.Yes
                }     // else i.e. dossierAdmission == null
            }         // if (sMedecin != null)
            else
            {
                MessageBox.Show("Choisissez un médecin à supprimer", "Rappel", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        } // btnSupprimerMedecin_Click
        } // listerAdmissions()

        private void btnDonnerConge_Click(object sender, RoutedEventArgs e)
        {
            AdmissionAffichee admissionAffichee = dgListeAdmissions.SelectedItem as AdmissionAffichee;

            if (admissionAffichee != null)
            {
                // On retrouve l'admission choisie dans notre table Admissions
                Admission sAdmission = myBdd.Admissions.SingleOrDefault(a => a.IdAdmission == admissionAffichee.IdAdmission);

                if (sAdmission != null)
                {
                    if (sAdmission.DateConge == null)
                    {
                        // On met la date d'aujourd'hui comme la date de congé et on libère le lit
                        sAdmission.DateConge  = DateTime.Today;
                        sAdmission.Lit.Occupe = false;

                        // On calcule la facture à payer
                        double totalFacture  = 0;
                        double coutQuotidien = 0;

                        if (sAdmission.ChambrePriveGratuit != true && sAdmission.Patient.AssurancePrive == null)
                        {
                            if (sAdmission.Lit.IdTypeLit == 2)
                            {
                                coutQuotidien += 267;
                            }
                            else if (sAdmission.Lit.IdTypeLit == 3)
                            {
                                coutQuotidien += 571;
                            }
                        }

                        if (sAdmission.LocationTelephone == true)
                        {
                            coutQuotidien += 7.50;
                        }

                        if (sAdmission.LocationTeleviseur == true)
                        {
                            coutQuotidien += 42.50;
                        }

                        // Calcul des jours passés à l'hôpital et du total de la facture
                        if (coutQuotidien > 0)
                        {
                            int Nbjours = (sAdmission.DateConge.Value.Date - sAdmission.DateAdmission.Date).Days;
                            totalFacture = coutQuotidien * Nbjours;
                        }

                        // Sauvegarde des changements et affichage de la facture
                        try
                        {
                            myBdd.SaveChanges();
                            MessageBox.Show("Le patient " + sAdmission.Patient.Nom.Trim() + " " + sAdmission.Patient.Prenom.Trim() +
                                            " a reçu son congé et le total de sa facture est: " + totalFacture + "$",
                                            "Congé", MessageBoxButton.OK, MessageBoxImage.Information);

                            listerAdmissions();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Erreur d'enregistrement", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("L'admission choisie était déjà fermée", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                }
                else
                {
                    MessageBox.Show("Aucune admission n'est sélectionnée!", "Alerte",
                                    MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else
            {
                MessageBox.Show("Aucune admission n'est sélectionnée!", "Alerte",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        } // btnDonnerConge_Click
Example #4
0
        public void afficherAdmission(Admission adm)
        {
            txtNAM.Text                  = adm.NumAssuranceMaladie;
            txtNomPatient.Text           = adm.Patient.Nom;
            txtPrenom.Text               = adm.Patient.Prenom;
            dpDateNaissance.SelectedDate = adm.Patient.DateNaissance;
            txtAge.Text                  = calculerAge(adm.Patient).ToString();

            if (adm.Patient.AssurancePrive == null)
            {
                txtAssurancePrivee.Text = "Aucune";
            }
            else
            {
                txtAssurancePrivee.Text = adm.Patient.CompagnieAssurance.NomCompagnie;
            }

            txtIdAdmission.Text = adm.IdAdmission.ToString();
            dpDateDebutAdmission.SelectedDate = adm.DateAdmission;

            if (adm.DateConge != null)
            {
                dpDateConge.SelectedDate = adm.DateConge;
            }

            if (adm.ChirurgieProgramme == true)
            {
                txtChirurgieOuiNon.Content   = "Oui";
                dpDateChirurgie.SelectedDate = adm.DateChirurgie;
            }
            else
            {
                txtChirurgieOuiNon.Content = "Non";
            }

            txtMedecin.Text     = adm.Medecin.Prenom.Trim() + " " + adm.Medecin.Nom.Trim();
            txtDepartement.Text = adm.Lit.Departement.NomDepartement;
            txtNumeroLit.Text   = adm.idLit.ToString();
            txtTypeChambre.Text = adm.Lit.TypeLit.TypeLitDescription;

            if (adm.ChambrePriveGratuit == true)
            {
                txtSurclassementGratuitOuiNon.Content = "Oui";
            }
            else
            {
                txtSurclassementGratuitOuiNon.Content = "Non";
            }

            if (adm.LocationTeleviseur == true)
            {
                txtLocationTvOuiNon.Content = "Oui";
            }
            else
            {
                txtLocationTvOuiNon.Content = "Non";
            }

            if (adm.LocationTelephone == true)
            {
                txtLocationTelephoneOuiNon.Content = "Oui";
            }
            else
            {
                txtLocationTelephoneOuiNon.Content = "Non";
            }
        } // afficherAdmission
Example #5
0
 public AfficherAdmission(Admission admission)
 {
     InitializeComponent();
     afficherAdmission(admission);
 }
        private void btnEnregistrerAdmission_Click(object sender, RoutedEventArgs e)
        {
            // On vérifie s'il y a des lits disponibles dans l'hôpital
            int nbreLits = calculerLitsTotalDispHopital(myBdd);

            if (nbreLits > 0)
            {
                if (cboNAM.SelectedItem != null)
                {
                    Patient sPatient  = (Patient)cboNAM.SelectedItem;
                    string  idPatient = sPatient.NumAssuranceMaladie;

                    // Vérification si le patient choisi n'est pas hospitalisé présentement
                    var resultat = (from adm in myBdd.Admissions
                                    where adm.NumAssuranceMaladie.Trim() == idPatient.Trim() &&
                                    adm.DateConge == null
                                    select adm).FirstOrDefault();

                    if (resultat == null) // Il n'y a pas d'admission en cours pour le patient
                    {
                        // On declare les variables dont nous aurons besoin pour creer une nouvelle admission
                        DateTime            dateAdmission = (DateTime)dpDateDebutAdmission.SelectedDate;
                        Nullable <DateTime> dateChirurgie = null;
                        int  age = calculerAge(sPatient);
                        bool chirurgieProgrammee = false;
                        int  categorieLitChoisie, idLitAssigne;
                        bool chambrePriveGratuit = false;
                        bool locationTV          = false;
                        bool locationTelephone   = false;

                        // On choisit le departement
                        int idDept = 5; // Par défault: 5 - Général dpt
                        if (chChirurgiePrevue.IsChecked == true)
                        {
                            chirurgieProgrammee = true;
                            idDept = 1; // 1 - ID de dept Chirurgie;
                            if (dpDateChirurgie.SelectedDate != null)
                            {
                                dateChirurgie = (DateTime)dpDateChirurgie.SelectedDate;
                            }
                        }
                        else if (age <= 16)
                        {
                            idDept = 2; // 2 - ID de dept Pédiatrie
                        }
                        else
                        {
                            Departement dept = (Departement)cboDepartement.SelectedItem;
                            if (dept != null)
                            {
                                idDept = dept.IdDepartement;
                            }
                        }

                        // On assigne un medecin
                        string  idMedecin = "";
                        Medecin medecin   = (Medecin)cboMedecin.SelectedItem;
                        if (medecin != null)
                        {
                            idMedecin = medecin.IdMedecin;
                        }

                        //On choisit un lit
                        if (rbLitStandard.IsChecked == true)
                        {
                            categorieLitChoisie = 1;
                        }
                        else if (rbLitSemiPrive.IsChecked == true)
                        {
                            categorieLitChoisie = 2;
                        }
                        else
                        {
                            categorieLitChoisie = 3;
                        }

                        // On cherche un lit de la catégorie choisie dans le departement assigné
                        Lit sLit = trouverLit(myBdd, categorieLitChoisie, idDept);

                        // On vérifie le résultat de recherche
                        if (sLit != null)
                        {
                            // Un lit est retrouvé, on vérifie si c'est de la même catégorie que désiré
                            if (sLit.IdTypeLit != categorieLitChoisie && categorieLitChoisie == 1)
                            {
                                MessageBox.Show("La catégorie du lit assigné est différent de celle choisie. Surclassement gratuit",
                                                "Avertissement", MessageBoxButton.OK, MessageBoxImage.Information);
                                chambrePriveGratuit = true;
                            }
                            sLit.Occupe  = true;
                            idLitAssigne = sLit.IdLit;

                            if (chLocationTV.IsChecked == true)
                            {
                                locationTV = true;
                            }

                            if (chLocationTelephone.IsChecked == true)
                            {
                                locationTelephone = true;
                            }

                            // Verification si tous les champs obligatoires sont remplis
                            bool ok = true;
                            ok = dateAdmission == null ? false : true;
                            ok = (chirurgieProgrammee == true && dateChirurgie == null) || !ok ? false : true;
                            ok = sLit == null || medecin == null || !ok ? false : true;

                            if (ok)
                            {
                                // On crée une nouvelle instance de la classe Admission
                                Admission admission = new Admission()
                                {
                                    ChirurgieProgramme  = chirurgieProgrammee,
                                    DateAdmission       = dateAdmission,
                                    DateChirurgie       = dateChirurgie,
                                    DateConge           = null,
                                    LocationTeleviseur  = locationTV,
                                    LocationTelephone   = locationTelephone,
                                    NumAssuranceMaladie = idPatient,
                                    idLit               = idLitAssigne,
                                    idMedecin           = idMedecin,
                                    ChambrePriveGratuit = chambrePriveGratuit
                                };

                                // On ajoute la nouvelle admission à notre collection d'admissions
                                myBdd.Admissions.Add(admission);

                                // On sauvegarde les changement dans la BDD
                                try
                                {
                                    myBdd.SaveChanges();

                                    // On cherche la nouvelle admission dans la BD pour afficher son numéro
                                    Admission admAjoutee = (from a in myBdd.Admissions
                                                            where a.NumAssuranceMaladie == idPatient
                                                            select a).FirstOrDefault();
                                    if (admAjoutee != null)
                                    {
                                        MessageBox.Show("L'admission numéro " + admAjoutee.IdAdmission + " ajoutée avec succès", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Information);

                                        // Affichage de la nouvelle admission
                                        AfficherAdmission fenetreAffAdm = new AfficherAdmission(admAjoutee);
                                        fenetreAffAdm.ShowDialog();
                                        this.Close();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(ex.Message, "Erreur d'enregistrement d'admission",
                                                    MessageBoxButton.OK, MessageBoxImage.Error);
                                }
                            }
                            else // Pas tous les chemps sont remplis
                            {
                                MessageBox.Show("Remplissez tous le champs obligatoires", "Avertissement",
                                                MessageBoxButton.OK, MessageBoxImage.Warning);
                            }
                        }
                        else // Il n'y a aucun lit dans le departement choisi
                        {    // Donc on suggère de choisir un autre departement
                            MessageBox.Show("Il n'y a aucun lit disponible dans le departement choisi. " +
                                            "Vous pouvez choisir un autre departement pour y placer le patient",
                                            "Avertissement", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                    else // Le patient est presentement hospitalisé
                    {
                        MessageBox.Show("Ajout d'admission impossible: le patient choisi est présentement hospitalisé",
                                        "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else // le patient n'est pas choisi
                {
                    MessageBox.Show("Choisissez un patient pour ajouter une admission", "Alerte",
                                    MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else // Il n'y pas de lit disponible dans tout l'hopital
            {
                MessageBox.Show("Ajout d'admission impossible: pas de lits disponibles", "Alerte",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
        } // bthEnregistrerAdmission_Click