예제 #1
0
        public void zakaziPregled(Pacijent p, Ordinacija ordinacija)
        {
            if (ordinacija != null)
            {
                if (ordinacija.UKvaru)
                {
                    throw new InvalidOperationException("Ordinacija ne radi - aparatura u kvaru");
                }
                else if (ordinacija.PrivremenoZatvori)
                {
                    throw new InvalidOperationException("Ordinacija ne radi - privremeno zatvorena");
                }
                else
                {
                    ordinacija.dodajPacijenta(p);
                }
            }
            List <ZakazaniPregled> zakazani = new List <ZakazaniPregled>();

            if (!p.ZeljeniPregled.Equals("Opći"))
            {
                if (p.ZeljeniPregled.Equals("Sistematski"))
                {
                    if (ordinacija.Ime == "Kardiološka")
                    {
                        zakazani.Add(new ZakazaniPregled(ordinacija));
                    }
                    else
                    {
                        zakazani.Add(new ZakazaniPregled(ordinacije.Find(o => o.Ime == "Kardiološka")));
                    }
                }
                else
                {
                    if (ordinacija.Ime == "Internistička" || p.BrojPosjeta < 10)
                    {
                        throw new InvalidOperationException("Pacijentu ne može biti pružena tražena usluga!");
                    }
                    else if (p.Rodenje.Year + 70 < DateTime.Now.Year)
                    {
                        ordinacija.PacijentiURedu.Insert(0, p);
                        zakazani.Add(new ZakazaniPregled(ordinacija));
                    }
                    else
                    {
                        zakazani.Add(new ZakazaniPregled(ordinacija));
                    }
                }
            }
            else
            {
                zakazani.Add(new ZakazaniPregled(ordinacija));
            }
            foreach (ZakazaniPregled z in zakazani)
            {
                p.Karton.dodajZakazaniPregled(z);
            }
        }
        public Pacijent sljedeci()
        {
            if (zauzetost == 0)
            {
                throw new InvalidOperationException("Nema pacijenata u ordinaciji");
            }
            Zauzetost--;
            Pacijent p = pacijentiURedu[0];

            pacijentiURedu.RemoveAt(0);
            return(p);
        }
예제 #3
0
        public void zakaziPregled(Pacijent p, Ordinacija pregled)
        {
            if (pregled != null)
            {
                if (pregled.UKvaru)
                {
                    throw new InvalidOperationException("Ordinacija ne radi - aparatura u kvaru");
                }
                else if (pregled.PrivremenoZatvori)
                {
                    throw new InvalidOperationException("Ordinacija ne radi - privremeno zatvorena");
                }
                else
                {
                    pregled.dodajPacijenta(p);
                }
            }
            List <ZakazaniPregled> zakazani = new List <ZakazaniPregled>();

            if (!p.ZeljeniPregled.Equals("Opći"))
            {
                if (p.ZeljeniPregled.Equals("Sistematski"))
                {
                    zakazani.Add(new ZakazaniPregled(Ordinacije.Find(x => x.Ime.Equals("Opća"))));
                    Ordinacije.Find(x => x.Ime.Equals("Opća")).dodajPacijenta(p);
                    zakazani.Add(new ZakazaniPregled(Ordinacije.Find(x => x.Ime.Equals("Hirurška"))));
                    Ordinacije.Find(x => x.Ime.Equals("Hirurška")).dodajPacijenta(p);
                }
                else
                {
                    zakazani.Add(new ZakazaniPregled(Ordinacije.Find(x => x.Ime.Equals("Hirurška"))));
                    Ordinacije.Find(x => x.Ime.Equals("Hirurška")).dodajPacijenta(p);
                    zakazani.Add(new ZakazaniPregled(Ordinacije.Find(x => x.Ime.Equals("Opća"))));
                    Ordinacije.Find(x => x.Ime.Equals("Opća")).dodajPacijenta(p);
                }
            }
            else
            {
                zakazani.Add(new ZakazaniPregled(pregled));
            }
            foreach (ZakazaniPregled z in zakazani)
            {
                p.Karton.dodajZakazaniPregled(z);
            }
        }
예제 #4
0
 public void obracunaj(Pacijent p, int rate)
 {
     if (DateTime.Now.Year - p.Rodenje.Year < 18 || (DateTime.Now.Year - p.Rodenje.Year == 18 && DateTime.Now.Month < p.Rodenje.Month) || (DateTime.Now.Year - p.Rodenje.Year == 18 && DateTime.Now.Month == p.Rodenje.Month && DateTime.Now.Day < p.Rodenje.Day))
     {
         if (rate == 0)
         {
             popust = 0.5;
         }
         else
         {
             popust = 0.6;
         }
     }
     else
     {
         int brojPosjeta = p.BrojPosjeta;
         if (brojPosjeta > 3 && rate == 0)
         {
             popust = 0.9;
         }
         else if (brojPosjeta < 3 && rate > 0)
         {
             popust = 1.15;
         }
     }
     foreach (Pregled pr in p.Karton.dajNajnovijePreglede())
     {
         Stavke.Add(pr.Terapija);
     }
     Cijena   = System.Convert.ToDouble(Osnovica) * Stavke.Count * popust;
     BrojRata = rate;
     if (BrojRata > 0)
     {
         Rata = Cijena / BrojRata;
     }
     else
     {
         Rata = 0;
     }
 }
예제 #5
0
 public void vrsenjePregleda(Pacijent p, string misljenje, string rezultat, string terapija, string garancija, bool dugorocna, DateTime datum, ZakazaniPregled dodatniPregled, MedicinskoOsoblje doktor)
 {
     if (doktor.Username[doktor.Username.Length - 1] >= '0' && doktor.Username[doktor.Username.Length - 1] <= '9')
     {
         throw new InvalidOperationException("Tehničar ne može vršiti pregled");
     }
     p.Karton.dodajProsliPregled(new Pregled(misljenje, rezultat, terapija, garancija, dugorocna, datum));
     foreach (ZakazaniPregled z in p.Karton.ZakazaniPregledi)
     {
         if (z.Ime.Ime.Equals(doktor.Ordinacija.Ime))
         {
             p.Karton.ZakazaniPregledi.Remove(z);
             break;
         }
     }
     if (dodatniPregled != null)
     {
         p.Karton.dodajZakazaniPregled(dodatniPregled);
     }
     doktor.Posjete++;
     p.BrojPosjeta++;
     doktor.Ordinacija.sljedeci();
 }
예제 #6
0
 public void anamneza(Pacijent p, string sadasnjeBolesti, string sadasnjeAlergije, string ranijeBolesti, string ranijeAlergije, string stanjePorodice, string zakljucak, MedicinskoOsoblje preuzeo)
 {
     p.Karton = new Karton(sadasnjeBolesti, sadasnjeAlergije, ranijeBolesti, ranijeAlergije, stanjePorodice, zakljucak, preuzeo);
 }
예제 #7
0
 public void registracijaPacijenta(Pacijent p)
 {
     Pacijenti.Add(p);
 }
 public void dodajPacijenta(Pacijent p)
 {
     pacijentiURedu.Add(p);
     Zauzetost++;
 }