Beispiel #1
0
        private decimal ReturnTotalMoney(string OfficeIDitem)
        {
            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
            string diagnoseid = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString().Trim();  //诊疗号
            //DataSet ds = clinicPhysicianRecipeFacade.FindAllRecipeMedordInfoByExeofficeID(diagnoseid, OfficeIDitem);
            decimal sumMoney = 0;

            //for (int i = 0; i < this.gdvMain.RowCount; i++)
            //{
            //    if ((Boolean)gdvMain.GetDataRow(i)["PITCHON1"]) //添加用户选择数据
            //    {
            //        if (ds.Tables[0].Rows[i]["RECIPESTATE"].ToString() != "1")
            //        {
            //            sumMoney += DecimalRound.Round(Convert.ToDecimal(ds.Tables[0].Rows[i]["TOTALMONEY"].ToString().Replace("元", "")), 2);
            //        }

            //    }
            //}
            switch (SystemInfo.SystemConfigs["门诊收费时分币处理方式"].DefaultValue)
            {
            //0.不处理;1.四舍五入;2.见分进位;
            case "0":
                sumMoney = DecimalRound.Round(sumMoney, 2);
                break;

            case "1":
                sumMoney = DecimalRound.Round(sumMoney, 1);
                break;

            case "2":
                sumMoney = DecimalRound.Round(sumMoney + Convert.ToDecimal(0.04), 1);
                break;
            }
            return(sumMoney);
        }
Beispiel #2
0
        public DataSet GetRecipeInfo()
        {
            //查询未缴费的处方信息,如果未缴费的处方没有的,则不需要缴费
            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
            DataSet dsRecipe = clinicPhysicianRecipeFacade.FindRecipeDetailByDiagnoseID(SkyComm.DiagnoseID);

            string Offices = SkyComm.getvalue("使用自助缴费的执行科室ID");

            string[] arrOffice = Offices.Split(',');
            //if (!string.IsNullOrEmpty(Offices))
            //{
            //    foreach (DataRow row in dsRecipe.Tables[0].Rows)
            //    {
            //        if (row.RowState == DataRowState.Deleted)
            //            continue;
            //        if (!arrOffice.Contains(row["EXECOFFICEID"].ToString()))
            //        {
            //            row.Delete();
            //        }
            //    }
            //    dsRecipe.AcceptChanges();
            //}
            if (dsRecipe.Tables[0].Rows.Count == 0)
            {
                SkyComm.ShowMessageInfo("没有需要缴费的处方信息!");
                return(null);
            }

            dsRecipe.Tables[0].Columns.Add("PRICECHANGE", typeof(decimal));  //单价
            dsRecipe.Tables[0].Columns.Add("AMOUNTCHANGE", typeof(decimal)); //数量
            dsRecipe.Tables[0].Columns.Add("UNITCHANGE", typeof(string));    //单位
            dsRecipe.Tables[0].Columns.Add("PITCHON1", typeof(bool));        //单位

            //dsRecipe.Tables[0].Columns["PITCHON"].DataType = typeof(System.Boolean);
            UnitToPack unitToPack = new UnitToPack();

            foreach (DataRow item in dsRecipe.Tables[0].Rows)
            {
                item["PITCHON1"] = Convert.ToBoolean(item["PITCHON"]);
                if (item["OUTPATIENTUNIT"].ToString().Trim() == "包装")
                {
                    item.BeginEdit();
                    int amount      = Convert.ToInt32(item["AMOUNT"]);
                    int changeratio = Convert.ToInt32(item["CHANGERATIO"]);
                    item["AMOUNTCHANGE"] = unitToPack.GetPackAmount(Convert.ToInt32(item["CHANGERATIO"]), Convert.ToInt32(item["AMOUNT"]));
                    item["UNITCHANGE"]   = item["PACK"];
                    item["PRICECHANGE"]  = Convert.ToDecimal(item["UNITPRICE"]) * changeratio;
                    item.EndEdit();
                }
                else
                {
                    item.BeginEdit();
                    item["PRICECHANGE"]  = item["UNITPRICE"];
                    item["AMOUNTCHANGE"] = item["AMOUNT"];
                    item["UNITCHANGE"]   = item["UNIT"];
                    item.EndEdit();
                }
            }
            return(dsRecipe);
        }
Beispiel #3
0
        private void FrmNoPayment_Load(object sender, EventArgs e)
        {
            //查询未缴费的处方信息
            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
            DataSet dsRecipe = clinicPhysicianRecipeFacade.FindRecipeDetailByDiagnoseID(SkyComm.DiagnoseID);

            if (dsRecipe.Tables[0].Rows.Count == 0)
            {
                this.gdcMain.DataSource = null;
                return;
            }

            dsRecipe.Tables[0].Columns.Add("PRICECHANGE", typeof(decimal));  //单价
            dsRecipe.Tables[0].Columns.Add("AMOUNTCHANGE", typeof(decimal)); //数量
            dsRecipe.Tables[0].Columns.Add("UNITCHANGE", typeof(string));    //单位
            dsRecipe.Tables[0].Columns.Add("PITCHON1", typeof(bool));        //单位

            UnitToPack unitToPack = new UnitToPack();

            foreach (DataRow item in dsRecipe.Tables[0].Rows)
            {
                item["PITCHON1"] = Convert.ToBoolean(item["PITCHON"]);
                if (item["OUTPATIENTUNIT"].ToString().Trim() == "包装")
                {
                    item.BeginEdit();
                    int amount      = Convert.ToInt32(item["AMOUNT"]);
                    int changeratio = Convert.ToInt32(item["CHANGERATIO"]);
                    item["AMOUNTCHANGE"] = unitToPack.GetPackAmount(Convert.ToInt32(item["CHANGERATIO"]), Convert.ToInt32(item["AMOUNT"]));
                    item["UNITCHANGE"]   = item["PACK"];
                    item["PRICECHANGE"]  = Convert.ToDecimal(item["UNITPRICE"]) * changeratio;
                    item.EndEdit();
                }
                else
                {
                    item.BeginEdit();
                    item["PRICECHANGE"]  = item["UNITPRICE"];
                    item["AMOUNTCHANGE"] = item["AMOUNT"];
                    item["UNITCHANGE"]   = item["UNIT"];
                    item.EndEdit();
                }
            }

            this.gdcMain.DataSource = dsRecipe.Tables[0].Select("", "CLINICRECIPEID").CopyToDataTable();
        }
Beispiel #4
0
        public DataSet GetRecipeInfo()
        {
            //查询未缴费的处方信息,如果未缴费的处方没有的,则不需要缴费
            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
            DataSet dsRecipe = clinicPhysicianRecipeFacade.FindRecipeDetailByDiagnoseID(SkyComm.DiagnoseID);

            if (dsRecipe.Tables[0].Rows.Count == 0)
            {
                SkyComm.ShowMessageInfo("没有需要缴费的处方信息!");
                return(null);
            }

            dsRecipe.Tables[0].Columns.Add("PRICECHANGE", typeof(decimal));  //单价
            dsRecipe.Tables[0].Columns.Add("AMOUNTCHANGE", typeof(decimal)); //数量
            dsRecipe.Tables[0].Columns.Add("UNITCHANGE", typeof(string));    //单位
            dsRecipe.Tables[0].Columns.Add("PITCHON1", typeof(bool));        //单位

            //dsRecipe.Tables[0].Columns["PITCHON"].DataType = typeof(System.Boolean);
            UnitToPack unitToPack = new UnitToPack();

            foreach (DataRow item in dsRecipe.Tables[0].Rows)
            {
                item["PITCHON1"] = Convert.ToBoolean(item["PITCHON"]);
                if (item["OUTPATIENTUNIT"].ToString().Trim() == "包装")
                {
                    item.BeginEdit();
                    int amount      = Convert.ToInt32(item["AMOUNT"]);
                    int changeratio = Convert.ToInt32(item["CHANGERATIO"]);
                    item["AMOUNTCHANGE"] = unitToPack.GetPackAmount(Convert.ToInt32(item["CHANGERATIO"]), Convert.ToInt32(item["AMOUNT"]));
                    item["UNITCHANGE"]   = item["PACK"];
                    item["PRICECHANGE"]  = Convert.ToDecimal(item["UNITPRICE"]) * changeratio;
                    item.EndEdit();
                }
                else
                {
                    item.BeginEdit();
                    item["PRICECHANGE"]  = item["UNITPRICE"];
                    item["AMOUNTCHANGE"] = item["AMOUNT"];
                    item["UNITCHANGE"]   = item["UNIT"];
                    item.EndEdit();
                }
            }
            return(dsRecipe);
        }
Beispiel #5
0
        /// <summary>
        /// 更新开单科室
        /// </summary>
        /// <param name="diagnoseId"></param>
        /// <param name="dataTable"></param>
        /// <param name="clinicPhysicianRecipeFacade"></param>
        /// <returns></returns>
        public DataTable getTrueOfficeDataTable(string diagnoseId, DataTable dataTable, ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade)
        {
            try
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    string mApplyNo   = dataRow["APPLYDOCNO"].ToString();    //申请单号
                    string mCheckItem = dataRow["RECIPECONTENT"].ToString(); //检查项目ID

                    string mOffice = clinicPhysicianRecipeFacade.getApplyOffice(diagnoseId, mApplyNo, mCheckItem);

                    dataRow["OPERATOROFFICE"] = mOffice;
                }

                return(dataTable);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
Beispiel #6
0
        private bool SelectItem(string OfficeIDitem)
        {
            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
            string  diagnoseid = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString().Trim(); //诊疗号
            DataSet ds         = clinicPhysicianRecipeFacade.FindAllRecipeMedordInfoByExeofficeID(diagnoseid, OfficeIDitem);

            if (!dtRev.Columns.Contains("处方号"))
            {
                #region MyRegion
                dtRev.Columns.Add("处方号");
                dtRev.Columns.Add("处方内容");
                dtRev.Columns.Add("注意事项");
                dtRev.Columns.Add("预约号");
                dtRev.Columns.Add("诊疗号");
                dtRev.Columns.Add("挂号号");
                dtRev.Columns.Add("科室ID");
                dtRev.Columns.Add("诊室名称");
                dtRev.Columns.Add("执行科室地址");
                dtRev.Columns.Add("医嘱用语备注");
                dtRev.Columns.Add("开单科室");
                dtRev.Columns.Add("检查医师");
                dtRev.Columns.Add("检查医师ID");
                dtRev.Columns.Add("预约日期");
                dtRev.Columns.Add("预约结束日期");
                dtRev.Columns.Add("报到时间");
                dtRev.Columns.Add("完成时间");
                dtRev.Columns.Add("挂起时间");
                dtRev.Columns.Add("操作员ID");
                dtRev.Columns.Add("预约状态");
                dtRev.Columns.Add("检查状态");
                dtRev.Columns.Add("检查目的");  //douyaming 2014-8-4
                dtRev.Columns.Add("收费状态");  //douyaming 2016-05-14
                //isBindRev = true;
                #endregion
            }
            dtRev.Clear();

            for (int i = 0; i < this.gdvMain.RowCount; i++)
            {
                if ((Boolean)gdvMain.GetDataRow(i)["PITCHON1"]) //添加用户选择数据
                {
                    #region 增加医技预约次数限制 wangchao 2017.03.23 case:27593
                    //try
                    //{
                    //    if (SystemInfo.SystemConfigs["医技预约限制次数"].DefaultValue == "1")
                    //    {
                    //        string _execOffice = ds.Tables[0].Rows[i]["EXECOFFICEID"].ToString();
                    //        string _diagnoseID = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                    //        string _content = ds.Tables[0].Rows[i]["RECIPECONTENT"].ToString();
                    //        CLINICMtReserveFacade _reserveFacade = new CLINICMtReserveFacade();
                    //        DataSet dsCheck = _reserveFacade.checkRecipeHasReserveRecord(_diagnoseID, _execOffice, _content);
                    //        if (dsCheck != null && dsCheck.Tables.Count > 0 && dsCheck.Tables[0].Rows.Count > 0)
                    //        {
                    //            SkyComm.ShowMessageInfo("检查项目【" + ds.Tables[0].Rows[i]["CHARGEITEM"].ToString() + "】在日期【" + Convert.ToDateTime(dsCheck.Tables[0].Rows[0]["RESERVESTARTTIME"].ToString()).ToString("yyyy年MM月dd日") + "】已存在预约信息,不能重复预约!");
                    //            return false;
                    //        }
                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //    Skynet.LoggingService.LogService.GlobalInfoMessage("医技预约次数限制模块发生异常,原因:" + ex.Message);
                    //}
                    #endregion

                    DataSet dsClinic = reserveFacade.ReserveRecipeInfo(gdvMain.GetDataRow(i)["RESERVEID"].ToString());
                    //dsClinic.Tables[0].TableName = "data1";
                    //ds.Tables[0].TableName = "data2";
                    //dsClinic.WriteXml(Application.StartupPath + "\\数据集1.xml");
                    //ds.WriteXml(Application.StartupPath + "\\数据集2.xml");
                    foreach (DataRow drClinic in dsClinic.Tables[0].Rows)
                    {
                        foreach (DataRow drTemp in ds.Tables[0].Rows)
                        {
                            if (drClinic["CLINICRECIPEID"].ToString() == drTemp["CLINICRECIPEID"].ToString() && drClinic["APPLYDOCNO"].ToString() == drTemp["APPLYDOCNO"].ToString())
                            {
                                DataRow newRow = dtRev.NewRow();
                                newRow["处方号"]    = drTemp["CLINICRECIPEID"].ToString();
                                newRow["处方内容"]   = drTemp["CHARGEITEM"].ToString();
                                newRow["注意事项"]   = "";
                                newRow["预约号"]    = "1";
                                newRow["诊疗号"]    = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                                newRow["挂号号"]    = drTemp["REGISTERID"].ToString();
                                newRow["科室ID"]   = drTemp["EXECOFFICEID"].ToString();; // this.cmbExamineName.SelectedValue.ToString();
                                newRow["诊室名称"]   = drTemp["EXECOFFICE"].ToString();    //new
                                newRow["开单科室"]   = drTemp["OPERATOROFFICE"].ToString();
                                newRow["执行科室地址"] = drTemp["OFFICEADDRESS"].ToString();
                                newRow["医嘱用语备注"] = drTemp["REMARK"].ToString();
                                newRow["检查医师ID"] = ""; // this.cmbUserName.SelectedValue;
                                newRow["检查医师"]   = ""; // this.cmbUserName.Text;
                                newRow["预约日期"]   = "";
                                newRow["预约结束日期"] = null;
                                newRow["报到时间"]   = null;
                                newRow["完成时间"]   = null;
                                newRow["挂起时间"]   = null;
                                newRow["操作员ID"]  = SysOperatorInfo.OperatorID;
                                newRow["预约状态"]   = 1;  //预约
                                newRow["检查状态"]   = 1;  //未检查
                                newRow["检查目的"]   = ""; // this.gridView1.GetDataRow(i)["APPLYREMARK"].ToString();
                                try
                                {
                                    var revState = drTemp["RECIPESTATE"];
                                    newRow["收费状态"] = drTemp["RECIPESTATE"] == null ? "" : drTemp["RECIPESTATE"].ToString() == "0" ? "未收费" : "已收费";
                                }
                                catch (Exception)
                                {
                                    newRow["收费状态"] = "";
                                }
                                dtRev.Rows.Add(newRow);
                            }
                        }
                    }
                    //DataTable dtTemp = dtRev.Copy();
                    //DataSet dsTemp = new DataSet();
                    //dsTemp.Tables.Add(dtTemp);
                    //dsTemp.Tables[0].TableName = "data3";
                    //dsTemp.WriteXml(Application.StartupPath + "\\数据集3.xml");
                }
            }
            return(true);
        }
Beispiel #7
0
        /// <summary>
        /// 点击支付宝缴费
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label2_Click(object sender, EventArgs e)
        {
            this.ucTime1.timer1.Stop();

            #region 验证缴费处方信息

            DataTable dtMain = dsRecipe.Tables[0].DefaultView.ToTable();

            IEnumerable <string> _CLINICRECIPEIDs = dtMain.AsEnumerable().Where(b => b.Field <bool>("PITCHON1") == true).Select(a => a.Field <string>("CLINICRECIPEID")).Distinct();
            if (_CLINICRECIPEIDs.Count() == 0)
            {
                SkyComm.ShowMessageInfo("请选择要缴费的处方!");
                return;
            }
            this.ucTime1.timer1.Stop();
            //选中处方的金额
            decimal sumMoney = DecimalRound.Round(Convert.ToDecimal(dtMain.Compute("SUM(TOTALMONEY)", "PITCHON1 = true")), 2);

            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
            DataSet dsTemp = clinicPhysicianRecipeFacade.FindRecipeDetailByDiagnoseID(SkyComm.DiagnoseID, string.Empty, "3");

            DataSet ds = dsTemp.Clone();
            foreach (DataRow row in dsTemp.Tables[0].Rows)
            {
                if (_CLINICRECIPEIDs.Contains(row["CLINICRECIPEID"].ToString()))
                {
                    ds.Tables[0].ImportRow(row);
                }
            }
            if (ds.Tables[0].Rows.Count < 1)
            {
                SkyComm.ShowMessageInfo("没有找到可进行缴费的处方记录,请检查处方号");
                this.ucTime1.Sec = 60;
                this.ucTime1.timer1.Start();
                return;
            }
            ////调用大通审方系统
            //if (!CheckDTPass(ds))
            //{
            //    return;
            //}
            #endregion

            #region 组织缴费处方信息
            CommonFacade commonFacade = new CommonFacade();
            DateTime     ServerTime   = commonFacade.GetServerDateTime();

            LeechdomCharge charge = new LeechdomCharge(SkyComm.DiagnoseID, SysOperatorInfo.OperatorID);
            charge.AddRecipeCharge(ds);

            decimal decHisMoney = DecimalRound.Round(Convert.ToDecimal(charge.detailAccountData.Tables[0].Compute("SUM(MONEY)", "")), 2);

            if (decHisMoney != sumMoney)
            {
                charge.detailAccountData.Clear();
                charge.ecipeMedicineData.Clear();
                SkyComm.ShowMessageInfo("选择的处方金额不正确,请在门诊窗口进行缴费!");
                this.ucTime1.Sec = 60;
                this.ucTime1.timer1.Start();
                return;
            }


            #endregion

            FrmNetPay payFrm = new FrmNetPay();

            payFrm.PayMoney = Decimal.Parse(lblTotalMoney.Text.ToString());

            payFrm.ServiceType = "3";

            payFrm.PayMethod = "2";

            payFrm.PayType = "缴费";

            DialogResult mDialogResult = payFrm.ShowDialog();

            if (mDialogResult == DialogResult.OK)
            {
                string hisno = payFrm.hisNo;
                NetPay(hisno, "线上支付宝");

                SkyComm.ShowMessageInfo(payFrm.PayType + "成功!");
            }
            else
            {
                this.ucTime1.timer1.Start();//计时器动
            }
        }
Beispiel #8
0
        private void lblOK_Click(object sender, EventArgs e)
        {
            this.AnsyWorker(ui =>
            {
                ui.UpdateTitle("正在缴费中,请稍等...");

                ui.SynUpdateUI(() =>
                {
                    #region 验证缴费处方信息

                    DataTable dtMain = dsRecipe.Tables[0].DefaultView.ToTable();

                    IEnumerable <string> _CLINICRECIPEIDs = dtMain.AsEnumerable().Where(b => b.Field <bool>("PITCHON1") == true).Select(a => a.Field <string>("CLINICRECIPEID")).Distinct();
                    if (_CLINICRECIPEIDs.Count() == 0)
                    {
                        SkyComm.ShowMessageInfo("请选择要缴费的处方!");
                        return;
                    }
                    this.ucTime1.timer1.Stop();
                    //选中处方的金额
                    decimal sumMoney = DecimalRound.Round(Convert.ToDecimal(dtMain.Compute("SUM(TOTALMONEY)", "PITCHON1 = true")), 2);

                    ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
                    DataSet dsTemp = clinicPhysicianRecipeFacade.FindRecipeDetailByDiagnoseID(SkyComm.DiagnoseID, string.Empty, "3");

                    DataSet ds = dsTemp.Clone();
                    foreach (DataRow row in dsTemp.Tables[0].Rows)
                    {
                        if (_CLINICRECIPEIDs.Contains(row["CLINICRECIPEID"].ToString()))
                        {
                            ds.Tables[0].ImportRow(row);
                        }
                    }
                    if (ds.Tables[0].Rows.Count < 1)
                    {
                        SkyComm.ShowMessageInfo("没有找到可进行缴费的处方记录,请检查处方号");
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }
                    //调用大通审方系统
                    if (!CheckDTPass(ds))
                    {
                        return;
                    }
                    #endregion

                    #region 组织缴费处方信息
                    CommonFacade commonFacade = new CommonFacade();
                    DateTime ServerTime       = commonFacade.GetServerDateTime();

                    LeechdomCharge charge = new LeechdomCharge(SkyComm.DiagnoseID, SysOperatorInfo.OperatorID);
                    charge.AddRecipeCharge(ds);

                    decimal decHisMoney = DecimalRound.Round(Convert.ToDecimal(charge.detailAccountData.Tables[0].Compute("SUM(MONEY)", "")), 2);

                    if (decHisMoney != sumMoney)
                    {
                        charge.detailAccountData.Clear();
                        charge.ecipeMedicineData.Clear();
                        SkyComm.ShowMessageInfo("选择的处方金额不正确,请在门诊窗口进行缴费!");
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }

                    if (decHisMoney > SkyComm.cardBlance)
                    {
                        charge.detailAccountData.Clear();
                        charge.ecipeMedicineData.Clear();
                        SkyComm.ShowMessageInfo("余额不足,请先进行自助预存,再进行缴费!");
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }
                    #endregion

                    #region 缴费
                    try
                    {
                        //验证西北妇幼高值耗材
                        if (!CheckHValueMaterial(charge.detailAccountData))
                        {
                            throw new Exception("缴费信息中有高值耗材,请在门诊窗口进行缴费!");
                        }

                        DetailAccountFacade detailAccountFacade = new DetailAccountFacade();
                        DataSet dads = detailAccountFacade.insertEntityNoInvoice(charge.detailAccountData, ref charge.ecipeMedicineData);
                        SkyComm.GetCardBalance();
                        SkyComm.ShowMessageInfo("缴费成功!");

                        //根据“药房自动配药接口类型”配置为2时,调用西北妇幼的派昂接口 19797
                        string AutoDoseConfig = SystemInfo.SystemConfigs["药房自动配药接口类型"].DefaultValue;
                        string strCK          = string.Empty;
                        if (AutoDoseConfig == "2" && charge.ecipeMedicineData.Tables[0].Rows.Count > 0)
                        {
                            strCK = UploadAngPaiData(dads, charge.ecipeMedicineData, dsTemp);
                        }

                        PrintReport(dads, strCK, dsRecipe);//打印交费凭证
                    }
                    catch (Exception err)
                    {
                        charge.detailAccountData.Clear();
                        charge.ecipeMedicineData.Clear();
                        Skynet.LoggingService.LogService.GlobalInfoMessage(SkyComm.DiagnoseID + "缴费失败:" + err.Message);
                        SkyComm.ShowMessageInfo("缴费失败:" + err.Message);
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }

                    dsRecipe = GetRecipeInfo();
                    if (dsRecipe == null || dsRecipe.Tables[0].Rows.Count == 0)
                    {
                        SkyComm.CloseWin(this);
                    }
                    else
                    {
                        this.gdcMain.DataSource = dsRecipe.Tables[0].DefaultView;

                        lblYE.Text = SkyComm.cardBlance.ToString();

                        refreshUI();
                    }
                    #endregion
                });
            });
        }
Beispiel #9
0
        public void NetPay(string hisno, string payMethod)
        {
            this.AnsyWorker(ui =>
            {
                ui.UpdateTitle("正在缴费中,请稍等...");

                ui.SynUpdateUI(() =>
                {
                    #region 验证缴费处方信息

                    DataTable dtMain = dsRecipe.Tables[0].DefaultView.ToTable();

                    IEnumerable <string> _CLINICRECIPEIDs = dtMain.AsEnumerable().Where(b => b.Field <bool>("PITCHON1") == true).Select(a => a.Field <string>("CLINICRECIPEID")).Distinct();
                    if (_CLINICRECIPEIDs.Count() == 0)
                    {
                        SkyComm.ShowMessageInfo("请选择要缴费的处方!");
                        return;
                    }
                    this.ucTime1.timer1.Stop();
                    //选中处方的金额
                    decimal sumMoney = DecimalRound.Round(Convert.ToDecimal(dtMain.Compute("SUM(TOTALMONEY)", "PITCHON1 = true")), 2);

                    ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();
                    DataSet dsTemp = clinicPhysicianRecipeFacade.FindRecipeDetailByDiagnoseID(SkyComm.DiagnoseID, string.Empty, "3");

                    DataSet ds = dsTemp.Clone();
                    foreach (DataRow row in dsTemp.Tables[0].Rows)
                    {
                        if (_CLINICRECIPEIDs.Contains(row["CLINICRECIPEID"].ToString()))
                        {
                            ds.Tables[0].ImportRow(row);
                        }
                    }
                    if (ds.Tables[0].Rows.Count < 1)
                    {
                        SkyComm.ShowMessageInfo("没有找到可进行缴费的处方记录,请检查处方号");
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }
                    //调用大通审方系统
                    if (!CheckDTPass(ds))
                    {
                        return;
                    }
                    #endregion

                    #region 组织缴费处方信息
                    CommonFacade commonFacade = new CommonFacade();
                    DateTime ServerTime       = commonFacade.GetServerDateTime();

                    LeechdomCharge charge = new LeechdomCharge(SkyComm.DiagnoseID, SysOperatorInfo.OperatorID);
                    charge.AddRecipeCharge(ds);

                    decimal decHisMoney = DecimalRound.Round(Convert.ToDecimal(charge.detailAccountData.Tables[0].Compute("SUM(MONEY)", "")), 2);

                    if (decHisMoney != sumMoney)
                    {
                        charge.detailAccountData.Clear();
                        charge.ecipeMedicineData.Clear();
                        SkyComm.ShowMessageInfo("选择的处方金额不正确,请在门诊窗口进行缴费!");
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }


                    #endregion

                    #region 缴费
                    try
                    {
                        //验证西北妇幼高值耗材
                        if (!CheckHValueMaterial(charge.detailAccountData))
                        {
                            throw new Exception("缴费信息中有高值耗材,请在门诊窗口进行缴费!");
                        }

                        DetailAccountFacade detailAccountFacade = new DetailAccountFacade();


                        DataSet data = new DataSet();

                        Hashtable hashtable = new Hashtable();

                        hashtable.Add("@HISSEQNO", hisno);

                        string mSql = "SELECT * FROM T_BANKHISEXCHANGE_TRANS where HISSEQNO = @HISSEQNO";// and BANKSTATE = '1'

                        QuerySolutionFacade querySolutionFacade = new QuerySolutionFacade();

                        data = querySolutionFacade.ExeQuery(mSql, hashtable);

                        TBankhisexchangeTransData transData = new TBankhisexchangeTransData();

                        transData.Bankseqno    = data.Tables[0].Rows[0]["BANKSEQNO"].ToString();
                        transData.Hisseqno     = data.Tables[0].Rows[0]["HISSEQNO"].ToString();
                        transData.Ohisseqno    = data.Tables[0].Rows[0]["OHISSEQNO"].ToString();
                        transData.Bankstate    = data.Tables[0].Rows[0]["BANKSTATE"].ToString();
                        transData.Hisstate     = data.Tables[0].Rows[0]["HISSTATE"].ToString();
                        transData.Buscd        = data.Tables[0].Rows[0]["BUSCD"].ToString();
                        transData.Hisid        = data.Tables[0].Rows[0]["HISID"].ToString();
                        transData.Trfamt       = data.Tables[0].Rows[0]["TRFAMT"].ToString();
                        transData.Usetype      = data.Tables[0].Rows[0]["USETYPE"].ToString();
                        transData.Operatorid   = data.Tables[0].Rows[0]["OPERATORID"].ToString();
                        transData.Operatetime  = Convert.ToDateTime(data.Tables[0].Rows[0]["OPERATETIME"].ToString());
                        transData.Diagnoseid   = data.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                        transData.BusinessType = data.Tables[0].Rows[0]["BUSINESSTYPE"].ToString();
                        transData.DataSources  = data.Tables[0].Rows[0]["DATASOURCES"].ToString();
                        transData.DataSources  = data.Tables[0].Rows[0]["DATASOURCES"].ToString();
                        transData.RefundType   = Convert.ToInt32(data.Tables[0].Rows[0]["REFUNDTYPE"].ToString());
                        transData.RefundMoney  = Convert.ToDecimal(data.Tables[0].Rows[0]["REFUNDMONEY"].ToString());
                        transData.Remark       = "_FromPayForRecipeForm";


                        foreach (DataRow Row in charge.detailAccountData.Tables[0].Rows)
                        {
                            Row.BeginEdit();

                            Row["ISBANKCARD"]          = 1;
                            Row["BALANCEMODE"]         = payMethod;
                            Row["BANKTRANSNO"]         = transData.Hisseqno;
                            Row["IS_FEECHARGING_CARD"] = "1";
                            Row.EndEdit();
                            decHisMoney += Convert.ToDecimal(Row["MONEY"]);
                        }



                        DataSet dads = detailAccountFacade.insertEntityNoInvoiceZZZD(charge.detailAccountData, ref charge.ecipeMedicineData, transData);

                        //DataSet dads = detailAccountFacade.insertEntityNoInvoice(charge.detailAccountData, ref charge.ecipeMedicineData);
                        SkyComm.GetCardBalance();
                        SkyComm.ShowMessageInfo("缴费成功!");

                        //根据“药房自动配药接口类型”配置为2时,调用西北妇幼的派昂接口 19797
                        string AutoDoseConfig = SystemInfo.SystemConfigs["药房自动配药接口类型"].DefaultValue;
                        string strCK          = string.Empty;
                        if (AutoDoseConfig == "2" && charge.ecipeMedicineData.Tables[0].Rows.Count > 0)
                        {
                            strCK = UploadAngPaiData(dads, charge.ecipeMedicineData, dsTemp);
                        }

                        PrintReport(dads, strCK, dsRecipe);//打印交费凭证
                    }
                    catch (Exception err)
                    {
                        charge.detailAccountData.Clear();
                        charge.ecipeMedicineData.Clear();
                        Skynet.LoggingService.LogService.GlobalInfoMessage(SkyComm.DiagnoseID + "缴费失败:" + err.Message);
                        SkyComm.ShowMessageInfo("缴费失败:" + err.Message);
                        this.ucTime1.Sec = 60;
                        this.ucTime1.timer1.Start();
                        return;
                    }

                    dsRecipe = GetRecipeInfo();
                    if (dsRecipe == null || dsRecipe.Tables[0].Rows.Count == 0)
                    {
                        SkyComm.CloseWin(this);
                    }
                    else
                    {
                        this.gdcMain.DataSource = dsRecipe.Tables[0].DefaultView;

                        lblYE.Text = SkyComm.cardBlance.ToString();

                        refreshUI();
                    }
                    #endregion
                });
            });
        }
Beispiel #10
0
        private bool BindRecipe()
        {
            string  diagnoseidC    = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString().Trim(); //诊疗号
            string  strjfType      = SystemInfo.SystemConfigs["健康卡操作员扣费条件"].DefaultValue.Trim();
            DataSet dsRecipeDetail = new DataSet();
            ClinicPhysicianRecipeFacade clinicPhysicianRecipeFacade = new ClinicPhysicianRecipeFacade();

            #region MyRegion
            Dictionary <string, int> recipeList = new Dictionary <string, int>();//预约列表<处方ID,预约状态>
            Dictionary <string, int> dic        = GetRecipeState();


            if (true)
            {
                #region 构建dtRecipe
                dtRecipe.Columns.Add("PITCHON1", typeof(System.Boolean)).DefaultValue = false;
                dtRecipe.Columns.Add("CLINICRECIPEID");
                dtRecipe.Columns.Add("MEDORDNAME");
                dtRecipe.Columns.Add("UNITPRICE");
                dtRecipe.Columns.Add("AMOUNT");
                dtRecipe.Columns.Add("DOSEUNIT");
                dtRecipe.Columns.Add("TOTALMONEY");
                dtRecipe.Columns.Add("OFFICE");
                dtRecipe.Columns.Add("APPLYREMARK");
                dtRecipe.Columns.Add("APPLYDOCNO");
                dtRecipe.Columns.Add("INHOSID");
                //douyaming 2016-05-14 增加是否收费字段
                dtRecipe.Columns.Add("RECIPESTATE");
                //zpq 2016年7月1日  开单医生,开单时间 ,挂号号 ,开单科室
                dtRecipe.Columns.Add("DOCTOR");
                dtRecipe.Columns.Add("OPERATETIME");
                dtRecipe.Columns.Add("REGISTERID");
                dtRecipe.Columns.Add("OPERATOROFFICE");
                dtRecipe.Columns.Add("OFFICEADDRESS");
                dtRecipe.Columns.Add("REMARK");
                dtRecipe.Columns.Add("STATE");
                dtRecipe.Columns.Add("RECIPECONTENT");
                #endregion

                //if (strjfType == "1")
                //{
                //dsRecipeDetail = clinicPhysicianRecipeFacade.FindAllRecipeMedordInfoByOperatorID(diagnoseidC, SysOperatorInfo.OperatorID);
                //}
                //else
                //{
                dsRecipeDetail = clinicPhysicianRecipeFacade.FindAllRecipeMedordInfoByExeofficeID(diagnoseidC, OfficeID);
                //}

                #region 添加过滤附加费功能 zpq 2016年6月6日---2016年6月20日
                DataTable dtFJF = dsRecipeDetail.Tables[0].Copy();
                if (dtFJF == null || dtFJF.Rows.Count < 1)
                {
                    SkyComm.ShowMessageInfo("未查询到对应处方信息或该处方数据已经过期!");
                    return(false);
                }
                String    filterStr = " RECIPETYPE <>'医材' and RECIPETYPE <> '附加' and VALID <>'0' ";
                DataRow[] drs       = dtFJF.Select(filterStr);
                if (drs.Length < 1)
                {
                    SkyComm.ShowMessageInfo("未查询到对应处方信息或该处方数据已经过期!");
                    return(false);
                }

                dsRecipeDetail = new DataSet();//重新赋值
                dsRecipeDetail.Tables.Add(drs.CopyToDataTable());

                #endregion

                #region 赋值dtRecipe
                for (int i = 0; i < dsRecipeDetail.Tables[0].Rows.Count; i++)
                {
                    #region 判断是否已经预约过了(一个处方可能有多条明细) zpq 2016年5月24日
                    string repID = dsRecipeDetail.Tables[0].Rows[i]["CLINICRECIPEID"].ToString();
                    if (recipeList.ContainsKey(repID) && recipeList[repID] > 0)
                    {
                        continue;
                    }
                    else
                    {
                        if (!recipeList.ContainsKey(repID))
                        {
                            DataSet dsRes = clinicPhysicianRecipeFacade.GetReserveInfoByClinicrecipeID(repID);
                            if (dsRes.Tables[0].Rows.Count > 0)
                            {
                                recipeList.Add(repID, (int)dsRes.Tables[0].Rows[0]["RESSTATUS"]);
                                continue;
                            }
                            else
                            {
                                recipeList.Add(repID, -1);//无预约信息
                            }
                        }
                    }
                    #endregion

                    DataRow dr = dtRecipe.NewRow();

                    dr["CLINICRECIPEID"] = dsRecipeDetail.Tables[0].Rows[i]["CLINICRECIPEID"].ToString();
                    dr["MEDORDNAME"]     = dsRecipeDetail.Tables[0].Rows[i]["CHARGEITEM"].ToString();
                    dr["UNITPRICE"]      = Math.Round(Convert.ToDouble(dsRecipeDetail.Tables[0].Rows[i]["UNITPRICE"]), 2).ToString() + "元";
                    dr["AMOUNT"]         = dsRecipeDetail.Tables[0].Rows[i]["AMOUNT"].ToString();
                    dr["DOSEUNIT"]       = dsRecipeDetail.Tables[0].Rows[i]["UNIT"].ToString();
                    dr["TOTALMONEY"]     = Math.Round(Convert.ToDouble(dsRecipeDetail.Tables[0].Rows[i]["TOTALMONEY"]), 2).ToString() + "元";
                    dr["OFFICE"]         = dsRecipeDetail.Tables[0].Rows[i]["EXECOFFICE"].ToString();
                    dr["APPLYREMARK"]    = "";
                    dr["APPLYDOCNO"]     = dsRecipeDetail.Tables[0].Rows[i]["APPLYDOCNO"].ToString();
                    dr["INHOSID"]        = "";
                    dr["RECIPESTATE"]    = dsRecipeDetail.Tables[0].Rows[i]["RECIPESTATE"].ToString();
                    //2016年7月1日
                    dr["DOCTOR"]         = dsRecipeDetail.Tables[0].Rows[i]["DOCTOR"].ToString();
                    dr["OPERATETIME"]    = dsRecipeDetail.Tables[0].Rows[i]["OPERATETIME"].ToString();
                    dr["REGISTERID"]     = dsRecipeDetail.Tables[0].Rows[i]["REGISTERID"].ToString();
                    dr["OPERATOROFFICE"] = dsRecipeDetail.Tables[0].Rows[i]["OPERATOROFFICE"].ToString();
                    dr["STATE"]          = dsRecipeDetail.Tables[0].Rows[i]["RECIPESTATE"].ToString() == "1" ? "已收费" : "未收费";
                    dr["REMARK"]         = dsRecipeDetail.Tables[0].Rows[i]["REMARK"].ToString();
                    dr["OFFICEADDRESS"]  = dsRecipeDetail.Tables[0].Rows[i]["OFFICEADDRESS"].ToString();
                    dr["RECIPECONTENT"]  = dsRecipeDetail.Tables[0].Rows[i]["RECIPECONTENT"].ToString();

                    dtRecipe.Rows.Add(dr);
                }
                #endregion
            }
            if (dtRecipe.Rows.Count > 0)
            {
                ClinicPhysicianRecipeFacade facade = new ClinicPhysicianRecipeFacade();
                DataTable dtableTemp = facade.GetGroupByRecipeDetail("门诊", dtRecipe);

                if (dtableTemp == null)
                {
                    SkyComm.ShowMessageInfo("执行获取组信息失败");
                    this.gdcMain.DataSource = null;
                    return(false);
                }
                //wangchao modify 2016-08-15 根据开单时间和申请单号排序
                DataTable dtSort = dtableTemp.Copy();
                DataView  dvSort = dtSort.DefaultView;
                dvSort.Sort = "OPERATETIME DESC,APPLYDOCNO DESC";
                dtRecipe    = dvSort.ToTable();


                this.gdcMain.DataSource = getTrueOfficeDataTable(diagnoseidC, dtRecipe, clinicPhysicianRecipeFacade);
                //                this.gdcMain.DataSource = dtRecipe;
            }
            else
            {
                SkyComm.ShowMessageInfo("未查询到对应处方信息或该处方数据已经过期!");
                return(false);
            }
            return(true);

            #endregion
        }
        private void lblClinicEmrPrint_Click(object sender, EventArgs e)
        {
            try
            {
                this.ucTime1.timer1.Stop();
                ClinicBriefemrData emr = listEmr.Find(a => a.PITCHON == true);
                if (emr == null)
                {
                    SkyComm.ShowMessageInfo("请选择您要打印的门诊病历信息");
                    return;
                }
                if (false == System.IO.File.Exists(Application.StartupPath + @"\\Reports\\门诊病历.frx"))
                {
                    SkyComm.ShowMessageInfo("系统没有找到报表文件“门诊病历.frx”!");
                    return;
                }
                ClinicPhysicianRecipeFacade recipeFacade = new ClinicPhysicianRecipeFacade();
                ClinicPhysicianRecipeData   RecipeData   = (ClinicPhysicianRecipeData)recipeFacade.FindRecipeInfoRepForReprint(emr.DiagnoseId, emr.Registerid);
                ClinicPhysicianRecipeData   dsTmp        = (ClinicPhysicianRecipeData)RecipeData.Clone();
                ClinicPhysicianRecipeData   dsTmpCheck   = (ClinicPhysicianRecipeData)RecipeData.Clone();
                string          item_Tmp    = string.Empty;
                string          item        = string.Empty;
                string          item2       = string.Empty;
                string          item3       = string.Empty;
                string          item4       = string.Empty;
                ClinicEmrFacade cef         = new ClinicEmrFacade();
                DataSet         CEFData     = cef.GetSchedulInfo(emr.DiagnoseId, emr.Registerid);
                string          ACCEPTSTIME = string.Empty;
                foreach (DataRow dsr in CEFData.Tables[0].Rows)
                {
                    if (dsr["ACCEPTSTIME"].ToString() != "")
                    {
                        ACCEPTSTIME = dsr["ACCEPTSTIME"].ToString();
                    }
                    else
                    {
                        ACCEPTSTIME = "";
                    }
                }
                foreach (DataRow datarow in RecipeData.Tables[0].Rows)
                {
                    if (Convert.ToInt32(datarow["RECIPESTATE"]) == 2)
                    { //过滤退过费
                        continue;
                    }

                    switch (datarow["RECIPETYPE"].ToString())
                    {
                    case "中草药":
                    case "药品费":
                        dsTmp.Tables[0].ImportRow(datarow);
                        break;

                    case "检查":
                        item += datarow["NAME"].ToString() + "    ";
                        dsTmpCheck.Tables[0].ImportRow(datarow);
                        break;

                    case "化验":
                        item2 += datarow["NAME"].ToString() + "    ";
                        dsTmpCheck.Tables[0].ImportRow(datarow);
                        break;

                    case "手术":
                        item3 += datarow["NAME"].ToString() + "    ";
                        dsTmpCheck.Tables[0].ImportRow(datarow);
                        break;

                    case "治疗":
                        datarow["RECIPETYPE"] = "治疗";
                        item4 += datarow["NAME"].ToString() + "    ";
                        dsTmpCheck.Tables[0].ImportRow(datarow);
                        break;
                    }
                }

                dsTmp = Facada(dsTmp);

                item_Tmp = (item == "" ? "" : item + "\r\n") + (item2 == "" ? "" : item2 + "\r\n") + (item3 == "" ? "" : item3 + "\r\n") + (item4 == "" ? "" : item4);
                if (!dsTmp.Tables[0].Columns.Contains("Type"))
                {
                    dsTmp.Tables[0].Columns.Add("Type", typeof(System.String)).DefaultValue = "";
                }


                foreach (DataRow row in dsTmp.Tables[0].Rows)
                {
                    DataSet ds = new MedUsageFacade().FindByMedUsage(row["MEDUSAGE"].ToString());
                    if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows[0]["TYPE"].ToString().Contains("静滴"))
                    {
                        row["Type"] = "静滴";
                    }
                    if (row["RECIPETYPE"].ToString() == "中草药")
                    {
                        row["DOSE"] = row["AMOUNT"];
                    }
                    foreach (DataColumn dc in dsTmp.Tables[0].Columns)
                    {
                        if (dc.DataType == typeof(System.Decimal))
                        {
                            double decValue = 0;
                            if (double.TryParse(row[dc.ColumnName].ToString(), out decValue))
                            {
                                row[dc.ColumnName] = Convert.ToDouble(decValue).ToString("0.######");
                            }
                        }
                    }
                }

                DataTable tb = dsTmp.Tables[0];
                if (dsTmp.Tables[0].Rows.Count > 0)
                {
                    tb = dsTmp.Tables[0].Select("", "CLINICRECIPEID,GROUPNUM").CopyToDataTable();
                }


                dsTmp.WriteXml(Application.StartupPath + @"\\ReportXML\\门诊病历or治疗建议YP.xml");
                dsTmpCheck.WriteXml(Application.StartupPath + @"\\ReportXML\\门诊病历or治疗建议ZL.xml");

                PatientInfoFacade patientinfo = new PatientInfoFacade();
                DataSet           dataset     = patientinfo.FindPateintByDiagnoseID(emr.DiagnoseId);

                F_DIAGNOSEFacade diagnose = new F_DIAGNOSEFacade();
                DataSet          dataset1 = diagnose.FindByCustomID(emr.DiagnoseId, "DIAGNOSEID");

                PrintManager print = new PrintManager();
                print.InitReport("门诊病历");
                print.AddParam("诊疗号", emr.DiagnoseId);
                print.AddParam("挂号号", emr.Registerid);
                print.AddParam("PATIENTNAME", emr.PATIENTNAME); //姓名  PATIENTNAME
                print.AddParam("SEX", emr.SEX);                 //性别   SEX
                print.AddParam("AVOIRDUPOIS", emr.AVOIRDUPOIS); //体重   AVOIRDUPOIS
                print.AddParam("AGE", emr.AGE);                 //年龄   AGE
                print.AddParam("AGEUNIT", emr.AGEUNIT);         //年龄单位
                print.AddParam("费用类别", "");                     //费用类别
                print.AddParam("OPERATETIME", emr.VisitTime);   //就诊时间  VisitTime
                print.AddParam("REGISTEROFFIC", emr.Office);    //就诊科室  office
                print.AddParam("主诉", emr == null ? "" : emr.CaseinChief);
                print.AddParam("病史", emr == null ? "" : emr.Emrcontent);
                print.AddParam("查体", emr == null ? "" : emr.Physical);
                print.AddParam("治疗建议", emr == null ? "" : emr.Notice);
                print.AddParam("临床诊断", emr.DiagResult);                                             //门诊诊断  DiagResult
                print.AddParam("医生", emr.VisitDoctorName);                                          //接诊医生  VisitDoctorName
                print.AddParam("检查", item_Tmp);                                                     //检查
                print.AddParam("过敏史", emr.Allergen);                                                //过敏史
                print.AddParam("TELEPHONE", emr.TELEPHONE);                                         //联系电话
                print.AddParam("ADDRESS", emr.ADDRESS);                                             //地址
                print.AddParam("EMPLOYMENT", emr.EMPLOYMENT);                                       //职业
                print.AddParam("监护人", emr.Guardian);                                                //监护人
                print.AddParam("血压", emr.SystolicPressure + "/" + emr.DiastolicPressure + " mmHg"); //血压
                print.AddParam("ACCEPTSTIME", ACCEPTSTIME.ToString());                              //就诊开始时间 17417
                print.AddParam("医院名称", SysOperatorInfo.CustomerName);                               //医院名称
                print.AddParam("OPERATETIME", emr.VisitTime == null ? "" : emr.VisitTime.ToString());

                if (dataset != null && dataset.Tables[0].Rows.Count > 0)
                {
                    print.AddParam("BIRTHDAY", dataset.Tables[0].Rows[0]["BIRTHDAY"].ToString());             //出生日期
                    print.AddParam("EMPLOYMENT", dataset.Tables[0].Rows[0]["EMPLOYMENT"].ToString());         //职业
                    print.AddParam("MARRIAGESTATUS", dataset.Tables[0].Rows[0]["MARRIAGESTATUS"].ToString()); //婚姻状况
                    print.AddParam("NATION", dataset.Tables[0].Rows[0]["NATION"].ToString());                 //民族
                    //  print.AddParam("ACCEPTSTIME", dataset.Tables[0].Rows[0]["ACCEPTSTIME"].ToString());   //就诊开始时间
                }
                else
                {
                    print.AddParam("BIRTHDAY", "");       //出生日期
                    print.AddParam("EMPLOYMENT", "");     //职业
                    print.AddParam("MARRIAGESTATUS", ""); //婚姻状况
                    print.AddParam("NATION", "");         //民族
                }

                if (dataset1 != null && dataset1.Tables.Count > 0 && dataset1.Tables[0].Rows.Count > 0)
                {
                    print.AddParam("病名", dataset1.Tables[0].Rows[0]["SICKNESSNAME3"].ToString()); //病名
                    print.AddParam("证型", dataset1.Tables[0].Rows[0]["SICKNESS2"].ToString());     //证型
                }
                else
                {
                    print.AddParam("病名", "");   //病名
                    print.AddParam("证型", "");   //证型
                }
                print.AddData(dsTmpCheck.Tables[0], "report1");

                #region 构造病历数据集

                DataTable dt = new DataTable("reportemr");
                dt.Columns.Add("主诉");
                dt.Columns.Add("病史");
                dt.Columns.Add("查体");
                dt.Columns.Add("治疗建议");
                dt.Columns.Add("临床诊断");
                dt.Columns.Add("病名");
                dt.Columns.Add("证型");
                dt.Columns.Add("医生");
                dt.Columns.Add("检查");

                dt.Columns.Add("病生状态");
                dt.Columns.Add("过敏史");
                dt.Columns.Add("TELEPHONE");
                dt.Columns.Add("ADDRESS");
                dt.Columns.Add("EMPLOYMENT");
                dt.Columns.Add("监护人");

                DataRow theNewRow = dt.NewRow();
                theNewRow["主诉"]   = emr == null ? "" : emr.CaseinChief;
                theNewRow["病史"]   = emr == null ? "" : emr.Emrcontent;
                theNewRow["查体"]   = emr == null ? "" : emr.Physical;
                theNewRow["治疗建议"] = emr == null ? "" : emr.Notice;
                theNewRow["临床诊断"] = emr.DiagResult;
                if (dataset1 != null && dataset1.Tables[0].Rows.Count > 0)
                {
                    theNewRow["病名"] = dataset1.Tables[0].Rows[0]["SICKNESSNAME3"].ToString();
                    theNewRow["证型"] = dataset1.Tables[0].Rows[0]["SICKNESS2"].ToString();
                }
                theNewRow["医生"]         = SysOperatorInfo.OperatorName;
                theNewRow["检查"]         = item;
                theNewRow["病生状态"]       = emr.Morbidity;
                theNewRow["过敏史"]        = emr.Allergen;
                theNewRow["TELEPHONE"]  = emr.TELEPHONE;
                theNewRow["ADDRESS"]    = emr.ADDRESS;
                theNewRow["EMPLOYMENT"] = emr.EMPLOYMENT;
                theNewRow["监护人"]        = emr.Guardian;

                dt.Rows.Add(theNewRow);

                dt.WriteXml(Application.StartupPath + @"\\ReportXML\\门诊病历打印病历数据集.xml");

                print.AddData(dt, "reportemr");

                #endregion

                EPadidiographFacade eFacade = new EPadidiographFacade();
                DataSet             eData   = eFacade.GetByUserid(emr.VisitDoctor);
                print.AddData(eData.Tables[0], "dsPic"); //电子签名
                print.AddData(tb, "report");

                PrintManager.CanDesign = true;

                print.Print();
                print.Dispose();
                Thread.Sleep(100);
            }
            catch (Exception ex)
            {
                Skynet.LoggingService.LogService.GlobalInfoMessage("门诊病历打印异常:" + ex.Message);
            }
            finally
            {
                ucTime1.Sec = 60;
                ucTime1.timer1.Start();
            }
        }