Exemplo n.º 1
0
        /// <summary>
        /// Pohranjuje novu dijagnozu ili ažurira postojeću
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void uiActionDodajDijagnozu_Click(object sender, EventArgs e)
        {
            if (uiSimptomi.Text == "")
            {
                MessageBox.Show("Potrebno je unesti simptome dijagnoze.");
                return;
            }

            if (uiTerapija.Text == "")
            {
                MessageBox.Show("Potrebno je unesti terapiju za dijagnozu.");
                return;
            }

            //Nova dijagnoza
            if (this.dijagnoza == null)
            {
                using (var db = new MazaEntities())
                {
                    Bolest bolest = uiActionOdaberiBolest.SelectedItem as Bolest;

                    db.Bolest.Attach(bolest);
                    db.Kontrola.Attach(this.kontrola);

                    dijagnoza = new Dijagnoza
                    {
                        simptomi    = uiSimptomi.Text,
                        terapija    = uiTerapija.Text,
                        napomena    = uiNapomena.Text,
                        ID_kontrola = this.kontrola.ID_kontrola,
                        ID_bolest   = bolest.ID_bolest
                    };
                    db.Dijagnoza.Add(dijagnoza);

                    int idDijagnoza = dijagnoza.ID_dijagnoza;
                    for (int i = 0; i < uiPropisaniLijekovi.Items.Count; i++)
                    {
                        Lijek lijek = uiPropisaniLijekovi.Items[i] as Lijek;
                        db.Lijek.Attach(lijek);

                        PropisaniLijek propisaniLijek = new PropisaniLijek
                        {
                            ID_dijagnoza = idDijagnoza,
                            ID_lijek     = lijek.ID_lijek,
                            napomena     = listaNapomenaZaLijekove[i]
                        };

                        db.PropisaniLijek.Add(propisaniLijek);
                    }
                    db.SaveChanges();
                }
                this.DialogResult = DialogResult.OK;
            }
            else
            {
                //Ažuriraj postojeću dijagnozu
                using (var db = new MazaEntities())
                {
                    Bolest bolest = uiActionOdaberiBolest.SelectedItem as Bolest;
                    db.Dijagnoza.Attach(this.dijagnoza);

                    this.dijagnoza.simptomi    = uiSimptomi.Text;
                    this.dijagnoza.terapija    = uiTerapija.Text;
                    this.dijagnoza.napomena    = uiNapomena.Text;
                    this.dijagnoza.ID_kontrola = this.kontrola.ID_kontrola;
                    this.dijagnoza.ID_bolest   = bolest.ID_bolest;

                    db.SaveChanges();
                }
                Thread dretvaZaAzuriranje = new Thread(new ThreadStart(DodajLijekove));
                dretvaZaAzuriranje.Start();
            }
            this.Close();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Dodaje odabrane lijekove u bazu podataka
        /// </summary>
        public void DodajLijekove()
        {
            using (var db = new MazaEntities())
            {
                Bolest bolest = uiActionOdaberiBolest.SelectedItem as Bolest;

                db.Bolest.Attach(bolest);
                db.Kontrola.Attach(this.kontrola);
                db.Dijagnoza.Attach(this.dijagnoza);

                //Ažuriranje
                //Dohvaća stari popis lijekova
                List <Lijek> listaLijekova = new List <Lijek>();
                foreach (var propisaniLijek in db.PropisaniLijek)
                {
                    Lijek lijek = null;
                    lijek = db.Lijek.Where(s => s.ID_lijek == propisaniLijek.ID_lijek && propisaniLijek.ID_dijagnoza == this.dijagnoza.ID_dijagnoza).FirstOrDefault();

                    if (lijek != null)
                    {
                        listaLijekova.Add(lijek);
                    }
                }

                //Provjerava da li se koji novi lijek podudara sa starim lijekovima
                foreach (Lijek lijekIzListe in listaLijekova)
                {
                    bool           pronadjen      = false;
                    PropisaniLijek propisaniLijek = null;
                    for (int i = 0; i < uiPropisaniLijekovi.Items.Count; i++)
                    {
                        Lijek lijek = uiPropisaniLijekovi.Items[i] as Lijek;
                        if (lijekIzListe.ID_lijek == lijek.ID_lijek)
                        {
                            propisaniLijek = db.PropisaniLijek.Where(s => s.ID_lijek == lijek.ID_lijek && s.ID_dijagnoza == this.dijagnoza.ID_dijagnoza).FirstOrDefault();
                            db.PropisaniLijek.Attach(propisaniLijek);
                            propisaniLijek.napomena = listaNapomenaZaLijekove[i];
                            //Pamti da je ažurirana napomena za pronađeni lijek
                            listaNapomenaZaLijekove[i] = "#343";
                            pronadjen = true;
                        }
                    }

                    //Ako lijek nije pronađen onda ga makni iz baze
                    if (!pronadjen)
                    {
                        propisaniLijek = db.PropisaniLijek.Where(s => s.ID_lijek == lijekIzListe.ID_lijek && s.ID_dijagnoza == this.dijagnoza.ID_dijagnoza).FirstOrDefault();
                        db.PropisaniLijek.Attach(propisaniLijek);
                        db.PropisaniLijek.Remove(propisaniLijek);
                    }
                }

                //Dodavanje novih lijekova
                for (int i = 0; i < uiPropisaniLijekovi.Items.Count; i++)
                {
                    Lijek lijek = uiPropisaniLijekovi.Items[i] as Lijek;
                    //Dodaj samo one lijekove koji nisu bili ažurirani
                    if (listaNapomenaZaLijekove[i] != "#343")
                    {
                        PropisaniLijek propisaniLijek = new PropisaniLijek
                        {
                            ID_dijagnoza = this.dijagnoza.ID_dijagnoza,
                            ID_lijek     = lijek.ID_lijek,
                            napomena     = listaNapomenaZaLijekove[i]
                        };

                        db.PropisaniLijek.Add(propisaniLijek);
                    }
                }
                db.SaveChanges();
            }
        }