//============================Listeners =========================== private void cbNASLiberer_SelectionChanged(object sender, SelectionChangedEventArgs e) { Dossier_Admission dos = cbNASLiberer.SelectedItem as Dossier_Admission; txtNomPatientLiberer.Text = dos.Patient.nomPatient; txtPrenomPatientLiberer.Text = dos.Patient.prenomPatient; }
private void btnAssignerMedecin_Click(object sender, RoutedEventArgs e) { Dossier_Admission dossier = dgDossiersMedecin.SelectedItem as Dossier_Admission; Medecin medecin = cbAutresMedecins.SelectedItem as Medecin; if (dossier == null) { MessageBox.Show("Veuillez sélectionner un patient dans la liste de patients.", "Avertissement", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (medecin == null) { MessageBox.Show("Veuillez sélectionner un médecin dans la liste de médecin pour assignation.", "Avertissement", MessageBoxButton.OK, MessageBoxImage.Error); return; } dossier.idMedecin = medecin.idMedecin; try { Singleton.Instance.bd.SaveChanges(); MessageBox.Show("Médecin assigné avec succès!", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Exclamation); refresh(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
//============================Methodes-Services =========================== public void afficherFacture(Dossier_Admission dos) { string txtAfficher = " FACTURE\n======================\n"; double fraisTotaux = 0; double fraisPrive = 571; double fraisSemiPrive = 267; double fraisPhone = 7.50; double fraisTV = 42.50; //Si le patient doit prendre en charge ses frais de lit, ajouter le montant a sa facture if (dos.litPayant == true) { if (dos.Lit.noTypeLit == 2) { fraisTotaux += fraisSemiPrive; txtAfficher += "Lit semi-privé: 267.00$.\n"; } else if (dos.Lit.noTypeLit == 1) { fraisTotaux += fraisPrive; txtAfficher += "Lit privé: 571.00$.\n"; } } if (dos.telephone == true) { fraisTotaux += fraisPhone; txtAfficher += "Téléphone: 7.50$\n"; } if (dos.television == true) { fraisTotaux += fraisTV; txtAfficher += "Télévision: 42.50$\n"; } txtAfficher += "======================\nTotal: " + fraisTotaux + "$"; MessageBox.Show(txtAfficher); }
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); } }
private void btnRechercherPatient_Click(object sender, RoutedEventArgs e) { bool inclureDossier = false; List <Dossier_Admission> dossiersRetrouves; Dossier_Admission dossierSelectionne = null; Patient patientRetrouve = null; Parent parentRetrouve = null; int recherche; bool ok = Int32.TryParse(txtRechercherNAS.Text, out recherche); if (!ok) { MessageBox.Show("Entrez seulement des chiffres sans espaces."); return; } //Rechercher patient patientRetrouve = Singleton.Instance.bd.Patients.Where(p => p.idPatient == recherche).FirstOrDefault(); //Si patient non-trouve, terminer. if (patientRetrouve == null) { txtRechercherNAS.Text = ""; MessageBox.Show("Patient non-trouvé. Essayez à nouveau ou remplissez les champs.", "Échec", MessageBoxButton.OK, MessageBoxImage.Warning); return; } string txtAfficher = "Patient retrouvé.\n"; //Verifier si ce patient a un dossier existant dossiersRetrouves = Singleton.Instance.bd.Dossier_Admission.Where(d => d.nasPatient == patientRetrouve.idPatient).OrderByDescending(d => d.dateAdmission).ToList(); //Si oui if (dossiersRetrouves.Count > 0) { //Si le dossier le plus recent est toujours actif, prendre en note ce dossier pour l'afficher. if (dossiersRetrouves.FirstOrDefault().dateConge == null) { txtAfficher += "Ce patient n'a pas encore été libéré par un médecin et se trouve toujours dans l'hôpital. Voici le dossier en cours pour ce patient."; MessageBox.Show(txtAfficher, "Information", MessageBoxButton.OK, MessageBoxImage.Information); inclureDossier = true; dossierSelectionne = dossiersRetrouves.FirstOrDefault(); } //Sinon, demander si l'usager souhaite creer un nouveau dossier. else { txtAfficher += "Ce patient compte au moins un dossier clos dans notre système. Souhaitez-vous créer un nouveau dossier d'admission pour ce patient?"; var ouvrirNouveau = MessageBox.Show(txtAfficher, "Question", MessageBoxButton.YesNoCancel, MessageBoxImage.Question); //Si non, selectionner le dossier le plus recent et l'afficher. if (ouvrirNouveau == MessageBoxResult.No) { MessageBox.Show("Voici le dossier le plus récent pour ce patient.", "Information", MessageBoxButton.OK, MessageBoxImage.Information); inclureDossier = true; dossierSelectionne = dossiersRetrouves.FirstOrDefault(); } else if (ouvrirNouveau == MessageBoxResult.Cancel) { btnAjouterPatientPrep.IsEnabled = true; return; } } } //Reinitialiser les deux autres sections reinitialiserSectionParent(); reinitialiserSectionDossier(); //Si le patient n'a pas de parent, activer la section parent (pour que l'on puisse ajouter un parent). Sinon, remplir la section avec les informations du parent puis désactiver la section. parentRetrouve = Singleton.Instance.bd.Parents.Where(p => p.refPatient == patientRetrouve.idPatient).FirstOrDefault(); if (parentRetrouve == null) { activerSectionParent(); } else { txtPrenomParent.Text = parentRetrouve.prenomParent; txtNomParent.Text = parentRetrouve.nomParent; txtAdresseParent.Text = parentRetrouve.adresseParent; txtVilleParent.Text = parentRetrouve.villeParent; cbProvinceParent.Text = parentRetrouve.provinceParent; txtCPParent.Text = parentRetrouve.cpParent; txtTelephoneParent.Text = parentRetrouve.noTelParent; desactiverSectionParent(); } //S'il ne reste plus de lit disponibles dans l'hopital, interdire l'ajout de dossier if (inclureDossier == false && rechercherLits(0, 0) == 0) { MessageBox.Show("Il n'y a malheureusement aucun lit de disponible présentement dans tout l'hôpital. Vous ne pouvez donc pas ajouter de dossier pour ce patient pour l'instant. Réessayez plus tard.", "Hôpital plein", MessageBoxButton.OK, MessageBoxImage.Warning); btnAjouterPatientPrep.IsEnabled = true; return; } //Remplir les informations du patient dans l'interface. txtNomPatientAjouter.Text = patientRetrouve.nomPatient; txtPrenomPatientAjouter.Text = patientRetrouve.prenomPatient; txtCPAjouter.Text = patientRetrouve.cpPatient; txtNASPatient.Text = patientRetrouve.idPatient.ToString(); cbProvinceAjouter.Text = patientRetrouve.provincePatient; dtNaissanceAjouter.SelectedDate = patientRetrouve.dateNaissancePatient; txtAdressePatient.Text = patientRetrouve.adressePatient; txtVilleAjouter.Text = patientRetrouve.villePatient; txtTelephoneAjouter.Text = patientRetrouve.noTelPatient; if (patientRetrouve.typeLitPrefere == null) { nonLitPref.IsChecked = true; cbTypePrefere.SelectedItem = null; } else { ouiLitPref.IsChecked = true; cbTypePrefere.SelectedIndex = (int)patientRetrouve.typeLitPrefere - 1;; cbTypePrefere.IsEnabled = false; } if (patientRetrouve.idCompagnie == null) { nonAssurance.IsChecked = true; cbAssuranceNomComplet.IsEnabled = false; } else { ouiAssurance.IsChecked = true; cbAssuranceNomComplet.SelectedIndex = (int)patientRetrouve.idCompagnie - 1; cbAssuranceNomComplet.IsEnabled = false; } //Preselectionner des lits pour des nouveaux dossiers if (inclureDossier == false) { calculerAge(patientRetrouve.dateNaissancePatient); if (patientRetrouve.typeLitPrefere == null) { preSelectionnerLitsDispos(0); } else { preSelectionnerLitsDispos((int)patientRetrouve.typeLitPrefere); } activerSectionDossier(); } //Pour les cas où l'on souhaite afficher un dossier existant, afficher le dossier else { dtAdmissionPatientPrep.SelectedDate = dossierSelectionne.dateAdmission; dtCongePatientPrep.SelectedDate = dossierSelectionne.dateConge; dtChirurgie.SelectedDate = dossierSelectionne.dateChirurgie; if (dossierSelectionne.chirurgieProgrammee == false) { nonChirurgie.IsChecked = true; } else { ouiChirurgie.IsChecked = true; } List <Lit> litsDisponibles = Singleton.Instance.bd.Lits.Where(l => l.noLit == dossierSelectionne.noLit).ToList(); cbLitsDispos.ItemsSource = litsDisponibles; cbTypeLitPrep.Text = dossierSelectionne.Lit.Type_Lit.descTypeLit; cbDepartementPrep.Text = dossierSelectionne.Lit.Departement.nomDepartement; if (dossierSelectionne.idMedecin != null) { cbMedecinNomCompletPrep.Text = dossierSelectionne.Medecin.prenomMedecin + " " + dossierSelectionne.Medecin.nomMedecin; txtSpecialitePrep.Text = dossierSelectionne.Medecin.specialiteMedecin; } if (dossierSelectionne.telephone == true) { checkTelephone.IsChecked = true; } else { checkTelephone.IsChecked = false; } if (dossierSelectionne.television == true) { checkTelevision.IsChecked = true; } else { checkTelevision.IsChecked = false; } desactiverSectionDossier(true); } desactiverSectionPatient(); }