} // afficherMedecins private void btnCongedierMedecin_Click(object sender, RoutedEventArgs e) { Medecin sMedecin = (Medecin)dgListeMedecins.SelectedItem; if (sMedecin != null && sMedecin.IdMedecin != null) { Medecin med = myBdd.Medecins.SingleOrDefault(x => x.IdMedecin.Trim() == sMedecin.IdMedecin.Trim()); med.EmbaucheParHopital = false; // Saving changes to the DB try { myBdd.SaveChanges(); MessageBox.Show("Le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + " congédié avec succès", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Erreur d'enregistrement", MessageBoxButton.OK, MessageBoxImage.Error); } afficherMedecins(); } else { MessageBox.Show("Aucun médecin n'est choisi", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning); } } // btnCongedierMedecin_Click
} // 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
private void btnEnregistrerMedecin_Click(object sender, RoutedEventArgs e) { bool ok = true; Medecin sMedecin = (Medecin)dgListeMedecins.SelectedItem; if (sMedecin != null && sMedecin.Prenom != null && sMedecin.Nom != null && sMedecin.Specialite != null) { // Verification de la validite des informations saisies ok = string.IsNullOrEmpty(sMedecin.Prenom.Trim()) ? false : true; ok = string.IsNullOrEmpty(sMedecin.Nom.Trim()) || !ok ? false : true; ok = string.IsNullOrEmpty(sMedecin.Specialite.Trim()) || !ok ? false : true; //ok = (sMedecin.EmbaucheParHopital != true && sMedecin.EmbaucheParHopital != false) || !ok ? false : true; ok = sMedecin.EmbaucheParHopital == null || !ok ? false : true; if (ok) { // Se l'ID est egal a null, il s'agit d'un nouveau medecin if (sMedecin.IdMedecin == null) { // Vérification si le médecin saisi existe déjà dans la liste Medecin med = myBdd.Medecins.SingleOrDefault(x => x.Nom.Trim() == sMedecin.Nom.Trim() && x.Prenom.Trim() == sMedecin.Prenom.Trim() && x.Specialite.Trim() == sMedecin.Specialite.Trim()); if (med == null) // Le medecin n'existe pas { // Composition et verification de la nouvelle ID de medecin int compteur = 1; string nouvelleId = "MED" + sMedecin.Prenom.Substring(0, 1).ToUpper() + sMedecin.Nom.Substring(0, 1).ToUpper() + "0" + compteur.ToString(); med = myBdd.Medecins.SingleOrDefault(x => x.IdMedecin.Trim() == nouvelleId); while (med != null) // Id appartient à un autre médecin { if (++compteur < 10) { nouvelleId = "MED" + sMedecin.Prenom.Substring(0, 1).ToUpper() + sMedecin.Nom.Substring(0, 1).ToUpper() + "0" + compteur.ToString(); } else { nouvelleId = "MED" + sMedecin.Prenom.Substring(0, 1).ToUpper() + sMedecin.Nom.Substring(0, 1).ToUpper() + compteur.ToString(); } med = myBdd.Medecins.SingleOrDefault(x => x.IdMedecin.Trim() == nouvelleId); } // Creation de nouveau objet de type Medecin Medecin nouveauMedecin = new Medecin { IdMedecin = nouvelleId, Nom = sMedecin.Nom, Prenom = sMedecin.Prenom, Specialite = sMedecin.Specialite, EmbaucheParHopital = sMedecin.EmbaucheParHopital }; // Ajout du nouvel médecin à la collection Medecins myBdd.Medecins.Add(nouveauMedecin); // Saving changes to the DB try { myBdd.SaveChanges(); MessageBox.Show("Le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + " ajouté avec succès", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Erreur d'enregistrement", MessageBoxButton.OK, MessageBoxImage.Error); } } else // Le medecin deja existe { MessageBox.Show("Le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + ", " + sMedecin.Specialite.Trim() + ", existe déjà dans la liste: saisie impossible", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning); } } // if (sMedecin.IdMedecin == null) - nouveau médecin // Sinon, il s'agit d'un medecin existant else { Medecin med = myBdd.Medecins.SingleOrDefault(x => x.IdMedecin.Trim() == sMedecin.IdMedecin.Trim()); med.Nom = sMedecin.Nom.Trim(); med.Prenom = sMedecin.Prenom.Trim(); med.Specialite = sMedecin.Specialite.Trim(); med.EmbaucheParHopital = sMedecin.EmbaucheParHopital; // Saving changes to the DB try { myBdd.SaveChanges(); MessageBox.Show("Le médecin " + sMedecin.Prenom.Trim() + " " + sMedecin.Nom.Trim() + " modifié avec succès", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Erreur d'enregistrement", MessageBoxButton.OK, MessageBoxImage.Error); } } afficherMedecins(); } // if (ok) else { MessageBox.Show("Vous devez remplir tous les champs sauf ID", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning); } } else { MessageBox.Show("Aucun changement n'a été fait. \nVous devez remplir tous les champs sauf ID", "Alerte", MessageBoxButton.OK, MessageBoxImage.Warning); } } // btnEnregistrerMedecin_Click
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