using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Helper; using PTMedicalInsurance.Variables; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PTMedicalInsurance.Business.SelfServiceMachine.OutPatient { class OPPreSettlementInSSMProcess : AbstractProcess { public override CallResult Process(JObject joReg) { JObject joRtn = new JObject(); //调用IRIS获取医保各项金额 if (mIS.getSumFee(out outParam) != 0) { return Error(-1, "获取医保费用各项汇总金额"); } JObject joSumFee = JObject.Parse(outParam); JObject joSettlement = JObject.Parse(JsonHelper.getDestValue(joReg, "settlement")); //修改joSettlement的就诊ID ,总金额等 joSettlement["mdtrt_id"] = Global.pat.mdtrtID; joSettlement["mdtrt_cert_no"] = Utils.ConvertMdtrtcertNo(false); //预结算不需要转换 joSettlement["medfee_sumamt"] = JsonHelper.getDestValue(joSumFee, "data.Sumamt"); //预结算 JObject jo2206Data = new JObject(); jo2206Data.Add("data", joSettlement); JObject jo2206Rtn = invoker.invokeCenterService(TradeEnum.OutpatientPreSettlement, jo2206Data); if (JsonHelper.parseCenterRtnValue(jo2206Rtn, out outParam) != 0) { return Exception(-1, "出院预结算", outParam); } //返回给HIS进行预结算判断 JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(jo2206Rtn, "output.setlinfo")); if (hIS.preSettlement(joSettlement, joSetlinfo, out outParam) != 0) { return Exception(-1, "返回结算信息给HIS", outParam); } //编码转换 if (mIS.convertSettlementWithInsuCode(jo2206Rtn, out outParam) != 0) { return Exception(-1, "结算信息转换", outParam); } string errMsg = ""; JObject joRtnSettle = JObject.Parse(JsonHelper.getDestValue(jo2206Rtn, "output.setlinfo")); //判断勾稽关系是否平 if (hIS.sumInsuRtnSettlInfo(joRtnSettle, out joSumFee, out errMsg) != 0) { return Exception(-1, "勾稽关系不符合标准,请联系管理员!", errMsg); } ////展示结算信息 //JObject joConverted = JObject.Parse(outParam); //if (hBus.showSettlementForm(joConverted, out outParam) != 0) //{ // return Exception(-1, "结算信息展示", outParam); //} // 返回结算参数+返回 joRtn = (JObject)joSettlement.DeepClone(); outParam = joRtn.ToString(); return Success(); } } }