예제 #1
0
    protected void btnGo_Click(object sender, EventArgs e)
    {
        try
        {
            CaseDetailsBO _caseDetailsBO = new CaseDetailsBO();
            string        check          = txtCaseSearch.Text.Trim();
            int           isString       = 0;

            foreach (Char chTest in check)
            {
                if (!Char.IsNumber(chTest))
                {
                    // there is a character in the entered text
                    isString = 0;
                    //break;
                }
                else
                {
                    // when the user has entered the case number
                    // even if a single digit is entered by the user, it will be treated as case number
                    isString = 1;
                    break;
                }
            }

            foreach (Char chTest in check)
            {
                if (Char.IsNumber(chTest))
                {
                    isString = 2;
                    break;
                }
                else
                {
                    break;
                }
            }

            if (isString == 0)  // this means user is searching with case number
            {
                {
                    Bill_Sys_BillingCompanyObject objCompany = new Bill_Sys_BillingCompanyObject();
                    objCompany = (Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"];
                    Session["CASE_LIST_GO_BUTTON"] = null;
                    //DataSet dsPatientName = _caseDetailsBO.GetCaseListPatientName(txtCaseSearch.Text.Trim(), objCompany.SZ_COMPANY_ID);
                    DataSet dsPatientName = _caseDetailsBO.QuickSearch(txtCaseSearch.Text.Trim(), objCompany.SZ_COMPANY_ID, "");
                    //Session["CASE_LIST_GO_BUTTON"] = dsPatientName; //no need to add in session

                    // if the return dataset has exactly 1 match found, the application automatically takes the user
                    // to the workarea of that case.
                    if (dsPatientName.Tables[0].Rows.Count == 1)
                    {
                        Session["CASE_OBJECT"] = null;
                        Bill_Sys_CaseObject _bill_Sys_CaseObject = new Bill_Sys_CaseObject();
                        //_bill_Sys_CaseObject.SZ_CASE_ID = dsPatientName.Tables[0].Rows[0]["SZ_CASE_ID"].ToString();
                        _bill_Sys_CaseObject.SZ_CASE_ID = dsPatientName.Tables[0].Rows[0]["CaseId"].ToString();
                        //_bill_Sys_CaseObject.SZ_PATIENT_ID = dsPatientName.Tables[0].Rows[0]["SZ_PATIENT_ID"].ToString();
                        _bill_Sys_CaseObject.SZ_PATIENT_ID = dsPatientName.Tables[0].Rows[0]["PatientId"].ToString();
                        //_bill_Sys_CaseObject.SZ_PATIENT_NAME = dsPatientName.Tables[0].Rows[0]["SZ_PATIENT_NAME"].ToString();
                        _bill_Sys_CaseObject.SZ_PATIENT_NAME = dsPatientName.Tables[0].Rows[0]["PatientName"].ToString();
                        //_bill_Sys_CaseObject.SZ_COMAPNY_ID = dsPatientName.Tables[0].Rows[0]["SZ_COMPANY_ID"].ToString();
                        _bill_Sys_CaseObject.SZ_COMAPNY_ID = dsPatientName.Tables[0].Rows[0]["CompanyId"].ToString();

                        //_bill_Sys_CaseObject.SZ_CASE_NO = dsPatientName.Tables[0].Rows[0]["SZ_CASE_NO"].ToString();
                        _bill_Sys_CaseObject.SZ_CASE_NO = dsPatientName.Tables[0].Rows[0]["CaseNo"].ToString();

                        Session["CASE_OBJECT"] = _bill_Sys_CaseObject;
                        //Session["PassedCaseID"] = dsPatientName.Tables[0].Rows[0]["SZ_CASE_NO"].ToString();
                        Session["PassedCaseID"] = dsPatientName.Tables[0].Rows[0]["CaseNo"].ToString();

                        // check whether the login user is from a billing company or test facility.
                        // if billing co. then take him to Bill_Sys_CaseDetails else to Bill_Sys_ReCaseDetails
                        if (objCompany.BT_REFERRING_FACILITY == true)
                        {
                            if (Session["AJAXPage"].ToString() == "Yes")
                            {
                                Response.Redirect("Bill_Sys_ReCaseDetails.aspx", false);
                            }
                            else
                            {
                                Response.Redirect("AJAX%20Pages/Bill_Sys_ReCaseDetails.aspx", false);
                            }
                        }
                        else
                        {
                            if (Session["AJAXPage"].ToString() == "Yes")
                            {
                                Response.Redirect("Bill_Sys_CaseDetails.aspx", false);
                            }
                            else
                            {
                                Response.Redirect("AJAX%20Pages/Bill_Sys_CaseDetails.aspx", false);
                            }
                        }
                    }
                    else // if there are more than 1 rows returned by the search, reload the list page and bind the grid
                    {
                        Session["CASE_LIST_GO_BUTTON"] = txtCaseSearch.Text;
                        if (Session["AJAXPage"].ToString() == "Yes")
                        {
                            Response.Redirect("Bill_Sys_SearchCase.aspx", false);
                        }
                        else
                        {
                            Response.Redirect("AJAX Pages/Bill_Sys_SearchCase.aspx", false);
                        }
                    }
                }
            } // execute this block when the user searches by case number
            else if (((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).BT_REFERRING_FACILITY == true && isString == 1)
            {
                // example: TM702
                int len = check.Length;
                int i   = 0;
                foreach (Char chTest in check)
                {
                    if (!Char.IsNumber(chTest))
                    {
                        i++;
                    }
                }

                string sz_CompanyPrefix = (check.Substring(0, i));
                string sz_CaseNo        = check.Substring(2);

                DataSet ds = _caseDetailsBO.QuickSearch(txtCaseSearch.Text, ((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).SZ_COMPANY_ID, sz_CompanyPrefix);

                //if (_caseDetailsBO.CheckCaseExistsWithPrefix(sz_CompanyPrefix, sz_CaseNo, ((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).SZ_COMPANY_ID) == true)
                if (ds.Tables[0].Rows.Count > 0)
                {
                    Session["CASE_OBJECT"] = null;
                    Bill_Sys_CaseObject _bill_Sys_CaseObject = new Bill_Sys_CaseObject();
                    //_bill_Sys_CaseObject.SZ_CASE_ID = _caseDetailsBO.GetCaseID(check, ((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).SZ_COMPANY_ID);
                    _bill_Sys_CaseObject.SZ_CASE_ID = ds.Tables[0].Rows[0]["CaseId"].ToString();

                    //_bill_Sys_CaseObject.SZ_PATIENT_ID = _caseDetailsBO.GetCasePatientID(_bill_Sys_CaseObject.SZ_CASE_ID, "");
                    _bill_Sys_CaseObject.SZ_PATIENT_ID = ds.Tables[0].Rows[0]["patientId"].ToString();

                    //_bill_Sys_CaseObject.SZ_PATIENT_NAME = _caseDetailsBO.GetPatientName(_bill_Sys_CaseObject.SZ_PATIENT_ID);
                    _bill_Sys_CaseObject.SZ_PATIENT_NAME = ds.Tables[0].Rows[0]["PatientName"].ToString();

                    //_bill_Sys_CaseObject.SZ_COMAPNY_ID = _caseDetailsBO.GetPatientCompanyID(_bill_Sys_CaseObject.SZ_PATIENT_ID);
                    _bill_Sys_CaseObject.SZ_COMAPNY_ID = ds.Tables[0].Rows[0]["CompanyId"].ToString();

                    _bill_Sys_CaseObject.SZ_CASE_NO = check;
                    Session["CASE_OBJECT"]          = _bill_Sys_CaseObject;
                    Session["PassedCaseID"]         = check;

                    if (((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).BT_REFERRING_FACILITY == true)
                    {
                        if (Session["AJAXPage"].ToString() == "Yes")
                        {
                            Response.Redirect("Bill_Sys_ReCaseDetails.aspx", false);
                        }
                        else
                        {
                            Response.Redirect("AJAX%20Pages/Bill_Sys_ReCaseDetails.aspx", false);
                        }
                    }
                    else
                    {
                        if (Session["AJAXPage"].ToString() == "Yes")
                        {
                            Response.Redirect("Bill_Sys_CaseDetails.aspx", false);
                        }
                        else
                        {
                            Response.Redirect("AJAX%20Pages/Bill_Sys_CaseDetails.aspx", false);
                        }
                    }
                }
            }
            else if (isString == 2)// the user is searching by case number --- CASE I
            {
                // we dont need to chcek if case exists in this separate procedure

                // create object of app_code. call new function, pass case number and company id
                // in the procedure, check if you get data.. if yes, set properties those are set below.. else do nothing.
                DataSet ds = new DataSet();
                ds = _caseDetailsBO.QuickSearch(txtCaseSearch.Text, ((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).SZ_COMPANY_ID, "");

                //if (_caseDetailsBO.CheckCaseExists(txtCaseSearch.Text, ((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).SZ_COMPANY_ID) == true)
                if (ds.Tables[0].Rows.Count > 0)
                {
                    Session["CASE_OBJECT"] = null;
                    Bill_Sys_CaseObject _bill_Sys_CaseObject = new Bill_Sys_CaseObject();

                    //_bill_Sys_CaseObject.SZ_CASE_ID = _caseDetailsBO.GetCaseID(txtCaseSearch.Text, ((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).SZ_COMPANY_ID);
                    _bill_Sys_CaseObject.SZ_CASE_ID = ds.Tables[0].Rows[0]["caseId"].ToString();

                    //_bill_Sys_CaseObject.SZ_PATIENT_ID = _caseDetailsBO.GetCasePatientID(_bill_Sys_CaseObject.SZ_CASE_ID, "");
                    _bill_Sys_CaseObject.SZ_PATIENT_ID = ds.Tables[0].Rows[0]["PatientId"].ToString();

                    //_bill_Sys_CaseObject.SZ_PATIENT_NAME = _caseDetailsBO.GetPatientName(_bill_Sys_CaseObject.SZ_PATIENT_ID);
                    _bill_Sys_CaseObject.SZ_PATIENT_NAME = ds.Tables[0].Rows[0]["PatientName"].ToString();

                    //_bill_Sys_CaseObject.SZ_COMAPNY_ID = _caseDetailsBO.GetPatientCompanyID(_bill_Sys_CaseObject.SZ_PATIENT_ID);
                    _bill_Sys_CaseObject.SZ_COMAPNY_ID = ds.Tables[0].Rows[0]["CompanyId"].ToString();

                    //_bill_Sys_CaseObject.SZ_CASE_NO = txtCaseSearch.Text;
                    string StrCaseNo = ds.Tables[0].Rows[0]["CASENO"].ToString();
                    _bill_Sys_CaseObject.SZ_CASE_NO = StrCaseNo.Replace(" ", "");

                    Session["CASE_OBJECT"]  = _bill_Sys_CaseObject;
                    Session["PassedCaseID"] = txtCaseSearch.Text;

                    if (((Bill_Sys_BillingCompanyObject)Session["BILLING_COMPANY_OBJECT"]).BT_REFERRING_FACILITY == true)
                    {
                        if (Session["AJAXPage"].ToString() == "Yes")
                        {
                            Response.Redirect("Bill_Sys_ReCaseDetails.aspx", false);
                        }
                        else
                        {
                            Response.Redirect("AJAX%20Pages/Bill_Sys_ReCaseDetails.aspx", false);
                        }
                    }
                    else
                    {
                        if (Session["AJAXPage"].ToString() == "Yes")
                        {
                            Response.Redirect("Bill_Sys_CaseDetails.aspx", false);
                        }
                        else
                        {
                            Response.Redirect("AJAX%20Pages/Bill_Sys_CaseDetails.aspx", false);
                        }
                    }
                }
            }
        }
        catch
        {
        }
    }