Settlement.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. //if ((Global.pat.mdtrtcertType == "03") && (Global.pat.insuplc_admdvs.Substring(0, 2) == "62"))
  18. //{
  19. // CardReader_GS CardRead_GS = new CardReader_GS();
  20. // if (CardRead_GS.VerifyPIN(out outParam) != 0)
  21. // {
  22. // outParam = JsonHelper.setExceptionJson(-1, "社保卡验密异常iVerifyPIN失败 ", outParam).ToString();
  23. // return Exception(-1, "", outParam);
  24. // }
  25. //}
  26. #endregion
  27. //正式结算
  28. JObject joData = new JObject();
  29. JObject joSettlement = (JObject)input.DeepClone();
  30. joData.Add("data", joSettlement);
  31. JObject joRtn = invoker.invokeCenterService(TradeEnum.OutpatientSettlement, joData);
  32. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  33. {
  34. outParam = JsonHelper.setExceptionJson(-1, "结算失败", errMsg).ToString();
  35. return Exception(-1, "", outParam);
  36. }
  37. else
  38. {
  39. //计算医保钱包金额
  40. hBus.CalcWltPay(joRtn);
  41. //返回给云医保平台结算信息
  42. if (mIS.saveSettlement(joRtn, out errMsg) != 0)
  43. {
  44. outParam = JsonHelper.setExceptionJson(-1, "结算成功,但云医保平台保存失败", errMsg).ToString();
  45. return Exception(-1, "", outParam);
  46. }
  47. //返回给云医保平台结算明细信息
  48. if (mIS.saveSettlementDetail(joRtn, out errMsg) != 0)
  49. {
  50. outParam = JsonHelper.setExceptionJson(-1, "云医保平台保存结算明细失败", errMsg).ToString();
  51. return Exception(-1, "", outParam);
  52. }
  53. //返回给HIS
  54. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "output.setlinfo"));
  55. if (hIS.returnOutpatSettlementInfo(joSettlement, joSetlinfo, out outParam) != 0)
  56. {
  57. outParam = JsonHelper.setExceptionJson(-1, "返回结算信息给HIS", outParam).ToString();
  58. return Exception(-1, "", outParam);
  59. }
  60. else
  61. {
  62. JObject joHisServieRtn = JObject.Parse(outParam);
  63. hBus.returnToFrontEndAfterSettlement(joRtn, joHisServieRtn, out outParam);
  64. outParam = JsonHelper.setIrisReturnValue(0, "结算成功", JObject.Parse(outParam)).ToString();
  65. return Success();
  66. }
  67. }
  68. }
  69. }
  70. }