InjuryQueryProcess.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Common;
  3. using PTMedicalInsurance.Forms;
  4. using PTMedicalInsurance.Helper;
  5. using PTMedicalInsurance.Variables;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. namespace PTMedicalInsurance.Business.Local
  13. {
  14. /// <summary>
  15. /// 查询是否工伤人员及信息
  16. /// </summary>
  17. class InjuryQueryProcess : AbstractProcess
  18. {
  19. public override CallResult Process(JObject input)
  20. {
  21. string patInfo = "";
  22. ChooseCard cc = new ChooseCard();
  23. cc.NameMustBeNotNull = true;
  24. IntPtr hWind = WinApi.GetWindowHandle("prBrowser");
  25. DialogResult dialog = DialogResult.None;
  26. if (hWind != IntPtr.Zero)
  27. {
  28. dialog = cc.ShowDialog(new WindowWrapper(hWind));
  29. }
  30. else
  31. {
  32. dialog = cc.ShowDialog();
  33. }
  34. if (dialog == DialogResult.OK)
  35. {
  36. //身份证
  37. if (cc.cardType == "02")
  38. {
  39. Global.pat.mdtrtcertType = "02";
  40. Global.pat.mdtrtcertNO = cc.ID;
  41. var ret = InjuryQuery();
  42. if (ret.code != 0)
  43. {
  44. return Exception("查询工伤信息失败", ret.data);
  45. }
  46. patInfo = ret.data;
  47. }
  48. else {
  49. return Exception(-1, "查询工伤信息只能用身份证+姓名", outParam);
  50. }
  51. }
  52. // 返回:data、mdtrtinfo、diseinfo、settlement
  53. if (hBus.showOutPatRegisterForm(patInfo, out outParam) != 0)
  54. {
  55. return Exception(-1, "显示登记面板", outParam);
  56. }
  57. //用于没有返回病人信息时增加
  58. JObject joInput = JObject.Parse(outParam);
  59. JObject joPatInfo = JObject.Parse(patInfo);
  60. joInput["patInfo"] = joPatInfo;
  61. outParam = joInput.ToString();
  62. return Success();
  63. }
  64. // 查询工伤信息并展示
  65. private (int code,string data) InjuryQuery()
  66. {
  67. string outParam = "";
  68. int code = 0;
  69. if (tradeGS001(out outParam) != 0)
  70. {
  71. string patInfo = outParam;
  72. code = showPatInfo(patInfo, out outParam);
  73. }
  74. return (code, outParam);
  75. }
  76. // 查询工伤接口
  77. public int tradeGS001(out string outParam)
  78. {
  79. outParam = "";
  80. string errorMsg = "";
  81. JObject joInput = new JObject();
  82. joInput.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  83. joInput.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  84. InvokeHelper invoker = new InvokeHelper();
  85. JObject joRtn = invoker.invokeCenterService(TradeEnum.PatientInjuryInfo, joInput);
  86. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  87. {
  88. outParam = "获取工伤信息失败:" + errorMsg;
  89. return -1;
  90. }
  91. else
  92. {
  93. outParam = joRtn.ToString();
  94. return 0;
  95. }
  96. }
  97. public int showPatInfo(String patInfo, out string outparam)
  98. {
  99. outparam = "";
  100. //展示信息界面
  101. JObject joOutparam = JObject.Parse(patInfo);
  102. JObject joOutput = JObject.Parse(JsonHelper.getDestValue(joOutparam, "output"));
  103. PatientInjuryForm frmPatientInfo = new PatientInjuryForm();
  104. //相关信息转换到登记面板
  105. try
  106. {
  107. frmPatientInfo.SetInjuryInfo(joOutput);
  108. if (frmPatientInfo.ShowDialog() == DialogResult.OK)
  109. {
  110. //现在用转换之前的
  111. JArray jaInsuInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "insuinfo"));
  112. JObject joSelectedInsuInfo = (JObject)jaInsuInfo[frmPatientInfo.insuInfoIndex];
  113. joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedInsuInfo", joSelectedInsuInfo));
  114. outparam = joOutparam.ToString();
  115. return 0;
  116. }
  117. else
  118. {
  119. outparam = JsonHelper.setExceptionJson(-1, "门诊读卡", "收款员取消读卡").ToString();
  120. return -1;
  121. }
  122. }
  123. catch (Exception e)
  124. {
  125. outparam = JsonHelper.setExceptionJson(-1, "患者参保信息展示", e.Message).ToString();
  126. return -1;
  127. }
  128. }
  129. }
  130. }