コード例 #1
0
ファイル: Lekarz.cs プロジェクト: pt3k/WspolbieznoscSzpital
        public void Lecz()
        {
            Random random = new Random();

            while (true)
            {
                Pacjent pacjent = ObsluzPacjenta();

                Form1.RemoveFromListView(kolejkaList, 0);
                Form1.AddToListView(obslugiwanyList, pacjent.getName());
                Console.WriteLine($"[{nazwa}] Leczy {pacjent.getNumer()} z podejrzeniem {pacjent.getChoroba().nazwa}");

                Thread.Sleep(random.Next(6000));

                Form1.RemoveFromListView(obslugiwanyList, 0);
                if (random.NextDouble() < 0.4)
                {
                    int nrBadania = random.Next(badania.Count);
                    if (pacjent.ciezkiPrzypadek)
                    {
                        badania[nrBadania].CzekajWKolejcePozaKolejnoscia(pacjent);
                    }
                    else
                    {
                        badania[nrBadania].CzekajWKolejce(pacjent);
                    }
                    Console.WriteLine($"[{nazwa}] Wysłał {pacjent.getNumer()} do {badania[nrBadania].getNazwa()}");
                }
                else
                {
                    Console.WriteLine($"[{nazwa}] Wyleczył {pacjent.getNumer()} z {pacjent.getChoroba().nazwa}");
                }
            }
        }
コード例 #2
0
ファイル: Badanie.cs プロジェクト: pt3k/WspolbieznoscSzpital
 public void CzekajWKolejce(Pacjent pacjent)
 {
     lock (_lock)
     {
         kolejka.Enqueue(pacjent);
         Form1.AddToListView(kolejkaList, pacjent.getName());
         Monitor.Pulse(_lock);
     }
 }
コード例 #3
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);
     }
 }
コード例 #4
0
ファイル: Badanie.cs プロジェクト: pt3k/WspolbieznoscSzpital
        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);
            }
        }
コード例 #5
0
ファイル: Badanie.cs プロジェクト: pt3k/WspolbieznoscSzpital
        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()}");
            }
        }