PreSettlement.cs 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. if (hIS.preSettlement(joSettlement, joSetlinfo, out outParam) != 0)
  47. {
  48. outParam = JsonHelper.setExceptionJson(-1, "返回结算信息给HIS", outParam).ToString();
  49. return Exception(-1, "", outParam);
  50. }
  51. //编码转换
  52. if (mIS.convertSettlementWithInsuCode(jo2206Rtn, out outParam) != 0)
  53. {
  54. outParam = JsonHelper.setExceptionJson(-1, "结算信息转换", outParam).ToString();
  55. return Exception(-1, "", outParam);
  56. }
  57. joSumFee = new JObject();
  58. string errMsg = "";
  59. //判断勾稽关系是否平
  60. if (hIS.sumInsuRtnSettlInfo(JObject.Parse(JsonHelper.getDestValue(jo2206Rtn, "output.setlinfo")), out joSumFee, out errMsg) != 0)
  61. {
  62. outParam = "勾稽关系不符合标准,请联系管理员!" + errMsg;
  63. return Exception(-1, "", outParam);
  64. }
  65. ////展示结算信息
  66. //JObject joConverted = JObject.Parse(outParam);
  67. //if (showSettlementForm(joConverted, out outParam) != 0)
  68. //{
  69. // outParam = JsonHelper.setExceptionJson(-1, "结算信息展示", outParam).ToString();
  70. // return -1;
  71. //}
  72. //else
  73. //{
  74. // return 0;
  75. //}
  76. // 返回结算参数+返回
  77. outParam = joSettlement.ToString();
  78. return Success();
  79. }
  80. }
  81. }