private void btnGenereerOpname_Click(object sender, EventArgs e) { // generereer een nieuwe patient en selecteer die uit de database; Opname o = Generator.NewOpname(selectedpatient); selectedopname = OpnameDB.Get(OpnameDB.Add(o)); RefreshOpnameLijst(); }
private int BerekenOpnamePositie(Opname opn) { float leeftijd = (float)(DateTime.Now.Subtract(selectedpatient.Geboortedatum)).Days; float factor = (float)picOpnames.Width / leeftijd; float begin = (((DateTime)opn.Opnamedatum).Subtract(selectedpatient.Geboortedatum).Days * factor); return (int)begin; }
public static Opname Get(int opnamenr) { Opname opname = new Opname(); SqlConnection connection = DB.GetConnection(); SqlCommand selectCommand = new SqlCommand("SELECT * FROM Opname WHERE OpnameNr = @opnamenr", connection); selectCommand.Parameters.AddWithValue("@opnamenr", opnamenr); try { connection.Open(); SqlDataReader reader = selectCommand.ExecuteReader(); if (reader.Read()) { opname.Opnamenr = (int)reader["Opnamenr"]; opname.Patientnr = (int)reader["Patientnr"]; opname.AfdelingID = (int)reader["AfdelingID"]; opname.Opnamedatum = (DateTime)reader["Opnamedatum"]; opname.Ontslagdatum = (DateTime)reader["Ontslagdatum"]; opname.AfdelingID = (int)reader["AfdelingID"]; } reader.Close(); } catch (SqlException ex) { throw ex; } finally { connection.Close(); } return opname; }
// events (opnames) private void btnNieuweOpname_Click(object sender, EventArgs e) { if (selectedpatient != null) { Opname opn = new Opname(); opn.Patientnr = selectedpatient.Patientnr; opn.AfdelingID = 1; opn.Opnamedatum = DateTime.Now; opn.Ontslagdatum = opn.Opnamedatum; OpnameDB.Add(opn); selectedopname = opn; RefreshOpnameLijst(); } }
public static int Add(Opname opname) { SqlConnection connection = DB.GetConnection(); string insertstring = "INSERT Opname (Patientnr, Opnamedatum, Ontslagdatum, AfdelingID)" + "VALUES (@Patientnr, @Opnamedatum, @Ontslagdatum, @AfdelingID)"; SqlCommand insertcmd = new SqlCommand(insertstring, connection); insertcmd.Parameters.AddWithValue("Patientnr", opname.Patientnr); insertcmd.Parameters.AddWithValue("Opnamedatum", opname.Opnamedatum); insertcmd.Parameters.AddWithValue("Ontslagdatum", opname.Ontslagdatum); insertcmd.Parameters.AddWithValue("AfdelingID", opname.AfdelingID); connection.Open(); insertcmd.ExecuteNonQuery(); string selectStatement = "SELECT IDENT_CURRENT('Opname') FROM Opname"; SqlCommand selectCommand = new SqlCommand(selectStatement, connection); int opnamenr = Convert.ToInt32(selectCommand.ExecuteScalar()); return opnamenr; }
public static Opname MaakOpname(Patient patient) { Opname opname = new Opname(); List<Opname> opnames = OpnameDB.GetList(patient); Afdeling afdeling = new Afdeling(); TimeSpan leeftijd = new TimeSpan(); leeftijd = DateTime.Now - patient.Geboortedatum; // genereer opnamedatum double dagen = (double)rnd.Next(0, leeftijd.Days); // moet in zijn leven vallen opname.Opnamedatum = patient.Geboortedatum.AddDays(dagen); opname.Ontslagdatum = opname.Opnamedatum; opname.Opnamedatum = opname.Opnamedatum.AddHours(7 + rnd.NextDouble() * 9); // genereer ontslagdatum int r = rnd.Next(0, 11); if (r < 4) // dag verblijf dagen = 1; else if (r < 7) // kort verblijf dagen = rnd.Next(1, 5); else if (r < 9) // tamelijk lang verblijf dagen = rnd.Next(1, 14); else dagen = rnd.Next(1, 50); // lang verblijf if (opname.Opnamedatum.AddDays(dagen) > DateTime.Now) opname.Ontslagdatum = DateTime.Now; else { opname.Ontslagdatum = opname.Ontslagdatum.AddDays(dagen); opname.Ontslagdatum = opname.Ontslagdatum.AddHours(14 + rnd.NextDouble() * 2); } opname.Patientnr = patient.Patientnr; opname.AfdelingID = rnd.Next(1, afdelingen.Count); return opname; }
private void TekenPatientOpname(Opname opn) { if (opn != null) { // bereken opnameposities op de tijdsbalk float leeftijd = (float)(DateTime.Now.Subtract(selectedpatient.Geboortedatum)).Days; float factor = (float)picOpnames.Width / leeftijd; float begin = (((DateTime)opn.Opnamedatum).Subtract(selectedpatient.Geboortedatum).Days * factor); float einde = (((DateTime)opn.Ontslagdatum).Subtract(selectedpatient.Geboortedatum).Days * factor) - begin; einde *= 5; if (einde < 5) einde = 5.0f; // teken de opname if (selectedopname != null) { if (opn.Opnamenr == selectedopname.Opnamenr) brush = new SolidBrush(Color.Red); else brush = new SolidBrush(Color.White); papier.FillRectangle(brush, (int)begin, 0, (int)einde, picOpnames.Height); } } }
// routines private void RefreshOpnameLijst() { papier.Clear(Color.LightGray); if (selectedpatient != null) { patient_opnames = OpnameDB.GetList(selectedpatient); if (patient_opnames != null) { if (patient_opnames.Count > 0) { if (selectedopname == null) selectedopname = patient_opnames.Last(); foreach (Opname opn in patient_opnames) TekenPatientOpname(opn); } } } else { patient_opnames.Clear(); selectedopname = null; } RefreshOpnameDetails(); }
private void RefreshOpnameDetails() { if (selectedpatient != null) { if (patient_opnames != null && patient_opnames.Count > 0) { if (selectedopname == null) selectedopname = patient_opnames.Last(); // toon opnamedetails dtpOpnameVan.Value = (DateTime)selectedopname.Opnamedatum; dtpOpnameVan.Checked = true; mtbVanTijd.Text = ((DateTime)selectedopname.Opnamedatum).TimeOfDay.ToString(); if (selectedopname.Opnamedatum == selectedopname.Ontslagdatum) { // patient is nog niet ontslaan dtpOpnameTot.Value = DateTime.Now; dtpOpnameTot.Checked = false; mtbTotTijd.Text = DateTime.Now.TimeOfDay.ToString(); } else { dtpOpnameTot.Value = (DateTime)selectedopname.Ontslagdatum; dtpOpnameTot.Checked = true; mtbTotTijd.Text = ((DateTime)selectedopname.Ontslagdatum).TimeOfDay.ToString(); } // vul de afdeling in cmbAfdeling.SelectedValue = selectedopname.AfdelingID; grpOpnameDetails.Show(); } else { selectedopname = null; grpOpnameDetails.Hide(); } } else { selectedopname = null; grpOpnameDetails.Hide(); } ////////////////////////////////////////// if (selectedpatient != null) { if (patient_opnames.Count > 0) { // toon alle knoppen om opnamedetails te kunnen bewerken grpOpnameDetails.Show(); btnGenereerOpname.Enabled = true; btnNieuweOpname.Enabled = true; btnVerwijderOpname.Enabled = true; btnVolgendeOpname.Enabled = true; btnVorigeOpname.Enabled = true; // toon de toets om op te slaan als er wijzigingen zijn aangebracht // of als er geen ontslagdatum is ingevuld Opname o = new Opname(); o = OpnameDB.Get(selectedopname.Opnamenr); if (o.AfdelingID != selectedopname.AfdelingID || o.Opnamedatum != selectedopname.Opnamedatum || o.Ontslagdatum != selectedopname.Ontslagdatum) { btnOpnameOpslaan.Text = "Wijzigingen Opslaan"; btnOpnameOpslaan.Show(); } else { btnOpnameOpslaan.Hide(); } if (selectedopname.Ontslagdatum == selectedopname.Opnamedatum) { btnOpnameOpslaan.Text = "Patient Uitschrijven"; btnOpnameOpslaan.Show(); } } else { // er is geen opname (of patient) geselecteerd // de toetsen om opnames te bewerken worden dan ook verborgen. btnOpnameOpslaan.Hide(); btnNieuweOpname.Enabled = true; grpOpnameDetails.Hide(); btnVerwijderOpname.Enabled = false; btnVolgendeOpname.Enabled = false; btnVorigeOpname.Enabled = false; } } else { // er is geen opname (of patient) geselecteerd // de toetsen om opnames te bewerken worden dan ook verborgen. btnOpnameOpslaan.Hide(); grpOpnameDetails.Hide(); btnGenereerOpname.Enabled = false; btnNieuweOpname.Enabled = false; btnVerwijderOpname.Enabled = false; btnVolgendeOpname.Enabled = false; btnVorigeOpname.Enabled = false; } }
// events private void lvLijstPatienten_SelectedIndexChanged(object sender, EventArgs e) { if (lvLijstPatienten.SelectedItems.Count > 0) { int i = lvLijstPatienten.SelectedItems[0].Index; selectedpatient = filtered_patients[i]; selectedopname = null; patient_opnames.Clear(); RefreshPatientDetails(); btnGenereerOpname.Enabled = true; } if (patient_opnames != null && patient_opnames.Count > 0) selectedopname = patient_opnames.Last(); }
private void btnVorigeOpname_Click(object sender, EventArgs e) { int j = 0; for (int i = 0; patient_opnames.Count > i; i++) if (patient_opnames[i].Opnamenr == selectedopname.Opnamenr) { j = i - 1; i = patient_opnames.Count; } j = j < 0 ? j = 0 : j; selectedopname = patient_opnames[j]; RefreshOpnameLijst(); RefreshOpnameDetails(); }
private void btnVerwijderOpname_Click(object sender, EventArgs e) { if (selectedpatient != null && selectedopname != null) { OpnameDB.Delete(selectedopname.Opnamenr); patient_opnames = OpnameDB.GetList(); if (patient_opnames.Count > 0) { selectedopname = patient_opnames.Last(); } RefreshOpnameLijst(); } }
private void btnPatientUitschrijven_Click(object sender, EventArgs e) { Opname o = new Opname(); o = OpnameDB.Get(selectedopname.Opnamenr); if (o.AfdelingID != selectedopname.AfdelingID || o.Opnamedatum != selectedopname.Opnamedatum || o.Ontslagdatum != selectedopname.Ontslagdatum) { OpnameDB.Update(selectedopname); selectedopname = null; } else { OpnameDB.Add(selectedopname); selectedopname = null; } RefreshOpnameDetails(); }
public static bool Update(Opname opname) { SqlConnection connection = DB.GetConnection(); string updateStatement = "UPDATE Opname SET " + "Patientnr = @Patientnr," + "Opnamedatum = @Opnamedatum," + "Ontslagdatum = @Ontslagdatum," + "AfdelingID = @AfdelingID " + "WHERE " + "Patientnr = @Patientnr"; SqlCommand updateCommand = new SqlCommand(updateStatement, connection); updateCommand.Parameters.AddWithValue("@Patientnr", opname.Patientnr); updateCommand.Parameters.AddWithValue("@Opnamedatum", opname.Opnamedatum); updateCommand.Parameters.AddWithValue("@Ontslagdatum", opname.Ontslagdatum); updateCommand.Parameters.AddWithValue("@AfdelingID", opname.AfdelingID); try { connection.Open(); int count = updateCommand.ExecuteNonQuery(); if (count > 0) return true; else return false; } catch (SqlException ex) { throw ex; } finally { connection.Close(); } }
public static Prestatie MaakPrestatie(Opname opname) { Prestatie prestatie = new Prestatie(); // leg tijdstip vast TimeSpan duur = opname.Ontslagdatum - opname.Opnamedatum; if (opname.Ontslagdatum == opname.Opnamedatum) duur = DateTime.Now - opname.Opnamedatum; DateTime tijdstip = opname.Opnamedatum; prestatie.Tijdstip = tijdstip.AddSeconds(rnd.Next(0, (int)duur.TotalSeconds-1)); // moet tijdens de opname vallen // leg prestatiesoort vast prestatie.PrestatieSoortID = rnd.Next(0,prestatiesoort.Count); // leg opnamenummer vast prestatie.Opnamenr = opname.Opnamenr; // leg zorgverstrekker vast prestatie.UitvoerderID = rnd.Next(0, personeel.Count()); // leg PrestatieStatus vast prestatie.PrestatieStatusID = rnd.Next(1,4); // leg opmerking vast prestatie.Opmerking = ""; return prestatie; }
private void picOpnames_MouseClick(object sender, MouseEventArgs e) { if (selectedpatient != null && patient_opnames.Count > 0) { int xpos; MouseEventArgs mousex = e as MouseEventArgs; if (mousex != null) { xpos = mousex.X; int punt_kortstebij = 10000; Opname opn_kortstebij = new Opname(); foreach (Opname op in patient_opnames) { int x = BerekenOpnamePositie(op); int d = Math.Abs(xpos - x); if (d < punt_kortstebij) { punt_kortstebij = d; opn_kortstebij = op; } } selectedopname = opn_kortstebij; RefreshOpnameLijst(); } } }
public static List<Opname> GetList() { List<Opname> opnames = new List<Opname>(); opnames.Clear(); SqlConnection connection = DB.GetConnection(); SqlCommand selectCommand = new SqlCommand("SELECT * FROM Opname", connection); try { connection.Open(); SqlDataReader reader = selectCommand.ExecuteReader(); while (reader.Read()) { Opname p = new Opname(); p.Opnamenr = (int)reader["Opnamenr"]; p.Patientnr = (int)reader["Patientnr"]; p.AfdelingID = (int)reader["AfdelingID"]; p.Opnamedatum = (DateTime)reader["Opnamedatum"]; p.Ontslagdatum = (DateTime)reader["Ontslagdatum"]; p.Patientnr = (int)reader["Patientnr"]; opnames.Add(p); } reader.Close(); } catch (SqlException ex) { throw ex; } finally { connection.Close(); } opnames = opnames.OrderBy(o=>o.Opnamedatum).ToList(); return opnames; }