ReadCardProcess.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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.ReadCard
  12. {
  13. class ReadCardProcess : AbstractProcess
  14. {
  15. public override CallResult Process(JObject input)
  16. {
  17. outParam = "";
  18. string sOutPar;
  19. Global.pat.bChangePIN = false;
  20. outParam = "";
  21. JObject joInput = new JObject();
  22. try
  23. {
  24. STA sta = new STA();
  25. object[] o = new object[2];
  26. sta.ReadCard(o);
  27. if (int.Parse(o[0].ToString()) != 0)
  28. {
  29. outParam = o[1].ToString();
  30. return Exception(-1, "", outParam);
  31. }
  32. else
  33. {
  34. if (Global.pat.isWorkInjury)
  35. {
  36. if (trade1101(out outParam) != 0)
  37. {
  38. return Exception(-1, "", outParam);
  39. }
  40. else
  41. {
  42. JObject joRtn = JObject.Parse(outParam);
  43. Global.pat.psn_no = JsonHelper.getDestValue(joRtn, "output.baseinfo.psn_no");
  44. if (tradeQ002(out outParam) != 0)
  45. {
  46. return Exception(-1, "", outParam);
  47. }
  48. else
  49. {
  50. joRtn["output"]["workinjury"] = new JArray();
  51. joRtn["output"]["workinjury"] = JArray.Parse(JsonHelper.getDestValue(JObject.Parse(outParam), "output.gsxx"));
  52. outParam = joRtn.ToString();
  53. return Exception(-1, "", outParam);
  54. }
  55. }
  56. }
  57. else
  58. {
  59. if (trade1101(out outParam) != 0)
  60. {
  61. return Exception(-1, "", outParam);
  62. }
  63. return Success(outParam);
  64. }
  65. }
  66. }
  67. catch (Exception ex)
  68. {
  69. return Error("异常:" + ex.Message);
  70. }
  71. }
  72. private int trade1101(out string outParam)
  73. {
  74. outParam = "";
  75. string errorMsg = "";
  76. JObject joInput = new JObject();
  77. JObject joRtn = new JObject();
  78. #region【1101获取身份信息】
  79. JObject joData = new JObject();
  80. joData.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  81. joData.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  82. joData.Add("card_sn", Global.pat.card.SN);
  83. //开始时间
  84. if (string.IsNullOrEmpty(Global.pat.begntime))
  85. {
  86. Global.pat.begntime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  87. }
  88. joData.Add("begntime", Global.pat.begntime);
  89. joData.Add("psn_cert_type", Global.pat.certType);
  90. joData.Add("certno", Global.pat.certNO); //证件号码
  91. joData.Add("psn_name", Global.pat.name);
  92. joInput.Add("data", joData);
  93. joRtn = invoker.invokeCenterService("1101", JsonHelper.setCenterInpar("1101", joInput));
  94. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  95. {
  96. outParam = "获取病人信息失败:" + errorMsg;
  97. return -1;
  98. }
  99. else
  100. {
  101. //joRtn.Add("cardinfo",joCardInfo);
  102. outParam = joRtn.ToString();
  103. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo[0].insuplc_admdvs"); //参保地
  104. return 0;
  105. }
  106. #endregion
  107. }
  108. private int tradeQ002(out string outParam)
  109. {
  110. outParam = "";
  111. string errorMsg = "";
  112. JObject joInput = new JObject();
  113. JObject joRtn = new JObject();
  114. JObject joData = new JObject();
  115. joData.Add("psn_no", Global.pat.psn_no);
  116. joInput.Add("data", joData);
  117. joRtn = invoker.invokeCenterService("Q002", JsonHelper.setCenterInpar("Q002", joInput));
  118. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  119. {
  120. outParam = "获取病人信息失败:" + errorMsg;
  121. return -1;
  122. }
  123. else
  124. {
  125. outParam = joRtn.ToString();
  126. return 0;
  127. }
  128. }
  129. }
  130. }