IPSettlementProcess.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. namespace PTMedicalInsurance.Business
  10. {
  11. class IPSettlementProcess : AbstractProcess
  12. {
  13. public override CallResult Process(JObject input)
  14. {
  15. string errMsg = "";
  16. #region 正式出院结算
  17. JObject joSettlement = joSettlement = JObject.Parse(JsonHelper.getDestValue(input, "Settlement"));
  18. JObject joDataExp = new JObject();
  19. joDataExp.Add("cardtoken", Global.pat.card.Cardtoken);
  20. joDataExp.Add("acct_payamt", Global.Set.acctPay);
  21. joDataExp.Add("elec_bill_code", "");
  22. joDataExp.Add("elec_billno_code", "");
  23. joDataExp.Add("elec_bill_chkcode", "");
  24. joSettlement["exp_content"] = joDataExp;
  25. joSettlement.Add("data", joSettlement);
  26. JObject jo2304Rtn = invoker.invokeCenterService(TradeEnum.InpatientSettlement, joSettlement);
  27. if (JsonHelper.parseCenterRtnValue(jo2304Rtn, out errMsg) != 0)
  28. {
  29. cBus.cancleRegister(TradeEnum.InpatientExitCancel, out errMsg);
  30. return Exception(-1, "结算失败", errMsg);
  31. }
  32. else
  33. {
  34. Global.pat.admType = 2;
  35. //返回给云医保平台结算信息
  36. if (mIS.saveSettlement(jo2304Rtn, out errMsg) != 0)
  37. {
  38. return Exception(-1, "结算成功,但云医保平台保存失败", errMsg);
  39. }
  40. //返回给云医保平台结算明细信息
  41. if (mIS.saveSettlementDetail(jo2304Rtn, out errMsg) != 0)
  42. {
  43. return Exception(-1, "云医保平台保存结算明细失败", errMsg);
  44. }
  45. //返回给HIS
  46. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(jo2304Rtn, "output.setlinfo"));
  47. if (hIS.returnInpatSettlementInfo(input, joSetlinfo, out outParam) != 0)
  48. {
  49. return Exception(-1, "返回结算信息给HIS", outParam);
  50. }
  51. else
  52. {
  53. //返回给前端
  54. JObject joHisServieRtn = JObject.Parse(outParam);
  55. hBus.returnToFrontEndAfterSettlement(jo2304Rtn, joHisServieRtn, out outParam);
  56. return Success("结算成功");
  57. }
  58. }
  59. #endregion
  60. }
  61. }
  62. }