private void cboDepartement_SelectionChanged(object sender, SelectionChangedEventArgs e) { recupererMedecins(); // On calcule et affiche le nombre des lits disponible dans le departement choisi Departement sDept = cboDepartement.SelectedItem as Departement; if (sDept != null) { txtLitsStandardDisp.Text = calculerLitsDispDeptParCat(myBdd, sDept.IdDepartement, 1).ToString(); txtLitsSemiPriveDisp.Text = calculerLitsDispDeptParCat(myBdd, sDept.IdDepartement, 2).ToString(); txtLitsPriveDisp.Text = calculerLitsDispDeptParCat(myBdd, sDept.IdDepartement, 3).ToString(); } else { txtLitsStandardDisp.Text = string.Empty; txtLitsSemiPriveDisp.Text = string.Empty; txtLitsPriveDisp.Text = string.Empty; } } // cboDepartement_SelectionChanged
public void recupererMedecins() { // On remplit cboMedecin avec les noms des medecins dont la specialite correspond au dept choisi Departement sDept = cboDepartement.SelectedItem as Departement; if (chMedecinSpecailise.IsChecked == true && sDept != null) { string specialiteMedecin = sDept.NomDepartement.Trim(); List <Medecin> medecinsSpecialistes = (from med in myBdd.Medecins where med.Specialite.Trim() == specialiteMedecin && med.EmbaucheParHopital == true orderby med.Nom select med).ToList(); foreach (Medecin med in medecinsSpecialistes) { med.Prenom = med.Prenom.Trim(); med.Nom = med.Nom.Trim(); } cboMedecin.DataContext = medecinsSpecialistes; } else { List <Medecin> medecinsTous = (from med in myBdd.Medecins where med.EmbaucheParHopital == true orderby med.Nom select med).ToList(); foreach (Medecin med in medecinsTous) { med.Prenom = med.Prenom.Trim(); med.Nom = med.Nom.Trim(); } cboMedecin.DataContext = medecinsTous; } }
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