/// <summary>
 /// ดึงรายชื่อพนักงานตามเงื่อนไขที่กำหนด เพื่อนำไปแสดงบนหน้า ConvertByPayor
 /// </summary>
 /// <param name="doeFrom"></param>
 /// <param name="doeTo"></param>
 /// <param name="payor"></param>
 /// <returns></returns>
 public DataTable getPatient(DateTime doeFrom,DateTime doeTo,string payor,string mobileStatus)
 {
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
     #region Variable
     var dt = new DataTable();
     var strSQL = new StringBuilder();
     var clsSQL = new clsSQLNative();
     #endregion
     #region Procedure
     #region SQLQuery
     strSQL.Append("SELECT ");
     strSQL.Append("No,HN,PreName,Name,LastName,DOE,Payor,SyncWhen,'0' IsConvertPreOrder ");
     strSQL.Append("FROM ");
     strSQL.Append("Patient P ");
     strSQL.Append("WHERE ");
     strSQL.Append("(DOE BETWEEN '" + doeFrom.ToString("yyyy-MM-dd HH:mm") + "' AND '" + doeTo.ToString("yyyy-MM-dd HH:mm") + "') ");
     if(payor!="" && payor.ToLower() != "null")
     {
         strSQL.Append("AND Payor='"+payor+"' ");
     }
     if (mobileStatus == "NotRegister")
     {
         strSQL.Append("AND SyncStatus!='1' ");
     }
     else if (mobileStatus == "Register")
     {
         strSQL.Append("AND SyncStatus='1' ");
     }
     strSQL.Append("ORDER BY ");
     strSQL.Append("No;");
     #endregion
     dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
     #endregion
     return dt;
 }
        private void btDOESubmit_Click(object sender, EventArgs e)
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            if (_massConvertPayorMapUID != 0)
            {
                var clsSQL = new clsSQLNative();
                var strSQL = new StringBuilder();

                strSQL.Append("UPDATE MassConvertPayorMap SET DOEFrom='"+dtDOEFrom.Value.ToString("yyyy-MM-dd HH:mm")+ "',DOETo='" + dtDOETo.Value.ToString("yyyy-MM-dd HH:mm") + "' WHERE StatusFlag='A' AND UID=" + _massConvertPayorMapUID);
                if(clsSQL.Execute(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect"))
                {
                    MessageBox.Show("บันทึกข้อมูลเสร็จสิ้น","Success",MessageBoxButtons.OK,MessageBoxIcon.Information);
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("เกิดข้อผิดพลาดขณะบันทึกข้อมูล", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("โปรดเลือกช่วงวันที่ออกตรวจก่อน");
            }
        }
 private void btDOESubmit_Click(object sender, EventArgs e)
 {
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
     #region Variable
     var strSQL = new StringBuilder();
     var clsSQL = new clsSQLNative();
     var payor = "";
     #endregion
     #region Procedure
     #region Validate
     if (dtDOEFrom.Value >= dtDOETo.Value)
     {
         MessageBox.Show("โปรดเลือกช่วงวันที่เริ่มต้นให้น้อยกว่าวันที่สิ้นสุด", "Error on DatePicker", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     if (lvPayor.SelectedItems.Count == 0)
     {
         MessageBox.Show("โปรดเลือกชื่อ Payor ด้านซ้ายก่อน", "Please choose payor first", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         return;
     }
     else
     {
         foreach (ListViewItem item in lvPayor.SelectedItems)
         {
             payor = item.Text.Trim();
         }
     }
     if (payor.Trim() == "")
     {
         MessageBox.Show("ไม่พบชื่อ Payor ที่เลือก", "Please choose payor first", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         return;
     }
     #endregion
     #region SQLQuery
     strSQL.Append("INSERT INTO ");
     strSQL.Append("MassConvertPayorMap");
     strSQL.Append("(Payor,DOEFrom,DOETo,CUser,MUser)");
     strSQL.Append("VALUES(");
     strSQL.Append("'"+payor.SQLQueryFilter()+"',");
     strSQL.Append("'" + dtDOEFrom.Value.ToString("yyyy-MM-dd HH:mm") + "',");
     strSQL.Append("'" + dtDOETo.Value.ToString("yyyy-MM-dd HH:mm") + "',");
     strSQL.Append("'" + clsTempData.Username + "',");
     strSQL.Append("'" + clsTempData.Username + "'");
     strSQL.Append(");");
     #endregion
     if (clsSQL.Execute(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect"))
     {
         setDOE(payor);
         MessageBox.Show("เพิ่มช่วงวันที่ออกตรวจเสร็จสมบูรณ์", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else
     {
         MessageBox.Show("เพิ่มช่วงวันที่ออกตรวจล้มเหลว", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     #endregion
 }
 private void btDelete_Click(object sender, EventArgs e)
 {
     DialogResult dr = MessageBox.Show("ยืนยันการลบข้อมูล", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
     if (dr == DialogResult.Yes)
     {
         var strSQL = "";
         var clsSQL = new clsSQLNative();
         strSQL = "UPDATE MassConvertPayorMap SET StatusFlag='D' WHERE UID="+_massConvertPayorMapUID+";";
         if (clsSQL.Execute(strSQL, clsSQLNative.DBType.SQLServer, "MobieConnect"))
         {
             MessageBox.Show("ลบข้อมูลเสร็จสิ้น", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
             this.DialogResult = DialogResult.OK;
             this.Close();
         }
         else
         {
             MessageBox.Show("เกิดข้อผิดพลาดขณะลบข้อมูล", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
 public DataTable getDOE(string payorName = "")
 {
     #region Variable
     var dt = new DataTable();
     var clsSQL = new clsSQLNative();
     var strSQL = new StringBuilder();
     #endregion
     #region Procedure
     #region SQLQuery
     strSQL.Append("SELECT ");
     strSQL.Append("UID,Payor,DOEFrom,DOETo ");
     strSQL.Append("FROM ");
     strSQL.Append("MassConvertPayorMap ");
     strSQL.Append("WHERE ");
     strSQL.Append("StatusFlag='A' ");
     strSQL.Append("AND Payor='"+payorName+"' ");
     strSQL.Append("ORDER BY ");
     strSQL.Append("DOEFrom ASC;");
     #endregion
     dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
     #endregion
     return dt;
 }
 public DataTable getPatientAutoMassConvert(string doeFrom = "", string doeTo = "", string registerFrom = "", string registerTo = "", string payor = "")
 {
     #region Variable
     var dt = new DataTable();
     var clsSQL = new clsSQLNative();
     var strSQL = new StringBuilder();
     var linkServer = System.Configuration.ConfigurationManager.AppSettings["LinkServer"];
     #endregion
     #region Procedure
     #region SQLQuery
     strSQL.Append("SELECT ");
     strSQL.Append("P.rowguid PatientUID, P.HN,LTRIM(REPLACE(P.Name, P.PreName, ''))Name,P.LastName,P.Payor,P.DOE,CL.RegDate RegisterDate, P.SyncWhen,M.InsuranceCompanyUID,BC_IC.CompanyName InsuranceCompanyName, M.PayorAgreementUID,BC_PA.Name PayorAgreementName, M.PayorDetailUID,BC_PD.PayorName PayorDetailName, M.PolicyMasterUID,BC_PM.PolicyName PolicyMasterName ");
     strSQL.Append("FROM Patient P ");
     strSQL.Append("INNER JOIN tblCheckList CL ON P.rowguid = CL.PatientUID AND WFID = 1 ");
     strSQL.Append("INNER JOIN " + linkServer + ".Patient BC_P ON BC_P.Forename = LTRIM(REPLACE(P.Name, P.PreName, '')) COLLATE Latin1_General_CI_AS AND BC_P.Surname = P.LastName COLLATE Latin1_General_CI_AS AND BC_P.StatusFlag = 'A' ");
     strSQL.Append("INNER JOIN " + linkServer + ".PatientScheduleOrder BC_PS ON BC_P.UID = BC_PS.PatientUID AND BC_PS.ScheduledDttm = P.DOE AND BC_PS.StatusFlag = 'A' AND(BC_PS.PatientVisitUID = 0 OR BC_PS.PatientVisitUID IS NULL) ");
     strSQL.Append("LEFT JOIN MassConvertPayorMap M ON P.Payor = M.Payor AND(P.DOE BETWEEN M.DOEFrom AND M.DOETo) AND M.StatusFlag = 'A' ");
     strSQL.Append("LEFT JOIN " + linkServer + ".InsuranceCompany BC_IC ON M.InsuranceCompanyUID = BC_IC.UID AND BC_IC.StatusFlag = 'A' ");
     strSQL.Append("LEFT JOIN " + linkServer + ".PayorAgreement BC_PA ON M.PayorAgreementUID = BC_PA.UID AND BC_PA.StatusFlag = 'A' ");
     strSQL.Append("LEFT JOIN " + linkServer + ".PayorDetail BC_PD ON M.PayorDetailUID = BC_PD.UID AND BC_PD.StatusFlag = 'A' ");
     strSQL.Append("LEFT JOIN " + linkServer + ".PolicyMaster BC_PM ON M.PolicyMasterUID = BC_PM.UID AND BC_PM.StatusFlag = 'A' ");
     //หาเพิ่มว่าในเทเบิ้ล Log การ Convert ยังไม่ถูก Convert มาก่อน
     strSQL.Append("LEFT JOIN MassConvertLog ML ON P.rowguid=ML.PatientUID ");
     strSQL.Append("WHERE ");
     strSQL.Append("StatusOnMobile='R' ");
     strSQL.Append("AND ML.UID IS NULL ");//หาเพิ่มว่าในเทเบิ้ล Log การ Convert ยังไม่ถูก Convert มาก่อน
     if (payor.Trim() != "")
     {
         strSQL.Append("AND P.Payor='" + payor + "' ");
     }
     if (registerFrom.Trim() != "")
     {
         strSQL.Append("AND CL.RegDate>='"+registerFrom+"' ");
     }
     if (registerTo.Trim() != "")
     {
         strSQL.Append("AND CL.RegDate<='" + registerTo + "' ");
     }
     if (doeFrom.Trim() != "")
     {
         strSQL.Append("AND P.DOE>='" + doeFrom + "' ");
     }
     if (doeTo.Trim() != "")
     {
         strSQL.Append("AND P.DOE<='" + doeTo + "' ");
     }
     #endregion
     dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
     strSQL.Length = 0; strSQL.Capacity = 0;
     #endregion
     return dt;
 }
 private void setPayor()
 {
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
     #region Variable
     var strSQL = new StringBuilder();
     var clsSQL = new clsSQLNative();
     var dt = new DataTable();
     #endregion
     #region Procedure
     #region SQLQuery
     strSQL.Append("SELECT ");
     strSQL.Append("DISTINCT Payor ");
     strSQL.Append("FROM ");
     strSQL.Append("Patient ");
     strSQL.Append("LEFT JOIN tblCheckList ON Patient.rowguid=tblCheckList.PatientUID AND tblCheckList.WFID=1 ");
     strSQL.Append("WHERE ");
     strSQL.Append("1=1 ");
     if (dtDOEFrom.Checked)
     {
         strSQL.Append("AND Patient.DOE>='"+dtDOEFrom.Value.ToString("yyyy-MM-dd HH:mm")+"' ");
     }
     if (dtDOETo.Checked)
     {
         strSQL.Append("AND Patient.DOE<='" + dtDOETo.Value.ToString("yyyy-MM-dd HH:mm") + "' ");
     }
     if (dtREGFrom.Checked)
     {
         strSQL.Append("AND tblCheckList.RegDate>='" + dtREGFrom.Value.ToString("yyyy-MM-dd HH:mm") + "' ");
     }
     if (dtREGTo.Checked)
     {
         strSQL.Append("AND tblCheckList.RegDate<='" + dtREGTo.Value.ToString("yyyy-MM-dd HH:mm") + "' ");
     }
     strSQL.Append("ORDER BY Payor ASC;");
     #endregion
     if (ddlPayor.Items.Count > 0)
     {
         ddlPayor.Items.Clear();
     }
     dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
     if (dt != null && dt.Rows.Count > 0)
     {
         for (int i = 0; i < dt.Rows.Count; i++)
         {
             ddlPayor.Items.Add(dt.Rows[i]["Payor"].ToString().Trim());
         }
     }
     ddlPayor.Items.Insert(0,"- ทั้งหมด -");
     ddlPayor.SelectedIndex = 0;
     #endregion
 }
        private void ConvertPreOrder(string OrderNo)
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            string careUID = "2283";
            var outMessage = "";
            var clsTempData = new clsTempData();
            var clsSQL = new clsSQLNative();

            //หาข้อมูลใน tb PatientScheduleOrder ของ OrderNumber ที่ถูกส่งมา
            DataTable Schdt = new DataTable();
            Schdt = db.Select_PatientScheduleOrder(OrderNo);
            if (Schdt != null && Schdt.Rows.Count > 0)
            {
                if (!clsTempData.setConvertResult(out outMessage,
                        "",
                        "",
                        "Select_PatientScheduleOrder",
                        "Success",
                        "OrderNo:"+OrderNo))
                {
                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                for (int x = 0; x < Schdt.Rows.Count; x++)
                {
                    MassConvertLogUID = "";
                    var outMessage2 = "";
                    var PatientVisitUID = "";
                    PatientVisitUID = Schdt.Rows[x]["PatientVisitUID"].ToString();
                    //เช็คว่ามีการ Convert แล้วหรือยัง
                    if (string.IsNullOrEmpty(PatientVisitUID) || PatientVisitUID == "0")
                    {
                        #region MassConvertLog
                        if (MassConvertLogEnable == "true")
                        {
                            MassConvertLogUID = clsSQL.Return("INSERT INTO MassConvertLog(HN,StartWhen,Username,Detail,PatientUID) OUTPUT INSERTED.UID VALUES('" + MassConvertLogHN + "',GETDATE(),'"+clsTempData.Username+"','PayorByRegisterDate','"+ MassConvertLogPatientUID + "');",clsSQLNative.DBType.SQLServer, "MobieConnect");
                        }
                        #endregion
                        #region setConvertResult
                        if (!clsTempData.setConvertResult(out outMessage2,
                            "",
                            "",
                            "เช็คว่ามีการ Convert แล้วหรือยัง",
                            "No",
                            "PatientVisitUID:" + Schdt.Rows[x]["PatientVisitUID"].ToString()))
                        {
                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        #endregion
                        //Update Booking ของคนไข้คนนี้ให้ Status Flag = 'U' (แสดงว่าคนไข้ได้มาตามนัด หรือ ได้ตรวจแล้ว)
                        if (db.Update_Booking_Status(Schdt.Rows[x]["PatientUID"].ToString(), Schdt.Rows[x]["ScheduledDttm"].ToString(),out outMessage) == false)
                        {
                            #region setConvertResult
                            if (!clsTempData.setConvertResult(out outMessage2,
                                "",
                                "",
                                "Update Booking ของคนไข้คนนี้ให้ Status Flag = 'U' (แสดงว่าคนไข้ได้มาตามนัด หรือ ได้ตรวจแล้ว)",
                                "Fail",
                                ""))
                            {
                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            #endregion
                            MessageBox.Show("Cannot update booking status\n\n"+outMessage);
                        }
                        else
                        {
                            #region setConvertResult
                            if (!clsTempData.setConvertResult(out outMessage2,
                                "",
                                "",
                                "Update Booking ของคนไข้คนนี้ให้ Status Flag = 'U' (แสดงว่าคนไข้ได้มาตามนัด หรือ ได้ตรวจแล้ว)",
                                "Success",
                                ""))
                            {
                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            #endregion
                        }

                        //หา BillPackageItem ทั้งหมดของคนไข้คนนี้
                        DataTable SchDetdt = db.Select_OrderCategory_By_ScheduleOrderNumber_Filter_Package_AllItem(Schdt.Rows[x]["UID"].ToString());

                        //dgv.DataSource = SchDetdt;

                        if (SchDetdt != null && SchDetdt.Rows.Count > 0)
                        {
                            #region setConvertResult
                            if (!clsTempData.setConvertResult(out outMessage2,
                                "",
                                "",
                                "หา BillPackageItem ทั้งหมดของคนไข้คนนี้",
                                "Found",
                                "UID:"+ Schdt.Rows[x]["UID"].ToString()))
                            {
                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            #endregion
                            //หา BillableItem ของ Order ของคนไข้คนนี้ตาม BSMDD
                            DataTable bsmdt = db.Select_BillableItem_By_ScheduleOrderNumber_GroupBy_BSMDDUID(Schdt.Rows[x]["UID"].ToString()); //new check by BSMDDUID
                            //หา Order Category ของ Order ของคนไข้คนนี้
                            DataTable catdt = db.Select_OrderCategory_By_ScheduleOrderNumber_GroupBy_OrderCategoryUID(Schdt.Rows[x]["UID"].ToString()); //old

                            if (bsmdt != null && bsmdt.Rows.Count > 0)
                            {
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "หา BillableItem ของ Order ของคนไข้คนนี้ตาม BSMDD",
                                    "Found",
                                    "UID:" + Schdt.Rows[x]["UID"].ToString()))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion
                                //หาว่า Billable Type นี้มี Medicin , Supply อยู่ด้วยหรือไม่
                                //if (CheckBillableMedicineItemTypeInsidePackage(bsmdt) == true) //New concept check by BSMDDUID
                                //{
                                //MessageBox.Show("This version not support Medicine Item inside Package");
                                //return;
                                //}
                                //==================================================
                                //GENERATE PATIENT VISIT AND CREATE VISIT NO SECTION.
                                //==================================================
                                string visitno = db.SEQID("SEQVisitID");//StoreProcedure

                                if (Encounter_Desc.ToUpper().StartsWith("H"))
                                    visitno = "H" + BU + "-" + DateTime.Today.ToString("yy") + "-" + visitno.PadLeft(6, '0').ToString();
                                else
                                    visitno = "O" + BU + "-" + DateTime.Today.ToString("yy") + "-" + visitno.PadLeft(6, '0').ToString();

                                //Insert ข้อมูลเข้า table PatientVisit แล้ว return ค่า PatientVisitUID ออกมา
                                string patvisituid = db.Insert_PatientVisit(Schdt.Rows[x]["PatientUID"].ToString(), Encounter_UID
                                   , careUID, "0", Location_UID, "0", OwnerOrganization, "mass convert", Cuser
                                   , OwnerOrganization, "0");
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "Insert ข้อมูลเข้า table PatientVisit แล้ว return ค่า PatientVisitUID ออกมา",
                                    "Success",
                                    "PatientVisitUID:" + patvisituid))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion
                                //Update PatientVisitUID ใน table PatientScheduleOrder ให้เป็น PatientVisitUID จริง ๆ
                                if(db.Update_PatientScheduleOrder_By_UID(Schdt.Rows[x]["UID"].ToString(), patvisituid, Cuser))
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "Update PatientVisitUID ใน table PatientScheduleOrder ให้เป็น PatientVisitUID จริง ๆ",
                                        "Success",
                                        "PatientVisitUID:" + patvisituid))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                }
                                else
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "Update PatientVisitUID ใน table PatientScheduleOrder ให้เป็น PatientVisitUID จริง ๆ",
                                        "Fail",
                                        "PatientVisitUID:" + patvisituid))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                }
                                countSuccess += 1;

                                //Insert ข้อมูลเข้า table PatientVisitPayor แล้ว return ค่า PatientVisitPayorUID ออกมา
                                //string patientVisitPayorUID = db.Insert_PatientVisitPayor(patvisituid, Schdt.Rows[x]["PatientUID"].ToString()
                                //    , ((DataRowView)cboPayorOffice.SelectedItem).Row.ItemArray[0].ToString(), ((DataRowView)cboPolicy.SelectedItem).Row.ItemArray[0].ToString(),
                                //((DataRowView)cboPolicy.SelectedItem).Row.ItemArray[1].ToString(), "", "MassCovert", Cuser, "A", OwnerOrganization, ((DataRowView)cboPayor.SelectedItem).Row.ItemArray[0].ToString(),
                                //((DataRowView)cboAgreement.SelectedItem).Row.ItemArray[0].ToString(), "", "", ((DataRowView)cboAgreement.SelectedItem).Row.ItemArray[2].ToString(), "0");
                                string patientVisitPayorUID = db.Insert_PatientVisitPayor(patvisituid, Schdt.Rows[x]["PatientUID"].ToString()
                                    , cboPayorOffice.SelectedItem.Value.ToString(), cboPolicy.SelectedItem.Value.ToString(),
                                cboPolicy.SelectedItem.Text.ToString(), "", "MassCovert", Cuser, "A", OwnerOrganization, cboPayor.SelectedItem.Value.ToString(),
                                cboAgreement.SelectedItem.Value.ToString(), "", "", FindAgreementPercentTag(cboAgreement.SelectedItem.Value.ToString()), "0");
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "Insert ข้อมูลเข้า table PatientVisitPayor แล้ว return ค่า PatientVisitPayorUID ออกมา",
                                    "Success",
                                    "PatientVisitPayorUID:" + patientVisitPayorUID))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion
                                //Insert ข้อมูลเข้า table PatientVisiID
                                if(db.Insert_PatientVisitID(visitno, "Y", patvisituid, Cuser, OwnerOrganization))
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "Insert ข้อมูลเข้า table PatientVisiID",
                                        "Success",
                                        "PatientVisitUID:" + patvisituid))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                }
                                else
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "Insert ข้อมูลเข้า table PatientVisiID",
                                        "Fail",
                                        "PatientVisitUID:" + patvisituid))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                }
                                countSuccess += 1;

                                //==============================================
                                //INSERT PATIENT PACKAGE & PACKAGE ITEM SECTION.
                                //==============================================
                                //หา Package ย่อย ของ ScheduleOrderNumber นี้
                                string packuid = string.Empty;
                                DataTable dtBDMSScheduleOrder = db.Select_BDMSPatientScheduleOrderDetail_By_ScheduleOrderUID(Schdt.Rows[x]["UID"].ToString());
                                if (dtBDMSScheduleOrder != null && dtBDMSScheduleOrder.Rows.Count > 0)
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "หา Package ย่อย ของ ScheduleOrderNumber นี้",
                                        "Found",
                                        ""))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                    for (int m = 0; m < dtBDMSScheduleOrder.Rows.Count; m++)
                                    {
                                        //Insert ข้อมูลเข้า table PatientPackage ตาม ScheduleOrderNumber ที่ส่งเข้ามา  แล้ว return ค่า PackageUID ออกมา
                                        packuid = db.Insert_PatientPackage_by_ScheduleOrderNumber(Schdt.Rows[x]["UID"].ToString(), OwnerOrganization, dtBDMSScheduleOrder.Rows[m]["BillPackageUID"].ToString(), patvisituid);
                                        #region setConvertResult
                                        if (!clsTempData.setConvertResult(out outMessage2,
                                            "",
                                            "",
                                            "Insert ข้อมูลเข้า table PatientPackage ตาม ScheduleOrderNumber ที่ส่งเข้ามา  แล้ว return ค่า PackageUID ออกมา",
                                            "Success",
                                            "PackageUID:"+ packuid))
                                        {
                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }
                                        #endregion
                                        //Insert ข้อมูลเข้า table PatientPackageItem
                                        if(db.Insert_PatientPackageItem_by_ScheduleOrderNumber_BillPackage("", packuid, OwnerOrganization))
                                        {
                                            #region setConvertResult
                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                "",
                                                "",
                                                "Insert ข้อมูลเข้า table PatientPackageItem",
                                                "Success",
                                                "PackageUID:" + packuid))
                                            {
                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }
                                            #endregion
                                        }
                                        else
                                        {
                                            #region setConvertResult
                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                "",
                                                "",
                                                "Insert ข้อมูลเข้า table PatientPackageItem",
                                                "Fail",
                                                "PackageUID:" + packuid))
                                            {
                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }
                                            #endregion
                                        }
                                        countSuccess += 1;
                                    }
                                }
                                else
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "หา Package ย่อย ของ ScheduleOrderNumber นี้",
                                        "Not Found",
                                        ""))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                }
                                //วนลูป add หัว package ทั้ง program หลัก และ Option เข้า table PatientBillableItem
                                DataTable dtPktBdmsSch = db.Select_PatientPackage_By_VisitUID(patvisituid);
                                if (dtPktBdmsSch != null && dtPktBdmsSch.Rows.Count > 0)
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "วนลูป add หัว package ทั้ง program หลัก และ Option เข้า table PatientBillableItem",
                                        "Found",
                                        "PatientVisitUID:" + patvisituid))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                    for (int n = 0; n < dtPktBdmsSch.Rows.Count; n++)
                                    {
                                        //INSERT PATIENT BILLABLE FOR BILL PACKAGE IDENTIFIER TYPE

                                        //Insert ข้อมูลเข้า table PatientBillableItem
                                        if(db.Insert_PatientBillableItem_For_PackageHeader(OrderNo, dtPktBdmsSch.Rows[n]["UID"].ToString(), OwnerOrganization, Cuser, patvisituid, Schdt.Rows[x]["PatientUID"].ToString(), dtPktBdmsSch.Rows[n]["BillPackageUID"].ToString()))
                                        {
                                            #region setConvertResult
                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                "",
                                                "",
                                                "Insert ข้อมูลเข้า table PatientBillableItem",
                                                "Success",
                                                ""))
                                            {
                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }
                                            #endregion
                                        }
                                        else
                                        {
                                            #region setConvertResult
                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                "",
                                                "",
                                                "Insert ข้อมูลเข้า table PatientBillableItem",
                                                "Fail",
                                                ""))
                                            {
                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            }
                                            #endregion
                                        }
                                        countSuccess += 1;
                                    }
                                }
                                else
                                {
                                    #region setConvertResult
                                    if (!clsTempData.setConvertResult(out outMessage2,
                                        "",
                                        "",
                                        "วนลูป add หัว package ทั้ง program หลัก และ Option เข้า table PatientBillableItem",
                                        "Not Found",
                                        "PatientVisitUID:" + patvisituid))
                                    {
                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    }
                                    #endregion
                                }
                                //วนลูปตาม Order Category
                                for (int i = 0; i < catdt.Rows.Count; i++)
                                {
                                    string SEQ = db.SEQID("SEQpatientorder");
                                    string SpecialSEQ = GenerateSequenEachType(catdt.Rows[i]["Description"].ToString().ToLower());
                                    string OrderCateType = catdt.Rows[i]["Description"].ToString().ToLower();
                                    string Identype = string.Empty;
                                    //ถ้าเป็น Order ทั่วไป
                                    if (SpecialSEQ == "nodata")
                                        Identype = "PATIENTORDER";
                                    else //ถ้าเป็น Order Lab ,Xray
                                        Identype = "REQUEST";

                                    //วนลูปทีละ BillPackageItem
                                    for (int j = 0; j < SchDetdt.Rows.Count; j++)
                                    {
                                        //เช็คว่าเป็น OrderCategory เดียวกันหรือไม่
                                        if (catdt.Rows[i]["Value"].ToString().ToLower() == SchDetdt.Rows[j]["Value"].ToString()) //Check OrderCategory must match for assign each item to specific table
                                        {
                                            string ordcat = "NULL";
                                            string ordtsubcat = "NULL";
                                            string ordtoval = "0"; //Order To Location Value
                                            //เซ๊ตค่า OrderCat
                                            if (SchDetdt.Rows[j]["ORDCTUID"].ToString() != "")
                                                ordcat = SchDetdt.Rows[j]["ORDCTUID"].ToString();

                                            //เซ็ตค่า OrderSubCat
                                            if (SchDetdt.Rows[j]["OrderSubCategoryUID"].ToString() != "")
                                                ordtsubcat = SchDetdt.Rows[j]["OrderSubCategoryUID"].ToString();

                                            //เซ็ตค่า Order To Location
                                            DataTable ordto = db.Select_OrderToLocationUID(Location_UID,
                                                 SchDetdt.Rows[j]["BillableItemUID"].ToString(), "", true);
                                            if (ordto != null && ordto.Rows.Count > 0)
                                                ordtoval = (ordto.Rows[0][0].ToString() == "" ? "0" : ordto.Rows[0][0].ToString());

                                            string patorderuid = string.Empty;
                                            //Insert ข้อมูลเข้า table PatientOrder แล้ว return PatientOrderUID ออกมา
                                            bool flaginsertPatientOrder = db.insert_PatientOrder(SEQ, Schdt.Rows[x]["PatientUID"].ToString()
                                               , patvisituid, Cuser, "mass convert"
                                               , SchDetdt.Rows[j]["ORDCTUID"].ToString()
                                               , Identype, Location_UID, ordtoval, OwnerOrganization, out patorderuid);
                                            if (flaginsertPatientOrder)
                                            {
                                                #region setConvertResult
                                                if (!clsTempData.setConvertResult(out outMessage2,
                                                    "",
                                                    "",
                                                    "Insert ข้อมูลเข้า table PatientOrder แล้ว return PatientOrderUID ออกมา",
                                                    "Success",
                                                    "PatientOrderUID:"+ patorderuid))
                                                {
                                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                }
                                                #endregion
                                            }
                                            else
                                            {
                                                #region setConvertResult
                                                if (!clsTempData.setConvertResult(out outMessage2,
                                                    "",
                                                    "",
                                                    "Insert ข้อมูลเข้า table PatientOrder แล้ว return PatientOrderUID ออกมา",
                                                    "Fail",
                                                    "PatientOrderUID:" + patorderuid))
                                                {
                                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                }
                                                #endregion
                                            }
                                            countSuccess += 1;

                                            //หา PatientPackageUID ของ Order และ Visit นี้
                                            DataTable dtPTPck = db.Select_PatientPackageUID_By_BillPackageItemUID(patvisituid, SchDetdt.Rows[j]["UID"].ToString());

                                            //ถ้า Insert ข้อมูลเข้า table PatientOrder ได้
                                            if (flaginsertPatientOrder)
                                            {
                                                //ถ้าเป็น Order ทั่วไปให้ set status = Raised
                                                string orddetstatus = "Raised";
                                                //ถ้าเป็น Order Lab set status = Specimen Collected
                                                if (OrderCateType.ToString().ToLower() == "lab")
                                                    orddetstatus = "Specimen Collected";
                                                //ถ้าเป็น Order Xray set status = Executed
                                                else if (OrderCateType.ToString().ToLower() == "xray")
                                                    orddetstatus = "Executed";

                                                // กลับมาเช็คต่อ หาในส่วนของ PatientOrderDetail ต่อใน Package
                                                //INSERT DATA IN PATIENT ORDER DETAIL

                                                //IdentifyingType
                                                //-------------------------------------------------------------------------------------------------
                                                //MEDICATION , REQUESTDETAIL ,SERVICECHARGE, BILLABLEEVENT, ORDERITEM, DRUGCATALOGITEM, REQUESTITEM
                                                //-------------------------------------------------------------------------------------------------

                                                string IdentTypeforOrderDetail = "";
                                                if (Identype == "PATIENTORDER")
                                                    IdentTypeforOrderDetail = "ORDERITEM";
                                                if (Identype == "REQUEST")
                                                    IdentTypeforOrderDetail = "REQUESTDETAIL";

                                                //Calculate NetAmout
                                                string NetAmount = "0";

                                                try
                                                {
                                                    int quantity = int.Parse(SchDetdt.Rows[j]["Quantity"].ToString());
                                                    int amount = int.Parse(SchDetdt.Rows[j]["Amount"].ToString());
                                                    NetAmount = (quantity * amount).ToString();
                                                }
                                                catch (Exception)
                                                {

                                                    NetAmount = "0";
                                                }

                                                string patorddetails = "0";

                                                //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                                string requid = string.Empty;
                                                if (Identype == "REQUEST")
                                                {
                                                    //1827 SPECIMEN COLLECTED
                                                    //ถ้า Order Category เป็น Lab
                                                    if (OrderCateType.ToString().ToLower() == "lab")
                                                    {
                                                        //เช็คว่ามีการ Generate LabNo โดยโปรแกรม Pre GenLab แล้วหรือยัง
                                                        DataTable mssdt = db.Select_BDMSASTMassConvert_Between(OrderNo, OrderNo);
                                                        if (mssdt != null && mssdt.Rows.Count > 0)
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "เช็คว่ามีการ Generate LabNo โดยโปรแกรม Pre GenLab แล้วหรือยัง",
                                                                "Yes",
                                                                "LabNo:"+ SpecialSEQ))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                            //ถ้ามีแล้วให้ดึง LabNo ที่ถูก Generate แล้วมา  เพื่อที่จะได้ไม่ต้อง Genrate LabNo ใหม่
                                                            SpecialSEQ = mssdt.Rows[0]["LabNo"].ToString();
                                                        }
                                                        else
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "เช็คว่ามีการ Generate LabNo โดยโปรแกรม Pre GenLab แล้วหรือยัง",
                                                                "No",
                                                                "LabNo:" + SpecialSEQ))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        //นำ Lab No ที่ Generate มาแล้วไปเช็คใน table request ว่ามีแล้วหรือยัง
                                                        DataTable labnodt = db.Select_Request_By_LabNo(SpecialSEQ);
                                                        if (labnodt != null && labnodt.Rows.Count > 0) //found lab no in database
                                                        {
                                                            //ถ้ามีแล้วให้คืนค่า RequestUID กลับมา
                                                            requid = labnodt.Rows[0]["UID"].ToString();
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "นำ Lab No ที่ Generate มาแล้วไปเช็คใน table request ว่ามีแล้วหรือยัง",
                                                                "Yes",
                                                                "RequestUID:" + requid))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        else //not found lab no in database
                                                        {
                                                            //ถ้ายังไม่มี ให้ทำการ Insert ข้อมูลใหม่เข้าไปใน table request แล้ว return RequestUID ออกมา
                                                            requid = db.Insert_Request(patvisituid,Schdt.Rows[x]["PatientUID"].ToString(),Cuser,SpecialSEQ,"Specimen Collected"
                                                                        ,Location_UID, ordtoval, OwnerOrganization);
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "นำ Lab No ที่ Generate มาแล้วไปเช็คใน table request ว่ามีแล้วหรือยัง",
                                                                "No",
                                                                "RequestUID:" + requid+ " (ทำการ Insert ข้อมูลใหม่เข้าไปใน table request แล้ว return RequestUID ออกมา)"))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        // Update table PatientOrder
                                                        db.Update_PatientOrder_By_UID(patorderuid, requid);
                                                        #region setConvertResult
                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                            "",
                                                            "",
                                                            "Update table PatientOrder",
                                                            "Success",
                                                            "PatientOrderUID:" + patorderuid))
                                                        {
                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        }
                                                        #endregion
                                                        //Insert ข้อมูลเข้า table RequestDetail แล้ว return UID กลับมา
                                                        string retreqdet = db.Insert_RequestDetail(SchDetdt.Rows[j]["ItemUID"].ToString(),
                                                                    requid, Cuser, SchDetdt.Rows[j]["Comments"].ToString(), "Specimen Collected", OwnerOrganization);
                                                        //ถ้า Insert สำเร็จ
                                                        if (retreqdet != "")
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert ข้อมูลเข้า table RequestDetail แล้ว return UID กลับมา",
                                                                "Success",
                                                                "RequestDetailUID:" + retreqdet))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                            //หาข้อมูลว่ามีการ PreOrder แล้วหรือยัง
                                                            DataTable pschdt = db.Select_PatientScheduleOrder(OrderNo);
                                                            if (pschdt != null && pschdt.Rows.Count > 0)
                                                            {
                                                                #region setConvertResult
                                                                if (!clsTempData.setConvertResult(out outMessage2,
                                                                    "",
                                                                    "",
                                                                    "หาข้อมูลว่ามีการ PreOrder แล้วหรือยัง",
                                                                    "Yes",
                                                                    "OrderNo:" + OrderNo))
                                                                {
                                                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                }
                                                                #endregion
                                                                //เช็ค Specimen ที่เราได้ทำตอน Generate LabNo
                                                                DataTable bspctsdt = db.Select_BDMSASTMAssSpecimenTestset_BY_PatientScheduleOrderUID_And_TestSet_HN(
                                                                              pschdt.Rows[0]["UID"].ToString(), SchDetdt.Rows[j]["RequestCode"].ToString()
                                                                              , Schdt.Rows[x]["HN"].ToString());
                                                                //ถ้ามี Specimen ตอน Generate LabNo แล้ว
                                                                if (bspctsdt != null && bspctsdt.Rows.Count > 0)
                                                                {
                                                                    #region setConvertResult
                                                                    if (!clsTempData.setConvertResult(out outMessage2,
                                                                        "",
                                                                        "",
                                                                        "เช็ค Specimen ที่เราได้ทำตอน Generate LabNo",
                                                                        "Found",
                                                                        ""))
                                                                    {
                                                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                    }
                                                                    #endregion
                                                                    //เข้าไปดึง specimen ใน table master specimen โดยดึงตาม Code ที่กำหนด
                                                                    DataTable spdt = db.Select_Specimen_By_Name(bspctsdt.Rows[0]["Specimen"].ToString());
                                                                    if (spdt != null && spdt.Rows.Count > 0)
                                                                    {
                                                                        //Insert ข้อมูล Specimen เข้า table RequestDetailSpecimen
                                                                        if(db.Insert_RequestDetailSpecimen(retreqdet, "NULL", "'Manual Entry'"
                                                                                , spdt.Rows[0]["UID"].ToString(), spdt.Rows[0]["Name"].ToString(), "0", "0"
                                                                                , "3", "0", "NULL", "0", "0", Cuser, "'Mass Convert'", Cuser
                                                                                , OwnerOrganization, "NULL", "NULL", "Specimen Collected", "''", "NULL", "NULL"))
                                                                        {
                                                                            #region setConvertResult
                                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                                "",
                                                                                "",
                                                                                "Insert ข้อมูล Specimen เข้า table RequestDetailSpecimen",
                                                                                "Success",
                                                                                ""))
                                                                            {
                                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                            }
                                                                            #endregion
                                                                        }
                                                                        else
                                                                        {
                                                                            #region setConvertResult
                                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                                "",
                                                                                "",
                                                                                "Insert ข้อมูล Specimen เข้า table RequestDetailSpecimen",
                                                                                "Fail",
                                                                                ""))
                                                                            {
                                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                            }
                                                                            #endregion
                                                                        }
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    #region setConvertResult
                                                                    if (!clsTempData.setConvertResult(out outMessage2,
                                                                        "",
                                                                        "",
                                                                        "เช็ค Specimen ที่เราได้ทำตอน Generate LabNo",
                                                                        "Not Found",
                                                                        ""))
                                                                    {
                                                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                    }
                                                                    #endregion
                                                                    //RequestItemUID = SchDetdt.Rows[j]["ItemUID"].ToString()
                                                                    //LabCode = SchDetdt.Rows[j]["RequestCode"].ToString()

                                                                    //ใช้ RequestItemUID ไปหาว่าใช้ Specimen code อะไร
                                                                    string speceminitem = string.Empty;
                                                                    DataTable spedt = db.Select_RequestItemSpecimen_By_RequestItemUID(SchDetdt.Rows[j]["ItemUID"].ToString(), "Y");
                                                                    if (spedt != null && spedt.Rows.Count > 0)
                                                                    {
                                                                        speceminitem = spedt.Rows[0]["SpecimenCode"].ToString();
                                                                    }
                                                                    else
                                                                    {
                                                                        spedt = db.Select_RequestItemSpecimen_By_RequestItemUID(SchDetdt.Rows[j]["ItemUID"].ToString(), "N");
                                                                        if (spedt != null && spedt.Rows.Count > 0)
                                                                            speceminitem = spedt.Rows[0]["SpecimenCode"].ToString();

                                                                    }
                                                                    //เข้าไปดึง specimen ใน table master specimen โดยดึงตาม Code ที่กำหนด
                                                                    DataTable spMasterdt = db.Select_Specimen_By_Name(spedt.Rows[0]["SpecimenCode"].ToString());
                                                                    if (spMasterdt != null && spMasterdt.Rows.Count > 0)
                                                                    {
                                                                        #region setConvertResult
                                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                                            "",
                                                                            "",
                                                                            "เข้าไปดึง specimen ใน table master specimen โดยดึงตาม Code ที่กำหนด",
                                                                            "Found",
                                                                            ""))
                                                                        {
                                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                        }
                                                                        #endregion
                                                                        //Insert ข้อมูล Specimen เข้า table RequestDetailSpecimen
                                                                        if(db.Insert_RequestDetailSpecimen(retreqdet, "NULL", "'Manual Entry'"
                                                                                , spMasterdt.Rows[0]["UID"].ToString(), spMasterdt.Rows[0]["Name"].ToString(), "0", "0"
                                                                                , "3", "0", "NULL", "0", "0", Cuser, "'Mass Convert'", Cuser
                                                                                , OwnerOrganization, "NULL", "NULL", "Specimen Collected", "''", "NULL", "NULL"))
                                                                        {
                                                                            #region setConvertResult
                                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                                "",
                                                                                "",
                                                                                "Insert ข้อมูล Specimen เข้า table RequestDetailSpecimen",
                                                                                "Success",
                                                                                ""))
                                                                            {
                                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                            }
                                                                            #endregion
                                                                        }
                                                                        else
                                                                        {
                                                                            #region setConvertResult
                                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                                "",
                                                                                "",
                                                                                "Insert ข้อมูล Specimen เข้า table RequestDetailSpecimen",
                                                                                "Fail",
                                                                                ""))
                                                                            {
                                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                            }
                                                                            #endregion
                                                                        }
                                                                    }
                                                                    else
                                                                    {
                                                                        #region setConvertResult
                                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                                            "",
                                                                            "",
                                                                            "เข้าไปดึง specimen ใน table master specimen โดยดึงตาม Code ที่กำหนด",
                                                                            "Not Found",
                                                                            ""))
                                                                        {
                                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                        }
                                                                        #endregion
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                #region setConvertResult
                                                                if (!clsTempData.setConvertResult(out outMessage2,
                                                                    "",
                                                                    "",
                                                                    "หาข้อมูลว่ามีการ PreOrder แล้วหรือยัง",
                                                                    "No",
                                                                    "OrderNo:" + OrderNo))
                                                                {
                                                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                }
                                                                #endregion
                                                            }
                                                            patorddetails = db.insert_PatientOrderDetail(SEQ, retreqdet
                                                            , IdentTypeforOrderDetail, Cuser, SchDetdt.Rows[j]["BillableItemUID"].ToString(), "mass convert"
                                                            , orddetstatus, SchDetdt.Rows[j]["Quantity"].ToString()
                                                            , SchDetdt.Rows[j]["OrderSubCategoryUID"].ToString()
                                                            , SchDetdt.Rows[j]["ORDCTUID"].ToString()
                                                            , SchDetdt.Rows[j]["Amount"].ToString()
                                                            , (NetAmount == "0" ? SchDetdt.Rows[j]["Amount"].ToString() : NetAmount)
                                                            , SchDetdt.Rows[j]["Amount"].ToString()
                                                            , dtPTPck.Rows[0]["PatientPackageUID"].ToString(), OwnerOrganization, patientVisitPayorUID);
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "insert_PatientOrderDetail",
                                                                "Success",
                                                                "PatientOrderDetailUID:"+ patorddetails))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                            //Packuid
                                                        } //if (retreqdt !="")
                                                        else
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert ข้อมูลเข้า table RequestDetail แล้ว return UID กลับมา",
                                                                "Fail",
                                                                ""))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }

                                                        DataTable lsdt = db.GetRequestDetail_Status(SpecialSEQ);
                                                        if (lsdt != null && lsdt.Rows.Count > 0)
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "GetRequestDetail_Status",
                                                                "Found",
                                                                "SpecialSEQ:" + SpecialSEQ))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                            var cstat = CheckStatus(lsdt).Split('|');
                                                            if (cstat.Count() == 2)
                                                            {
                                                                db.Update_Request_By_LabNumber(SpecialSEQ, cstat[0].ToString());
                                                                #region setConvertResult
                                                                if (!clsTempData.setConvertResult(out outMessage2,
                                                                    "",
                                                                    "",
                                                                    "Update_Request_By_LabNumber",
                                                                    "Success",
                                                                    ""))
                                                                {
                                                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                }
                                                                #endregion
                                                            }
                                                            else
                                                            {
                                                                #region setConvertResult
                                                                if (!clsTempData.setConvertResult(out outMessage2,
                                                                    "",
                                                                    "",
                                                                    "Update_Request_By_LabNumber",
                                                                    "Fail",
                                                                    ""))
                                                                {
                                                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                                }
                                                                #endregion
                                                            }
                                                        }// if (lsdt != null && lsdt.Rows.Count > 0)
                                                        else
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "GetRequestDetail_Status",
                                                                "Not Found",
                                                                "SpecialSEQ:" + SpecialSEQ))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }

                                                    }//if (OrderCateType.ToString().ToLower()=="lab")
                                                    else if (OrderCateType.ToString().ToLower() == "xray")
                                                    {
                                                        //requid = db.Insert_Request(patvisituid
                                                        //  , Schdt.Rows[x]["PatientUID"].ToString(), Cuser, SpecialSEQ, "Executed"
                                                        //  , cbLocationOrder.SelectedValue.ToString(), ordtoval, OwnerOrganization);

                                                        requid = db.Insert_Request(patvisituid
                                                          , Schdt.Rows[x]["PatientUID"].ToString(), Cuser, SpecialSEQ, "Executed"
                                                          , Location_UID, ordtoval, OwnerOrganization);
                                                        #region setConvertResult
                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                            "",
                                                            "",
                                                            "Insert_Request",
                                                            "Success",
                                                            "requid:"+ requid))
                                                        {
                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        }
                                                        #endregion

                                                        db.Update_PatientOrder_By_UID(patorderuid, requid);
                                                        #region setConvertResult
                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                            "",
                                                            "",
                                                            "Update_PatientOrder_By_UID",
                                                            "Success",
                                                            "PatientOrderUID:" + patorderuid))
                                                        {
                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        }
                                                        #endregion

                                                        string retreqdet = db.Insert_RequestDetail(SchDetdt.Rows[j]["itemUID"].ToString(),
                                                               requid, Cuser, SchDetdt.Rows[j]["Comments"].ToString(), "Executed", OwnerOrganization);
                                                        if (retreqdet != "")
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert_RequestDetail",
                                                                "Success",
                                                                "retreqdet:" + retreqdet))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                            patorddetails = db.insert_PatientOrderDetail(SEQ, retreqdet
                                                               , IdentTypeforOrderDetail, Cuser, SchDetdt.Rows[j]["BillableItemUID"].ToString(), "mass convert"
                                                               , orddetstatus, SchDetdt.Rows[j]["Quantity"].ToString()
                                                               , SchDetdt.Rows[j]["OrderSubCategoryUID"].ToString()
                                                               , SchDetdt.Rows[j]["ORDCTUID"].ToString()
                                                               , SchDetdt.Rows[j]["Amount"].ToString()
                                                               , (NetAmount == "0" ? SchDetdt.Rows[j]["Amount"].ToString() : NetAmount)
                                                               , SchDetdt.Rows[j]["Amount"].ToString()
                                                               , dtPTPck.Rows[0]["PatientPackageUID"].ToString(), OwnerOrganization, patientVisitPayorUID);
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "insert_PatientOrderDetail",
                                                                "Success",
                                                                "patorddetails:" + patorddetails))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                            //packuid

                                                        }//if (retreqdet != "")
                                                        else
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert_RequestDetail",
                                                                "Fail",
                                                                ""))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                    }//if (OrderCateType.ToString().ToLower()=="xray")
                                                }//if (Identype=="REQUEST")
                                                else// for Identype = "ORDER"
                                                {
                                                    patorddetails = db.insert_PatientOrderDetail(SEQ, SchDetdt.Rows[j]["ItemUID"].ToString()
                                                        , IdentTypeforOrderDetail, Cuser, SchDetdt.Rows[j]["BillableItemUID"].ToString(), "mass convert"
                                                        , orddetstatus, SchDetdt.Rows[j]["Quantity"].ToString()
                                                        , SchDetdt.Rows[j]["OrderSubCategoryUID"].ToString()
                                                        , SchDetdt.Rows[j]["ORDCTUID"].ToString()
                                                        , SchDetdt.Rows[j]["Amount"].ToString()
                                                        , (NetAmount == "0" ? SchDetdt.Rows[j]["Amount"].ToString() : NetAmount)
                                                        , SchDetdt.Rows[j]["Amount"].ToString()
                                                        , dtPTPck.Rows[0]["PatientPackageUID"].ToString(), OwnerOrganization, patientVisitPayorUID);
                                                    #region setConvertResult
                                                    if (!clsTempData.setConvertResult(out outMessage2,
                                                        "",
                                                        "",
                                                        "insert_PatientOrderDetail",
                                                        "Success",
                                                        "patorddetails:" + patorddetails))
                                                    {
                                                        MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                    }
                                                    #endregion
                                                    //packuid
                                                }//=================================================================================

                                                //**********************************************************
                                                //INSERT PATIENTBILLABLEITEM SECTION
                                                //IdentifyingUID = SchDetdt.Rows[j]["ItemUID"].ToString()

                                                //**********************************************************

                                                //IdentifyingType = REQUESTITEM , OrderType = REQUEST
                                                //IdentifyingType = ORDITEM , OrderType = PATIENTORDER

                                                if (Identype == "REQUEST")//ถ้าเป็น Order Lab , Xray
                                                {
                                                    if (OrderCateType.ToString().ToLower() == "lab")
                                                    {
                                                        //error
                                                        if(db.Insert_BillableItem(Schdt.Rows[x]["PatientUID"].ToString()
                                                        , patvisituid, SchDetdt.Rows[j]["ItemUID"].ToString(), "'REQUESTITEM'", Cuser, OwnerOrganization
                                                        , SchDetdt.Rows[j]["BSMDDUID"].ToString(), SchDetdt.Rows[j]["Amount"].ToString()
                                                        , (NetAmount == "0" ? SchDetdt.Rows[j]["Amount"].ToString() : NetAmount), SchDetdt.Rows[j]["BillableItemUID"].ToString()
                                                        , SchDetdt.Rows[j]["Quantity"].ToString(), "null", "null", SchDetdt.Rows[j]["Comments"].ToString()
                                                        , "null", "null", dtPTPck.Rows[0]["PatientPackageUID"].ToString(), "'REQUEST'", requid, patorddetails, "Specimen Collected"))
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert_BillableItem",
                                                                "Success",
                                                                ""))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        else
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert_BillableItem",
                                                                "Fail",
                                                                ""))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        //packuid
                                                        countSuccess += 1;
                                                    }
                                                    else//(OrderCateType.ToString().ToLower() == "xray")
                                                    {
                                                        if(db.Insert_BillableItem(Schdt.Rows[x]["PatientUID"].ToString()
                                                        , patvisituid, SchDetdt.Rows[j]["ItemUID"].ToString(), "'REQUESTITEM'", Cuser, OwnerOrganization
                                                        , SchDetdt.Rows[j]["BSMDDUID"].ToString(), SchDetdt.Rows[j]["Amount"].ToString()
                                                        , (NetAmount == "0" ? SchDetdt.Rows[j]["Amount"].ToString() : NetAmount), SchDetdt.Rows[j]["BillableItemUID"].ToString()
                                                        , SchDetdt.Rows[j]["Quantity"].ToString(), "null", "null", SchDetdt.Rows[j]["Comments"].ToString()
                                                        , "null", "null", dtPTPck.Rows[0]["PatientPackageUID"].ToString(), "'REQUEST'", requid, patorddetails, "Executed"))
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert_BillableItem",
                                                                "Success",
                                                                ""))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        else
                                                        {
                                                            #region setConvertResult
                                                            if (!clsTempData.setConvertResult(out outMessage2,
                                                                "",
                                                                "",
                                                                "Insert_BillableItem",
                                                                "Fail",
                                                                ""))
                                                            {
                                                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                            }
                                                            #endregion
                                                        }
                                                        //packuid
                                                        countSuccess += 1;
                                                    }
                                                }
                                                else //ถ้าเป็น Order อื่น ๆ
                                                {

                                                    if(db.Insert_BillableItem(Schdt.Rows[x]["PatientUID"].ToString()
                                                        , patvisituid, SchDetdt.Rows[j]["ItemUID"].ToString(), "'ORDITEM'", Cuser, OwnerOrganization
                                                        , SchDetdt.Rows[j]["BSMDDUID"].ToString(), SchDetdt.Rows[j]["Amount"].ToString()
                                                        , (NetAmount == "0" ? SchDetdt.Rows[j]["Amount"].ToString() : NetAmount), SchDetdt.Rows[j]["BillableItemUID"].ToString()
                                                        , SchDetdt.Rows[j]["Quantity"].ToString(), "null", "null", SchDetdt.Rows[j]["Comments"].ToString()
                                                        , "null", "null", dtPTPck.Rows[0]["PatientPackageUID"].ToString(), "'PATIENTORDER'", patorderuid, patorddetails, "Raised"))
                                                    {
                                                        #region setConvertResult
                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                            "",
                                                            "",
                                                            "Insert_BillableItem",
                                                            "Success",
                                                            ""))
                                                        {
                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        }
                                                        #endregion
                                                    }
                                                    else
                                                    {
                                                        #region setConvertResult
                                                        if (!clsTempData.setConvertResult(out outMessage2,
                                                            "",
                                                            "",
                                                            "Insert_BillableItem",
                                                            "Fail",
                                                            ""))
                                                        {
                                                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                                        }
                                                        #endregion
                                                    }
                                                    //packuid
                                                    countSuccess += 1;

                                                    //db.Insert_PatientBillableItem(SchDetdt.Rows[j]["UID"].ToString()
                                                    //                                        , packuid, patorddetails, "ORDITEM", patorderuid, "Raised", OwnerOrganization);

                                                }
                                            }//if (flaginsertPatientOrder)
                                        }//if (catdt.Rows[i]["Value"].ToString().ToLower() == SchDetdt.Rows[j][""].ToString())

                                    }//for (int j = 0; j < SchDetdt.Rows.Count; j++)
                                }//for (int i = 0; i < catdt.Rows.Count; i++)  ลูปตาม OrderCat

                                //=================== ส่ง EN ไป update ใน table Patient ของโปรแกรม Contact Checkup
                                string strPayor = db.Select_Payor(patvisituid);
                                db.Update_EN_IN_ContactCheckup(Schdt.Rows[x]["ScheduleOrderNumber"].ToString(), visitno, strPayor);
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "ส่ง EN ไป update ใน table Patient ของโปรแกรม Contact Checkup",
                                    "Success",
                                    "ScheduleOrderNumber:"+ Schdt.Rows[x]["ScheduleOrderNumber"].ToString() + " EN:"+ visitno))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion

                                //==================== Update ใน table tblPatientList ว่าคนไข้คนนี้ได้ทำการ Convert แล้ว
                                Update_Status_In_TblPatientList(Schdt.Rows[x]["ScheduleOrderNumber"].ToString());
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "Update ใน table tblPatientList ว่าคนไข้คนนี้ได้ทำการ Convert แล้ว",
                                    "Success",
                                    "ScheduleOrderNumber:" + Schdt.Rows[x]["ScheduleOrderNumber"].ToString()))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion

                                //========= Insert table PatientServiceEvent เพื่อให้สามารถค้นหาหน้า Patient List ได้
                                db.Insert_PatientServiceEvent(patvisituid);
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "Insert table PatientServiceEvent เพื่อให้สามารถค้นหาหน้า Patient List ได้",
                                    "Success",
                                    "PatientVisitUID:" + patvisituid))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion
                            }
                            else
                            {
                                #region setConvertResult
                                if (!clsTempData.setConvertResult(out outMessage2,
                                    "",
                                    "",
                                    "หา BillableItem ของ Order ของคนไข้คนนี้ตาม BSMDD",
                                    "Not Found",
                                    "UID:" + Schdt.Rows[x]["UID"].ToString()))
                                {
                                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                #endregion
                            }
                        }
                        else
                        {
                            #region setConvertResult
                            if (!clsTempData.setConvertResult(out outMessage2,
                                "",
                                "",
                                "หา BillPackageItem ทั้งหมดของคนไข้คนนี้",
                                "Not Found",
                                "UID:" + Schdt.Rows[x]["UID"].ToString()))
                            {
                                MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        countExist += 1;
                        #region setConvertResult
                        if (!clsTempData.setConvertResult(out outMessage2,
                            "",
                            "",
                            "เช็คว่ามีการ Convert แล้วหรือยัง",
                            "Yes",
                            "PatientVisitUID:" + Schdt.Rows[x]["PatientVisitUID"].ToString()))
                        {
                            MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage2, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        #endregion
                    }
                    #region MassConvertLog
                    if (MassConvertLogEnable == "true")
                    {
                        if (MassConvertLogUID != "")
                        {
                            clsSQL.Execute("UPDATE MassConvertLog SET EndWhen=GETDATE() WHERE UID="+MassConvertLogUID+";", clsSQLNative.DBType.SQLServer, "MobieConnect");
                        }
                    }
                    #endregion
                }//
            }//if (Schdt != null && Schdt.Rows.Count > 0)
            else
            {
                if (!clsTempData.setConvertResult(out outMessage,
                        "",
                        "",
                        "Select_PatientScheduleOrder",
                        "Not found",
                        "OrderNo:" + OrderNo))
                {
                    MessageBox.Show("เกิดข้อผิดพลาดขณะสร้างหน้าสรุปการ Convert" + Environment.NewLine + outMessage, "setConvertResult", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                countFail += 1;
            }
        }
 private void UpdateCheckListStatus(string HN, string DOE)
 {
     #region Variable
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
     var strSQL = new StringBuilder();
     var dt = new DataTable();
     var clsSQL = new clsSQLNative();
     #endregion
     #region Procedure
     try
     {
         #region หาข้อมูลอ้างอิงกับเทเบิ้ล tblCheckList
         DOE = DateTime.Parse(DOE).ToString("yyyy-MM-dd HH:mm");
         #region SQLQuery
         strSQL.Append("SELECT TOP 1 ");
         strSQL.Append("rowguid PatientUID,Episode EN,ProChkList,Name,LastName ");
         strSQL.Append("FROM ");
         strSQL.Append("Patient ");
         strSQL.Append("WHERE ");
         strSQL.Append("HN='" + HN + "' ");
         strSQL.Append("AND DOE='" + DOE + "';");
         #endregion
         dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
         if (dt == null || dt.Rows.Count == 0)
         {
             return;
         }
         strSQL.Length = 0; strSQL.Capacity = 0;
         #endregion
         #region อัพเดทสถานะในเทเบิ้ล tblCheckList
         strSQL.Append("UPDATE tblCheckList SET ");
         strSQL.Append("ProStatus=2,ModifyDate=GETDATE() ");
         strSQL.Append("WHERE ");
         strSQL.Append("(PatientUID='" + dt.Rows[0]["PatientUID"].ToString().Trim() + "' OR EN='" + dt.Rows[0]["EN"].ToString().Trim() + "') ");
         strSQL.Append("AND ProStatus=1;");
         #endregion
         clsSQL.Execute(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
     }
     catch (Exception) { }
     #endregion
 }
 private void setPayor()
 {
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
     #region Variable
     var strSQL = "SELECT DISTINCT Payor "+
         "FROM Patient "+
         "INNER JOIN tblCheckList ON Patient.rowguid=tblCheckList.PatientUID AND tblCheckList.WFID=1 "+
         "WHERE tblCheckList.RegDate BETWEEN '" + dtpDateFrom.Value.ToString("yyyy-MM-dd")+" "+dtpTimeFrom.Value.ToString("HH:mm") + "' AND '" + dtpDateTo.Value.ToString("yyyy-MM-dd")+" "+dtpTimeTo.Value.ToString("HH:mm") + "' ORDER BY Payor ASC;";
     var clsSQL = new clsSQLNative();
     var dt = new DataTable();
     #endregion
     #region Procedure
     if (ddlPayor.Items.Count > 0)
     {
         ddlPayor.Items.Clear();
     }
     dt = clsSQL.Bind(strSQL, clsSQLNative.DBType.SQLServer, "MobieConnect");
     if(dt!=null && dt.Rows.Count > 0)
     {
         for (int i = 0; i < dt.Rows.Count; i++)
         {
             ddlPayor.Items.Add(dt.Rows[i]["Payor"].ToString().Trim());
         }
         ddlPayor.SelectedIndex = 0;
     }
     ddlPayor.Items.Insert(0, new RadListDataItem("- ทั้งหมด -", "NULL"));
     ddlPayor.SelectedIndex = 0;
     #endregion
 }
 public DataTable Select_OrderNo(string strSQL)
 {
     DataTable dt = new DataTable();
     clsSQLNative clsSQL = new clsSQLNative();
     dt = clsSQL.Bind(strSQL, clsSQLNative.DBType.SQLServer, "csBConnect");
     return dt;
 }
 public bool IsConverted(string forename,string surname,string doe,string doeFrom,string doeTo)
 {
     System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
     #region Variable
     var result = false;
     var clsSQL = new clsSQLNative();
     var strSQL = new StringBuilder();
     var dt = new DataTable();
     var dtPatientScheduleOrder = new DataTable();
     #endregion
     #region Procedure
     if(_dtIsConverted== null || _dtIsConverted.Rows.Count == 0)
     {
         #region SQLQuery
         strSQL.Append("SELECT PatientVisitUID,ScheduleOrderNumber,p.Forename,p.Surname,ps.ScheduledDttm DOE FROM [PatientScheduleOrder] ps ");
         strSQL.Append("INNER JOIN Patient p on p.UID = ps.PatientUID ");
         strSQL.Append("AND ps.ScheduledDttm BETWEEN '" + Convert.ToDateTime(doeFrom).ToString("yyyy-MM-dd HH:mm:ss") + "' AND '" + Convert.ToDateTime(doeTo).ToString("yyyy-MM-dd HH:mm:ss") + "' ");
         strSQL.Append("AND ps.StatusFlag = 'A';");
         #endregion
         _dtIsConverted = new DataTable();
         _dtIsConverted = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "csBConnect");
     }
     if(_dtIsConverted!=null && _dtIsConverted.Rows.Count > 0)
     {
         DataRow[] drs = _dtIsConverted.Select("Forename='"+forename.Trim()+"' AND Surname='"+surname.Trim()+"' AND DOE='"+DateTime.Parse(doe).ToString("yyyy-MM-dd HH:mm")+ "'");
         if (drs.Length > 0)
         {
             for(int i = 0; i < drs.Length; i++)
             {
                 if (string.IsNullOrEmpty(drs[i]["PatientVisitUID"].ToString()) || drs[i]["PatientVisitUID"].ToString() == "0")
                 {
                     //result = false;
                 }
                 else
                 {
                     result = true;
                 }
             }
         }
     }
     /*
     #region PatientScheduleOrder
     #region SQLQuery
     strSQL.Append("SELECT TOP 1 ScheduleOrderNumber FROM [PatientScheduleOrder] ps ");
     strSQL.Append("INNER JOIN Patient p on p.UID = ps.PatientUID ");
     strSQL.Append("AND p.Forename = N'" + forename.Trim() + "' ");
     strSQL.Append("AND Surname = N'" + surname.Trim() + "' ");
     strSQL.Append("AND ps.ScheduledDttm BETWEEN '" + Convert.ToDateTime(doeFrom).ToString("yyyy-MM-dd HH:mm:ss") + "' AND '" + Convert.ToDateTime(doeTo).ToString("yyyy-MM-dd HH:mm:ss") + "' ");
     strSQL.Append("AND ps.StatusFlag = 'A';");
     #endregion
     dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "csBConnect");
     if(dt!=null && dt.Rows.Count > 0)
     {
         strSQL.Length = 0;strSQL.Capacity = 0;
         strSQL.Append("SELECT *,(SELECT PASID FROM Patient WHERE Patient.UID = PatientScheduleOrder.PatientUID AND Patient.StatusFlag='A') HN FROM PatientScheduleOrder WHERE ScheduleOrderNumber = '" + dt.Rows[0]["ScheduleOrderNumber"].ToString() + "' AND StatusFlag='A';");
         dtPatientScheduleOrder = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "csBConnect");
         if(dtPatientScheduleOrder!=null && dtPatientScheduleOrder.Rows.Count > 0)
         {
             for(int i = 0; i < dtPatientScheduleOrder.Rows.Count; i++)
             {
                 if (string.IsNullOrEmpty(dtPatientScheduleOrder.Rows[i]["PatientVisitUID"].ToString()) || dtPatientScheduleOrder.Rows[i]["PatientVisitUID"].ToString() == "0")
                 {
                     //result = false;
                 }
                 else
                 {
                     result = true;
                 }
             }
         }
     }
     #endregion
     */
     #endregion
     return result;
 }
    /// <summary>
    /// ใช้ในหน้า MapPayor
    /// </summary>
    /// <param name="searchName"></param>
    /// <returns></returns>
    public DataTable getPayor(string searchName="")
    {
        #region Variable
        var clsSQL = new clsSQLNative();
        var strSQL = new StringBuilder();
        #endregion
        #region Procedure
        if(_dtPayor==null || _dtPayor.Rows.Count==0)
        {
            _dtPayor = new DataTable();
            strSQL.Append("SELECT P.Payor,COUNT(MP.UID) CountMap ");
            strSQL.Append("FROM Patient P WITH(NOLOCK) ");
            strSQL.Append("LEFT JOIN MassConvertPayorMap MP WITH(NOLOCK) ON P.Payor = MP.Payor AND MP.StatusFlag = 'A' ");
            strSQL.Append("WHERE P.Payor <> '' AND NOT P.Payor IS NULL ");
            strSQL.Append("GROUP BY P.Payor ");
            strSQL.Append("ORDER BY P.Payor;");
            _dtPayor = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
        }
        dtPayorSearch = new DataTable();
        dtPayorSearch = _dtPayor.Copy();

        if (searchName.Trim() != "")
        {
            if (dtPayorSearch != null && dtPayorSearch.Rows.Count > 0)
            {
                DataView dv = dtPayorSearch.DefaultView;
                dv.RowFilter = "Payor LIKE '%" + searchName + "%'";
                dtPayorSearch = dv.ToTable();
            }
        }
        #endregion
        return dtPayorSearch;
    }
 private void setPayorDetail(int MassConvertPayorMapUID)
 {
     #region Variable
     var dt = new DataTable();
     var strSQL = new StringBuilder();
     var clsSQL = new clsSQLNative();
     #endregion
     #region Procedure
     #region Payor
     try
     {
         #region SQLQuery
         strSQL.Append("SELECT InsuranceCompanyUID,PayorAgreementUID,PayorDetailUID,PolicyMasterUID FROM MassConvertPayorMap WHERE UID="+ MassConvertPayorMapUID.ToString() + " AND StatusFlag='A';");
         #endregion
         dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
         if(dt!=null && dt.Rows.Count > 0)
         {
             if (dt.Rows[0]["InsuranceCompanyUID"].ToString() != "")
             {
                 ddlPayor.SelectedValue = dt.Rows[0]["InsuranceCompanyUID"].ToString();
             }
             if (dt.Rows[0]["PayorAgreementUID"].ToString() != "")
             {
                 ddlAgreement.SelectedValue = dt.Rows[0]["PayorAgreementUID"].ToString();
             }
             if (dt.Rows[0]["PayorDetailUID"].ToString() != "")
             {
                 ddlPayorOffice.SelectedValue = dt.Rows[0]["PayorDetailUID"].ToString();
             }
             if (dt.Rows[0]["PolicyMasterUID"].ToString() != "")
             {
                 ddlPolicy.SelectedValue = dt.Rows[0]["PolicyMasterUID"].ToString();
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "setPayorDetail(UID)", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     #endregion
     #endregion
 }
 private void btSave_Click(object sender, EventArgs e)
 {
     #region Variable
     var clsSQL = new clsSQLNative();
     var clsTempData = new clsTempData();
     var strSQL = new StringBuilder();
     var MassConvertPayorMapUID = "";
     var PayorUID = "";
     var AgreementUID = "";
     var PayorOfficeUID = "";
     var PolicyUID = "";
     #endregion
     #region Procedure
     foreach (ListViewItem lvi in lvDOE.SelectedItems)
     {
         MassConvertPayorMapUID = lvi.SubItems[0].Text;
     }
     #region Validation
     if (MassConvertPayorMapUID.Trim()=="")
     {
         MessageBox.Show("โปรดเลือกช่วงวันที่ออกตรวจก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         lvDOE.Focus();
         return;
     }
     if (lvPayor.SelectedItems.Count == 0)
     {
         MessageBox.Show("โปรดเลือกรายชื่อบริษัทก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         lvPayor.Focus();
         return;
     }
     if (lvDOE.SelectedItems.Count == 0)
     {
         MessageBox.Show("โปรดเลือกช่วงวันที่ออกตรวจก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         lvDOE.Focus();
         return;
     }
     PayorUID = getDropDownListValue(ddlPayor, "UID");
     if (PayorUID == "0")
     {
         MessageBox.Show("โปรดระบุชื่อ Payor ก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         ddlPayor.Focus();
         return;
     }
     AgreementUID = getDropDownListValue(ddlAgreement, "UID");
     if (AgreementUID.Trim() == "")
     {
         MessageBox.Show("โปรดระบุชื่อ Agreement ก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         ddlAgreement.Focus();
         return;
     }
     PayorOfficeUID = getDropDownListValue(ddlPayorOffice, "UID");
     if (PayorOfficeUID.Trim() == "")
     {
         MessageBox.Show("โปรดระบุชื่อ PayorOffice ก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         ddlPayorOffice.Focus();
         return;
     }
     PolicyUID = getDropDownListValue(ddlPolicy, "UID");
     if (PolicyUID.Trim() == "")
     {
         MessageBox.Show("โปรดระบุชื่อ Policy ก่อน", "Please choose", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         ddlPolicy.Focus();
         return;
     }
     #endregion
     #region SQLQuery
     strSQL.Append("UPDATE ");
     strSQL.Append("MassConvertPayorMap ");
     strSQL.Append("SET ");
     strSQL.Append("InsuranceCompanyUID=" + getDropDownListValue(ddlPayor, "UID") + ",");
     strSQL.Append("PayorAgreementUID=" + getDropDownListValue(ddlAgreement, "UID") + ",");
     strSQL.Append("PayorDetailUID=" + getDropDownListValue(ddlPayorOffice, "UID") + ",");
     strSQL.Append("PolicyMasterUID=" + getDropDownListValue(ddlPolicy, "UID") + ",");
     strSQL.Append("MWhen=GETDATE(),");
     strSQL.Append("MUser='******' ");
     strSQL.Append("WHERE ");
     strSQL.Append("UID="+ MassConvertPayorMapUID + ";");
     #endregion
     if (clsSQL.Execute(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect"))
     {
         clsTempData.dtPayor = null;
         setPayor(txtPayorSearch.Text.Trim());
         MessageBox.Show("บันทึกข้อมูลเสร็จสิ้น", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else
     {
         MessageBox.Show("เกิดข้อผิดพลาดขณะบันทึกข้อมูล"+Environment.NewLine+Environment.NewLine+strSQL.ToString(), "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     #endregion
 }
        private void setDOE()
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            if (_massConvertPayorMapUID != 0)
            {
                var dt = new DataTable();
                var clsSQL = new clsSQLNative();
                var strSQL = new StringBuilder();

                strSQL.Append("SELECT Payor,DOEFrom,DOETo FROM MassConvertPayorMap WHERE StatusFlag='A' AND UID="+_massConvertPayorMapUID);
                dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
                if(dt!=null && dt.Rows.Count > 0)
                {
                    btDOESubmit.Enabled = true; btDelete.Enabled = true;
                    lblPayor.Text = dt.Rows[0]["Payor"].ToString();
                    dtDOEFrom.Value = DateTime.Parse(dt.Rows[0]["DOEFrom"].ToString());
                    dtDOETo.Value = DateTime.Parse(dt.Rows[0]["DOETo"].ToString());
                }
                else
                {
                    MessageBox.Show("ไม่พบข้อมูลช่วงวันที่ออกตรวจที่คุณเลือก");
                }
            }
            else
            {
                MessageBox.Show("โปรดเลือกช่วงวันที่ออกตรวจก่อน");
            }
        }
 public DataTable Select_PatientScheduleOrder(string ScheduleOrderNumber)
 {
     DataTable dt = new DataTable();
     clsSQLNative clsSQL = new clsSQLNative();
     dt = clsSQL.Bind("Select *,(select pasid from Patient where Patient.UID = PatientScheduleOrder.PatientUID and Patient.StatusFlag = 'A') HN from PatientScheduleOrder where ScheduleOrderNumber = '" + ScheduleOrderNumber + "' and statusflag = 'A'",
         clsSQLNative.DBType.SQLServer,
         "csBConnect");
     return dt;
 }
 private void txtHN_TextChanged(object sender, EventArgs e)
 {
     if (txtHN.Text.Length == 12)
     {
         System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
         var clsSQL = new clsSQLNative();
         var strSQL = "";
         db = new SQL();
         DataTable dtPatient = new DataTable();
         dtPatient = db.Select_Patient_By_HN(txtHN.Text.Trim());
         if (dtPatient.Rows.Count > 0 && dtPatient != null)
         {
             MassConvertLogHN = dtPatient.Rows[0]["PASID"].ToString();
             strSQL = "SELECT TOP 1 rowguid FROM Patient WHERE HN='" + MassConvertLogHN + "' /*AND DOE BETWEEN '" + dtpDateFrom.Value.ToString("yyyy-MM-dd HH:mm") + "' AND '" + dtpDateTo.Value.ToString("yyyy-MM-dd HH:mm") + "'*/ ORDER BY DOE DESC;";
             MassConvertLogPatientUID = clsSQL.Return(strSQL, clsSQLNative.DBType.SQLServer, "MobieConnect");
             txtPTName.Text = dtPatient.Rows[0]["Forename"] + "  " + dtPatient.Rows[0]["Surname"] + "";
         }
     }
 }
 public DataTable getPayorMapSummary()
 {
     #region Variable
     var strSQL = new StringBuilder();
     var dt = new DataTable();
     var clsSQL = new clsSQLNative();
     #endregion
     #region Procedure
     #region SQLQuery
     strSQL.Append("SELECT ");
     strSQL.Append("MP.Payor Company, MP.DOEFrom,MP.DOETo,IC.CompanyName Payor, PA.Name Agreement, PD.PayorName PayorOffice, PM.PolicyName Policy ");
     strSQL.Append("FROM ");
     strSQL.Append("MassConvertPayorMap MP ");
     strSQL.Append("LEFT JOIN " + System.Configuration.ConfigurationManager.AppSettings["LinkServer"] + ".InsuranceCompany IC ON MP.InsuranceCompanyUID = IC.UID ");
     strSQL.Append("LEFT JOIN " + System.Configuration.ConfigurationManager.AppSettings["LinkServer"] + ".PayorAgreement PA ON MP.PayorAgreementUID = PA.UID ");
     strSQL.Append("LEFT JOIN " + System.Configuration.ConfigurationManager.AppSettings["LinkServer"] + ".PayorDetail PD ON MP.PayorDetailUID = PD.UID ");
     strSQL.Append("LEFT JOIN " + System.Configuration.ConfigurationManager.AppSettings["LinkServer"] + ".PolicyMaster PM ON MP.PolicyMasterUID = PM.UID ");
     strSQL.Append("WHERE ");
     strSQL.Append("MP.StatusFlag = 'A' ");
     strSQL.Append("ORDER BY ");
     strSQL.Append("MP.Payor,MP.DOEFrom;");
     #endregion
     dt = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
     #endregion
     return dt;
 }
 private void setPayor()
 {
     #region Variable
     var strSQL = "SELECT DISTINCT Payor FROM Patient WHERE DOE BETWEEN '" + dtDOEFrom.Value.ToString("yyyy-MM-dd HH:mm") + "' AND '" + dtDOETo.Value.ToString("yyyy-MM-dd HH:mm") + "' ORDER BY Payor ASC;";
     var clsSQL = new clsSQLNative();
     var dt = new DataTable();
     #endregion
     #region Procedure
     if (cbPayor.Items.Count > 0) cbPayor.Items.Clear();
     dt = clsSQL.Bind(strSQL, clsSQLNative.DBType.SQLServer, "MobieConnect");
     var item = new ComboboxItem();
     item.Text = "- ทั้งหมด -";
     item.Value = "ALL";
     cbPayor.Items.Add(item);
     if(dt!=null && dt.Rows.Count > 0)
     {
         for(int i = 0; i < dt.Rows.Count; i++)
         {
             item = new ComboboxItem();
             item.Text = dt.Rows[i]["Payor"].ToString().Trim();
             item.Value = dt.Rows[i]["Payor"].ToString().Trim();
             cbPayor.Items.Add(item);
         }
     }
     cbPayor.SelectedIndex = 0;
     #endregion
 }
 /// <summary>
 /// เช็ค MassConvertLog ว่ามีการ Convert ไปหรือยัง หรือ กำลัง Convert อยู่รึปล่าว
 /// </summary>
 /// <param name="patientGUID"></param>
 /// <returns></returns>
 public bool IsConverted(string patientGUID)
 {
     #region Variable
     var result = false;
     var clsSQL = new clsSQLNative();
     var strSQL = "";
     #endregion
     #region Procedure
     strSQL = "SELECT COUNT(UID) FROM MassConvertLog WHERE PatientUID='"+patientGUID+"';";
     if (clsSQL.Return(strSQL, clsSQLNative.DBType.SQLServer, "MobieConnect") !="0")
     {
         result = true;
     }
     #endregion
     return result;
 }
        private void btFind_Click(object sender, EventArgs e)
        {
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            ExcData exc = new ExcData();
            if (gvPatient.Rows.Count > 0) {
                gvPatient.DataSource = null;
                gvPatient.Rows.Clear();
            }

            string DateFrom = dtpDateFrom.Value.ToString("yyyy-MM-dd") + " " + dtpTimeFrom.Value.ToString("HH:mm");
            string DateTo = dtpDateTo.Value.ToString("yyyy-MM-dd") + " " + dtpTimeTo.Value.ToString("HH:mm");
            string SQL = string.Empty;
            var strSQL = new StringBuilder();
            var clsSQL = new clsSQLNative();
            var clsTempData = new clsTempData();

            /*
            SQL = "SELECT [NO] ,HN,Forename as Name , Surname as LastName , DOE , [ChildCompany],[STS],[SyncWhen],'0' IsConvertPreOrder FROM [tblPatientList] WHERE DOE BETWEEN '" + DateFrom + "' AND '" + DateTo + "' ";
            if (rbAll.Checked)
            {
                SQL += "AND STS in ('A','R') ";
            }
            else if (rbNotRegister.Checked)
            {
                SQL += "AND STS='A' ";
            }
            else if (rbRegister.Checked)
            {
                SQL += "AND STS='R' ";
            }
            if (ddlPayor.SelectedItem.Value.ToString() != "")
            {
                SQL += "AND Payor='"+ddlPayor.SelectedItem.Value.ToString()+"' ";
            }
            SQL += "ORDER BY SyncWhen,NO";
            */
            #region SQLQuery
            strSQL.Append("SELECT ");
            strSQL.Append("P.NO,");
            strSQL.Append("P.HN,");
            strSQL.Append("LTRIM(REPLACE(P.Name, P.PreName, ''))Name,");
            strSQL.Append("P.LastName,");
            strSQL.Append("P.DOE,");
            strSQL.Append("PL.ChildCompany,");
            strSQL.Append("P.StatusOnMobile STS,");
            strSQL.Append("P.SyncWhen,'0' IsConvertPreOrder,");
            strSQL.Append("P.rowguid PatientUID ");
            strSQL.Append("FROM ");
            strSQL.Append("Patient P ");
            strSQL.Append("LEFT JOIN tblPatientList PL ON P.rowguid = PL.PatientUID ");
            if (rbRegister.Checked)
            {
                strSQL.Append("INNER JOIN tblCheckList CL ON P.rowguid = CL.PatientUID AND CL.WFID=1 AND (CL.ProStatus='3' OR CL.ProStatus='2') ");
            }
            strSQL.Append("WHERE ");
            strSQL.Append("(P.DOE BETWEEN '"+DateFrom+"' AND '"+DateTo+"') ");
            strSQL.Append("AND PL.HNStatus='A' ");
            if (rbAll.Checked)
            {
                //SQL += "AND StatusOnMobile in ('A','R') ";
            }
            else if (rbNotRegister.Checked)
            {
                strSQL.Append("AND StatusOnMobile IS NULL ");
            }
            else if (rbRegister.Checked)
            {
                strSQL.Append("AND StatusOnMobile='R' ");
            }
            if (ddlPayor.SelectedItem.ToString() != "- ทั้งหมด -")
            {
                strSQL.Append("AND Payor='" + ddlPayor.SelectedItem.ToString() + "' ");
            }
            strSQL.Append("ORDER BY SyncWhen,NO;");
            #endregion
            dtPatient = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
            strSQL.Length = 0;strSQL.Capacity = 0;
            clsTempData.dtIsConverted = null;
            if(dtPatient!=null && dtPatient.Rows.Count > 0)
            {
                try
                {
                    ddlIsConverted.SelectedIndex = 0;
                }
                catch (Exception) { }
                #region Check IsConvertPreOrder
                for(int i = 0; i < dtPatient.Rows.Count; i++)
                {
                    if (clsTempData.IsConverted(
                        dtPatient.Rows[i]["Name"].ToString(),
                        dtPatient.Rows[i]["LastName"].ToString(),
                        dtPatient.Rows[i]["DOE"].ToString(),
                        DateFrom,DateTo))
                    {
                        dtPatient.Rows[i]["IsConvertPreOrder"] = "1";
                    }
                }
                dtPatient.AcceptChanges();
                #endregion
                bs.DataSource = dtPatient;
                gvPatient.DataSource = bs;

                gvPatient.Columns["No"].Width = 20;
                gvPatient.Columns["HN"].Width = 100;
                gvPatient.Columns["Name"].Width = 100;
                gvPatient.Columns["LastName"].Width = 100;
                gvPatient.Columns["DOE"].Width = 130;
                gvPatient.Columns["NO"].Width = 40;
                gvPatient.Columns["ChildCompany"].Width = 170;
                gvPatient.Columns["STS"].Width = 40;
                gvPatient.Columns["SyncWhen"].Width = 130;
                gvPatient.Columns["IsConvertPreOrder"].IsVisible = false;
                gvPatient.Columns["PatientUID"].IsVisible = false;
                gvPatient.Refresh();

                lblCountPT.Text = dtPatient.Rows.Count.ToString() + " Record.";
                lblIsConvertCount.Text = dtPatient.Rows.Count.ToString();

                CheckAll();
            }
            else
            {
                MessageBox.Show("ไม่พบข้อมูลตามเงื่อนไขที่ต้องการ", "No data.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                lblCountPT.Text = "0 Record.";
                bs.DataSource = null;
                gvPatient.DataSource = bs;
                gvPatient.Refresh();
            }
        }
        private void Find()
        {
            //if (ddlIsConverted.InvokeRequired)
            //{
            //    ddlIsConverted.Invoke(new MethodInvoker(delegate
            //    {
            //        ddlIsConverted.SelectedIndex = 0;
            //    }));
            //}
            //else
            //{
            //    ddlIsConverted.SelectedIndex = 0;
            //}
            setRadButton(btFind, false);
            setPictureBox(pbCountPT, true);
            setLabel(lblCountPT, "");
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
            ExcData exc = new ExcData();
            if (gvPatient.InvokeRequired)
            {
                gvPatient.Invoke(new MethodInvoker(delegate
                {
                    if (gvPatient.Rows.Count > 0)
                    {
                        gvPatient.DataSource = null;
                        gvPatient.Rows.Clear();
                    }
                }));
            }
            else
            {
                if (gvPatient.Rows.Count > 0)
                {
                    gvPatient.DataSource = null;
                    gvPatient.Rows.Clear();
                }
            }
            string DateFrom = dtpDateFrom.Value.ToString("yyyy-MM-dd") + " " + dtpTimeFrom.Value.ToString("HH:mm");
            string DateTo = dtpDateTo.Value.ToString("yyyy-MM-dd") + " " + dtpTimeTo.Value.ToString("HH:mm");
            string SQL = string.Empty;
            var strSQL = new StringBuilder();
            var clsSQL = new clsSQLNative();
            var clsTempData = new clsTempData();
            var payor = "";

            #region SQLQuery
            strSQL.Append("SELECT ");
            strSQL.Append("P.NO,");
            strSQL.Append("P.HN,");
            strSQL.Append("LTRIM(REPLACE(P.Name, P.PreName, ''))Name,");
            strSQL.Append("P.LastName,");
            strSQL.Append("P.DOE,");
            strSQL.Append("P.Payor,");
            strSQL.Append("PL.ChildCompany,");
            strSQL.Append("P.StatusOnMobile STS,");
            strSQL.Append("CL.RegDate RegisterDate,");
            strSQL.Append("P.rowguid PatientUID,");
            strSQL.Append("P.SyncWhen,'0' IsConvertPreOrder ");
            strSQL.Append("FROM ");
            strSQL.Append("Patient P ");
            strSQL.Append("INNER JOIN tblCheckList CL ON P.rowguid = CL.PatientUID AND WFID = 1 ");
            if (rbRegister.Checked)
            {
                strSQL.Append("AND (CL.ProStatus='2' OR CL.ProStatus='3') ");
            }
            strSQL.Append("LEFT JOIN tblPatientList PL ON P.rowguid = PL.PatientUID ");
            strSQL.Append("WHERE ");
            strSQL.Append("(CL.RegDate BETWEEN '" + DateFrom + "' AND '" + DateTo + "') ");
            if (rbAll.Checked)
            {
                //SQL += "AND StatusOnMobile in ('A','R') ";
            }
            else if (rbNotRegister.Checked)
            {
                strSQL.Append("AND StatusOnMobile IS NULL ");
            }
            else if (rbRegister.Checked)
            {
                strSQL.Append("AND StatusOnMobile='R' ");
            }
            if (ddlPayor.InvokeRequired)
            {
                ddlPayor.Invoke(new MethodInvoker(delegate
                {
                    if (ddlPayor.SelectedItem.ToString() != "- ทั้งหมด -")
                    {
                        payor = ddlPayor.SelectedItem.ToString();
                        payorChoose = payor;
                        strSQL.Append("AND Payor='" + payor + "' ");
                    }
                }));
            }
            else
            {
                if (ddlPayor.SelectedItem.ToString() != "- ทั้งหมด -")
                {
                    payor = ddlPayor.SelectedItem.ToString();
                    payorChoose = payor;
                    strSQL.Append("AND Payor='" + payor + "' ");
                }
            }
            strSQL.Append("ORDER BY ");
            //strSQL.Append("CL.RegDate ASC;");
            strSQL.Append("DOE DESC;");
            #endregion
            dtPatient = clsSQL.Bind(strSQL.ToString(), clsSQLNative.DBType.SQLServer, "MobieConnect");
            strSQL.Length = 0; strSQL.Capacity = 0;
            clsTempData.dtIsConverted = null;
            if (dtPatient != null && dtPatient.Rows.Count > 0)
            {
                #region Find Min&Max DOE
                var col = dtPatient.Columns["DOE"];
                var minDOE = dtPatient.AsEnumerable()
                    .Select(cols => cols.Field<DateTime>(col.ColumnName))
                    .OrderBy(p => p.Ticks)
                    .FirstOrDefault();
                var maxDOE = dtPatient.AsEnumerable()
                    .Select(cols => cols.Field<DateTime>(col.ColumnName))
                    .OrderByDescending(p => p.Ticks)
                    .FirstOrDefault();
                #endregion
                try
                {
                    //setComboBox(ddlIsConverted, 0);
                }
                catch (Exception) { }
                #region Check IsConvertPreOrder
                for (int i = 0; i < dtPatient.Rows.Count; i++)
                {
                    if (clsTempData.IsConverted(
                        dtPatient.Rows[i]["Name"].ToString(),
                        dtPatient.Rows[i]["LastName"].ToString(),
                        dtPatient.Rows[i]["DOE"].ToString(),
                        minDOE.ToString("yyyy-MM-dd HH:mm"), maxDOE.ToString("yyyy-MM-dd HH:mm")))
                    {
                        dtPatient.Rows[i]["IsConvertPreOrder"] = "1";
                    }
                }
                dtPatient.AcceptChanges();
                #endregion
                #region SearchIsConvertFilter
                /*
                if (ddlIsConverted.InvokeRequired)
                {
                    ddlIsConverted.Invoke(new MethodInvoker(delegate
                    {
                        if (ddlIsConverted.SelectedIndex > 0)
                        {
                            DataView dv = dtPatient.DefaultView;
                            if (ddlIsConverted.SelectedItem.ToString() == "เฉพาะที่ยังไม่ Convert")
                            {
                                dv.RowFilter = "IsConvertPreOrder=0";

                            }
                            else if(ddlIsConverted.SelectedItem.ToString() == "เฉพาะที่ Convert แล้ว")
                            {
                                dv.RowFilter = "IsConvertPreOrder=1";
                            }
                            dtPatient = dv.ToTable();
                        }
                    }));
                }
                */
                #endregion
                if (gvPatient.InvokeRequired)
                {
                    gvPatient.Invoke(new MethodInvoker(delegate
                    {
                        bs.DataSource = dtPatient;
                        gvPatient.DataSource = bs;
                        gvPatient.Columns["No"].Width = 20;
                        gvPatient.Columns["HN"].Width = 100;
                        gvPatient.Columns["Name"].Width = 100;
                        gvPatient.Columns["LastName"].Width = 100;
                        gvPatient.Columns["DOE"].Width = 130;
                        gvPatient.Columns["NO"].Width = 40;
                        gvPatient.Columns["Payor"].Width = 170;
                        gvPatient.Columns["ChildCompany"].Width = 170;
                        gvPatient.Columns["STS"].Width = 40;
                        gvPatient.Columns["RegisterDate"].Width = 130;
                        gvPatient.Columns["SyncWhen"].Width = 130;
                        gvPatient.Columns["IsConvertPreOrder"].IsVisible = false;
                        gvPatient.Columns["PatientUID"].IsVisible = false;
                        gvPatient.Refresh();
                    }));
                }
                else
                {
                    bs.DataSource = dtPatient;
                    gvPatient.DataSource = bs;
                    gvPatient.Columns["No"].Width = 20;
                    gvPatient.Columns["HN"].Width = 100;
                    gvPatient.Columns["Name"].Width = 100;
                    gvPatient.Columns["LastName"].Width = 100;
                    gvPatient.Columns["DOE"].Width = 130;
                    gvPatient.Columns["NO"].Width = 40;
                    gvPatient.Columns["Payor"].Width = 170;
                    gvPatient.Columns["ChildCompany"].Width = 170;
                    gvPatient.Columns["STS"].Width = 40;
                    gvPatient.Columns["RegisterDate"].Width = 130;
                    gvPatient.Columns["SyncWhen"].Width = 130;
                    gvPatient.Columns["IsConvertPreOrder"].IsVisible = false;
                    gvPatient.Columns["PatientUID"].IsVisible = false;
                    gvPatient.Refresh();
                }
                setLabel(lblCountPT, dtPatient.Rows.Count.ToString() + " Record.");
                setLabel(lblIsConvertCount, string.Format("พบข้อมูลตรงเงื่อนไข {0} รายการ", dtPatient.Rows.Count.ToString()));
                CheckAll();
                IsConvertFilter();
            }
            else
            {
                MessageBox.Show("ไม่พบข้อมูลตามเงื่อนไขที่ต้องการ", "No data.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                setLabel(lblCountPT, "0 Record.");
                bs.DataSource = null;
                if (gvPatient.InvokeRequired)
                {
                    gvPatient.Invoke(new MethodInvoker(delegate
                    {
                        gvPatient.DataSource = bs;
                        gvPatient.Refresh();
                    }));
                }
                else
                {
                    gvPatient.DataSource = bs;
                    gvPatient.Refresh();
                }
            }
            setPictureBox(pbCountPT, false);
            setRadButton(btFind, true);
        }
Exemple #24
0
 private void Start()
 {
     #region Checker
     if (rbSQL.Checked)
     {
         if (txtIPServer.Text.Trim().Length == 0 ||
             txtDatabase.Text.Trim().Length == 0 ||
             txtUsername.Text.Trim().Length == 0 ||
             txtSQLQuery.Text.Trim().Length == 0)
         {
             MessageBox.Show("โปรดกรอกข้อมูลการเชื่อมต่อฐานข้อมูลให้ครบ", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             return;
         }
     }
     else if (rbODBC.Checked)
     {
         if (txtDNS.Text.Trim().Length == 0 ||
             txtUsername.Text.Trim().Length == 0 ||
             txtSQLQuery.Text.Trim().Length == 0)
         {
             MessageBox.Show("โปรดกรอกข้อมูลการเชื่อมต่อฐานข้อมูลให้ครบ", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             return;
         }
     }
     #endregion
     #region Variable
     var dbType = clsSQLNative.DBType.SQLServer;
     var clsSQL = new clsSQLNative();
     var dt = new DataTable();
     var cs = "";
     var strSQL="";
     if (rbSQL.Checked)
     {
         dbType = clsSQLNative.DBType.SQLServer;
         cs = System.Configuration.ConfigurationManager.AppSettings["csSQL"];
         cs = string.Format(cs, txtIPServer.Text.Trim(), txtDatabase.Text.Trim(), txtUsername.Text.Trim(), txtPassword.Text.Trim());
     }
     else if (rbODBC.Checked)
     {
         dbType = clsSQLNative.DBType.ODBC;
         cs = System.Configuration.ConfigurationManager.AppSettings["csODBC"];
         cs = string.Format(cs, txtDNS.Text.Trim(), txtUsername.Text.Trim(), txtPassword.Text.Trim());
     }
     #endregion
     #region Procedure
     #region LastUpdate
     if (lblLastUpdate.InvokeRequired)
     {
         lblLastUpdate.Invoke(new MethodInvoker(delegate
         {
             lblLastUpdate.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
         }));
     }
     else
     {
         lblLastUpdate.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
     }
     #endregion
     strSQL = txtSQLQuery.Text.Replace(Environment.NewLine," ");
     dt = clsSQL.Bind(strSQL, dbType, cs);
     if (dt != null && dt.Rows.Count > 0)
     {
         if (lblDataCount.InvokeRequired)
         {
             lblDataCount.Invoke(new MethodInvoker(delegate
             {
                 lblDataCount.Text = dt.Rows.Count.ToString();
             }));
         }
         else
         {
             lblDataCount.Text = dt.Rows.Count.ToString();
         }
         if (gvDefault.InvokeRequired)
         {
             gvDefault.Invoke(new MethodInvoker(delegate
                 {
                     gvDefault.Visible = true;
                     gvDefault.DataSource = dt;
                     gvDefault.Columns[gvDefault.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                     #region HighlightValue
                     if (txtHighlightValue.Text.Trim().Length > 0)
                     {
                         for (int r = 0; r < gvDefault.Rows.Count; r++)
                         {
                             for (int c = 0; c < gvDefault.Columns.Count; c++)
                             {
                                 if (gvDefault.Rows[r].Cells[c].Value.ToString().Trim() == txtHighlightValue.Text.Trim())
                                 {
                                     gvDefault.Rows[r].Cells[c].Style.BackColor = Color.Red;
                                 }
                             }
                         }
                     }
                     #endregion
                     gvDefault.Refresh();
                     gvDefault.ClearSelection();
                 }));
         }
     }
     else
     {
         if (lblDataCount.InvokeRequired)
         {
             lblDataCount.Invoke(new MethodInvoker(delegate
             {
                 lblDataCount.Text = "0";
             }));
         }
         else
         {
             lblDataCount.Text = "0";
         }
         if (gvDefault.InvokeRequired)
         {
             gvDefault.Invoke(new MethodInvoker(delegate
             {
                 gvDefault.Visible = false;
                 gvDefault.DataSource = null;
                 gvDefault.Refresh();
             }));
         }
     }
     #endregion
 }