| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | using Newtonsoft.Json.Linq;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 IPSettlementProcess : AbstractProcess    {        public IPSettlementProcess()        {         }        public IPSettlementProcess(JObject orginal)        {            this.OrginalInput = orginal;        }        public override CallResult Process(JObject input)        {            string errMsg = "";            #region 正式出院结算            JObject joSettlement = joSettlement = JObject.Parse(JsonHelper.getDestValue(input, "Settlement"));            //基线版扩展            JObject joDataExp = (JObject)joSettlement["exp_content"] ?? new JObject();            joDataExp.Add("cardtoken", Global.pat.card.Cardtoken);            joDataExp.Add("elec_bill_code", "");            joDataExp.Add("elec_billno_code", "");            joDataExp.Add("elec_bill_chkcode", "");            joSettlement["exp_content"] = joDataExp;            joSettlement.Add("data", joSettlement);            JObject jo2304Rtn = invoker.invokeCenterService(TradeEnum.InpatientSettlement, joSettlement);            if (JsonHelper.parseCenterRtnValue(jo2304Rtn, out errMsg) != 0)            {                cBus.cancleRegister(TradeEnum.InpatientExitCancel, out errMsg);                return Exception(-1, "结算失败", errMsg);            }            else            {                // TODO:出院登记应独立出流程                JObject jo2402Inpar = JObject.Parse(JsonHelper.getDestValue(input, "DischargeRegister"));                JObject jo2402Rtn = invoker.invokeCenterService(TradeEnum.InpatientExit, jo2402Inpar);                if (JsonHelper.parseCenterRtnValue(jo2402Rtn, out errMsg) != 0)                {                    return Exception(-1, "出院登记失败", errMsg);                }                JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(jo2304Rtn, "output.setlinfo"));                //济南未返回基金分项,手工拆分                JArray fundArray = new LocalPayFundSplitService().Split(joSetlinfo);                if (fundArray?.Count > 0)                {                    jo2304Rtn["output"]["setldetail"] = fundArray;                }                Global.pat.admType = 2;                //返回给云医保平台结算信息                if (mIS.saveSettlement(jo2304Rtn, out errMsg) != 0)                {                    return Exception(-1, "结算成功,但云医保平台保存失败", errMsg);                }                //返回给云医保平台结算明细信息                if (mIS.saveSettlementDetail(jo2304Rtn, out errMsg) != 0)                {                    return Exception(-1, "云医保平台保存结算明细失败", errMsg);                }                //返回给HIS                if (hIS.returnInpatSettlementInfo(this.OrginalInput, joSetlinfo, out outParam) != 0)                {                    return Exception(-1, "返回结算信息给HIS", outParam);                }                else                {                    //返回给前端                    JObject joHisServieRtn = JObject.Parse(outParam);                    hBus.returnToFrontEndAfterSettlement(jo2304Rtn, joHisServieRtn, out outParam);                    return IrisReturn("结算成功", JObject.Parse(outParam));                }            }            #endregion        }    }}
 |