예제 #1
0
 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();
 }
예제 #2
0
 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;
 }
예제 #3
0
        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;
        }
예제 #4
0
        // 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();
            }
        }
예제 #5
0
        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;
        }
예제 #6
0
        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;
        }
예제 #7
0
        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);
                }
            }
        }
예제 #8
0
        // 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();
        }
예제 #9
0
        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;
            }
        }
예제 #10
0
 // 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();
 }
예제 #11
0
        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();
        }
예제 #12
0
 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();
     }
 }
예제 #13
0
        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();
        }
예제 #14
0
        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();
            }
        }
예제 #15
0
        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;
        }
예제 #16
0
        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();
                }
            }
        }
예제 #17
0
        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;
        }