PreSettlement.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Helper;
  3. using PTMedicalInsurance.Variables;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace PTMedicalInsurance.Business.Core.SelfServiceMachine.Process.OutPat
  11. {
  12. class PreSettlement : AbstractProcess
  13. {
  14. public override CallResult Process(JObject input)
  15. {
  16. //调用IRIS获取医保各项金额
  17. if (mIS.getSumFee(out outParam) != 0)
  18. {
  19. outParam = JsonHelper.setExceptionJson(-1, "获取医保费用各项汇总金额", outParam).ToString();
  20. return Exception(-1, "", outParam);
  21. }
  22. JObject joSumFee = JObject.Parse(outParam);
  23. JObject joSettlement = JObject.Parse(JsonHelper.getDestValue(input, "settlement"));
  24. //修改joSettlement的就诊ID ,总金额等
  25. joSettlement["mdtrt_id"] = Global.pat.mdtrtID;
  26. joSettlement["medfee_sumamt"] = JsonHelper.getDestValue(joSumFee, "data.Sumamt");
  27. ////预结算2206
  28. //if (hBus.preSettlement_OutPat(joSettlement, out outParam) != 0)
  29. //{
  30. // outParam = JsonHelper.setExceptionJson(-1, "结算信息展示", outParam).ToString();
  31. // return Exception(-1, "", outParam);
  32. //}
  33. //return Success();
  34. //-----------------------------------------------
  35. //预结算
  36. JObject jo2206Data = new JObject();
  37. jo2206Data.Add("data", joSettlement);
  38. JObject jo2206Rtn = invoker.invokeCenterService(TradeEnum.OutpatientPreSettlement, jo2206Data);
  39. if (JsonHelper.parseCenterRtnValue(jo2206Rtn, out outParam) != 0)
  40. {
  41. outParam = JsonHelper.setExceptionJson(-1, "出院预结算", outParam).ToString();
  42. return Exception(-1, "", outParam);
  43. }
  44. //返回给HIS进行预结算判断
  45. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(jo2206Rtn, "output.setlinfo"));
  46. Global.Set.acctPay = joSetlinfo["acct_pay"].ToString();
  47. if (hIS.preSettlement(joSettlement, joSetlinfo, out outParam) != 0)
  48. {
  49. outParam = JsonHelper.setExceptionJson(-1, "返回结算信息给HIS", outParam).ToString();
  50. return Exception(-1, "", outParam);
  51. }
  52. //编码转换
  53. if (mIS.convertSettlementWithInsuCode(jo2206Rtn, out outParam) != 0)
  54. {
  55. outParam = JsonHelper.setExceptionJson(-1, "结算信息转换", outParam).ToString();
  56. return Exception(-1, "", outParam);
  57. }
  58. joSumFee = new JObject();
  59. string errMsg = "";
  60. //判断勾稽关系是否平
  61. if (hIS.sumInsuRtnSettlInfo(JObject.Parse(JsonHelper.getDestValue(jo2206Rtn, "output.setlinfo")), out joSumFee, out errMsg) != 0)
  62. {
  63. outParam = "勾稽关系不符合标准,请联系管理员!" + errMsg;
  64. return Exception(-1, "", outParam);
  65. }
  66. ////展示结算信息
  67. //JObject joConverted = JObject.Parse(outParam);
  68. //if (showSettlementForm(joConverted, out outParam) != 0)
  69. //{
  70. // outParam = JsonHelper.setExceptionJson(-1, "结算信息展示", outParam).ToString();
  71. // return -1;
  72. //}
  73. //else
  74. //{
  75. // return 0;
  76. //}
  77. // 返回结算参数+返回
  78. outParam = joSettlement.ToString();
  79. return Success();
  80. }
  81. }
  82. }