/// <summary> /// Popunjava preostale podatke o dijagnozi /// </summary> private void PopuniPodatkeODijagnozi() { uiNapomena.Text = dijagnoza.napomena; uiTerapija.Text = dijagnoza.terapija; uiSimptomi.Text = dijagnoza.simptomi; List <PropisaniLijek> propisaniLijekovi = null; using (var db = new MazaEntities()) { propisaniLijekovi = db.PropisaniLijek.Where(s => s.ID_dijagnoza == dijagnoza.ID_dijagnoza).ToList(); foreach (var lijek in db.PropisaniLijek) { if (lijek.ID_dijagnoza == dijagnoza.ID_dijagnoza) { uiPropisaniLijekovi.Items.Add(db.Lijek.Where(s => s.ID_lijek == lijek.ID_lijek).FirstOrDefault()); } } Bolest bolest = null; bolest = db.Bolest.Where(s => s.ID_bolest == dijagnoza.ID_bolest).FirstOrDefault(); uiActionOdaberiBolest.SelectedValue = bolest.ID_bolest; } foreach (PropisaniLijek propisaniLijek in propisaniLijekovi) { listaNapomenaZaLijekove.Add(propisaniLijek.napomena); } }
/// <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(); }
/// <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(); } }