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); } } } }
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); } }