Settlement.cs 3.0 KB

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