| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 | 
							- 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 IPPreSettlementProcess : AbstractProcess
 
-     {
 
-         public IPPreSettlementProcess() {
 
-         }
 
-         public override CallResult Process(JObject input)
 
-         {
 
-             //JObject joSettlement = new JObject();
 
-             outParam = "";
 
-             string outPar = "";
 
-             #region 调用IRIS获取医保各项金额
 
-             if (mIS.getSumFee(out outPar) != 0)
 
-             {
 
-                 return Exception(-1, "获取医保费用各项汇总金额", outPar);
 
-             }
 
-             JObject joSumFee = JObject.Parse(outPar);
 
-             if ((JsonHelper.getDestValue(joSumFee, "data.Sumamt") == "") || (JsonHelper.getDestValue(joSumFee, "data.Sumamt") == "0"))
 
-             {
 
-                 return Exception(-1,"结算提示","请先右击选择【医保费用上传】!");
 
-             }
 
-             int type =  1; //住院预结算
 
-             if (mIS.queryRegisterInfo(type, out outParam) != 0)
 
-             {
 
-                 return Exception(-1, "查询患者云平台登记信息", outParam);
 
-             }
 
-             JObject joReg = JObject.Parse(outParam);
 
-             Global.pat.medType = JsonHelper.getDestValue(joReg, "data.MedicalType");
 
-             Global.pat.insuType = JsonHelper.getDestValue(joReg, "data.InsuType");
 
-             Global.pat.mdtrtcertType = JsonHelper.getDestValue(joReg, "data.CertificateType");
 
-             Global.pat.mdtrtcertNO = JsonHelper.getDestValue(joReg, "data.CertificateNO");
 
-             Global.pat.certNO = Global.pat.mdtrtcertNO;
 
-             //沈阳特殊处理,含有卡串
 
-             if (Global.pat.mdtrtcertNO != null && Global.pat.mdtrtcertNO.Contains("|"))
 
-             {
 
-                 Global.pat.certNO = Global.pat.mdtrtcertNO.Split("|".ToCharArray())[0];
 
-                 Global.pat.card.BusinessCode = Global.pat.mdtrtcertNO.Split("|".ToCharArray())[1];
 
-             }
 
-             Global.pat.psn_no = JsonHelper.getDestValue(joReg, "data.PersonalNO");
 
-             Global.pat.certType = JsonHelper.getDestValue(joReg, "data.CertificateType");
 
-             Global.pat.insuplc_admdvs = JsonHelper.getDestValue(joReg, "data.InsuranceAreaCode");
 
-             Global.pat.psn_type = Global.pat.insuType;   //后面再改
 
-             Global.pat.ExpContent = JsonHelper.getDestValue(joReg, "data.ExpContent");
 
-             if ((Global.pat.RYorCY == "2"))
 
-             {
 
-                 Global.pat.DiseasecCode = JsonHelper.getDestValue(joReg, "data.DiseasecCode");
 
-                 Global.pat.DiseasecName = JsonHelper.getDestValue(joReg, "data.DiseasecName");
 
-             }
 
-             #endregion
 
-             #region 事中分析
 
-             string errMsg;
 
-             if (Global.curEvt.ext.isOpenAnalysis)
 
-             {
 
-                 if (hBus.InProcessAnalysis(out errMsg) != 0)
 
-                 {
 
-                     return Exception(-1, "InProcessAnalysis", errMsg);
 
-                 }
 
-             }
 
-             #endregion
 
-             #region 昆明结算前读卡核验身份
 
-             //string patInfo = "";
 
-             //if (readCard(out patInfo) != 0)
 
-             //{
 
-             //    outParam = JsonHelper.setExceptionJson(-1, "readCard", patInfo).ToString();
 
-             //    return -1;
 
-             //}
 
-             #endregion
 
-             #region 出院登记
 
-             //调用服务获取门诊诊断信息
 
-             string diagnoses;
 
-             if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
 
-             {
 
-                 return Exception(-1, "getPatDiagnoses", diagnoses);
 
-             }
 
-             JObject joDiagnoses = JObject.Parse(diagnoses);
 
-             //展示出院登记界面,选择结算方式等
 
-             if (hBus.showDischargeRegisterForm(TradeEnum.InpatientPreSettlement, joSumFee, joDiagnoses, out outParam) != 0)
 
-             {
 
-                 return Exception(-1, "展示出院预结算界面", outParam);
 
-             }
 
-             JObject joRtn = JObject.Parse(outParam);
 
-             
 
-             #endregion
 
-             #region 预结算
 
-             JObject jo2303Inpar = JObject.Parse(JsonHelper.getDestValue(joRtn, "Settlement"));
 
-             JObject jo2303Data = new JObject();
 
-             jo2303Data.Add("data", jo2303Inpar);
 
-             JObject jo2303Rtn = invoker.invokeCenterService(TradeEnum.InpatientPreSettlement, jo2303Data);
 
-             if (JsonHelper.parseCenterRtnValue(jo2303Rtn, out outParam) != 0)
 
-             {
 
-                 return Exception(-1, "出院预结算", outParam);
 
-             }
 
-             //预结算结果传给HIS进行HIS判断 
 
-                 //返回给HIS
 
-                 JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(jo2303Rtn, "output.setlinfo"));
 
-                 JObject joParam = new JObject();
 
-                 joParam.Add("admID", Global.pat.adm_Dr);
 
-                 joParam.Add("recordID", Global.pat.recordID);
 
-                 joParam.Add("billID", Global.pat.billID);
 
-                 if (hIS.preSettlementInfo(joParam, joSetlinfo, out outParam) != 0)
 
-                 {
 
-                     return Exception(-1, "出院预结算", outParam);
 
-                 }
 
-             //编码转换
 
-             if (mIS.convertSettlementWithInsuCode(jo2303Rtn, out outParam) != 0)
 
-             {
 
-                 return Exception(-1, "结算信息转换", outParam);
 
-             }
 
-             //展示结算信息
 
-             JObject joConverted = JObject.Parse(outParam);
 
-             #region 济南扩展
 
-             //string useAccountFlag = JsonHelper.getDestValue(jo2303Inpar, "acct_used_flag");
 
-             //string acctPay = JsonHelper.getDestValue(joConverted, "setlinfo.acct_pay") ;
 
-             //if (!"1".Equals(useAccountFlag))
 
-             //{
 
-             //    //不使用个人账户
 
-             //    acctPay = "0";
 
-             //}
 
-             //JObject expContentObj = (JObject)jo2303Inpar["exp_content"] ?? new JObject();
 
-             //expContentObj.Add("acct_payamt", acctPay);
 
-             //jo2303Inpar["exp_content"] = expContentObj;
 
-             ////返回
 
-             //joRtn["Settlement"] = jo2303Inpar;
 
-             #endregion
 
-             if (hBus.showSettlementForm(joConverted, out outParam) != 0)
 
-             {
 
-                 //取消结算?
 
-                 new IPSettlementCancelProcess().Process(input);
 
-                 return Exception(-1, "结算信息展示", outParam);
 
-             }
 
-             //沈阳预结算不需要转换mdtrtCertNo,但结算需要
 
-             //在正式结算前读一次卡
 
-             //清除原数据
 
-             if ("03".Equals(Global.pat.mdtrtcertType)) {
 
-                 CardReader reader = new CardReader();
 
-                 int rtnCode = reader.ReadCardBas(out outParam);
 
-                 if (rtnCode != 0)
 
-                 {
 
-                     return Exception(-1, "读卡失败,请确认是否社保卡是否正常!", outParam);
 
-                 }
 
-             }
 
-             //读完卡后用新卡串
 
-             Global.pat.mdtrtcertNO = "";
 
-             joRtn["Settlement"]["mdtrt_cert_no"] = Utils.ConvertMdtrtcertNo();
 
-             //joSettlement = (JObject)joRtn.DeepClone();
 
-             outParam = joRtn.ToString();
 
-             #endregion
 
-             return Success();
 
-         }
 
-     }
 
- }
 
 
  |