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.Linq; using PTMedicalInsurance.Variables; using PTMedicalInsurance.Business; using System.Xml; using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Helper; namespace PTMedicalInsurance.Forms { public partial class SettlementInfo : Form { //1.声明自适应类实例 AutoResizeForm asc = new AutoResizeForm(); AnalysisXML AnXML = new AnalysisXML(); ReadCardClass rcl = new ReadCardClass(); public DataTable dtSettlmentDetail; //险种 public string insuType { get; set; } public SettlementInfo() { InitializeComponent(); this.StartPosition = FormStartPosition.CenterParent; asc.controllInitializeSize(this); asc.controlAutoSize(this); } public SettlementInfo(XmlDocument xmlDoc) { InitializeComponent(); SettlementInfoOP(xmlDoc); } public void SettlementInfoOP(XmlDocument xmlDoc) { //交易信息(tradeinfo) XmlNode TradeInfoNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/tradeinfo"); string tradeno = AnXML.FormatXMLElement(xmlDoc, TradeInfoNode, "tradeno", 0); //交易流水号 string feeno = AnXML.FormatXMLElement(xmlDoc, TradeInfoNode, "feeno", 0); //收费单据号 string tradedate = AnXML.FormatXMLElement(xmlDoc, TradeInfoNode, "tradedate", 0); //交易时间 格式为:YYYYMMDDHHMMSS //汇总支付信息(sumpay) XmlNode SumPayNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/sumpay"); string feeall = AnXML.FormatXMLElement(xmlDoc, SumPayNode, "feeall", 1); //费用总金额 string fund = AnXML.FormatXMLElement(xmlDoc, SumPayNode, "fund", 1); //基金支付 string cash = AnXML.FormatXMLElement(xmlDoc, SumPayNode, "cash", 1); //现金支付 string personcountpay = AnXML.FormatXMLElement(xmlDoc, SumPayNode, "personcountpay", 1); //个人帐户支付 //支付信息(payinfo) XmlNode PayInfoNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/payinfo"); string mzfee = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzfee", 1); //费用总金额 string mzfeein = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzfeein", 1); //医保内总金额 string mzfeeout = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzfeeout", 1); //医保外总金额 string mzpayfirst = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzpayfirst", 1); //本次付起付线金额 string mzselfpay2 = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzselfpay2", 1);//个人自付2 string mzbigpay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzbigpay", 1); //门诊大额支付金额 string mzbigselfpay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzbigselfpay", 1); //门诊大额自付金额 string mzoutofbig = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "mzoutofbig", 1); //超大额自付金额 string bcpay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "bcpay", 1); //补充保险支付 string jcbz = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "jcbz", 1); //军残补助保险支付 string big_ill_pay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "big_ill_pay", 1); //大病支付金额 string civil_pay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "civil_pay", 1); //民政救助支付金额 string ExServicePay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "ExServicePay", 1); //退役军转干部退役医疗费支付 //string txbz = PayInfoNode.SelectNodes("txbz")[0].InnerText; //退休补助金额 //string offi_true = PayInfoNode.SelectNodes("offi_true")[0].InnerText; //单位补充医疗保险(原公疗)支付金额 //string year_mzfeein = PayInfoNode.SelectNodes("year_mzfeein")[0].InnerText; //年度门诊医保内费用累计 //string year_mzbigpay = PayInfoNode.SelectNodes("year_mzbigpay")[0].InnerText; //年度门诊大额支付累计 //string year_mzoutofbig = PayInfoNode.SelectNodes("year_mzoutofbig")[0].InnerText; //门诊大额封顶后医保内金额累计 //string first_year_mzfeein = PayInfoNode.SelectNodes("first_year_mzfeein")[0].InnerText; //一级医院年度门诊医保内费用累计 //string first_year_mzbigpay = PayInfoNode.SelectNodes("first_year_mzbigpay")[0].InnerText; //一级医院年度门诊大额支付累计 //string first_year_mzoutofbig = PayInfoNode.SelectNodes("first_year_mzoutofbig")[0].InnerText; //一级医院门诊大额封顶后医保内金额累计 //string selfpay1 = PayInfoNode.SelectNodes("selfpay1")[0].InnerText; //自付一 //string bigillcomm = PayInfoNode.SelectNodes("bigillcomm")[0].InnerText; //年度大病内累计金额 string txbz = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "txbz", 1); //退休补助金额 string offi_true = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "offi_true", 1); //单位补充医疗保险(原公疗)支付金额 string year_mzfeein = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "year_mzfeein", 1); //年度门诊医保内费用累计 string year_mzbigpay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "year_mzbigpay", 1); //年度门诊大额支付累计 string year_mzoutofbig = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "year_mzoutofbig", 1); //门诊大额封顶后医保内金额累计 string first_year_mzfeein = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "first_year_mzfeein", 1); //一级医院年度门诊医保内费用累计 string first_year_mzbigpay = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "first_year_mzbigpay", 1); //一级医院年度门诊大额支付累计 string first_year_mzoutofbig = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "first_year_mzoutofbig", 1); //一级医院门诊大额封顶后医保内金额累计 string selfpay1 = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "selfpay1", 1); //自付一 string bigillcomm = AnXML.FormatXMLElement(xmlDoc, PayInfoNode, "bigillcomm", 1); //年度大病内累计金额 this.tb1.Text = Global.pat.name; if (Global.pat.iOtherProvLocal == 0) this.tb2.Text = "本地"; else this.tb2.Text = "异地"; this.tb3.Text = Global.pat.card.NO; this.tb4.Text = Global.pat.certNO; this.tb5.Text = Global.pat.psn_type; this.tb6.Text = Global.pat.insuTypeName; this.tb7.Text = Global.pat.psn_no; this.tb8.Text = Global.pat.balc; this.tb9.Text = feeall; this.tb10.Text = fund; this.tb11.Text = cash; this.tb12.Text = personcountpay; this.tb13.Text = tradeno; this.tb14.Text = feeno; this.tb15.Text = tradedate; this.tb16.Text = mzfee; this.tb17.Text = jcbz; this.tb18.Text = ExServicePay; this.tb19.Text = mzfeein; this.tb20.Text = big_ill_pay; this.tb21.Text = year_mzfeein; this.tb22.Text = mzfeeout; this.tb23.Text = txbz; this.tb24.Text = mzoutofbig; this.tb25.Text = mzselfpay2; this.tb26.Text = civil_pay; this.tb27.Text = mzbigselfpay; this.tb28.Text = selfpay1; this.tb29.Text = bcpay; this.tb30.Text = bigillcomm; this.tb31.Text = mzpayfirst; this.tb32.Text = mzbigpay; this.tb33.Text = year_mzbigpay; this.tb34.Text = offi_true; this.tb35.Text = year_mzoutofbig; this.tb36.Text = first_year_mzoutofbig; this.tb37.Text = first_year_mzbigpay; this.tb38.Text = first_year_mzfeein; Global.Set.acctPay = personcountpay; Global.Set.settlID = tradeno; //医保返回交易流水号 } public void SettlementInfoOP(JObject joInput) { //交易信息(tradeinfo) string tradeno = JsonHelper.getDestValue(joInput, "root.output.tradeinfo.tradeno"); //交易流水号 string feeno = JsonHelper.getDestValue(joInput, "root.output.tradeinfo.feeno"); //收费单据号 string tradedate = JsonHelper.getDestValue(joInput, "root.output.tradeinfo.tradedate"); //交易时间 格式为:YYYYMMDDHHMMSS //汇总支付信息(sumpay) string feeall = JsonHelper.getDestValue(joInput, "root.output.sumpay.feeall"); //费用总金额 string fund = JsonHelper.getDestValue(joInput, "root.output.sumpay.fund"); //基金支付 string cash = JsonHelper.getDestValue(joInput, "root.output.sumpay.cash"); //现金支付 string personcountpay = JsonHelper.getDestValue(joInput, "root.output.sumpay.personcountpay"); //个人帐户支付 //支付信息(payinfo) string mzfee = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzfee"); //费用总金额 string mzfeein = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzfeein"); //医保内总金额 string mzfeeout = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzfeeout"); //医保外总金额 string mzpayfirst = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzpayfirst"); //本次付起付线金额 string mzselfpay2 = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzselfpay2");//个人自付2 string mzbigpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzbigpay"); //门诊大额支付金额 string mzbigselfpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzbigselfpay"); //门诊大额自付金额 string mzoutofbig = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzoutofbig"); //超大额自付金额 string bcpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.bcpay"); //补充保险支付 string jcbz = JsonHelper.getDestValue(joInput, "root.output.payinfo.jcbz"); //军残补助保险支付 string big_ill_pay = JsonHelper.getDestValue(joInput, "root.output.payinfo.big_ill_pay"); //大病支付金额 string civil_pay = JsonHelper.getDestValue(joInput, "root.output.payinfo.civil_pay"); //民政救助支付金额 string ExServicePay = JsonHelper.getDestValue(joInput, "root.output.payinfo.ExServicePay"); //退役军转干部退役医疗费支付 string txbz = JsonHelper.getDestValue(joInput, "root.output.payinfo.txbz"); //退休补助金额 string offi_true = JsonHelper.getDestValue(joInput, "root.output.payinfo.offi_true"); //单位补充医疗保险(原公疗)支付金额 string year_mzfeein = JsonHelper.getDestValue(joInput, "root.output.payinfo.year_mzfeein"); //年度门诊医保内费用累计 string year_mzbigpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.year_mzbigpay"); //年度门诊大额支付累计 string year_mzoutofbig = JsonHelper.getDestValue(joInput, "root.output.payinfo.year_mzoutofbig"); //门诊大额封顶后医保内金额累计 string first_year_mzfeein = JsonHelper.getDestValue(joInput, "root.output.payinfo.first_year_mzfeein"); //一级医院年度门诊医保内费用累计 string first_year_mzbigpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.first_year_mzbigpay"); //一级医院年度门诊大额支付累计 string first_year_mzoutofbig = JsonHelper.getDestValue(joInput, "root.output.payinfo.first_year_mzoutofbig"); //一级医院门诊大额封顶后医保内金额累计 string selfpay1 = JsonHelper.getDestValue(joInput, "root.output.payinfo.selfpay1"); //自付一 string bigillcomm = JsonHelper.getDestValue(joInput, "root.output.payinfo.bigillcomm"); //年度大病内累计金额 //分类汇总信息 string diagnosis = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.diagnosis"); //诊察费 string examine = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.examine"); //检查费 string labexam = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.labexam"); //化验费 string treatment = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.treatment"); //治疗费 string operation = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.operation"); //手术费 string material = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.material"); //卫生材料费 string medicine = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.medicine"); //西药费 string therb = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.therb"); //中草药 string tmedicine = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.tmedicine"); //中成药费 string medicalservice = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.medicalservice"); //医事服务费 string commonservice = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.commonservice"); //一般诊疗费 string registfee = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.registfee"); //挂号费 string otheropfee = JsonHelper.getDestValue(joInput, "root.output.medicatalog2.otheropfee"); //其他门诊收费 this.tb1.Text = Global.pat.name; if (Global.pat.iOtherProvLocal == 0) this.tb2.Text = "本地"; else this.tb2.Text = "异地"; this.tb3.Text = Global.pat.card.NO; this.tb4.Text = Global.pat.certNO; this.tb5.Text = Global.pat.psn_type; this.tb6.Text = Global.pat.insuTypeName; this.tb7.Text = Global.pat.psn_no; this.tb8.Text = Global.pat.balc; this.tb9.Text = feeall; this.tb10.Text = fund; this.tb11.Text = cash; this.tb12.Text = personcountpay; this.tb13.Text = tradeno; this.tb14.Text = feeno; this.tb15.Text = tradedate; this.tb16.Text = mzfee; this.tb17.Text = jcbz; this.tb18.Text = ExServicePay; this.tb19.Text = mzfeein; this.tb20.Text = big_ill_pay; this.tb21.Text = year_mzfeein; this.tb22.Text = mzfeeout; this.tb23.Text = txbz; this.tb24.Text = mzoutofbig; this.tb25.Text = mzselfpay2; this.tb26.Text = civil_pay; this.tb27.Text = mzbigselfpay; this.tb28.Text = selfpay1; this.tb29.Text = bcpay; this.tb30.Text = bigillcomm; this.tb31.Text = mzpayfirst; this.tb32.Text = mzbigpay; this.tb33.Text = year_mzbigpay; this.tb34.Text = offi_true; this.tb35.Text = year_mzoutofbig; this.tb36.Text = first_year_mzoutofbig; this.tb37.Text = first_year_mzbigpay; this.tb38.Text = first_year_mzfeein; this.rtb_Medicatalog_BD.Text = "诊察费:" + diagnosis + "," + "检查费:" + examine + "," + "化验费:" + labexam + "," + "治疗费:" + treatment + "," + "手术费:" + operation + "," + "卫生材料费:" + material + "," + "西药费:" + medicine + "," + "中草药费:" + therb + "," + "中成药费:" + tmedicine + "," + "医事服务费:" + medicalservice + "," + "一般诊疗费:" + commonservice + "," + "挂号费:" + registfee + "," + "其他门诊收费:" + otheropfee; Global.Set.acctPay = personcountpay; Global.Set.settlID = tradeno; //医保返回交易流水号 } public void SettlementInfoOPOther(JObject joInput) { //交易信息(tradeinfo) string tradeno = JsonHelper.getDestValue(joInput, "root.output.tradeinfo.tradeno"); //交易流水号 string feeno = JsonHelper.getDestValue(joInput, "root.output.tradeinfo.feeno"); //收费单据号 string tradedate = JsonHelper.getDestValue(joInput, "root.output.tradeinfo.tradedate"); //交易时间 格式为:YYYYMMDDHHMMSS //汇总支付信息(sumpay) string feeall = JsonHelper.getDestValue(joInput, "root.output.sumpay.feeall"); //费用总金额 string fund = JsonHelper.getDestValue(joInput, "root.output.sumpay.fund"); //基金支付 string cash = JsonHelper.getDestValue(joInput, "root.output.sumpay.cash"); //现金支付 string personcountpay = JsonHelper.getDestValue(joInput, "root.output.sumpay.personcountpay"); //个人帐户支付 //支付信息(payinfo) string mzpayfirst = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzpayfirst");//本次付起付线金额 string mzfee = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzfee"); //费用总金额 string mzfeein = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzfeein"); //医保内总金额 string mzfeeout = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzfeeout"); //医保外总金额 string BasePay = JsonHelper.getDestValue(joInput, "root.output.payinfo.BasePay"); //基本医疗保险统筹基金支付金额 string GwybzPay = JsonHelper.getDestValue(joInput, "root.output.payinfo.GwybzPay"); //公务员医疗补助基金 string bcpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.bcpay"); //补充保险支付金额 string mzbigpay = JsonHelper.getDestValue(joInput, "root.output.payinfo.mzbigpay"); //门诊大额支付金额 string jcbz = JsonHelper.getDestValue(joInput, "root.output.payinfo.jcbz"); //军残补助保险金额 string MzbzPay = JsonHelper.getDestValue(joInput, "root.output.payinfo.MzbzPay"); //民政补助基金 string OtherPay = JsonHelper.getDestValue(joInput, "root.output.payinfo.OtherPay"); //其他基金支付 string Cash = JsonHelper.getDestValue(joInput, "root.output.payinfo.Cash"); //个人现金支付 string PersonCountPay = JsonHelper.getDestValue(joInput, "root.output.payinfo.PersonCountPay"); //个人账户支付 string PersonCountBalance = JsonHelper.getDestValue(joInput, "root.output.payinfo.PersonCountBalance"); //个人账户余额 string CLAB_PRESELFPAY_FEE = JsonHelper.getDestValue(joInput, "root.output.payinfo.CLAB_PRESELFPAY_FEE"); //乙类先行自付费用 string OVERLMT_SELFPAY = JsonHelper.getDestValue(joInput, "root.output.payinfo.OVERLMT_SELFPAY"); //超限价自付费用 string PSN_OWNPAY_FEE = JsonHelper.getDestValue(joInput, "root.output.payinfo.PSN_OWNPAY_FEE"); //个人自费费用 string PSN_SELFPAY_FEE = JsonHelper.getDestValue(joInput, "root.output.payinfo.PSN_SELFPAY_FEE"); //个人自付费用 string SelfPayFlag = JsonHelper.getDestValue(joInput, "root.output.payinfo.SelfPayFlag"); //全额垫付标志 string PromptMessage = JsonHelper.getDestValue(joInput, "root.output.payinfo.PromptMessage"); //提示信息 string diagnosis = JsonHelper.getDestValue(joInput, "root.output.medicatalog.diagnosis"); //诊察费 string examine = JsonHelper.getDestValue(joInput, "root.output.medicatalog.examine"); //检查费 string labexam = JsonHelper.getDestValue(joInput, "root.output.medicatalog.labexam"); //化验费 string treatment = JsonHelper.getDestValue(joInput, "root.output.medicatalog.treatment"); //治疗费 string operation = JsonHelper.getDestValue(joInput, "root.output.medicatalog.operation"); //手术费 string material = JsonHelper.getDestValue(joInput, "root.output.medicatalog.material"); //卫生材料费 string medicine = JsonHelper.getDestValue(joInput, "root.output.medicatalog.medicine"); //西药费 string therb = JsonHelper.getDestValue(joInput, "root.output.medicatalog.therb"); //中草药 string tmedicine = JsonHelper.getDestValue(joInput, "root.output.medicatalog.tmedicine"); //中成药费 string medicalservice = JsonHelper.getDestValue(joInput, "root.output.medicatalog.medicalservice"); //医事服务费 string commonservice = JsonHelper.getDestValue(joInput, "root.output.medicatalog.commonservice"); //一般诊疗费 string registfee = JsonHelper.getDestValue(joInput, "root.output.medicatalog.registfee"); //挂号费 string otheropfee = JsonHelper.getDestValue(joInput, "root.output.medicatalog.otheropfee"); //其他门诊收费 this.utb1.Text = Global.pat.name; if (Global.pat.iOtherProvLocal == 0) this.utb2.Text = "本地"; else this.utb2.Text = "异地"; this.utb3.Text = Global.pat.card.NO; this.utb4.Text = Global.pat.certNO; this.utb5.Text = Global.pat.psn_type; this.utb6.Text = Global.pat.insuTypeName; this.utb7.Text = Global.pat.psn_no; this.utb8.Text = Global.pat.balc; this.utb9.Text = feeall; this.utb10.Text = fund; this.utb11.Text = cash; this.utb12.Text = personcountpay; this.utb13.Text = tradeno; this.utb14.Text = feeno; this.utb15.Text = tradedate; this.utb16.Text = mzfee; this.utb17.Text = mzfeein; this.utb18.Text = mzfeeout; this.utb19.Text = BasePay; this.utb20.Text = GwybzPay; this.utb21.Text = bcpay; this.utb22.Text = mzbigpay; this.utb23.Text = jcbz; this.utb24.Text = MzbzPay; this.utb25.Text = OtherPay; this.utb26.Text = cash; this.utb27.Text = PersonCountPay; this.utb28.Text = PersonCountBalance; this.utb29.Text = CLAB_PRESELFPAY_FEE; this.utb30.Text = OVERLMT_SELFPAY; this.utb31.Text = PSN_OWNPAY_FEE; this.utb32.Text = PSN_SELFPAY_FEE; this.utb33.Text = SelfPayFlag; this.utb34.Text = PromptMessage; this.utb35.Text = mzpayfirst; this.rtb_Medicatalog_YD.Text = "诊察费:" + diagnosis + "," + "检查费:" + examine + "," + "化验费:" + labexam + "," + "治疗费:" + treatment + "," + "手术费:" + operation + "," + "卫生材料费:" + material + "," + "西药费:" + medicine + "," + "中草药费:" + therb + "," + "中成药费:" + tmedicine + "," + "医事服务费:" + medicalservice + "," + "一般诊疗费:" + commonservice + "," + "挂号费:" + registfee + "," + "其他门诊收费:" + otheropfee; Global.Set.acctPay = personcountpay; Global.Set.settlID = tradeno; //医保返回交易流水号 } public SettlementInfo(JObject joInput,int iOtherProvLocal) { InitializeComponent(); //本地加载 if (iOtherProvLocal == 0) { tcMain.SelectedIndex = 0; SettlementInfoOP(joInput); } else { tcMain.SelectedIndex = 1; SettlementInfoOPOther(joInput); } //tcMain.Enabled = false; } private void uiButton1_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; } private void uiButton2_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; } } }