Settlement.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Common;
  3. using PTMedicalInsurance.Helper;
  4. using PTMedicalInsurance.Variables;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace PTMedicalInsurance.Business.Core.SelfServiceMachine.Process.OutPat
  11. {
  12. class Settlement : AbstractProcess
  13. {
  14. public override CallResult Process(JObject input)
  15. {
  16. #region【门诊正式结算前调用社保卡验密】
  17. #endregion
  18. //正式结算
  19. JObject joData = new JObject();
  20. JObject joSettlement = (JObject)input.DeepClone();
  21. joData.Add("data", joSettlement);
  22. JObject joRtn = invoker.invokeCenterService("2207", JsonHelper.setCenterInpar("2207", joData));
  23. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  24. {
  25. outParam = JsonHelper.setExceptionJson(-1, "结算失败", errMsg).ToString();
  26. return Exception(-1, "", outParam);
  27. }
  28. else
  29. {
  30. //返回给云医保平台结算信息
  31. if (mIS.saveSettlement(joRtn, out errMsg) != 0)
  32. {
  33. outParam = JsonHelper.setExceptionJson(-1, "结算成功,但云医保平台保存失败", errMsg).ToString();
  34. return Exception(-1, "", outParam);
  35. }
  36. //返回给云医保平台结算明细信息
  37. if (mIS.saveSettlementDetail(joRtn, out errMsg) != 0)
  38. {
  39. outParam = JsonHelper.setExceptionJson(-1, "云医保平台保存结算明细失败", errMsg).ToString();
  40. return Exception(-1, "", outParam);
  41. }
  42. //返回给HIS
  43. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "output.setlinfo"));
  44. if (hIS.returnOutpatSettlementInfo(joSettlement, joSetlinfo, out outParam) != 0)
  45. {
  46. outParam = JsonHelper.setExceptionJson(-1, "返回结算信息给HIS", outParam).ToString();
  47. return Exception(-1, "", outParam);
  48. }
  49. else
  50. {
  51. JObject joHisServieRtn = JObject.Parse(outParam);
  52. hBus.returnToFrontEndAfterSettlement(joRtn, joHisServieRtn, out outParam);
  53. outParam = JsonHelper.setIrisReturnValue(0, "结算成功", JObject.Parse(outParam)).ToString();
  54. return Success();
  55. }
  56. }
  57. }
  58. }
  59. }