public FormZakaziKodSpecijaliste(ISession oracle, ISession sql, Pacijent p, SpecijalistaKC skc) : base() { InitializeComponent(); oracle_session_local = oracle; mysql_session_local = sql; pacijent_local = p; specijalista_local = skc; this.Text = "Zakazivanje kod specijaliste " + skc.Ime + " " + skc.Prezime; metroLabelLekarInfo.Text = "Pacijent: " + p.Ime + " " + p.Prezime; RefreshControls(specijalista_local); }
private SmenaKC GetDoctorShift(SpecijalistaKC skc) { SmenaKC smena = null; foreach (SmenaKC s in skc.Smene) { if (s.DatumOd <= metroDateTime1.Value.Date && s.DatumDo >= metroDateTime1.Value.Date) { smena = s; break; } } return(smena); }
private void metroButtonZakaziKodSpecijaliste_Click(object sender, EventArgs e) { SpecijalistaKC s = null; if (metroGridSpecijaliste.Rows.Count == 0) { MetroMessageBox.Show(this, "Klinika nema nijednog specijalistu", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } s = (SpecijalistaKC)metroGridSpecijaliste.SelectedRows[0].DataBoundItem; FormZakaziKodSpecijaliste fzks = new FormZakaziKodSpecijaliste(oracle_session, session, aktivni_pacijent, s); fzks.StartPosition = FormStartPosition.CenterScreen; fzks.ShowDialog(); }
private void RefreshControls(SpecijalistaKC skc) { SmenaKC s = GetDoctorShift(skc); if (s == null) { MetroMessageBox.Show(this, "Lekaru izabranog pacijenta nije podešena smena za traženi datum, i nije moguće zakazati termin", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); UpdateForm(3); // lekaru nije podesena smena return; } int smena_num = -1; if (Int32.TryParse(s.TipSmene, out smena_num)) { UpdateForm(smena_num); } else { return; } /*IQuery query = oracle_session_local.CreateQuery("from Pregled p where p.Specijalista = :spec and p.Datum = :datum"); * query.SetParameter("spec", specijalista_local); * query.SetParameter("datum", metroDateTime1.Value.Date);*/ IList <Pregled> termini_lekara = specijalista_local.Pregledi.ToList <Pregled>(); IList <Pregled> zauzetitermini = new List <Pregled>(); foreach (Pregled preg in termini_lekara) { if (preg.Datum.Date == metroDateTime1.Value.Date) { zauzetitermini.Add(preg); } } /*#region Reset all buttons * foreach (Control c in pnlPrepodne.Controls) * { * MetroButton mb = c as MetroButton; * if (mb != null) * { * //mb.Highlight = false; * mb.Enabled = true; * //mb.BackColor = Color.LightCyan; // LightCyan = Free * } * * } * foreach (Control c in pnlPopodne.Controls) * { * MetroButton mb = c as MetroButton; * if (mb != null) * { * // mb.Highlight = false; * mb.Enabled = true; * //mb.BackColor = Color.LightCyan; // LightCyan = Free * } * } #endregion*/ int[] termini = { 700, 745, 830, 915, 1000, 1045, 1130, 1215, 1300, 1330, 1415, 1500, 1545, 1630, 1715, 1800, 1845 }; foreach (int ter in termini) { if (ter <= 1330) { MetroButton mb = this.pnlPrepodne.Controls["metroButton" + ter.ToString()] as MetroButton; if (mb != null) { mb.Enabled = true; } } else { MetroButton mb = this.pnlPopodne.Controls["metroButton" + ter.ToString()] as MetroButton; if (mb != null) { mb.Enabled = true; } } } foreach (Pregled p in zauzetitermini) { int time = p.Vreme; //MetroMessageBox.Show(this, "Enter while loop in rdr.Read() " + time.ToString(), "rdr.Read()", MessageBoxButtons.OK, MessageBoxIcon.Error); if (time <= 1330) { MetroButton mb = this.pnlPrepodne.Controls["metroButton" + time.ToString()] as MetroButton; if (mb != null) { mb.Enabled = false; } } else { MetroButton mb = this.pnlPopodne.Controls["metroButton" + time.ToString()] as MetroButton; if (mb != null) { mb.Enabled = false; } } } }
private bool MakeAnApointment(int time, string napomena, SpecijalistaKC specijalista_oracle) { IList <Pregled> zakazaniPregledi = oracle_session_local.QueryOver <Pregled>().List <Pregled>(); foreach (Pregled p in zakazaniPregledi) { if (p.Datum.Date == metroDateTime1.Value.Date && p.Vreme == time) { return(false); //zakazan u medjuvremenu } } PacijentKlinickogCentra pkc = oracle_session_local.QueryOver <PacijentKlinickogCentra>().Where(x => x.JMBG == pacijent_local.Jmbg).SingleOrDefault <PacijentKlinickogCentra>(); if (pkc == null) //nema ga pacijent u evidenciji KC, treba da se unese { DomZdravljaOracle dz = new DomZdravljaOracle() { Mbr = pacijent_local.Lekar.RadiUDomuZdravlja.Mbr, Adresa = pacijent_local.Lekar.RadiUDomuZdravlja.Adresa, Ime = pacijent_local.Lekar.RadiUDomuZdravlja.Ime, Lokacija = pacijent_local.Lekar.RadiUDomuZdravlja.Lokacija, Opstina = pacijent_local.Lekar.RadiUDomuZdravlja.Opstina }; IzabraniLekarOracle il = new IzabraniLekarOracle() { Jmbg = pacijent_local.Lekar.Jmbg, Adresa = "/", DatumRodjenja = pacijent_local.Lekar.Datum_rodjenja, Ime = pacijent_local.Lekar.Ime, DomZdravlja = dz, Prezime = pacijent_local.Lekar.Prezime, Password = "******" }; dz.Lekari.Add(il); oracle_session_local.SaveOrUpdate(dz); oracle_session_local.Flush(); //snimljeni DZ i IL u ORACLE PacijentKlinickogCentra pkdodaj = new PacijentKlinickogCentra() { Adresa = "/", BracniStatus = "/", DatumRodjenja = pacijent_local.Datum_rodjenja, Ime = pacijent_local.Ime, JMBG = pacijent_local.Jmbg, Pol = "/", Prezime = pacijent_local.Prezime }; Pregled pregled = new Pregled() { Datum = metroDateTime1.Value, IdIzabranogLekara = il.Jmbg, Pacijent = pkdodaj, Prostorija = specijalista_local.BrojOrdinacije, Specijalista = specijalista_local, Vreme = time }; oracle_session_local.Save(pkdodaj); oracle_session_local.Flush(); oracle_session_local.Save(pregled); oracle_session_local.Flush(); } else { IzabraniLekarOracle il = oracle_session_local.QueryOver <IzabraniLekarOracle>().Where(x => x.Jmbg == pacijent_local.Lekar.Jmbg).SingleOrDefault <IzabraniLekarOracle>(); if (il == null) { DomZdravljaOracle dz = new DomZdravljaOracle() { Mbr = pacijent_local.Lekar.RadiUDomuZdravlja.Mbr, Adresa = pacijent_local.Lekar.RadiUDomuZdravlja.Adresa, Ime = pacijent_local.Lekar.RadiUDomuZdravlja.Ime, Lokacija = pacijent_local.Lekar.RadiUDomuZdravlja.Lokacija, Opstina = pacijent_local.Lekar.RadiUDomuZdravlja.Opstina }; IzabraniLekarOracle iz = new IzabraniLekarOracle() { Jmbg = pacijent_local.Lekar.Jmbg, Adresa = "/", DatumRodjenja = pacijent_local.Lekar.Datum_rodjenja, Ime = pacijent_local.Lekar.Ime, DomZdravlja = dz, Prezime = pacijent_local.Lekar.Prezime }; dz.Lekari.Add(iz); oracle_session_local.SaveOrUpdate(dz); oracle_session_local.Flush(); } Pregled pregled = new Pregled() { Datum = metroDateTime1.Value, IdIzabranogLekara = il.Jmbg, Pacijent = pkc, Prostorija = specijalista_local.BrojOrdinacije, Specijalista = specijalista_local, Vreme = time }; oracle_session_local.Save(pregled); oracle_session_local.Flush(); } //termini i bolnica Bolnica b = new Bolnica() { Mbr = specijalista_local.Klinika.Id.ToString(), Ime = specijalista_local.Klinika.Naziv, Adresa = specijalista_local.Klinika.Lokacija, Opstina = "/", Lokacija = "/", }; Specijalista spec = new Specijalista() { Ime = specijalista_local.Ime, Datum_rodjenja = specijalista_local.DatumRodjenja, Jmbg = specijalista_local.JMBG, Prezime = specijalista_local.Prezime, Srednje_slovo = "/", Titula = "/", }; if (!b.Specijaliste.Contains(spec)) { b.Specijaliste.Add(spec); } spec.RadiUBolnici = b; mysql_session_local.SaveOrUpdate(b); mysql_session_local.Flush(); TerminBolnica t = new TerminBolnica() { LSpecijalista = spec, Datum = metroDateTime1.Value, Napomena = napomena, Pacijent = pacijent_local, Vreme = time }; mysql_session_local.Save(t); mysql_session_local.Flush(); oracle_session_local.Flush(); oracle_session_local.Refresh(specijalista_local); RefreshControls(specijalista_local); return(true); }