using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using PTMedicalInsurance.Business; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Helper; using PTMedicalInsurance.FormSetter; using PTMedicalInsurance.Variables; using System.Threading; namespace PTMedicalInsurance.Forms { public partial class MutualAid : Form { public DataTable dtSumumt; public DataTable dtSettlInfo; public string settlementID; public string finalSettlementInfo; private string psnCashPay ="0"; int serialNOofMutualAid = 1; private MIIrisServices iris = new MIIrisServices(); InvokeHelper invoker = new InvokeHelper(); HisMainBusiness hBus = new HisMainBusiness(); XmlHelper xmler = new XmlHelper(); public JObject joMainSettlInfo; public string mutualAidPay; //共济金额 public MutualAid(JObject jo) { InitializeComponent(); GridViewSetter grdSetter = new GridViewSetter(); grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo); grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt); tbMainSettlID.Text = settlementID = JsonHelper.getDestValue(jo, "setl_id"); psnCashPay = JsonHelper.getDestValue(jo, "psnCashPay"); tbMainSettlID.Text = settlementID; joMainSettlInfo = JObject.Parse(JsonHelper.getDestValue(jo, "MainSettlInfo")); string errMsg; getSettlInfo(out errMsg); getSumamtInfo(out errMsg); } public MutualAid(string settlId) { InitializeComponent(); GridViewSetter grdSetter = new GridViewSetter(); grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo); grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt); settlementID = settlId; tbMainSettlID.Text = settlementID; string errMsg; getSettlInfo(out errMsg); getSumamtInfo(out errMsg); } public MutualAid() { InitializeComponent(); GridViewSetter grdSetter = new GridViewSetter(); grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo); grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt); } #region 方法封装 //获取结算汇总信息 [STAThread] public void ReadCard_MutualAid() { string errMsg; if (hBus.readCard(out errMsg) != 0) { MessageBox.Show(errMsg); return; } else { string patInfo = xmler.ToJSON(errMsg); JObject joPatInfo = JObject.Parse(patInfo); Global.pat.patExtend.prm_auther_certno = JsonHelper.getDestValue(joPatInfo, "output.prm_auther_certno"); Global.pat.patExtend.prm_auther_insu_admdvs = JsonHelper.getDestValue(joPatInfo, "output.prm_auther_insu_admdvs"); Global.pat.patExtend.prm_auther_name = JsonHelper.getDestValue(joPatInfo, "output.prm_auther_name"); Global.pat.patExtend.prm_auther_no = JsonHelper.getDestValue(joPatInfo, "output.prm_auther_no"); } } private int getSumamtInfo(out string errMsg) { errMsg = ""; try { string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE ValidFlag=1 and Hospital_Dr=" + Global.inf.hospitalDr + " AND SettlementID='" + settlementID + "'"; JObject joSql = new JObject(); joSql.Add("sqlStr", sqlStr); JObject joRtn = iris.QuerySettlementInfo(joSql); dtSumumt = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable))); decimal accountPay = 0, cashPay = 0, mutualAidPay = 0; for (int i = 1; i < dtSettlInfo.Rows.Count; i++) { int billType = int.Parse(dtSettlInfo.Rows[i]["BillType"].ToString()); accountPay = accountPay + decimal.Parse(dtSettlInfo.Rows[i]["AccountPaySumamt"].ToString()) * billType; mutualAidPay = mutualAidPay + decimal.Parse(dtSettlInfo.Rows[i]["AccountMutualAidAmount"].ToString()) * billType; if (billType == 1) { serialNOofMutualAid++; } else { dgvSettlInfo.Rows[i].DefaultCellStyle.ForeColor = Color.Red; } } dgvSettlInfo.Refresh(); dtSumumt.Rows[0]["AccountPaySumamt"] = decimal.Parse(dtSumumt.Rows[0]["AccountPaySumamt"].ToString()) + accountPay; dtSumumt.Rows[0]["PersonCashPay"] = decimal.Parse(dtSumumt.Rows[0]["PersonCashPay"].ToString()) - accountPay; dtSumumt.Rows[0]["AccountMutualAidAmount"] = accountPay; dgvSumamt.DataSource = dtSumumt; dgvSettlInfo.SelectedIndex = dgvSettlInfo.Rows.Count - 1; return 0; } catch (Exception e) { errMsg = e.Message; return 1; } } //获取多次结算信息 private int getSettlInfo(out string errMsg) { errMsg = ""; try { string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE ValidFlag=1 and Hospital_Dr=" + Global.inf.hospitalDr + " AND MainSettlementIDOfMutualAid='" + settlementID + "'"; JObject joSql = new JObject(); joSql.Add("sqlStr", sqlStr); JObject joRtn = iris.QuerySettlementInfo(joSql); dtSettlInfo = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable))); dgvSettlInfo.DataSource = dtSettlInfo; return 0; } catch (Exception e) { errMsg = e.Message; return 1; } } //中心共济结算 private int mutualAid(out string output) { output = ""; try { //弹出共济结算选择框 { //组织入参 JObject joData = new JObject(); joData.Add("prm_aac001", Global.pat.patExtend.prm_auther_no);//账户共济授权人个人编码 joData.Add("prm_ykc173", "");//门诊诊断信息 joData.Add("prm_yka065", mutualAidPay);//账户共济下账金额 joData.Add("prm_aka130", "110102");//支付类别 joData.Add("prm_yka110", "");//发票号 joData.Add("prm_aae013", "");//备注 joData.Add("prm_aae011", Global.user.ID);//经办人编码 joData.Add("prm_ykc141", Global.user.name);//经办人姓名 joData.Add("prm_ima_mdtrt_id", dtSumumt.Rows[0]["MdtrtID"].ToString());//原主交易就诊 ID joData.Add("prm_ima_setl_id", dtSumumt.Rows[0]["SettlementID"].ToString());//原主交易结算 ID joData.Add("prm_ima_certno", dtSumumt.Rows[0]["CertificateNO"].ToString());//原主交易证件号码 joData.Add("prm_ima_med_type", dtSumumt.Rows[0]["MedicalType"].ToString());//原主交易医疗类别 joData.Add("prm_ima_medfee_sumamt", dtSumumt.Rows[0]["Sumamt"].ToString());//原主交易医疗费总额 joData.Add("prm_ima_fund_pay_sumamt", dtSumumt.Rows[0]["FundPaySumamt"].ToString());//原主交易基金支付总额 joData.Add("prm_ima_acct_pay", dtSumumt.Rows[0]["AccountPaySumamt"].ToString());//原主交易个人账户支出 joData.Add("prm_ima_psn_cash_pay", dtSumumt.Rows[0]["PersonCashPay"].ToString());//原 主 交 易 个 人 现 金 支 出 joData.Add("prm_ima_psn_no", dtSumumt.Rows[0]["PersonnelNO"].ToString());//原主交易个人编号 joData.Add("prm_ima_psn_name", dtSumumt.Rows[0]["PatientName"].ToString());//原主交易人员姓名 joData.Add("prm_user_insu_admdvs", dtSumumt.Rows[0]["insuplc_admdvs"].ToString());//原主交易人员参保统筹区 joData.Add("prm_yabtch", Global.pat.patExtend.prm_auther_insu_admdvs); //调用中心结算 if (invoker.invokeYHCom("48g", joData, out output) != 0) { return -1; } else { string errMsg = ""; invoker.confirmYHCom(out errMsg); return 0; } } } catch (Exception e) { output = e.Message; return 1; } } //撤销中心共济结算 private int cancleMutualAid(out string errMsg) { errMsg = ""; try { int i = dgvSettlInfo.SelectedIndex; if ((dtSettlInfo.Rows[i]["MutualAidFlag"].ToString() == "") || (dtSettlInfo.Rows[i]["MutualAidFlag"].ToString() == "0")) { errMsg = "当前结算无共济支付信息!"; return -1; } else if (int.Parse(dtSettlInfo.Rows[i]["MutualAidFlag"].ToString()) == 1) { errMsg = "当前结算为主结算,请选择正确的共济支付结算!"; return -1; } //组织入参 dynamic joTmp = new JObject(); joTmp.prm_akc190 = dtSettlInfo.Rows[i]["MdtrtID"].ToString(); joTmp.prm_aac001 = dtSettlInfo.Rows[i]["PersonnelNO"].ToString(); joTmp.prm_yka103 = dtSettlInfo.Rows[i]["SettlementID"].ToString(); joTmp.prm_yab003 = dtSettlInfo.Rows[i]["insuplc_admdvs"].ToString(); joTmp.prm_aka130 = "110102";//dtSettlInfo.Rows[i]["MedicalType"].ToString(); joTmp.prm_ykb065 = dtSettlInfo.Rows[i]["InsuranceType"].ToString(); joTmp.prm_aae011 = Global.user.ID; joTmp.prm_ykc141 = Global.user.name; joTmp.prm_aae036 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); joTmp.prm_yabtch = dtSettlInfo.Rows[i]["insuplc_admdvs"].ToString(); //将中心返回的结果返回HIS 调用HIS服务进行保存 if (invoker.invokeYHCom("42", joTmp, out errMsg) != 0) { return -1; } else { string err = ""; invoker.confirmYHCom(out err); dgvSettlInfo.SelectedIndex = dgvSettlInfo.Rows.Count - 1; return 0; } } catch (Exception e) { errMsg = e.Message; return -1; } } //保存到云医保平台 private int saveMutualAidSettlementToCloudPlatform(string centerReturn, out string errMsg) { errMsg = ""; try { //返回给云医保平台 JObject joSettlement = JObject.Parse(centerReturn); JObject joRtnSetlinfo = JObject.Parse(JsonHelper.getDestValue(joSettlement, "output")); JObject joSetlinfo = new JObject(); joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr); joSetlinfo.Add("admID", dtSumumt.Rows[0]["AdmID"].ToString()); joSetlinfo.Add("mdtrt_id", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc190")); joSetlinfo.Add("setl_id", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka103"));// joSetlinfo.Add("psn_no", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac001")); joSetlinfo.Add("psn_name", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac003")); //joSetlinfo.Add("mdtrt_cert_type", JsonHelper.getDestValue(joRtnSetlinfo, "mdtrt_cert_type")); joSetlinfo.Add("certno", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac002")); joSetlinfo.Add("gend", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac004")); joSetlinfo.Add("naty", ""); joSetlinfo.Add("brdy", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aac006")); joSetlinfo.Add("age", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc023")); //joSetlinfo.Add("insutype", "310"); //中心说默认310 joSetlinfo.Add("insutype", "1"); //张振说默认为1 joSetlinfo.Add("psn_type", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc021")); joSetlinfo.Add("cvlserv_flag", ""); joSetlinfo.Add("setl_time", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aae036")); joSetlinfo.Add("mdtrt_cert_type", JsonHelper.getDestValue(joRtnSetlinfo, "mdtrt_cert_type")); joSetlinfo.Add("med_type", JsonHelper.getDestValue(joRtnSetlinfo, "prm_aka130"));//支付类别 joSetlinfo.Add("medfee_sumamt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka055"));//总费用 joSetlinfo.Add("fulamt_ownpay_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka056"));//全自费金额 joSetlinfo.Add("overlmt_selfpay", "");//超限价自费费用 joSetlinfo.Add("preselfpay_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka057"));//先行自付金额 joSetlinfo.Add("inscp_scp_amt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka111"));//符合政策范围金额 joSetlinfo.Add("act_pay_dedc", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka058"));//实际支付起付线 joSetlinfo.Add("hifp_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka248"));//基本医疗保险统筹基金支出 joSetlinfo.Add("pool_prop_selfpay", "0");//基本医疗保险统筹基金支付比例 joSetlinfo.Add("cvlserv_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yke030"));//公务员医疗补助资金支出 joSetlinfo.Add("hifes_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka062"));//企业支付 joSetlinfo.Add("hifmi_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka082"));// 居民大病保险资金支出 joSetlinfo.Add("hifob_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka083"));//职工大额医疗费用补助基金支出 joSetlinfo.Add("maf_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_ake181"));//医疗救助基金支出 joSetlinfo.Add("hosp_part_amt", JsonHelper.getDestValue(joRtnSetlinfo, "hosp_part_amt"));//医院负担金额 joSetlinfo.Add("oth_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_ake173"));//其他支出 joSetlinfo.Add("fund_pay_sumamt", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka248"));//基金支付总额 joSetlinfo.Add("psn_part_amt", 0);//个人负担总金额 joSetlinfo.Add("acct_pay", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka065"));//个人账户支出 joSetlinfo.Add("psn_cash_pay", JsonHelper.getDestValue(joRtnSetlinfo, "psn_cash_pay"));//个人现金支出 joSetlinfo.Add("balc", JsonHelper.getDestValue(joRtnSetlinfo, "prm_akc087"));// 余额 joSetlinfo.Add("acct_mulaid_pay", "");//个人账户共济支付金额 joSetlinfo.Add("medins_setl_id", "");//医药机构结算ID joSetlinfo.Add("clr_optins", JsonHelper.getDestValue(joRtnSetlinfo, "prm_ykb037"));//清算经办机构 joSetlinfo.Add("clr_way", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka054"));//清算方式 joSetlinfo.Add("clr_type", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yka316"));//清算类别 joSetlinfo.Add("ValidFlag", 1); joSetlinfo.Add("BillType", 1); joSetlinfo.Add("msgid", Global.curEvt.msgid); joSetlinfo.Add("admType", dtSumumt.Rows[0]["admType"].ToString()); joSetlinfo.Add("billID", dtSumumt.Rows[0]["billID"].ToString()); joSetlinfo.Add("recordID", dtSumumt.Rows[0]["recordID"].ToString()); joSetlinfo.Add("interfaceDr", Global.inf.interfaceDr); //if (JsonHelper.getDestValue(joRtnSetlinfo, "prm_yab139") != "") // joSetlinfo.Add("insuplc_admdvs", JsonHelper.getDestValue(joRtnSetlinfo, "prm_yab139"));//参保地存分中心编号 //else // joSetlinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs); joSetlinfo.Add("insuplc_admdvs", Global.pat.patExtend.prm_auther_insu_admdvs); joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); joSetlinfo.Add("HospitalizationsDays", dtSumumt.Rows[0]["HospitalizationsDays"].ToString()); joSetlinfo.Add("HospitalizationsTimes", dtSumumt.Rows[0]["HospitalizationsTimes"].ToString()); joSetlinfo.Add("HISAdmTime", dtSumumt.Rows[0]["HISAdmTime"].ToString()); joSetlinfo.Add("HISDischargeTime", dtSumumt.Rows[0]["HISDischargeTime"].ToString()); joSetlinfo.Add("updateUserID", Global.user.ID); joSetlinfo.Add("MainSettlementIDOfMutualAid", dtSumumt.Rows[0]["SettlementID"].ToString()); serialNOofMutualAid++; joSetlinfo.Add("MutualAidFlag", 2); JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010051", joSetlinfo).ToString(), "插入结算信息"); if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0) { return -1; } else { return 0; } } catch (Exception e) { errMsg = e.Message; return -1; } } //更新主结算数据 private int updateMainSettlementInfo(out string errMsg) { try { JObject joTmp = new JObject(); joTmp.Add("updateUserID", Global.user.ID); joTmp.Add("HospitalDr", Global.inf.hospitalDr); joTmp.Add("AdmDr", dtSumumt.Rows[0]["AdmID"].ToString()); joTmp.Add("SettlementID", dtSumumt.Rows[0]["SettlementID"].ToString()); joTmp.Add("MdtrtID", dtSumumt.Rows[0]["MdtrtID"].ToString()); joTmp.Add("MainSettlementIDOfMutualAid", dtSumumt.Rows[0]["SettlementID"].ToString()); joTmp.Add("MutualAidFlag", 1); joTmp.Add("ValidFlag",1); joTmp.Add("BillType", 1); JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010080", joTmp).ToString(), "更新结算表的共济主结算ID和标志"); return JsonHelper.parseIrisRtnValue(joRtn, out errMsg); } catch (Exception ex) { errMsg = "updateMainSettlementInfo:" + ex.Message; return -1; } } /// /// 撤销云平台结算信息 /// /// /// private int cancleMutualAidOfCloudPlatform(string centerReturn,out string errMsg) { errMsg = ""; try { int i = dgvSettlInfo.SelectedIndex; if (dtSettlInfo.Rows[i]["SettlementID"].ToString() == dtSettlInfo.Rows[i]["MainSettlementIDOfMutualAid"].ToString()) { errMsg = "检测到选择的是主数据,请重新选择或者联系管理员!"; return -1; } dynamic joTmp = new JObject(); Global.pat.adm_Dr =int.Parse(dtSettlInfo.Rows[i]["AdmID"].ToString()); Global.pat.psn_no = dtSettlInfo.Rows[i]["PersonnelNO"].ToString(); Global.pat.mdtrtID = dtSettlInfo.Rows[i]["MdtrtID"].ToString(); Global.pat.settlID = dtSettlInfo.Rows[i]["SettlementID"].ToString(); JObject joCenterRtn = JObject.Parse(centerReturn); string newSetlId = JsonHelper.getDestValue(joCenterRtn, "output.prm_yka198"); joTmp.newSetlId = newSetlId; if (iris.cancleSettlement(newSetlId,out errMsg)!= 0) { return -1; } else { return 0; } } catch (Exception e) { errMsg = e.Message; return -1; } } /// /// 获取最终的结算信息,返回给HIS。无论共济多少次,返回给HIS的只有这一条。 /// /// /// private int getFinalSettlementInfo(out string output) { output = ""; try { JObject joCenterRtn = new JObject(); JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joCenterRtn, "output.result")); joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr); joSetlinfo.Add("admID", dtSettlInfo.Rows[0]["Adm_Dr"].ToString()); joSetlinfo.Add("ValidFlag", 1); joSetlinfo.Add("BillType", 1); joSetlinfo.Add("updateUserID", Global.user.ID); joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); joSetlinfo.Add("billID", dtSettlInfo.Rows[0]["BillID"].ToString()); joSetlinfo.Add("recordID", dtSettlInfo.Rows[0]["RecordID"].ToString()); joSetlinfo.Add("msgid", Global.curEvt.msgid); joSetlinfo.Add("interfaceDr", Global.inf.interfaceDr); joSetlinfo.Add("admType", dtSettlInfo.Rows[0]["admType"].ToString()); joSetlinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs); joSetlinfo.Add("MainSettlementIDOfMutualAid", dtSettlInfo.Rows[0]["SettlementID"].ToString()); joSetlinfo.Add("MutualAidFlag", serialNOofMutualAid); output = joSetlinfo.ToString(); return 0; } catch (Exception e) { output = e.Message; return -1; } } #endregion private void btMutualAid_Click(object sender, EventArgs e) { string errMsg = ""; try { if ((dtSumumt == null) || (dtSumumt.Rows.Count == 0)) { MessageBox.Show("共济结算需要被共济人存在结算信息,目前未查询到任何相关结算信息,请联系管理员!"); return; } //读卡 如果账户共济授权人编码为空,则进行读卡,否则直接共济 string patInfo, funNO = "48g"; if (string.IsNullOrEmpty(Global.pat.patExtend.prm_auther_certno)) { //如果住院的则要查询当前的患者信息记录表 if (dtSumumt.Rows[0]["AdmType"].ToString() == "2") { string sqlStr = "SELECT * FROM SQLUser.BS_MIPatCurrentInsuInfo WHERE Interface_Dr =" + Global.inf.interfaceDr + " AND AdmID = '" + dtSumumt.Rows[0]["AdmID"].ToString() + "'" + " AND MdtrtID = '" + dtSumumt.Rows[0]["MdtrtID"].ToString() + "'"; JObject joSqlStr = new JObject(); joSqlStr.Add("sqlStr", sqlStr); JObject joCurrentInsuInfo = iris.DynamicQueryPatCurrentInsuInfo(joSqlStr); if (JsonHelper.parseIrisRtnValue(joCurrentInsuInfo, out errMsg) != 0) { Thread thread = new Thread(ReadCard_MutualAid); thread.SetApartmentState(ApartmentState.STA); //重点 thread.IsBackground = true; thread.Start(); thread.Join(); } else { Global.pat.patExtend.prm_auther_certno = JsonHelper.getDestValue(joCurrentInsuInfo, "result.rows[0].extField1"); Global.pat.patExtend.prm_auther_insu_admdvs = JsonHelper.getDestValue(joCurrentInsuInfo, "result.rows[0].extField2"); Global.pat.patExtend.prm_auther_name = JsonHelper.getDestValue(joCurrentInsuInfo, "result.rows[0].extField3"); Global.pat.patExtend.prm_auther_no = JsonHelper.getDestValue(joCurrentInsuInfo, "result.rows[0].extField4"); } } else { Thread thread = new Thread(ReadCard_MutualAid); thread.SetApartmentState(ApartmentState.STA); //重点 thread.IsBackground = true; thread.Start(); thread.Join(); } } MutualAidChooser frm = new MutualAidChooser(psnCashPay); if (frm.ShowDialog() == DialogResult.OK) { mutualAidPay = frm.mutualAidPay; } else { MessageBox.Show("收款员取消共济结算!"); return; } //中心共济结算 string centerReturn = ""; if (mutualAid(out centerReturn) != 0) { MessageBox.Show(centerReturn); return; } //string centerReturn = System.IO.File.ReadAllText(Global.curEvt.path + @"\\CS.TXT"); //将共济结算数据保存到医保平台 if (saveMutualAidSettlementToCloudPlatform(xmler.ToJSON(centerReturn),out errMsg) != 0) { MessageBox.Show(errMsg); return; } //更新主结算的信息 if (updateMainSettlementInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } //刷新结算信息显示 if (getSettlInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } //刷新汇总信息显示 if (getSumamtInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } else { MessageBox.Show("共济结算成功!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } private void btCancleMutualAid_Click(object sender, EventArgs e) { string errMsg = ""; try { //撤销中心共济结算 string centerReturn; if (cancleMutualAid(out centerReturn) != 0) { MessageBox.Show(centerReturn); return; } //保存到医保平台 if (cancleMutualAidOfCloudPlatform(xmler.ToJSON(centerReturn), out errMsg) != 0) { MessageBox.Show(errMsg); return; } //刷新结算信息显示 if (getSettlInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } //刷新汇总信息显示 if (getSumamtInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } else { MessageBox.Show("撤销共济成功!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } private void btYes_Click(object sender, EventArgs e) { try { if (dtSumumt == null) { MessageBox.Show("请输入结算ID并点击查询按钮!"); return; } else { if (dtSumumt.Rows.Count <1) { MessageBox.Show("未找到主结算数据!"); return; } } JObject joSetlinfo = new JObject(); joSetlinfo.Add("setl_time", dtSumumt.Rows[0]["SettlementTime"].ToString()); joSetlinfo.Add("cvlserv_pay", dtSumumt.Rows[0]["CivilserviceAllowancePay"].ToString()); joSetlinfo.Add("hifdm_pay", dtSumumt.Rows[0]["HealthInsurancePay"].ToString()); joSetlinfo.Add("cvlserv_flag", dtSumumt.Rows[0]["CivilserviceAllowancePay"].ToString()); joSetlinfo.Add("med_type", dtSumumt.Rows[0]["MedicalType"].ToString()); joSetlinfo.Add("brdy", dtSumumt.Rows[0]["BirthDay"].ToString()); joSetlinfo.Add("naty", dtSumumt.Rows[0]["Nation"].ToString()); joSetlinfo.Add("psn_cash_pay", dtSumumt.Rows[0]["PersonCashPay"].ToString()); joSetlinfo.Add("certno", dtSumumt.Rows[0]["CertificateNO"].ToString()); joSetlinfo.Add("hifmi_pay", dtSumumt.Rows[0]["SeriousIllnessPay"].ToString()); joSetlinfo.Add("psn_no", dtSumumt.Rows[0]["PersonnelNO"].ToString()); joSetlinfo.Add("act_pay_dedc", dtSumumt.Rows[0]["ActualPayDeductible"].ToString()); joSetlinfo.Add("mdtrt_cert_type", dtSumumt.Rows[0]["MdtrtCertType"].ToString()); joSetlinfo.Add("balc", dtSumumt.Rows[0]["Balance"].ToString()); joSetlinfo.Add("medins_setl_id", dtSumumt.Rows[0]["OrganSettlementID"].ToString()); joSetlinfo.Add("psn_cert_type", dtSumumt.Rows[0]["CertificateType"].ToString()); joSetlinfo.Add("acct_mulaid_pay", dtSumumt.Rows[0]["AccountMutualAidAmount"].ToString()); joSetlinfo.Add("clr_way", dtSumumt.Rows[0]["ClearingWay"].ToString()); joSetlinfo.Add("hifob_pay", dtSumumt.Rows[0]["LargeExpensesSupplementPay"].ToString()); joSetlinfo.Add("oth_pay", dtSumumt.Rows[0]["OtherPay"].ToString()); joSetlinfo.Add("medfee_sumamt", dtSumumt.Rows[0]["Sumamt"].ToString()); joSetlinfo.Add("hifes_pay", dtSumumt.Rows[0]["EnterpriseSupplementPay"].ToString()); joSetlinfo.Add("gend", dtSumumt.Rows[0]["Gender"].ToString()); joSetlinfo.Add("mdtrt_id", dtSumumt.Rows[0]["MdtrtID"].ToString()); joSetlinfo.Add("acct_pay", dtSumumt.Rows[0]["AccountPaySumamt"].ToString()); joSetlinfo.Add("fund_pay_sumamt", dtSumumt.Rows[0]["FundPaySumamt"].ToString()); joSetlinfo.Add("fulamt_ownpay_amt", dtSumumt.Rows[0]["OwnPayAmount"].ToString()); joSetlinfo.Add("hosp_part_amt", dtSumumt.Rows[0]["HospitalPartAmount"].ToString()); joSetlinfo.Add("setl_id", dtSumumt.Rows[0]["SettlementID"].ToString()); joSetlinfo.Add("inscp_scp_amt", dtSumumt.Rows[0]["InPolicyRangeAmount"].ToString()); joSetlinfo.Add("insutype", dtSumumt.Rows[0]["InsuranceType"].ToString()); joSetlinfo.Add("maf_pay", dtSumumt.Rows[0]["MedicalAssistPay"].ToString()); joSetlinfo.Add("psn_name", dtSumumt.Rows[0]["PatientName"].ToString()); joSetlinfo.Add("psn_part_amt", dtSumumt.Rows[0]["PersonPaySumamt"].ToString()); joSetlinfo.Add("clr_optins", dtSumumt.Rows[0]["ClearingOrgan"].ToString()); joSetlinfo.Add("pool_prop_selfpay", dtSumumt.Rows[0]["HealthInsuranceRatio"].ToString()); joSetlinfo.Add("psn_type", dtSumumt.Rows[0]["PersonType"].ToString()); joSetlinfo.Add("hifp_pay", dtSumumt.Rows[0]["HealthInsurancePay"].ToString()); joSetlinfo.Add("overlmt_selfpay", dtSumumt.Rows[0]["OverLimitAmount"].ToString()); joSetlinfo.Add("preselfpay_amt", dtSumumt.Rows[0]["PreSelfPayAmount"].ToString()); joSetlinfo.Add("age", dtSumumt.Rows[0]["Age"].ToString()); joSetlinfo.Add("clr_type", dtSumumt.Rows[0]["ClearingType"].ToString()); // joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr); joSetlinfo.Add("admID", dtSumumt.Rows[0]["AdmID"].ToString()); joSetlinfo.Add("ValidFlag", dtSumumt.Rows[0]["ValidFlag"].ToString()); joSetlinfo.Add("BillType", dtSumumt.Rows[0]["BillType"].ToString()); joSetlinfo.Add("updateUserID", Global.user.ID); joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); joSetlinfo.Add("billID", dtSumumt.Rows[0]["BillID"].ToString()); joSetlinfo.Add("recordID", dtSumumt.Rows[0]["RecordID"].ToString()); joSetlinfo.Add("msgid", dtSumumt.Rows[0]["msgid"].ToString()); joSetlinfo.Add("interfaceDr", dtSumumt.Rows[0]["InterfaceDr"].ToString()); joSetlinfo.Add("admType", dtSumumt.Rows[0]["admType"].ToString()); joSetlinfo.Add("insuplc_admdvs", dtSumumt.Rows[0]["AccountPaySumamt"].ToString()); joSetlinfo.Add("MainSettlementIDOfMutualAid", dtSumumt.Rows[0]["SettlementID"].ToString()); if (joMainSettlInfo != null) { joMainSettlInfo["output"]["prm_yka065"] = dtSumumt.Rows[0]["AccountPaySumamt"].ToString(); joMainSettlInfo["output"]["psn_cash_pay"] = dtSumumt.Rows[0]["PersonCashPay"].ToString(); } finalSettlementInfo = joSetlinfo.ToString(); this.DialogResult = DialogResult.OK; Global.writeLog("finalSettlementInfo", finalSettlementInfo,""); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void btNO_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; } private void btQuerySettlInfo_Click(object sender, EventArgs e) { settlementID = tbMainSettlID.Text; string errMsg; if (getSettlInfo(out errMsg) != 0) { MessageBox.Show(errMsg); } if (getSumamtInfo(out errMsg) != 0) { MessageBox.Show(errMsg); } } private void MutualAid_FormClosing(object sender, FormClosingEventArgs e) { //DialogResult result = MessageBox.Show("请点击确认完成或者放弃结算按钮!如果点击窗口关闭图标,可能会导致数据错误!确定要继续吗?", "信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //if (result == DialogResult.No) //{ // e.Cancel = true; //取消关闭操作 //} //else //{ // this.Close(); //} } } }