OPQuerySettlementProcess.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using MedicalInsurance.Forms;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. using PTMedicalInsurance.Helper;
  5. using PTMedicalInsurance.Variables;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows.Forms;
  13. namespace PTMedicalInsurance.Business
  14. {
  15. class OPQuerySettlementProcess : AbstractProcess
  16. {
  17. public override CallResult Process(JObject input)
  18. {
  19. //查询HIS医保结算记录表获取该病人的参保地
  20. string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE billType = 1 and ValidFlag = 1 ";
  21. sqlStr = sqlStr + " AND Hospital_Dr=" + Global.inf.hospitalDr + " AND Interface_Dr=" + Global.inf.interfaceDr;
  22. sqlStr = sqlStr + " AND SettlementID ='" + Global.pat.settlID + "'";
  23. JObject joSql = new JObject();
  24. joSql.Add("sqlStr", sqlStr);
  25. JObject joSettlInfo = mIS.QuerySettlementInfo(joSql);
  26. //if (JsonHelper.parseIrisRtnValue(joSettlInfo, out errMsg) != 0)
  27. //{
  28. // rtnResult = JsonHelper.setExceptionJson(-1, "查询结算信息失败!", errMsg).ToString();
  29. // return rtnResult;
  30. //}
  31. string insuplc_admvs = JsonHelper.getDestValue(joSettlInfo, "result.data[0].insuplc_admdvs");
  32. if (!string.IsNullOrEmpty(insuplc_admvs))
  33. {
  34. Global.pat.insuplc_admdvs = insuplc_admvs;
  35. }
  36. //取消共济(成都)
  37. joSettlInfo = CancelMutualAidPay(joSettlInfo);
  38. outParam = JsonHelper.toJsonString(joSettlInfo);
  39. return Success();
  40. }
  41. private JObject CancelMutualAidPay(JObject joRtn)
  42. {
  43. DataTable dtSettlInfo = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable)));
  44. if (dtSettlInfo.Rows.Count != 1)
  45. {
  46. return JsonHelper.setExceptionJson(-1, "未查询到相关结算信息!","");
  47. }
  48. int mutualAidFlag = 0;
  49. if (!string.IsNullOrEmpty(dtSettlInfo.Rows[0]["MutualAidFlag"].ToString()))
  50. {
  51. mutualAidFlag = Convert.ToInt32(dtSettlInfo.Rows[0]["MutualAidFlag"].ToString());
  52. }
  53. if (mutualAidFlag > 0)
  54. {
  55. //开启自付界面,因涉及到多次自付
  56. MutualAid frmMA = new MutualAid(Global.pat.settlID);
  57. if (frmMA.dtSettlInfo.Rows.Count != 0)
  58. {
  59. frmMA.WindowState = FormWindowState.Maximized;
  60. if (frmMA.ShowDialog() == DialogResult.OK)
  61. {
  62. }
  63. else
  64. {
  65. return JsonHelper.setExceptionJson(-1, "收款员取消共济支付撤销!", null);
  66. }
  67. }
  68. else
  69. {
  70. return JsonHelper.setExceptionJson(-1, "开启共济支付失败,原因为未检测到有效的被共济人的医保结算数据!", null);
  71. }
  72. }
  73. return joRtn;
  74. }
  75. }
  76. }