OPRegProcess.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. using System.Windows.Forms;
  10. namespace PTMedicalInsurance.Business
  11. {
  12. class OPRegProcess : AbstractProcess
  13. {
  14. /// <summary>
  15. /// 门诊挂号
  16. /// </summary>
  17. /// <param name="joPatient"></param>
  18. /// <returns></returns>
  19. public JObject OutpatientReg(JObject joPatient)
  20. {
  21. Global.pat.admType = 1;
  22. //医保挂号
  23. JObject jo2201Inpar = JObject.Parse(JsonHelper.getDestProperty(joPatient, "data"));
  24. JObject jo2201Rtn = invoker.invokeCenterService(TradeEnum.OutpatientRegistration, jo2201Inpar);
  25. string errMsg = "";
  26. if (JsonHelper.parseCenterRtnValue(jo2201Rtn, out errMsg) != 0)
  27. {
  28. return JsonHelper.setExceptionJson(-1, "医保挂号", errMsg);
  29. }
  30. else
  31. {
  32. Global.pat.mdtrtID = JsonHelper.getDestValue(jo2201Rtn, "output.data.mdtrt_id");
  33. string outParam = "";
  34. // 兼容不同的模式
  35. if (joPatient.ContainsKey("patInfo"))
  36. {
  37. joPatient = JObject.Parse(JsonHelper.getDestValue(joPatient,"patInfo"));
  38. JObject joInsuInfo = JObject.Parse(JsonHelper.getDestValue(joPatient, "selectedInsuInfo"));
  39. if (!string.IsNullOrEmpty(JsonHelper.getDestValue(joInsuInfo, "insuplc_admdvs")))
  40. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(joInsuInfo, "insuplc_admdvs");
  41. }
  42. //插入患者本次就诊用的参保信息
  43. if (hBus.insertPatCurInsuInfo(joPatient.ToString(), out outParam) != 0)
  44. {
  45. if (DialogResult.Yes != MessageBox.Show(outParam, " 是否继续? ", MessageBoxButtons.YesNo))
  46. {
  47. return JsonHelper.setExceptionJson(-1, "插入患者本次就诊用的参保信息,请联系管理员!是否继续?", outParam);
  48. }
  49. }
  50. }
  51. return jo2201Rtn;
  52. }
  53. /// <summary>
  54. /// 挂号成功后返回医保的就诊Id(mdtrt_id)
  55. /// </summary>
  56. /// <param name="joPatient"></param>
  57. /// <returns></returns>
  58. public override CallResult Process(JObject joPatient)
  59. {
  60. JObject jo2201Inpar_plain = JObject.Parse(JsonHelper.getDestProperty(joPatient, "data"));
  61. jo2201Inpar_plain = JObject.Parse(JsonHelper.setCenterInpar("2201", jo2201Inpar_plain));
  62. JObject jo2201Rtn = OutpatientReg(joPatient);
  63. if (jo2201Rtn.ContainsKey("errorCode"))
  64. {
  65. outParam = jo2201Rtn.ToString();
  66. return Error(outParam);
  67. }
  68. //此处先取到就诊信息上传的入参,只要挂号成功就保存到云HIS后台(保存后台需要用到2203入参)
  69. JObject jo2203Inpar = new JObject();
  70. JObject jo2203Inpar_plain = new JObject();
  71. joPatient["mdtrtinfo"]["mdtrt_id"] = Global.pat.mdtrtID;
  72. jo2203Inpar.Add("mdtrtinfo", JObject.Parse(JsonHelper.getDestValue(joPatient, "mdtrtinfo")));
  73. jo2203Inpar.Add("diseinfo", JArray.Parse(JsonHelper.getDestValue(joPatient, "diseinfo")));
  74. jo2203Inpar_plain = JObject.Parse(JsonHelper.setCenterInpar_plain("2203A", jo2203Inpar));
  75. jo2203Inpar = JObject.Parse(JsonHelper.setCenterInpar("2203A", jo2203Inpar));
  76. //门诊登记信息,插入云医保平台
  77. jo2201Rtn.Add("validflag", 1);
  78. jo2201Rtn.Add("regstate", 1);
  79. jo2201Rtn.Add("type", 3);
  80. if (mIS.saveOutpatRegisterInfo(jo2201Inpar_plain, jo2201Rtn, jo2203Inpar_plain, out outParam) != 0)
  81. {
  82. return Error(-1, "中心登记成功但医保平台保存失败,请联系管理员!");
  83. }
  84. // 返回病人信息
  85. outParam = joPatient.ToString();
  86. return Success();
  87. }
  88. }
  89. }