| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779 | 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 Newtonsoft.Json;using Newtonsoft.Json.Linq;using PTMedicalInsurance;using PTMedicalInsurance.Business;using PTMedicalInsurance.Common;using PTMedicalInsurance.Forms;using PTMedicalInsurance.FormSetter;using PTMedicalInsurance.Helper;using PTMedicalInsurance.Variables;namespace MedicalInsurance.Forms{    public partial class MutualAid : Form    {        public DataTable dtSumumt;        public DataTable dtSettlInfo;        public string settlementID;        public string finalSettlementInfo;        int numbersOfMutualAid = 1;        private MIIrisServices iris = new MIIrisServices();        InvokeHelper invoker = new InvokeHelper();        public string relation; //亲属关系        public string set_flag; //结算标志 预结正结标志        public string mutualAidPay; //共济金额        private string oldAreaCode = "";        private int oldInterfaceDr = 0;        private string oldMdtrtID = "";        private string oldSetleID = "";        private void CacheVariables()        {            // 共济可能会同时使用不同的医保接口类型,此时由共济选择后指定            Global.curEvt.MustConvertURL = false;            oldAreaCode = Global.inf.areaCode;            oldInterfaceDr = Global.inf.interfaceDr;            oldMdtrtID = Global.pat.mdtrtID;            oldSetleID = Global.pat.settlID;        }        private void RestoreVariables()        {            Global.curEvt.MustConvertURL = true;            Global.inf.areaCode = oldAreaCode;            Global.inf.interfaceDr = oldInterfaceDr;            Global.pat.insuplc_admdvs = Global.inf.areaCode;            Global.pat.mdtrtID = oldMdtrtID;            Global.pat.settlID = oldSetleID;        }        public MutualAid(JObject  jo)        {            InitializeComponent();            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo);            grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt);            settlementID = JsonHelper.getDestValue(jo, "setl_id") ;            string errMsg;            getSettlInfo(out errMsg);            getSumamtInfo(out errMsg);            CacheVariables();        }        public MutualAid(string  settlId)        {            InitializeComponent();            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfDgvMutualAidSettleInfo(dgvSettlInfo);            grdSetter.SetHeaderTextOfDgvMutualAidSumamtInfo(dgvSumamt);            settlementID =settlId;            string errMsg;            getSettlInfo(out errMsg);            getSumamtInfo(out errMsg);            // 共济可能会同时使用不同的医保接口类型,此时由共济选择后指定            CacheVariables();        }        #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 joSqlStr = new JObject();                joSqlStr.Add("sqlStr", sqlStr);                JObject joRtn = iris.QuerySettlementInfo(joSqlStr);                dtSumumt = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable)));                decimal accountPay=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 joSqlStr = new JObject();                joSqlStr.Add("sqlStr", sqlStr);                JObject joRtn = iris.QuerySettlementInfo(joSqlStr);                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,mCertType, mCertNO, mInsutype;            dynamic joExpContent = new JObject();                       try            {                JObject jo1101 = JObject.Parse(patInfo);                JObject joBaseInfo = JObject.FromObject(jo1101["output"]["baseinfo"]);                JObject joSelectedInsuInfo = JObject.FromObject(jo1101["selectedInsuInfo"]);                JObject joComInfo = JObject.FromObject(jo1101["comInfo"]);                mPsnNO = joBaseInfo["psn_no"].ToString();                mCertType = joComInfo["mdtrt_cert_type"].ToString();                mCertNO = joComInfo["mdtrt_cert_no"].ToString();                mInsutype = joSelectedInsuInfo["insutype"].ToString();                Global.pat.insuplc_admdvs = JsonHelper.getDestValue(joSelectedInsuInfo, "insuplc_admdvs");                joExpContent.card_token = Global.pat.card.Cardtoken;                //弹出共济结算选择框                    //组织入参                    JObject joData = new JObject();                    joData.Add("psn_no", mPsnNO);  //人员编号                    joData.Add("mdtrt_cert_type", mCertType);  //就诊凭证类型                    joData.Add("mdtrt_cert_no",mCertNO);  //就诊凭证编号                    joData.Add("insutype", mInsutype);  //险种                    joData.Add("acct_mulaid_pay", mutualAidPay);  //个人账户共济支付金额                    joData.Add("ima_mdtrt_id", dtSettlInfo.Rows[0]["MdtrtID"].ToString());  //原主交易就诊ID                    joData.Add("ima_setl_id", dtSettlInfo.Rows[0]["SettlementID"].ToString());  //原主交易结算ID                    joData.Add("ima_certno", dtSettlInfo.Rows[0]["CertificateNO"].ToString());  //原主交易证件号码                    joData.Add("ima_med_type", dtSettlInfo.Rows[0]["MedicalType"].ToString());  //原主交易医疗类别                    joData.Add("ima_medfee_sumamt", dtSettlInfo.Rows[0]["Sumamt"].ToString());  //原主交易医疗费总额                    joData.Add("ima_fund_pay_sumamt", dtSettlInfo.Rows[0]["FundPaySumamt"].ToString());  //原主交易基金支付总额                    joData.Add("ima_acct_pay", dtSettlInfo.Rows[0]["AccountPaySumamt"].ToString());  //原主交易个人账户支出                    joData.Add("ima_psn_cash_pay", dtSettlInfo.Rows[0]["PersonCashPay"].ToString());  //原主交易个人现金支出                    joData.Add("ima_psn_no", dtSettlInfo.Rows[0]["PersonnelNO"].ToString());  //原主交易个人编号                    joData.Add("ima_psn_name", dtSettlInfo.Rows[0]["PatientName"].ToString());  //原主交易人员姓名                    joData.Add("relation", relation);  //亲属关系                    joData.Add("set_flag", set_flag);  //结算标志                    joData.Add("expContent", joExpContent);  //字段扩展                    JObject joInput = new JObject();                    joInput.Add("data",joData);                    //调用中心结算                                        JObject joRtn = invoker.invokeCenterService(TradeEnum.MutualAidPay, joInput);                    //保存中心返回的结果                    if (JsonHelper.parseCenterReturnJson(joRtn, out output) != 0)                    {                        return -1;                    }                    else                    {                        output = joRtn.ToString();                        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;                }                if (dtSettlInfo.Rows[i]["InterfaceDr"].ToString() == "38")                {                    Global.curEvt.URL = @"http://10.109.103.59:8080/mss/web/api/fsi/callService";                    Global.inf.areaCode = "519900";                }                if (dtSettlInfo.Rows[i]["InterfaceDr"].ToString() == "37")                {                    Global.curEvt.URL = @"http://10.109.103.61:8080/mss/web/api/fsi/callService";                    Global.inf.areaCode = "510106";                }                Global.pat.insuplc_admdvs = dtSettlInfo.Rows[i]["insuplc_admdvs"].ToString();                //组织入参                dynamic joTmp = new JObject();                joTmp.mdtrt_id = dtSettlInfo.Rows[i]["MdtrtID"].ToString();                joTmp.psn_no = dtSettlInfo.Rows[i]["PersonnelNO"].ToString();                joTmp.setl_id = dtSettlInfo.Rows[i]["SettlementID"].ToString();                joTmp.expContent = "";                JObject joData = new JObject();                joData.Add("data", joTmp);                JObject joRtn = invoker.invokeCenterService(TradeEnum.MutualAidCancel, joData);                //将中心返回的结果返回HIS 调用HIS服务进行保存                if (JsonHelper.parseCenterReturnJson(joRtn, out errMsg) != 0)                {                    return -1;                }                else                {                    errMsg = joRtn.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.result"));                JObject joPatInfo= JObject.Parse(patInfo);                //以下节点中心不返回,传给后台保存的值为空,手工置为0                joSetlinfo.Add("cvlserv_pay", 0);                joSetlinfo.Add("hifdm_pay", 0);                joSetlinfo.Add("hifmi_pay", 0);                joSetlinfo.Add("act_pay_dedc", 0);                joSetlinfo.Add("acct_mulaid_pay", 0);                joSetlinfo.Add("oth_pay", 0);                joSetlinfo.Add("hifes_pay", 0);                joSetlinfo.Add("fund_pay_sumamt", 0);                joSetlinfo.Add("fulamt_ownpay_amt", 0);                joSetlinfo.Add("hosp_part_amt", 0);                joSetlinfo.Add("inscp_scp_amt", 0);                joSetlinfo.Add("maf_pay", 0);                joSetlinfo.Add("psn_part_amt", 0);                joSetlinfo.Add("pool_prop_selfpay", 0);                joSetlinfo.Add("hifp_pay", 0);                joSetlinfo.Add("overlmt_selfpay", 0);                joSetlinfo.Add("preselfpay_amt", 0);                //                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.interfaceDr);                joSetlinfo.Add("admType", dtSettlInfo.Rows[0]["admType"].ToString());                joSetlinfo.Add("insuplc_admdvs",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 = invoker.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.result.mdtrt_id"));                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 = invoker.invokeInsuService(joTmp.ToString(), "插入结算明细信息");                if (JsonHelper.parseIrisRtnValue(joInsertSetlDetail, out errMsg) != 0)                {                    MessageBox.Show("插入结算明细信息:" + errMsg);                }                return 0;                }            catch (Exception e)            {                errMsg = e.Message;                return -1;            }        }        /// <summary>        /// 撤销云平台结算信息        /// </summary>        /// <param name="errMsg"></param>        /// <returns></returns>        private int  cancleMutualAidOfCloudPlatform(string centerReturn,out string errMsg)        {            errMsg = "";            try            {                int i = dgvSettlInfo.SelectedIndex;                dynamic joTmp = new JObject();                Global.pat.adm_Dr = int.Parse(dtSettlInfo.Rows[i]["AdmID"].ToString());                joTmp.PersonalNO = 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.result.setl_id");                int ret = iris.cancleSettlement(newSetlId,out errMsg);                if (ret != 0)                {                    return -1;                }                else                {                    return 0;                }            }            catch (Exception e)            {                errMsg = e.Message;                return -1;            }        }        /// <summary>        /// 获取最终的结算信息,返回给HIS。无论共济多少次,返回给HIS的只有这一条。        /// </summary>        /// <param name="output"></param>        /// <returns></returns>        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 = "";            try            {                //读卡                string patInfo, funNO = "S2101";                //if (dtSettlInfo.Rows[0]["admType"].ToString() == "2")                //{                //    funNO = "1101";                //}                Global.businessType = "01301"; //结算                MutualAidChooser frm = new MutualAidChooser();                if (frm.ShowDialog() == DialogResult.OK)                {                    mutualAidPay = frm.mutualAidPay;                    relation = frm.relation;                    set_flag = frm.set_flag;                    int i = frm.cbxInterface.SelectedIndex;                    DataTable dtInteface = (DataTable)frm.cbxInterface.DataSource;                    Global.curEvt.URL = dtInteface.Rows[i]["CenterURL"].ToString();                    Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();                    Global.inf.interfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString());                }                else                {                    MessageBox.Show("收款员取消共济结算!");                    return;                }                if (MutualAidReadCard(funNO, out patInfo, Global.curEvt.URL) != 0)                {                    MessageBox.Show(patInfo);                    return;                }                //中心共济结算                string centerReturn;                if (mutualAid(patInfo, out centerReturn) != 0)                {                    MessageBox.Show(centerReturn);                    return;                }                //保存到医保平台                if (saveMutualAidSettlementToCloudPlatform(patInfo, 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;            }                    }        /// <summary>        /// 共济读卡        /// </summary>        /// <returns></returns>        public int MutualAidReadCard(string funNO, out string outParam, string centerUrl)        {            outParam = "";            JObject joSignRtn = new JObject();            if (!iris.isSigned(ref Global.curEvt.signno))            {                CallResult ret = new SignInProcess().Process(joSignRtn);                Global.writeLog("共济签到:" + ret.Data);            }            else {                Global.writeLog("收费员已签到!");            }                        //if (!ret.Success)            //{            //    outParam = ret.Data;            //    return -1;            //}            //else            //{            //    Global.writeLog(ret.Data);            //}            try            {                YinHaiSafeCtrl safeCtrl = new YinHaiSafeCtrl();                if (safeCtrl.Prepare(TradeEnum.PatientInfo.GetCode(), out outParam) != 0)                {                    outParam = JsonHelper.setExceptionJson(-1,"调用安全控件", outParam).ToString();                    return -1;                }                JObject jodata = JObject.Parse(outParam);                dynamic joInput_1101 = new JObject();                dynamic joTmp = new JObject();                joTmp.mdtrt_cert_type = jodata["mdtrt_cert_type"].ToString();                joTmp.mdtrt_cert_no = jodata["mdtrt_cert_no"].ToString();                joTmp.card_sn = jodata["card_sn"].ToString();                joTmp.begntime = "";                joTmp.psn_cert_type = jodata["psn_cert_type"].ToString();                joTmp.certno = jodata["certno"].ToString();                joTmp.psn_name = jodata["psn_name"].ToString();                dynamic joExpContent = new JObject();                joExpContent.card_token = jodata["card_token"].ToString();                joTmp.Add("expContent", JObject.FromObject(joExpContent));                joInput_1101.Add("data", JObject.FromObject(joTmp));                JObject joCenterServiceRtn = invoker.invokeCenterService(TradeEnum.PatientInfo, joInput_1101);                if (joCenterServiceRtn["infcode"].ToString() != "0")                {                    outParam = "调用1101失败! ";                    return -1;                }                else                {                    string output = joCenterServiceRtn["output"].ToString();                    //展示信息界面                    JObject joOutput = JObject.Parse(output);                    //编码转换                    JArray jaConvertCode = new JArray();                    JObject joConvertCodeParam = new JObject();                    joConvertCodeParam.Add("hospitalDr", Global.inf.hospitalDr);                    joConvertCodeParam.Add("interfaceDr", Global.inf.interfaceDr);                    joConvertCodeParam.Add("output", joOutput);                    jaConvertCode.Add(joConvertCodeParam);                    JObject joConvertCode = new JObject();                    joConvertCode.Add("code", "09010054");                    joConvertCode.Add("params", jaConvertCode);                    InvokeHelper invoker = new InvokeHelper();                    JObject joConvertCodeRtn = invoker.invokeInsuService(joConvertCode.ToString(), "患者信息编码转换");                    // insuinfo保持转换之前的                    JArray jaInsuInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "insuinfo"));                    JArray jaIdInfo = JArray.Parse(JsonHelper.getDestValue(joConvertCodeRtn, "idetinfo"));                    JObject jaBaseInfo = JObject.Parse(JsonHelper.getDestValue(joConvertCodeRtn, "baseinfo"));                    joOutput["baseinfo"] = jaBaseInfo;                    PatientInsuInfo frmPatientInfo = new PatientInsuInfo(joConvertCodeRtn);                    //相关信息转换到登记面板                    if (frmPatientInfo.ShowDialog() == DialogResult.OK)                    {                        JObject joSelectedInsuInfo = (JObject)jaInsuInfo[frmPatientInfo.insuInfoIndex];                        joCenterServiceRtn.Property("output").AddBeforeSelf(new JProperty("selectedInsuInfo", joSelectedInsuInfo));                        joCenterServiceRtn.Property("output").AddBeforeSelf(new JProperty("comInfo", jodata));                        Global.writeLog("joCenterServiceRtn:" + joCenterServiceRtn.ToString());                    }                    else                    {                        outParam = JsonHelper.setExceptionJson(-1, "读卡", "收款员取消读卡").ToString();                        return -1;                    }                }                outParam = joCenterServiceRtn.ToString();                Global.writeLog("MutualAidReadCard", "", outParam);                return 0;            }            catch (Exception ex)            {                outParam = "异常:" + ex.Message;                return -1;            }        }        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();                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 MutualAid_FormClosing(object sender, FormClosingEventArgs e)        {            // 恢复转换规则            RestoreVariables();        }    }}
 |