Пример #1
0
        public void BtnInserisciPaziente_Click(object sender, RoutedEventArgs e)
        {
            string   NomePaziente        = (txtNomePaziente.Text).ToUpper();
            string   CognomePaziente     = (txtCognomePaziente.Text).ToUpper();
            DateTime DataNascitaPaziente = (dpDataPaziente.DisplayDate);

            Paziente.ModoAccesso   accesso = (Paziente.ModoAccesso)Enum.Parse(typeof(Paziente.ModoAccesso), boxAccesso.SelectedItem.ToString());
            Paziente.CodiceAccesso codice  = (Paziente.CodiceAccesso)Enum.Parse(typeof(Paziente.CodiceAccesso), ((ComboBoxItem)(boxColore.SelectedItem)).Content.ToString());


            if (NomePaziente == String.Empty || NomePaziente == String.Empty || DataNascitaPaziente == null)
            {
                MessageBox.Show("Compilare tutti i campi richiesti!", "Dati incompleti", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else
            {
                Paziente p = new Paziente(NomePaziente, CognomePaziente, DataNascitaPaziente, accesso, codice);
                ps.InserisciPaziente(p);
                lstPazienti.Items.Refresh();
                MessageBox.Show($"Paziente   {NomePaziente}  {CognomePaziente}  nato il {DataNascitaPaziente}  inserito correttamente", "Paziente inserito", MessageBoxButton.OK, MessageBoxImage.Information);
                SalvaPazienti(ps.Pazienti);
            }

            txtNomePaziente.Text     = "Nome";
            txtCognomePaziente.Text  = "Cognome";
            boxAccesso.SelectedIndex = 0;
            boxColore.SelectedIndex  = 0;
        }
Пример #2
0
        public void btnMandaInSala_Click(object sender, RoutedEventArgs e)
        {
            Paziente pz   = (Paziente)lstPazienti.SelectedItem;
            Sala     rtrn = ps.AggiungiPazienteSala(pz);

            if (pz == null)
            {
                MessageBox.Show("È necessario scegliere un paziente dalla lista", "Errore", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else
            {
                if (rtrn == null)
                {
                    MessageBox.Show("Sala inesistente", "Errore", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
                else if (rtrn == ps.Sala1)
                {
                    lstSalaUno.Items.Add(pz);
                    MessageBox.Show("PAZIENTE AGGIUNTO IN SALA 1", "Inserimento in sala", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else if (rtrn == ps.Sala2)
                {
                    lstSalaDue.Items.Add(pz);
                    MessageBox.Show("PAZIENTE AGGIUNTO IN SALA 2", "Inserimento in sala", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else if (rtrn == ps.Sala3)
                {
                    MessageBox.Show("PAZIENTE AGGIUNTO IN SALA 3", "Inserimento in sala", MessageBoxButton.OK, MessageBoxImage.Information);
                    lstSalaTre.Items.Add(pz);
                }
            }
        }
Пример #3
0
        public void btnCancellaPaziente_Click(object sender, RoutedEventArgs e)
        {
            Paziente p = (Paziente)lstPazienti.SelectedItem;

            ps.Pazienti.Remove(p);
            lstPazienti.Items.Refresh();
            SalvaPazienti(ps.Pazienti);
            MessageBox.Show("Eliminazione avvenuta correttamente", "Eliminazione", MessageBoxButton.OK, MessageBoxImage.Information);
        }
Пример #4
0
        public void btnProxPaziente_Click(object sender, RoutedEventArgs e)
        {
            //0. Selezionare medico disponibile
            //1. Ricerca del paziente più grave in assoluto all'interno delle tre sale metodo ProxPaziente di Sala
            //2. Se vi è un paziente da gestire, rimuoverlo dalla sala ed aggiungerlo in lista pazienti medico
            //4. MessageBox con riepilogo dati paziente e medico interessati
            Sala     s           = null;
            Medico   prox_medico = (Medico)lstMedici.SelectedItem;
            Paziente nxt_pz      = ps.ProssimoPaziente(prox_medico, out s);

            if (prox_medico == null)
            {
                MessageBox.Show("Prima di procedere con la chiamata, è necessario selezionare un medico.", "Impossibile proseguire", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else
            {
                //Aggiungere controllo   if (nxt_pz == null) {} else {}
                //MessageBox.Show("NESSUN PAZIENTE IN LISTA", "TriageManager", MessageBoxButton.OK, MessageBoxImage.Information);

                if (s.Numero == 1)
                {
                    lstSalaUno.Items.Refresh();
                }
                else if (s.Numero == 2)
                {
                    lstSalaDue.Items.Refresh();
                }
                else if (s.Numero == 3)
                {
                    lstSalaTre.Items.Refresh();
                }
                else
                {
                    txtNextPaziente.Text = " ";
                }
                txtDottPerProxPaziente.Clear();
                txtNextPaziente.Text = (nxt_pz.Nome + " " + nxt_pz.Cognome);

                //  string str_nxt_dot = ("Dott. " + prox_medico.Nome + " " + prox_medico.Cognome);
                txtDottPerProxPaziente.Text = "Dott. " + prox_medico.Nome + " " + prox_medico.Cognome;

                Console.Beep(400, 150);
                Console.Beep(300, 150);
                Console.Beep(200, 150);
                syntVoice.SpeakAsync("Prossimo paziente: " + txtNextPaziente.Text);
                syntVoice.SpeakAsync("Medico incaricato: " + txtDottPerProxPaziente.Text);

                if (lstPazienti.Items.Equals(txtNextPaziente))
                {
                    lstPazienti.Items.Clear();
                }
            }
        }
Пример #5
0
        public Paziente ProxPaziente()
        {
            //0. Trovare il codice di accesso più grave
            List <Paziente> pGravi = new List <Paziente>();

            Paziente.CodiceAccesso max = 0;
            foreach (Paziente.CodiceAccesso cod in CodicePriorita)
            {
                foreach (Paziente p in PazientiInAttesa)
                {
                    if (p.Codice == max)
                    {
                        pGravi.Add(p);
                    }

                    if (cod > max)
                    {
                        max = cod;
                    }
                }
            }
            //1. Cerco i pazienti con maggior priorità (CodiceAccesso)



            //2. Tra pazienti individuati al pt. 1 scelgo quelli con DataIngresso minore

            DateTime min  = DateTime.Now;
            Paziente pArr = null;          //indica il paziente arrivato prima

            if (pGravi != null)
            {
                foreach (Paziente p in pGravi)      //analisi elementi lista pazienti gravi
                {
                    if (p.DataAccesso < min)
                    {
                        min  = p.DataAccesso;
                        pArr = p;        //viene selezionato il paziente arrivato prima
                    }
                }
            }



            return(pArr);
        }
Пример #6
0
 public Sala AggiungiPazienteSala(Paziente p)
 {
     if (Sala1.CodicePriorita.Contains(p.Codice))
     {
         Sala1.PazientiInAttesa.Add(p);
         return(Sala1);
     }
     else if (Sala2.CodicePriorita.Contains(p.Codice))
     {
         Sala2.PazientiInAttesa.Add(p);
         return(Sala2);
     }
     else if (Sala3.CodicePriorita.Contains(p.Codice))
     {
         Sala3.PazientiInAttesa.Add(p);
         return(Sala3);
     }
     else
     {
         return(null);
     }
 }
Пример #7
0
        public Paziente ProssimoPaziente(Medico m, out Sala s)
        {
            Paziente p = null;

            p = Sala3.ProxPaziente();

            if (p != null)
            {
                m.Pazienti.Add(p);
                Sala3.PazientiInAttesa.Remove(p);
                s = Sala3;
                return(p);
            }
            p = Sala2.ProxPaziente();

            if (p != null)
            {
                m.Pazienti.Add(p);
                Sala2.PazientiInAttesa.Remove(p);
                s = Sala2;
                return(p);
            }

            p = Sala1.ProxPaziente();

            if (p != null)
            {
                m.Pazienti.Add(p);
                Sala1.PazientiInAttesa.Remove(p);
                s = Sala1;
                return(p);
            }

            s = null;
            return(null);
        }
Пример #8
0
 public void InserisciPaziente(Paziente p)
 {
     Pazienti.Add(p);
 }