Settlement.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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.InPat
  11. {
  12. class Settlement : AbstractProcess
  13. {
  14. public Settlement()
  15. {
  16. MergeOrginal = true;
  17. }
  18. public override CallResult Process(JObject input)
  19. {
  20. Global.pat.admType = 2; //住院
  21. JObject joInParam = JObject.Parse(JsonHelper.getDestValue(input, "orginalInput"));
  22. JArray jaParams = JArray.Parse(JsonHelper.getDestValue(joInParam, "params"));
  23. JObject joParam = JObject.FromObject(jaParams[0]);
  24. JObject joSettlement = JObject.Parse(JsonHelper.getDestValue(input, "Settlement"));
  25. //正式结算
  26. joSettlement.Add("data", joSettlement);
  27. JObject jo2304Rtn = invoker.invokeCenterService("2304", JsonHelper.setCenterInpar("2304", joSettlement));
  28. if (JsonHelper.parseCenterRtnValue(jo2304Rtn, out errMsg) != 0)
  29. {
  30. outParam = JsonHelper.setExceptionJson(-1, "结算失败", errMsg).ToString();
  31. cBus.cancleRegister("2405", out errMsg);
  32. return Exception();
  33. }
  34. else
  35. {
  36. //返回给云医保平台结算信息
  37. if (mIS.saveSettlement(jo2304Rtn, out errMsg) != 0)
  38. {
  39. outParam = JsonHelper.setExceptionJson(-1, "结算成功,但云医保平台保存失败", errMsg).ToString();
  40. return Exception();
  41. }
  42. //返回给云医保平台结算明细信息
  43. if (mIS.saveSettlementDetail(jo2304Rtn, out errMsg) != 0)
  44. {
  45. outParam = JsonHelper.setExceptionJson(-1, "云医保平台保存结算明细失败", errMsg).ToString();
  46. }
  47. //返回给HIS
  48. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(jo2304Rtn, "output.setlinfo"));
  49. if (hIS.returnInpatSettlementInfo(joParam, joSetlinfo, out outParam) != 0)
  50. {
  51. outParam = JsonHelper.setExceptionJson(-1, "返回结算信息给HIS", outParam).ToString();
  52. return Exception();
  53. }
  54. else
  55. {
  56. //返回给前端
  57. JObject joHisServieRtn = JObject.Parse(outParam);
  58. hBus.returnToFrontEndAfterSettlement(jo2304Rtn, joHisServieRtn, out outParam);
  59. outParam = JsonHelper.setIrisReturnValue(0, "结算成功", JObject.Parse(outParam)).ToString();
  60. return Success();
  61. }
  62. }
  63. }
  64. }
  65. }