private void Search()
        {
            if (pnlResults.InvokeRequired)
            {
                EmptyDelegate ed = new EmptyDelegate(Search);
                Invoke(ed);
            }
            else
            {
                eligibility_data ed       = new eligibility_data();
                DataTable        matches  = ed.Search(BuildSQL());
                DateTime?        lastDate = new DateTime(1900, 1, 1);
                numAppointmentsFound = matches.Rows.Count;

                pnlResults.SuspendLayout();
                pnlResults.Controls.Clear();

                foreach (DataRow aRow in matches.Rows)
                {
                    ed = new eligibility_data();
                    ed.Load(aRow);
                    AddAppointment(ed, lastDate);
                    lastDate = ed.appt_date;
                }
                pnlResults.ResumeLayout();
                UpdateLastLabelSafe(lastDateLabel, numAppointmentsCurrentDate);
                UpdateBinCounts();
            }
        }
Exemple #2
0
        private void LoadData(eligibility_data ed)
        {
            lblPatientName.Text = ed.patient_name;
            lblDescription.Text = ed.procedure_info;
            lblTime.Text        = string.Format("{0}\n{1} min", ed.appt_date.ToString("H:mm"), ed.appt_length.ToString());

            if (isSent)
            {
                if (ed.last_status == (int)frmEligibility.Eligibility_Status.Verified)
                {
                    lblStatus.Text      = "Valid";
                    lblStatus.BackColor = COLOR_VALID;
                }
                else if (ed.last_status == (int)frmEligibility.Eligibility_Status.Rejected)
                {
                    lblStatus.Text      = "Invalid";
                    lblStatus.BackColor = COLOR_INVALID;
                }
                else
                {
                    lblStatus.Text      = "Sent";
                    lblStatus.BackColor = COLOR_SENT;
                }
            }
            else
            {
                lblStatus.Text      = "Unsent";
                lblStatus.BackColor = COLOR_UNCHECKED;
            }
        }
Exemple #3
0
        public ctlPatientEligibility(eligibility_data ed)
        {
            InitializeComponent();
            EligibilityData = ed;

            isSent = false;

            if (ed.last_check.HasValue)
            {
                if (ed.last_check.Value.Year > 1900)
                {
                    isSent = true;
                }
            }

            CheckState = !isSent;
        }
        private string BuildSQL(bool isCount, FormSearchMode searchMode)
        {
            eligibility_data ed = new eligibility_data();
            string           sql;

            if (isCount)
            {
                sql = string.Format("SELECT COUNT(*) FROM eligibility_data WHERE CAST(appt_date AS DATE) >= Cast(GetDate() AS DATE) ", nmbMaxResults.Value.ToString());
            }
            else
            {
                sql = string.Format("SELECT TOP {0} * FROM eligibility_data WHERE CAST(appt_date AS DATE) >= Cast(GetDate() AS DATE) ", nmbMaxResults.Value.ToString());
            }

            if (searchMode == FormSearchMode.Unsent)
            {
                sql += " AND (last_check = null OR last_check < '1-2-1900')";
            }
            else if (searchMode == FormSearchMode.Tomorrow)
            {
                sql += string.Format(" AND CAST(appt_date AS DATE) = CAST('{0}' AS DATE)", DateTime.Today.AddDays(1));
            }
            else if (searchMode == FormSearchMode.AllUpcoming)
            {
                sql += ""; // No additional criteria required
            }
            else if (searchMode == FormSearchMode.Rejected)
            {
                sql += " AND last_check > '1-2-1900' AND last_status = 0";
            }
            else if (searchMode == FormSearchMode.Sent)
            {
                sql += " AND last_check > '1-2-1900' AND last_status = 2";
            }

            if (!isCount)
            {
                sql += " ORDER BY appt_date asc";
            }

            return(sql);
        }
 private void UpdateBinCounts()
 {
     if (btnTomorrow.InvokeRequired)
     {
         EmptyDelegate ed = new EmptyDelegate(UpdateBinCounts);
         Invoke(ed);
     }
     else
     {
         eligibility_data ed = new eligibility_data();
         UpdateBinCount(ed.Search(BuildSQL(true, FormSearchMode.Unsent)).Rows[0][0].ToString(),
                        btnUnverified, "Unsent", _searchMode == FormSearchMode.Unsent);
         UpdateBinCount(ed.Search(BuildSQL(true, FormSearchMode.Rejected)).Rows[0][0].ToString(),
                        btnRejected, "Rejected", _searchMode == FormSearchMode.Rejected);
         UpdateBinCount(ed.Search(BuildSQL(true, FormSearchMode.Tomorrow)).Rows[0][0].ToString(),
                        btnTomorrow, "Tomorrow", _searchMode == FormSearchMode.Tomorrow);
         UpdateBinCount(ed.Search(BuildSQL(true, FormSearchMode.AllUpcoming)).Rows[0][0].ToString(),
                        btnUpcoming, "All Upcoming", _searchMode == FormSearchMode.AllUpcoming);
         UpdateBinCount(ed.Search(BuildSQL(true, FormSearchMode.Sent)).Rows[0][0].ToString(),
                        btnSent, "Sent", _searchMode == FormSearchMode.Sent);
     }
 }
        private void AddAppointment(eligibility_data ed, DateTime?lastDate)
        {
            if (lastDate.Value.Date != ed.appt_date.Date)
            {
                if (lastDateLabel != null)
                {
                    UpdateLastLabelSafe(lastDateLabel, numAppointmentsCurrentDate);
                }

                Label dateHeader = new Label();
                lastDateLabel = dateHeader;
                numAppointmentsCurrentDate = 0;

                dateHeader.AutoSize    = false;
                dateHeader.Text        = ed.appt_date.ToLongDateString();
                dateHeader.BorderStyle = BorderStyle.FixedSingle;
                dateHeader.BackColor   = Color.SteelBlue;
                dateHeader.ForeColor   = Color.White;
                dateHeader.TextAlign   = ContentAlignment.MiddleLeft;
                dateHeader.Font        = new Font(new FontFamily("Tahoma"), 10.0f, FontStyle.Bold);
                dateHeader.Height      = 40;

                pnlResults.Controls.Add(dateHeader);

                dateHeader.Dock = DockStyle.Top;
                dateHeader.BringToFront();
            }

            ctlPatientEligibility toAdd = new ctlPatientEligibility(ed);

            toAdd.BorderStyle = BorderStyle.FixedSingle;
            pnlResults.Controls.Add(toAdd);
            numAppointmentsCurrentDate++;
            toAdd.Dock = DockStyle.Top;
            toAdd.BringToFront();
        }
        /// <summary>
        /// Checks to see if a given record exists in our system. If so, updates it. If not, creates it.
        /// </summary>
        /// <param name="aRow"></param>
        /// <returns></returns>
        private void CheckCreateEligibility(DataRow aRow)
        {
            eligibility_data egd = new eligibility_data();

            egd.dentrix_id = Convert.ToInt32(aRow["APPTID"].ToString());
            egd.dentrix_db = Convert.ToInt32(aRow["APPTDB"].ToString());
            DataTable matches = egd.Search();

            if (matches.Rows.Count > 0)
            {
                // We have a copy of this stored locally
                egd.Load(matches.Rows[0]);
            }

            // appt_date PatName, ApptLen, Time_Hour, Time_Minute, ApptReason
            egd.patient_name = aRow["PatName"].ToString();
            egd.appt_length  = Convert.ToInt32(aRow["ApptLen"]);
            DateTime apptDay = Convert.ToDateTime(aRow["apptdate"].ToString());

            egd.appt_date      = new DateTime(apptDay.Year, apptDay.Month, apptDay.Day, Convert.ToInt32(aRow["Time_Hour"]), Convert.ToInt32(aRow["Time_Minute"]), 0);
            egd.procedure_info = aRow["apptReason"].ToString();

            egd.Save();
        }