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; namespace PTMedicalInsurance.Forms { public partial class MutualAid : Form { public DataTable dtSumumt; public DataTable dtSettlInfo; public string settlementID; public string finalSettlementInfo; int numbersOfMutualAid = 1; InsuServices iris = new InsuServices(); InvokeHelper center = new InvokeHelper(); HisMainBusiness hBus = new HisMainBusiness(); MIIrisServices mIS = new MIIrisServices(); public string mutualAidPay; //共济金额 //1.声明自适应类实例 AutoResizeForm asc = new AutoResizeForm(); public MutualAid(string settlId,string BusiType) { InitializeComponent(); GridViewSetter grdSetter = new GridViewSetter(); grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo); grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt); grdSetter.SetHeaderTextOfDgvMutualAidQueryInfo(dgv_MutualAidQuery); settlementID = settlId; string errMsg; getSettlInfo(out errMsg); getSumamtInfo(out errMsg); tbMainSettlID.Text = settlId; Global.pat.AccountMutualAidPay = false; //先初始化一下 只有确认完成的时候 才把状态改为true //门诊结算 if (BusiType == "M5") { btCancleMutualAid.Visible = false; btMutualAid.Visible = true; btYes.Visible = true; } //门诊撤销结算 if (BusiType == "M5C") { btCancleMutualAid.Visible = true; btMutualAid.Visible = false; btYes.Visible = true; } grdSetter.DatagridviewColumnWidthAdaptation(dgvSettlInfo); grdSetter.DatagridviewColumnWidthAdaptation(dgvSumamt); grdSetter.DatagridviewColumnWidthAdaptation(dgv_MutualAidQuery); asc.controllInitializeSize(this); asc.controlAutoSize(this); } public MutualAid() { InitializeComponent(); GridViewSetter grdSetter = new GridViewSetter(); grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo); grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt); grdSetter.SetHeaderTextOfDgvMutualAidQueryInfo(dgv_MutualAidQuery); grdSetter.DatagridviewColumnWidthAdaptation(dgvSettlInfo); grdSetter.DatagridviewColumnWidthAdaptation(dgvSumamt); grdSetter.DatagridviewColumnWidthAdaptation(dgv_MutualAidQuery); //this.WindowState = FormWindowState.Minimized; asc.controllInitializeSize(this); asc.controlAutoSize(this); tb_AccountMutualAidPay.SelectedIndex = 2; } #region 方法封装 //获取结算汇总信息 private int getSumamtInfo(out string errMsg) { errMsg = ""; try { string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.hospitalDr + " AND SettlementID='" + settlementID + "'"; JObject joRtn = iris.querySettlementInfo(sqlStr); 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) { numbersOfMutualAid++; } 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 Hospital_Dr=" + Global.inf.hospitalDr + " AND MainSettlementIDOfMutualAid='" + settlementID + "'"; JObject joRtn = iris.querySettlementInfo(sqlStr); 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(string patInfo, out string output) { output = ""; string mPsnNO, mdtrtCertType, mdtrtCertNO, mInsutype,mName,mCertNo,mCertType; //dynamic joExpContent = new JObject(); try { Global.writeLog("账户代支授权人1101返回值",patInfo,""); //JObject jo1101 = JObject.Parse(patInfo); //JObject joBaseInfo = JObject.FromObject(jo1101["output"]["baseinfo"]); //JObject joSelectedInsuInfo = JObject.FromObject(jo1101["selectedInsuInfo"]); //JObject joselectedIdInfo = JObject.FromObject(jo1101["selectedIdInfo"]); //mName = joBaseInfo["psn_name"].ToString(); //mCertNo = joBaseInfo["certno"].ToString(); ////mdtrtCertType = joSelectedInsuInfo["mdtrt_cert_type"].ToString(); ////mdtrtCertNO = joSelectedInsuInfo["mdtrt_cert_no"].ToString(); //mInsutype = joSelectedInsuInfo["insutype"].ToString(); //Global.pat.certNO_GJSQR = mCertNo; //Global.pat.name_GJSQR = mName; //Global.pat.insuType_GJSQR = mInsutype; mdtrtCertType = Global.pat.mdtrtcertType_GJSQR; mdtrtCertNO = Global.pat.mdtrtcertNO_GJSQR; //MessageBox.Show(Global.pat.certNO_GJSQR+"|"+ Global.pat.name_GJSQR+"|"+ Global.pat.certNO_SYR+"|"+ Global.pat.name_SYR+"|"+ Global.pat.insuType_GJSQR+"|" //+ mutualAidPay+"|"+ Global.inf.hospitalNO+"|"+ Global.pat.mdtrtcertType_GJSQR+"|"+ Global.pat.mdtrtcertNO_GJSQR); //组织入参 JObject joData2596 = new JObject(); joData2596.Add("autherCertno", Global.pat.certNO_GJSQR); //授权人证件号码 joData2596.Add("autherName", Global.pat.name_GJSQR); //授权人姓名 joData2596.Add("userCertno", Global.pat.certNO_SYR); //使用人证件号码 joData2596.Add("acctUserName", Global.pat.name_SYR); //使用人姓名 joData2596.Add("insutype", Global.pat.insuType_GJSQR); //险种 joData2596.Add("acctPay", Global.pat.mutualAidPay); //代支金额 joData2596.Add("fixmedinsCode", Global.inf.hospitalNO); //医疗服务机构编号 joData2596.Add("mdtrt_cert_type", mdtrtCertType); //就诊凭证类型 joData2596.Add("mdtrt_cert_no", mdtrtCertNO); //就诊凭证编号 JObject joInPut2596 = new JObject(); joInPut2596.Add("acctMulaidBind", joData2596); //调用中心结算 JObject joRtn2596 = center.invokeCenterServiceOfMutualAid("2596", JsonHelper.setCenterInpar_MutualMid("2596", joInPut2596)); //保存中心返回的结果 if (JsonHelper.parseCenterReturnJson(joRtn2596, out output) != 0) { return -1; } else { output = joRtn2596.ToString(); return 0; } return 0; } catch (Exception e) { output = e.Message; return 1; } } //撤销中心共济结算 private int cancleMutualAid(out string errMsg) { errMsg = ""; try { int i = dgvSettlInfo.SelectedIndex; mIS.getInterface(dtSettlInfo.Rows[i]["InterfaceDr"].ToString()); 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; } //南宁基线版 if (dtSettlInfo.Rows[i]["InterfaceDr"].ToString() == "7") { Global.inf.mutualAidCenterURL = @"http://10.98.34.114/mbs-hiIntf-nanning/web/api/fsi/callService"; Global.inf.mutualAidHospitalAreaCode = "450100"; } //广西基线版 if (dtSettlInfo.Rows[i]["InterfaceDr"].ToString() == "11") { Global.inf.mutualAidCenterURL = @"http://10.98.34.113/mbs-hiIntf-qubenji/web/api/fsi/callService"; Global.inf.mutualAidHospitalAreaCode = "459900"; } Global.inf.hospitalNO = "H45010302052"; Global.inf.hospitalName = "南宁普瑞眼科医院"; Global.inf.mutualAidPatientAreaCode = dtSettlInfo.Rows[i]["insuplc_admdvs"].ToString(); Global.inf.mutualAidHospitalAreaCode = Global.inf.mutualAidPatientAreaCode; Global.pat.insuplc_admdvs_GJSQR = Global.inf.mutualAidPatientAreaCode; //组织入参 JObject joData2597 = new JObject(); joData2597.Add("mdtrtId", dtSettlInfo.Rows[i]["MdtrtID"].ToString()); joData2597.Add("setlId", dtSettlInfo.Rows[i]["SettlementID"].ToString()); joData2597.Add("fixmedinsCode", Global.inf.hospitalNO); JObject joInPut2597 = new JObject(); joInPut2597.Add("acctMulaidBind", joData2597); //MessageBox.Show(joData2597.ToString()); JObject joRtn2597 = center.invokeCenterServiceOfMutualAid("2597", JsonHelper.setCenterInpar_MutualMid("2597", joInPut2597)); //将中心返回的结果返回HIS 调用HIS服务进行保存 if (JsonHelper.parseCenterReturnJson(joRtn2597, out errMsg) != 0) { return -1; } else { errMsg = joRtn2597.ToString(); dgvSettlInfo.SelectedIndex = dgvSettlInfo.Rows.Count - 1; return 0; } } catch (Exception e) { errMsg = e.Message; return -1; } } //保存到云医保平台 private int saveMutualAidSettlementToCloudPlatform(string patInfo,string centerReturn,out string errMsg) { errMsg = ""; try { //返回给云医保平台 JObject joCenterRtn = JObject.Parse(centerReturn); //JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joCenterRtn, "output")); JObject joSetlinfo = new JObject(); JObject joPatInfo = JObject.Parse(patInfo); //以下节点中心不返回,传给后台保存的值为空,手工置为0 if (Global.pat.cvlserv_flag_GJSQR == "是") Global.pat.cvlserv_flag_GJSQR = "1"; else Global.pat.cvlserv_flag_GJSQR = "0"; joSetlinfo.Add("setl_id", JsonHelper.getDestValue(joCenterRtn, "output.setlId")); //结算Id joSetlinfo.Add("mdtrt_id", JsonHelper.getDestValue(joCenterRtn, "output.mdtrtId")); //就诊Id joSetlinfo.Add("psn_no", Global.pat.psn_no_GJSQR); //授权人医保编号 joSetlinfo.Add("psn_name", Global.pat.name_GJSQR); //授权人姓名 joSetlinfo.Add("psn_cert_type", Global.pat.psn_cert_type_GJSQR); //授权人证件类型 joSetlinfo.Add("certno", Global.pat.certNO_GJSQR); //授权人证件号码 joSetlinfo.Add("gend", Global.pat.gend_GJSQR); //授权人性别 joSetlinfo.Add("naty", Global.pat.naty_GJSQR); //授权人民族 joSetlinfo.Add("brdy", Global.pat.brdy_GJSQR); //授权人生日 joSetlinfo.Add("age", Global.pat.age_GJSQR); //授权人年龄 joSetlinfo.Add("insutype", Global.pat.insuType_GJSQR); //授权人险种类型 //joSetlinfo.Add("insutype", JsonHelper.getDestValue(joCenterRtn, "output.insuType")); //险种 joSetlinfo.Add("psn_type", Global.pat.psn_type_GJSQR); //授权人人员类别 joSetlinfo.Add("cvlserv_flag", Global.pat.cvlserv_flag_GJSQR); //授权人是否公务员 joSetlinfo.Add("setl_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); joSetlinfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType_GJSQR); joSetlinfo.Add("med_type", "110102"); joSetlinfo.Add("medfee_sumamt", JsonHelper.getDestValue(joCenterRtn, "output.medfeeSumamt")); //医保总费用 joSetlinfo.Add("fulamt_ownpay_amt", 0); joSetlinfo.Add("overlmt_selfpay", 0); joSetlinfo.Add("preselfpay_amt", 0); joSetlinfo.Add("inscp_scp_amt", 0); joSetlinfo.Add("act_pay_dedc", 0); //起付线 joSetlinfo.Add("hifp_pay", 0); joSetlinfo.Add("pool_prop_selfpay", 0); joSetlinfo.Add("cvlserv_pay", 0); joSetlinfo.Add("hifes_pay", 0); joSetlinfo.Add("hifmi_pay", 0); joSetlinfo.Add("hifob_pay", 0); joSetlinfo.Add("hifdm_pay", 0); joSetlinfo.Add("maf_pay", 0); joSetlinfo.Add("oth_pay", 0); joSetlinfo.Add("fund_pay_sumamt", JsonHelper.getDestValue(joCenterRtn, "output.fundPaySumamt")); //基金支付金额 joSetlinfo.Add("psn_part_amt", 0); joSetlinfo.Add("acct_pay", JsonHelper.getDestValue(joCenterRtn, "output.acctPay")); //个人账户支出金额 joSetlinfo.Add("psn_cash_pay", 0); joSetlinfo.Add("hosp_part_amt", 0); joSetlinfo.Add("balc", JsonHelper.getDestValue(joCenterRtn, "output.balance")); //授权人支出后账户余额 joSetlinfo.Add("acct_mulaid_pay", 0); joSetlinfo.Add("medins_setl_id", Global.curEvt.msgid); joSetlinfo.Add("clr_optins", JsonHelper.getDestValue(joCenterRtn, "output.clrOptions")); //清算经办机构 joSetlinfo.Add("clr_way", "1"); //清算方式 joSetlinfo.Add("clr_type", JsonHelper.getDestValue(joCenterRtn, "output.clrType")); //清算类别 joSetlinfo.Add("exp_content", JsonHelper.getDestValue(joCenterRtn, "output")); // joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr); joSetlinfo.Add("admID", dtSettlInfo.Rows[0]["AdmID"].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.mutualAidInterfaceDr); joSetlinfo.Add("admType", dtSettlInfo.Rows[0]["admType"].ToString()); joSetlinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs_GJSQR ); //JsonHelper.getDestValue(joPatInfo, "selectedInsuInfo.insuplc_admdvs") joSetlinfo.Add("MainSettlementIDOfMutualAid", dtSettlInfo.Rows[0]["SettlementID"].ToString()); numbersOfMutualAid++; joSetlinfo.Add("MutualAidFlag", numbersOfMutualAid); dynamic joTmp = new JObject(); joTmp.code = "09010051"; JArray jaTmp = new JArray(); jaTmp.Add(joSetlinfo); joTmp.Add("params", jaTmp); JObject joRtn = center.invokeInsuService(joTmp.ToString(), "插入结算信息"); if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0) { return -1; } /* JObject joSetlDetail = new JObject(); joSetlDetail.Add("HospitalDr", Global.inf.hospitalDr); joSetlDetail.Add("InterfaceDr", Global.inf.interfaceDr); joSetlDetail.Add("MdtrtID", JsonHelper.getDestValue(joCenterRtn, "output.mdtrtId")); joSetlDetail.Add("SettlementID", JsonHelper.getDestValue(joSetlinfo, "setl_id")); joSetlDetail.Add("AdmID", dtSettlInfo.Rows[0]["AdmID"].ToString()); joSetlDetail.Add("updateUserID", Global.user.ID); JArray jaSetlDetail = JArray.Parse(JsonHelper.getDestValue(joCenterRtn, "output.setldetail")); joSetlDetail.Add("setldetail", jaSetlDetail); joTmp = new JObject(); joTmp.code = "09010056"; jaTmp = new JArray(); jaTmp.Add(joSetlDetail); joTmp.Add("params", jaTmp); JObject joInsertSetlDetail = center.invokeInsuService(joTmp.ToString(), "插入结算明细信息"); if (JsonHelper.parseIrisRtnValue(joInsertSetlDetail, out errMsg) != 0) { MessageBox.Show("插入结算明细信息:" + errMsg); }*/ return 0; } catch (Exception e) { errMsg = e.Message; return -1; } } /// /// 撤销云平台结算信息 /// /// /// private int cancleMutualAidOfCloudPlatform(string centerReturn,out string errMsg) { errMsg = ""; try { int i = dgvSettlInfo.SelectedIndex; dynamic joTmp = new JObject(); joTmp.admID = dtSettlInfo.Rows[i]["AdmID"].ToString(); joTmp.PersonalNO = dtSettlInfo.Rows[i]["PersonnelNO"].ToString(); joTmp.mdtrt_id = dtSettlInfo.Rows[i]["MdtrtID"].ToString(); joTmp.setl_id = dtSettlInfo.Rows[i]["SettlementID"].ToString(); JObject joCenterRtn = JObject.Parse(centerReturn); joTmp.newSetlId = JsonHelper.getDestValue(joCenterRtn, "output.setlId"); JObject joIrisRtn = iris.cancleSettlement(joTmp); if (JsonHelper.parseIrisRtnValue(joIrisRtn, 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", numbersOfMutualAid); output = joSetlinfo.ToString(); return 0; } catch (Exception e) { output = e.Message; return -1; } } #endregion private void btMutualAid_Click(object sender, EventArgs e) { string errMsg, patInfo, outParam; try { if (dtSumumt.Rows.Count == 0) { MessageBox.Show("请先查询结算信息!"); return; } #region【此处的读卡在弹框前会触发读取授权人的参保信息】 if (Global.pat.patInfo_mutualAidPay == "") { Global.Set.psnCashPay = dgvSettlInfo.Rows[dgvSettlInfo.CurrentRow.Index].Cells["PersonCashPay"].Value.ToString(); #region【选择接口目录】 MutualAidChooser frm = new MutualAidChooser(); if (frm.ShowDialog() == DialogResult.OK) { mutualAidPay = frm.mutualAidPay; int i = frm.cbxInterface.SelectedIndex; DataTable dtInteface = (DataTable)frm.cbxInterface.DataSource; Global.inf.mutualAidCenterURL = dtInteface.Rows[i]["CenterURL"].ToString(); Global.inf.mutualAidHospitalAreaCode = dtInteface.Rows[i]["AreaCode"].ToString(); Global.inf.mutualAidInterfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString()); } else { //MessageBox.Show("收费员取消账户代支结算!"); return; } #endregion //选中的账户授权人的接口类型与使用人不一致的情况下,调用签到信息 if (Global.inf.mutualAidInterfaceDr != Global.inf.interfaceDr) { if (mIS.isSigned_MutualAid(ref Global.curEvt.signno) != true) { //先签到 CenterBusiness cBus = new CenterBusiness(); JObject jo9001Rtn = new JObject(); cBus.signIn_MutualAid(out jo9001Rtn); } } #region【读卡-医保账户代支授权人】 //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息 if (hBus.MutualAidReadCard(out outParam) != 0) { MessageBox.Show(JsonHelper.setExceptionJson(-100, "医保账户代支读卡失败!", outParam).ToString()); return; } else { //展示患者信息界面 Global.pat.patInfo_mutualAidPay = outParam; if (hBus.MutualAidShowPatInfo(outParam, out Global.pat.patInfo_mutualAidPay) != 0) { MessageBox.Show("医保账户代支读卡成功,展示患者信息界面失败:" + Global.pat.patInfo_mutualAidPay); return; } } #endregion } #endregion //医保代支结算-2596 string centerReturn; if (mutualAid(Global.pat.patInfo_mutualAidPay, out centerReturn) != 0) { MessageBox.Show(centerReturn); return; } //保存到医保平台 if (saveMutualAidSettlementToCloudPlatform(Global.pat.patInfo_mutualAidPay, centerReturn,out errMsg) != 0) { MessageBox.Show(errMsg); return; } //更新医保结算表主结算记录 账户共济标志和主结算ID if (mIS.updateSettlement(dtSettlInfo.Rows[0]["SettlementID"].ToString(), 1, out errMsg) != 0) { MessageBox.Show(JsonHelper.setExceptionJson(-1, "更新云医保平台账户共济主结算信息失败", errMsg).ToString()); //return; } //刷新结算信息显示 if (getSettlInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } //刷新汇总信息显示 if (getSumamtInfo(out errMsg) != 0) { MessageBox.Show(errMsg); return; } else { Global.pat.AccountMutualAidPay = true; 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(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 { 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()); finalSettlementInfo = joSetlinfo.ToString(); Global.pat.patInfo_mutualAidPay = ""; this.DialogResult = DialogResult.OK; Global.writeLog("finalSettlementInfo", finalSettlementInfo,""); Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void btNO_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } 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 btnExit_Click(object sender, EventArgs e) { Close(); } private void btnInputDemo_Click(object sender, EventArgs e) { rtbInparam.Text = @"{""acctMulaidBind"":{""mdtrtId"":"""",""setlId"":"""",""fixmedinsCode"":""H45010302052""}}"; JObject joTmp = JObject.Parse(rtbInparam.Text); rtbInparam.Text = joTmp.ToString(); } private void btnRectification_Click(object sender, EventArgs e) { string errorMsg = ""; #region【选择接口目录】 MutualAidChooser frm = new MutualAidChooser(); if (frm.ShowDialog() == DialogResult.OK) { mutualAidPay = frm.mutualAidPay; int i = frm.cbxInterface.SelectedIndex; DataTable dtInteface = (DataTable)frm.cbxInterface.DataSource; Global.inf.mutualAidCenterURL = dtInteface.Rows[i]["CenterURL"].ToString(); Global.inf.mutualAidHospitalAreaCode = dtInteface.Rows[i]["AreaCode"].ToString(); Global.inf.mutualAidInterfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString()); } else { MessageBox.Show("收费员取消账户代支结算!"); return; } #endregion JObject joRtn = new JObject(); Global.pat.insuplc_admdvs_GJSQR = tbCBD_Hand.Text; if ((tbCBD_Hand.Text == "") || (tbCBD_Hand.Text == "") || (tbCBD_Hand.Text == "")) { MessageBox.Show("入参不能为空!"); return; } joRtn = center.invokeCenterServiceOfMutualAid("2599", JsonHelper.setCenterInpar_MutualMid("2599", JObject.Parse(rtbInparam.Text))); if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0) { MessageBox.Show("医保账户代支结算冲正失败:" + errorMsg); } else { rtbOutparam.Text = joRtn.ToString(); } } private void btnQuery_Click(object sender, EventArgs e) { if (tb_CertNO_SYR.Text == "") { MessageBox.Show("使用人身份证号不能为空!"); return; } #region【1101获取身份信息】 if (tb_UserNO.Text == "") { string errorMsg, patInfo; JObject joData1101 = new JObject(); joData1101.Add("mdtrt_cert_type", "02"); //就诊凭证类型 joData1101.Add("mdtrt_cert_no", tb_CertNO_SYR.Text); //就诊凭证编码 joData1101.Add("card_sn", ""); //卡识别码 joData1101.Add("begntime", ""); joData1101.Add("psn_cert_type", "01"); //证件类别 joData1101.Add("certno", tb_CertNO_SYR.Text); //证件号码 joData1101.Add("psn_name", ""); //姓名 JObject joInput1101 = new JObject(); joInput1101.Add("data", joData1101); string inPutParam = JsonHelper.setCenterInpar("1101", joInput1101); JObject joRtn1101 = center.invokeCenterService("1101", inPutParam); if (JsonHelper.parseCenterRtnValue(joRtn1101, out errorMsg) != 0) { MessageBox.Show("1101获取参保人信息失败:" + errorMsg); return; } else { string outParam = joRtn1101.ToString(); Global.pat.psn_no = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_no"); //人员编号 tb_UserNO.Text = Global.pat.psn_no; //展示患者信息界面 if (hBus.showPatInfo(outParam, out patInfo) != 0) { MessageBox.Show("展示患者参保信息界面失败:" + patInfo); return; } } } #endregion if (tb_UserNO.Text == "") { MessageBox.Show("使用人医保编号不能为空!"); return; } string error; dynamic joData = new JObject(); joData.auther_no = ""; //授权人医保编码 joData.user_no = tb_UserNO.Text; //使用人医保编码 joData.begndate = dt_ST.Value.ToString("yyyy-MM-dd"); joData.enddate = dt_ET.Value.ToString("yyyy-MM-dd"); joData.auther_certno = ""; //授权人证件号码 joData.user_certno = tb_CertNO_SYR.Text; //使用人证件号码 JObject joData2589 = new JObject(); joData2589.Add("data", joData); //上传给中心 string inPutParam2589 = JsonHelper.setCenterInpar("2589", joData2589.ToString()); rtb_InParam.Text = inPutParam2589; InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService("2589", inPutParam2589); if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0) { MessageBox.Show("【2589】个账共济查询失败:" + error); return; } else { DataTable dt = (DataTable)joRtn["output"].ToObject(typeof(DataTable)); //["result"] dgv_MutualAidQuery.DataSource = dt; if (dt.Rows.Count == 0) { MessageBox.Show("【2589】个账共济查询失败:医保返回当前使用人无账户代支绑定信息!"); return; } } } private void btnReadCard_Click(object sender, EventArgs e) { #region【读卡-医保账户代支授权人】 string patInfo,outParam; //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息 if (hBus.MutualAidReadCard(out outParam) != 0) { MessageBox.Show(JsonHelper.setExceptionJson(-100, "医保账户代支读卡失败!", outParam).ToString()); return; } else { //展示患者信息界面 if (hBus.MutualAidShowPatInfo(outParam, out patInfo) != 0) { MessageBox.Show("医保账户代支读卡成功,展示患者信息界面失败:" + patInfo); return; } } #endregion tb_UserNO.Text = Global.pat.psn_no_GJSQR; } private void MutualAid_Load(object sender, EventArgs e) { dt_ST.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00"); dt_ET.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59"); } } }