Example #1
0
        static void Main(string[] args)
        {
            klinika17736.listaDoktora.Add(new Doktor("Bosanko Horozic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Suad Djumisic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Amira Horozic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Gena Djumisic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Adnan Galijatovic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Maida Galijatovic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Dzan Horozic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Lajla Galijatovic", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Amir Karup", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaDoktora.Add(new Doktor("Aida Karup", new DateTime(1960, 11, 1), 2000));
            klinika17736.listaAparata.Add(new Aparat("Ultrazvuk", true, false, false));
            klinika17736.listaAparata.Add(new Aparat("EKG", true, false, true));
            klinika17736.listaAparata[1].periodGasenja = new DateTime(2018, 2, 1, 14, 30, 0);
            klinika17736.listaAparata.Add(new Aparat("Dermatoloski aparat", true, false, false));
            klinika17736.listaAparata.Add(new Aparat("Stomatoloski aparat", true, false, false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.OpstaMedicina, klinika17736.listaDoktora[0], false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Oftamoloska, klinika17736.listaDoktora[1], false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Kardioloska, klinika17736.listaDoktora[2], true));
            klinika17736.listaOrdinacija[2].aparat = klinika17736.listaAparata[1];
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Ortopedska, klinika17736.listaDoktora[3], false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Otorinolaringoloska, klinika17736.listaDoktora[5], false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Internisticka, klinika17736.listaDoktora[4], true));
            klinika17736.listaOrdinacija[5].aparat = klinika17736.listaAparata[0];
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Laboratorijska, klinika17736.listaDoktora[6], false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.HitnaSluzba, klinika17736.listaDoktora[7], false));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Stomatoloska, klinika17736.listaDoktora[8], true));
            klinika17736.listaOrdinacija.Add(new Ordinacija(true, TipOrdinacija.Dermatoloska, klinika17736.listaDoktora[9], true));
            klinika17736.listaOrdinacija[9].aparat = klinika17736.listaAparata[2];
            klinika17736.listaOrdinacija[8].aparat = klinika17736.listaAparata[3];

            int x = new Int32();

            while (x != 8)
            {
                Console.WriteLine("Dobro došli! Odaberite jednu od opcija:\n" +
                                  "1.Registruj / Briši pacijenta\n" +
                                  "2.Prikaži raspored pregleda pacijenta\n" +
                                  "3.Kreiranje kartona pacijenta\n" +
                                  "4.Pretraga kartona pacijenta\n" +
                                  "5.Registruj novi pregled\n" +
                                  "6.Analiza sadržaja\n" +
                                  "7.Naplata\n" +
                                  "8. Zavrsi dan\n" +
                                  "9. Oznaci doktora da je zauzet/ aparat da je u kvaru" +
                                  "10.Izlaz");
                string ulaz = Console.ReadLine();
                Int32.TryParse(ulaz, out x);
                if (x == 1)
                {
                    Console.WriteLine("1.Registruj pacijenta\n" +
                                      "2.Brisi pacijenta");
                    int x1;
                    ulaz = Console.ReadLine();
                    Int32.TryParse(ulaz, out x1);
                    if (x1 == 1) //Registrovanje pacijenta (NORMALNI SLUCAJ)
                    {
                        int x2;
                        Console.WriteLine("1. Registruj novog pacijenta\n" +
                                          "2. Zakazi preglede postojeceg pacijenta");
                        ulaz = Console.ReadLine();
                        int x4;
                        Int32.TryParse(ulaz, out x4);
                        if (x4 == 1)
                        {
                            Console.WriteLine("1. Normalan slučaj\n" +
                                              "2. Hitan slučaj");
                            ulaz = Console.ReadLine();
                            Int32.TryParse(ulaz, out x2);
                            if (x2 == 1) //NORMALAN SLUCAJ
                            {
                                klinika17736.listaPacijenata.Add(RegistrujPacijentaNormalniSlucaj());
                            }
                            else if (x2 == 2) // HITAN SLICAJ
                            {
                                int f;
                                Console.WriteLine("1. Pošaji pacijenta u ordinaciju hitne službe\n" +
                                                  "2. Regisruj pacijenta koji je bio hitan slučaj");
                                ulaz = Console.ReadLine();
                                Int32.TryParse(ulaz, out f);
                                if (f == 1)  // HITNIC PACIJENT U ORDINACIJU HITNE SLUZBE
                                {
                                    Ordinacija o17736 = klinika17736.listaOrdinacija.FirstOrDefault(p => p.poljeMedicine == TipOrdinacija.HitnaSluzba);
                                    int        i      = klinika17736.listaOrdinacija.FindIndex(p => p.poljeMedicine == TipOrdinacija.HitnaSluzba);
                                    o17736.redCekanja.Add(new HitniPacijent());
                                    klinika17736.listaOrdinacija[i] = o17736;
                                }
                                else if (f == 2) // REGISTRACIJA PACIJETNA
                                {
                                    Pacijent p = RegistrujPacijentaNormalniSlucaj();
                                    Console.WriteLine("Opisite pruzenu prvu pomoc: ");
                                    ulaz = Console.ReadLine();
                                    int x7 = klinika17736.listaPacijenata.FindIndex(e => e == null);
                                    klinika17736.listaPacijenata[x7] = new HitniPacijent(p.imeIprezime, p.datumRodjenja, p.jmbg, p.spol, p.uBraku, p.adresa, p.datumPrijema, ulaz);
                                    klinika17736.listaPacijenata[x7].brojPosjeta++;
                                    Console.WriteLine("Da li se desio smrtni slucaj?\n" +
                                                      "1. DA\n" +
                                                      "2. NE ");
                                    int x3;
                                    ulaz = Console.ReadLine();
                                    Int32.TryParse(ulaz, out x3);
                                    if (x3 == 1)
                                    {
                                        Console.WriteLine("Unesite vrijeme smrti (d.m.g.h.min)");
                                        ulaz = Console.ReadLine();
                                        string[] datumi = ulaz.Split('.');
                                        int      a, b, c, d, e;
                                        Int32.TryParse(datumi[0], out a);
                                        Int32.TryParse(datumi[1], out b);
                                        Int32.TryParse(datumi[2], out c);
                                        Int32.TryParse(datumi[3], out d);
                                        Int32.TryParse(datumi[4], out e);
                                        klinika17736.listaPacijenata[x7].vrijemeSmrti = new DateTime(c, b, a, d, e, 0);
                                        Console.WriteLine("Unesite preliminarni uzrok smrti: ");
                                        klinika17736.listaPacijenata[x7].razlogSmrti = Console.ReadLine();
                                        Console.WriteLine("Unesite datum obdukcije: ");
                                        ulaz   = Console.ReadLine();
                                        datumi = ulaz.Split('.');
                                        Int32.TryParse(datumi[0], out a);
                                        Int32.TryParse(datumi[1], out b);
                                        Int32.TryParse(datumi[2], out c);
                                        klinika17736.listaPacijenata[x7].terminObdukcije = new DateTime(a, b, c);
                                        klinika17736.listaPacijenata[x7].aktivan         = false;
                                    }
                                }
                            }
                        }
                        else if (x4 == 2) // ZAKAZI PREGLEDE POSTOJECEG PACIJENTA
                        {
                            Int64 jmbg = UnosJMBG();
                            if (klinika17736.listaPacijenata.Count(p => p.jmbg == jmbg) == 0)
                            {
                                Console.WriteLine("Ne postoji pacijent sa tim jmbg!\n");
                                continue;
                            }
                            if (klinika17736.listaKartona.Count(p => p.pacijent.jmbg == jmbg) == 0)
                            {
                                Console.WriteLine("Prvo kreirajte karton!");
                                continue;
                            }
                            Karton k17736;
                            int    v = klinika17736.listaPacijenata.FindIndex(p => p.jmbg == jmbg);
                            klinika17736.listaPacijenata[v].brojPosjeta++;
                            try
                            {
                                k17736 = klinika17736.listaKartona.FirstOrDefault(p => p.pacijent.jmbg == jmbg);
                                k17736.pacijent.brojPosjeta++;
                                k17736 = ZakaziPregede(k17736);
                                int i = klinika17736.listaKartona.FindIndex(p => p.pacijent.jmbg == jmbg);
                                klinika17736.listaKartona[i] = k17736;
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Prvo kreirajte karton!");
                                continue;
                            }
                        }
                    }
                    else if (x1 == 2) //Brisanje Pacijenta
                    {
                        Int64 jmb = UnosJMBG();
                        klinika17736.ObrisiPacijenta(jmb);
                        int i = klinika17736.listaPacijenata.FindIndex(p => p.jmbg == jmb);
                        klinika17736.listaPacijenata[i].aktivan = false;
                    }
                }
                else if (x == 2) // RASPORED PREGLEDA PACIJENTA
                {
                    Int64  jmbg   = UnosJMBG();
                    Karton k17736 = klinika17736.listaKartona.FirstOrDefault(n => n.pacijent.jmbg == jmbg);
                    IzlistajPreglede(k17736);
                }
                else if (x == 3) //Kreiranje kartona pacijenta
                {
                    Int64  jmbg   = KreirajKarton();
                    Karton k17736 = klinika17736.listaKartona.FirstOrDefault(p => p.pacijent.jmbg == jmbg);
                    k17736 = ZakaziPregede(k17736);
                    int i = klinika17736.listaKartona.FindIndex(p => p.pacijent.jmbg == jmbg);
                    klinika17736.listaKartona[i] = k17736;
                }
                else if (x == 4) //Pretraga kartona pacijenta
                {
                    Int64  jmbg   = UnosJMBG();
                    Karton k17736 = klinika17736.listaKartona.FirstOrDefault(kar => kar.pacijent.jmbg == jmbg);
                    Console.WriteLine("1.Pretraga kartona\n" +
                                      "2.Prikaz kartona");
                    int n;
                    ulaz = Console.ReadLine();
                    Int32.TryParse(ulaz, out n);
                    if (n == 1)
                    {
                        PretragaKartona(k17736);
                    }
                    else if (n == 2)
                    {
                        Console.WriteLine("{0}", k17736.Ispisi());
                    }
                }
                else if (x == 5) //Registruj novi pregled
                {
                    Int64  jmbg   = UnosJMBG();
                    Karton k17736 = klinika17736.listaKartona.FirstOrDefault(p => p.pacijent.jmbg == jmbg);
                    int    i      = klinika17736.listaKartona.FindIndex(p => p.pacijent.jmbg == jmbg);
                    Console.WriteLine("Odaberite ordinaciju: \n" +
                                      "1. Opsta medicina\n" +
                                      "2. Ortopedski\n" +
                                      "3. Kardioloski\n" +
                                      "4. Dermatoloski\n" +
                                      "5. Internisticki\n" +
                                      "6. Otorinolaringoloski\n" +
                                      "7. Oftamoloski\n" +
                                      "8. Laboratorijski\n" +
                                      "9. Stomatoloski\n" +
                                      "10. Kraj ");
                    int x1;
                    ulaz = Console.ReadLine();
                    Int32.TryParse(ulaz, out x1);
                    TipOrdinacija tip = new TipOrdinacija();
                    if (x1 == 10)
                    {
                        break;
                    }
                    else if (x1 == 1)
                    {
                        tip = TipOrdinacija.OpstaMedicina;
                    }
                    else if (x1 == 2)
                    {
                        tip = TipOrdinacija.Ortopedska;
                    }
                    else if (x1 == 3)
                    {
                        tip = TipOrdinacija.Kardioloska;
                    }
                    else if (x1 == 4)
                    {
                        tip = TipOrdinacija.Dermatoloska;
                    }
                    else if (x1 == 5)
                    {
                        tip = TipOrdinacija.Internisticka;
                    }
                    else if (x1 == 6)
                    {
                        tip = TipOrdinacija.Otorinolaringoloska;
                    }
                    else if (x1 == 7)
                    {
                        tip = TipOrdinacija.Oftamoloska;
                    }
                    else if (x1 == 8)
                    {
                        tip = TipOrdinacija.Laboratorijska;
                    }
                    else if (x1 == 9)
                    {
                        tip = TipOrdinacija.Stomatoloska;
                    }
                    else
                    {
                        Console.WriteLine("Pogresan unos.");
                    }
                    Ordinacija o17736 = klinika17736.listaOrdinacija.FirstOrDefault(p => p.poljeMedicine == tip);
                    int        i1     = klinika17736.listaOrdinacija.FindIndex(p => p.poljeMedicine == tip);
                    o17736.redCekanja.Remove(k17736.pacijent);
                    o17736.doktor.dodajPacijenta();
                    int v = klinika17736.listaDoktora.FindIndex(d => d == o17736.doktor);
                    klinika17736.listaDoktora[v].dodajPacijenta();
                    KeyValuePair <Ordinacija, int> n = k17736.listaPregleda.FirstOrDefault(p => p.Key.poljeMedicine == tip);
                    k17736.obavljeniPregledi.Add(o17736);
                    for (int i2 = 0; i2 < klinika17736.listaKartona.Count(); i2++)
                    {
                        for (int j = 0; j < klinika17736.listaKartona[i2].listaPregleda.Count(); j++)
                        {
                            if (klinika17736.listaKartona[i2].listaPregleda[j].Key.poljeMedicine == tip)
                            {
                                klinika17736.listaKartona[i2].SmanjiRedCekanja(j);
                            }
                        }
                    }
                    k17736.listaPregleda.Remove(n);
                    Console.WriteLine("Odaberite opciju: \n" +
                                      "1. Promijeni terapiju\n" +
                                      "2. Napisi primjedbu za postojecu terapiju\n" +
                                      "3. Zakazi dodatne preglede ");
                    ulaz = Console.ReadLine();
                    int x6;
                    Int32.TryParse(ulaz, out x6);
                    if (x6 == 1) //Promijeni terapiju
                    {
                        while (true)
                        {
                            Console.WriteLine("Odaberite tip terapije: \n" +
                                              "1. Dugorocna\n" +
                                              "2. Kratkorocna");
                            int x2;
                            ulaz = Console.ReadLine();
                            Int32.TryParse(ulaz, out x2);
                            TipTerapije tip1;
                            if (x2 == 1)
                            {
                                tip1 = TipTerapije.Dugorocna;
                            }
                            else if (x2 == 2)
                            {
                                tip1 = TipTerapije.Kratkorocna;
                            }
                            else
                            {
                                Console.WriteLine("Pogresan unos. Ponovite!");
                                continue;
                            }
                            Console.WriteLine("Opisite terapiju: ");
                            ulaz = Console.ReadLine();
                            k17736.trenutnaTerapija = new Terapija(tip1, ulaz, o17736.doktor, DateTime.Now);
                            break;
                        }
                    }
                    else if (x6 == 2) // Napisi primjedbu za postojecu terapiju
                    {
                        k17736.trenutnaTerapija.blokirana = true;
                        Console.WriteLine("Opisite gresku u trenutnoj terapiji: ");
                        k17736.trenutnaTerapija.greska = Console.ReadLine();
                    }
                    else if (x6 == 3) //Zakazivanje pregleda
                    {
                        ZakaziPregede(k17736);
                    }

                    klinika17736.listaKartona[i]     = k17736;
                    klinika17736.listaOrdinacija[i1] = o17736;
                }
                else if (x == 6) //ANALIZA SADRŽAJA
                {
                    Console.WriteLine("Odaberite:\n" +
                                      "1. Prikaz najposjecenijeg doktora\n" +
                                      "2. Prikaz pacijenta koji je u klinici bio najvise puta\n" +
                                      "3. Prikaz aparata koji je najvise puta bio u kvaru");
                    int a;
                    ulaz = Console.ReadLine();
                    Int32.TryParse(ulaz, out a);
                    if (a == 1)
                    {
                        Doktor d17736 = klinika17736.listaDoktora[0];
                        foreach (Doktor d in klinika17736.listaDoktora)
                        {
                            if (d17736.brojPacijenataUkupno < d.brojPacijenataUkupno)
                            {
                                d17736 = d;
                            }
                        }
                        Console.WriteLine(d17736.imeIprezime);
                    }
                    else if (a == 2)
                    {
                        Pacijent p17736 = klinika17736.listaPacijenata[0];
                        foreach (Pacijent d in klinika17736.listaPacijenata)
                        {
                            if (p17736.brojPosjeta < d.brojPosjeta)
                            {
                                p17736 = d;
                            }
                        }
                        Console.WriteLine(p17736.imeIprezime);
                    }
                    else if (a == 3)
                    {
                        Aparat a17736 = klinika17736.listaAparata[0];
                        foreach (Aparat d in klinika17736.listaAparata)
                        {
                            if (a17736.putaUKvaru < d.putaUKvaru)
                            {
                                a17736 = d;
                            }
                        }
                        Console.WriteLine(a17736.tip);
                    }
                }
                else if (x == 7) //NAPLATA
                {
                    Int64  jmbg   = UnosJMBG();
                    Karton k17736 = klinika17736.listaKartona.FirstOrDefault(p => p.pacijent.jmbg == jmbg);
                    int    i      = klinika17736.listaKartona.FindIndex(p => p.pacijent.jmbg == jmbg);
                    int    cijena;
                    cijena = 0;
                    cijena = Cjenovnik(k17736.obavljeniPregledi);

                    Console.WriteLine("Odaberite nacin placanja: \n" +
                                      "1. Gotovinsko\n" +
                                      "2. Na rate\n" +
                                      "3. Uplata rate");
                    int x1;
                    ulaz = Console.ReadLine();
                    Int32.TryParse(ulaz, out x1);

                    if (x1 == 3)
                    {
                        Console.WriteLine("DUG: {0}", k17736.pacijent.dug);
                        Console.WriteLine("Uplaceno: ");
                        ulaz = Console.ReadLine();
                        Decimal uplaceno;
                        Decimal.TryParse(ulaz, out uplaceno);
                        k17736.pacijent.dug = cijena - uplaceno;
                        if (k17736.pacijent.dug == 0)
                        {
                            k17736.pacijent.placanjeNaRate = false;
                        }
                        continue;
                    }
                    else if (x1 == 2)
                    {
                        k17736.pacijent.placanjeNaRate = true;
                    }
                    if (k17736.pacijent.Redovni())
                    {
                        if (k17736.pacijent.placanjeNaRate)
                        {
                            Console.WriteLine("UKUPNO: {0}", cijena);
                            Console.WriteLine("Uplaceno: ");
                            ulaz = Console.ReadLine();
                            Decimal uplaceno;
                            Decimal.TryParse(ulaz, out uplaceno);
                            k17736.pacijent.dug = cijena - uplaceno;
                        }
                        else
                        {
                            Console.WriteLine("POPUST: 10%\n" +
                                              "UKUPNO: {0}", cijena * 0.9);
                        }
                    }

                    else
                    {
                        if (k17736.pacijent.placanjeNaRate)
                        {
                            Console.WriteLine("POVECANJE CIJENE: 15%\n" +
                                              "UKUPNO: {0}", cijena * 1.15);
                            Console.WriteLine("Uplaceno: ");
                            ulaz = Console.ReadLine();
                            Decimal uplaceno;
                            Decimal.TryParse(ulaz, out uplaceno);
                            k17736.pacijent.dug = cijena - uplaceno;
                        }
                        else
                        {
                            Console.WriteLine("UKUPNO: {0}", cijena);
                        }
                    }
                    k17736.obavljeniPregledi.Clear();
                    klinika17736.listaKartona[i] = k17736;
                }
                else if (x == 8)
                {
                    foreach (Doktor d17736 in klinika17736.listaDoktora)
                    {
                        d17736.brojPacijenataDan = 0;
                    }
                }
                else if (x == 9)
                {
                    Console.WriteLine(" 1. Doktor nedostupan\n" +
                                      "2. Doktor dostupan\n" +
                                      "3. Aparat u kvaru\n" +
                                      "4. Aparat popravljen");
                    int x1;
                    ulaz = Console.ReadLine();
                    Int32.TryParse(ulaz, out x1);
                    if (x1 == 1)
                    {
                        Console.WriteLine("Unesite ime doktora: ");
                        string ime = Console.ReadLine();
                        int    i   = klinika17736.listaDoktora.FindIndex(d => d.imeIprezime == ime);
                        klinika17736.listaDoktora[i].dostupan = false;
                        int i1 = klinika17736.listaOrdinacija.FindIndex(o => o.doktor.imeIprezime == ime);
                        klinika17736.listaOrdinacija[i1].doktor = klinika17736.listaDoktora[i];
                    }
                    else if (x1 == 2)
                    {
                        Console.WriteLine("Unesite ime doktora: ");
                        string ime = Console.ReadLine();
                        int    i   = klinika17736.listaDoktora.FindIndex(d => d.imeIprezime == ime);
                        klinika17736.listaDoktora[i].dostupan = true;
                        int i1 = klinika17736.listaOrdinacija.FindIndex(o => o.doktor.imeIprezime == ime);
                        klinika17736.listaOrdinacija[i1].doktor = klinika17736.listaDoktora[i];
                    }
                    else if (x1 == 3)
                    {
                        Console.WriteLine("Unesite tip aparata: ");
                        string tip = Console.ReadLine();
                        int    i   = klinika17736.listaAparata.FindIndex(d => d.tip == tip);
                        klinika17736.listaAparata[i].uKvaru = true;
                        klinika17736.listaAparata[i].putaUKvaru++;
                        int i1 = klinika17736.listaOrdinacija.FindIndex(o => o.aparat.tip == tip);
                        klinika17736.listaOrdinacija[i1].aparat = klinika17736.listaAparata[i];
                    }
                    else if (x1 == 4)
                    {
                        Console.WriteLine("Unesite tip aparata: ");
                        string tip = Console.ReadLine();
                        int    i   = klinika17736.listaAparata.FindIndex(d => d.tip == tip);
                        klinika17736.listaAparata[i].uKvaru = false;
                        int i1 = klinika17736.listaOrdinacija.FindIndex(o => o.aparat.tip == tip);
                        klinika17736.listaOrdinacija[i1].aparat = klinika17736.listaAparata[i];
                    }
                }
                else if (x == 10)
                {
                    Console.WriteLine("Doviđenja!");
                    foreach (Doktor d in klinika17736.listaDoktora)
                    {
                        d.brojPacijenataDan = 0;
                    }
                }
                else
                {
                    Console.WriteLine("Pogresan unos!");
                }
            }
        }