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); }
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); }
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(); }
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); }
/// <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); } }
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); }
/// <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();//计时器动 } }
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 }); }); }
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 }); }); }
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(); } }