Пример #1
0
 public void PrzyjmijPacjenta(Choroba choroba, bool ciezkiPrzypadek)
 {
     lock (_lock)
     {
         Pacjent pacjent = new Pacjent(pacjenci, choroba, ciezkiPrzypadek);
         Console.WriteLine($"[Rejestracja] Przyjeto pacjenta {pacjenci} z podejrzeniem {pacjent.getChoroba().nazwa}");
         kolejkaRejestracja.Enqueue(pacjent);
         Form1.AddToListView(rejestracjaView, pacjent.getName());
         pacjenci++;
         Monitor.Pulse(_lock);
     }
 }
Пример #2
0
        public void CzekajWKolejcePozaKolejnoscia(Pacjent pacjent)
        {
            lock (_lock)
            {
                var items = kolejka.ToArray();
                kolejka.Clear();
                Form1.ClearListView(kolejkaList);

                kolejka.Enqueue(pacjent);
                Form1.AddToListView(kolejkaList, pacjent.getName());

                foreach (var item in items)
                {
                    kolejka.Enqueue(item);
                    Form1.AddToListView(kolejkaList, item.getName());
                }
                Monitor.Pulse(_lock);
            }
        }
Пример #3
0
        public void Dzialaj()
        {
            Random random = new Random();

            while (true)
            {
                Pacjent pacjent = BadajPacjenta();
                Form1.RemoveFromListView(kolejkaList, 0);
                Form1.AddToListView(obslugiwanyList, pacjent.getName());
                Console.WriteLine($"[{nazwa}] Badanie {pacjent.getNumer()}");
                Thread.Sleep(random.Next(6000));

                int nrLekarz = 0;
                if (pacjent.getChoroba().typ == "kardiologiczna")
                {
                    nrLekarz = 0;
                }
                else if (pacjent.getChoroba().typ == "psychologiczna")
                {
                    nrLekarz = 1;
                }
                else if (pacjent.getChoroba().typ == "ortopedyczna")
                {
                    nrLekarz = 2;
                }

                if (pacjent.ciezkiPrzypadek)
                {
                    Form1.lekarze[nrLekarz].CzekajWKolejcePozaKolejnoscia(pacjent);
                }
                else
                {
                    Form1.lekarze[nrLekarz].CzekajWKolejce(pacjent);
                }
                Form1.RemoveFromListView(obslugiwanyList, 0);
                Console.WriteLine($"[{nazwa}] {pacjent.getNumer()} -> {Form1.lekarze[nrLekarz].getNazwa()}");
            }
        }