| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 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{    class OPPreSettlementProcess : AbstractProcess    {        /// <summary>        /// 返回预结算结果        /// </summary>        /// <param name="joReg">基本信息含挂号、就诊、诊断、结算等入参</param>        /// <returns></returns>        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");            // 个性化(济南),费用不单独上传            //joSettlement["patient"] = joReg;            //joSettlement.Add("psn_name", Global.pat.name);            //joSettlement.Add("gend", ("1".Equals(Global.pat.gend)?"男":"女"));            //joSettlement.Add("cardno", Global.pat.card.NO);            //joSettlement["admNo"] = Global.pat.adm_Dr; // 病历号            // 异地就医标志            //string otherAreaFlag = "10";            //if (!Utils.isOtherCity() || Global.inf.interfaceDr == 28)            //{            //    otherAreaFlag = "01"; //本地            //}            //joSettlement.Add("other_area_flag", otherAreaFlag);            //var ret = hBus.getFeeDetail();            //if (ret.code < 0)            //{            //    return Error(ret.code,ret.data.ToString());            //}            //JArray jaFeeDetail = (JArray)ret.data;            //joSettlement["feeDetail"] = jaFeeDetail;            //预结算              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();            //济南扩展            //string useAccountFlag = JsonHelper.getDestValue(joSettlement, "acct_used_flag");            //string acctPay = Global.Set.acctPay;            //if (!"1".Equals(useAccountFlag))            //{            //    //不使用个人账户            //    acctPay = "0";            //}            //JObject joDataExp = new JObject();            //joDataExp.Add("acct_payamt", acctPay);            //joRtnSettle["exp_content"] = joDataExp;            joRtn.Add("setlinfo", joRtnSettle);            //结算需要转换            joRtn["mdtrt_cert_no"] = Utils.ConvertMdtrtcertNo();            outParam = joRtn.ToString();            return Success();        }    }}
 |