private void btnLibererPatient_Click(object sender, RoutedEventArgs e)
        {
            Dossier_Admission dos = cbNASLiberer.SelectedItem as Dossier_Admission;


            if (dateLiberation.SelectedDate < dos.dateAdmission)
            {
                MessageBox.Show("Veuillez saisir une date qui ne précède pas la date d'admission du patient.");
            }
            else
            {
                MessageBoxResult messageBoxResult = MessageBox.Show("Êtes-vous sûr de vouloir libérer ce patient?", "Confirmation", System.Windows.MessageBoxButton.YesNo);
                if (messageBoxResult == MessageBoxResult.Yes)
                {
                    //Mettre la date de congé
                    dos.dateConge = dateLiberation.SelectedDate;

                    //Enregistrer le lit comme étant non-occupé
                    int numLit     = (int)dos.noLit;
                    Lit litPatient = Singleton.Instance.bd.Lits.Where(l => l.noLit == numLit).FirstOrDefault();
                    litPatient.occupe = false;

                    try
                    {
                        Singleton.Instance.bd.SaveChanges();
                        MessageBox.Show("Le patient a été libéré.");
                        afficherFacture(dos);
                        refresh();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
Esempio n. 2
0
        private void btnEnregistrerDossier_Click_1(object sender, RoutedEventArgs e)
        {
            Dossier_Admission dossier = new Dossier_Admission();

            if (cbLitsDispos.SelectedItem == null)
            {
                MessageBox.Show("Nous ne pouvons admettre de patients qui n'ont pas de lits.", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (dtAdmissionPatientPrep.SelectedDate == null)
            {
                MessageBox.Show("Veuillez saisir une date d'admission", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            int numLit = Int32.Parse(cbLitsDispos.Text);

            dossier.noLit         = numLit;
            dossier.nasPatient    = Int32.Parse(txtNASPatient.Text);
            dossier.dateAdmission = (DateTime)dtAdmissionPatientPrep.SelectedDate;
            dossier.dateConge     = null;
            if (cbMedecinNomCompletPrep.SelectedItem != null)
            {
                dossier.idMedecin = (cbMedecinNomCompletPrep.SelectedItem as Medecin).idMedecin;
            }

            //Si chirurgie prevue mais chambre de chirurgie non-selectionnee, demander confirmation
            if (ouiChirurgie.IsChecked == true && cbDepartementPrep.SelectedIndex != 0)
            {
                var resultatLitAutre = MessageBox.Show("Une chirurgie est prévue pour ce patient, mais le lit sélectionné n'est pas dans le département de chirurgie. Est-ce exact?", "Attention", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (resultatLitAutre == MessageBoxResult.No)
                {
                    MessageBox.Show("Enregistrement annulé", "Annulation", MessageBoxButton.OK, MessageBoxImage.Information);
                    return;
                }

                {
                    dossier.noLit = null;
                }
            }
            if (ouiChirurgie.IsChecked == true)
            {
                dossier.chirurgieProgrammee = true;
                dossier.dateChirurgie       = (DateTime)dtChirurgie.SelectedDate;
            }
            else
            {
                dossier.chirurgieProgrammee = false;
            }

            if (checkTelephone.IsChecked == true)
            {
                dossier.telephone = true;
            }

            if (checkTelevision.IsChecked == true)
            {
                dossier.television = true;
            }

            //Si patient a 16 ans ou moins mais le lit n'est pas en pediatrie, demander confirmation
            if (agePatient >= 0 && agePatient <= 16 && cbDepartementPrep.SelectedIndex != 1)
            {
                var resultatNonPediatrie = MessageBox.Show("Ce patient a 16 ans ou moins, mais le lit sélectionné n'est pas dans le département de pediatrie. Est-ce exact?", "Attention", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (resultatNonPediatrie == MessageBoxResult.No)
                {
                    return;
                }
                else
                {
                    dossier.noLit = null;
                }
            }

            //determiner si le patient devra payer pour le lit et demander une confirmation si c'est le cas
            dossier.litPayant = determinerSiPayant(numLit);

            if (determinerSiPayant(numLit) == true)
            {
                var reponse = MessageBox.Show("Ce patient devra prendre en charge ses frais de lit. Confirmez-vous l'assignation de ce lit?", "Attention", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (reponse == MessageBoxResult.No)
                {
                    return;
                }
            }

            //Ajouter le dossier (mais pas encore ajout dans la BD)
            Singleton.Instance.bd.Dossier_Admission.Add(dossier);

            //Marquer ce lit comme étant "occupé"
            int numLitAssigne = Int32.Parse(cbLitsDispos.Text);
            Lit litAssigne    = Singleton.Instance.bd.Lits.Where(l => l.noLit == numLitAssigne).FirstOrDefault();

            litAssigne.occupe = true;

            try
            {
                Singleton.Instance.bd.SaveChanges();
                MessageBox.Show("Dossier ajouté avec succes!", "Ajout", MessageBoxButton.OK, MessageBoxImage.Information);

                desactiverSectionDossier(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }