OPQuerySettlementProcess.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(joSettlInfo, "result.data[0].insuplc_admdvs");
  32. //取消共济(成都)
  33. joSettlInfo = CancelMutualAidPay(joSettlInfo);
  34. outParam = JsonHelper.toJsonString(joSettlInfo);
  35. return Success();
  36. }
  37. private JObject CancelMutualAidPay(JObject joRtn)
  38. {
  39. DataTable dtSettlInfo = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable)));
  40. if (dtSettlInfo.Rows.Count != 1)
  41. {
  42. return JsonHelper.setExceptionJson(-1, "未查询到相关结算信息!","");
  43. }
  44. int mutualAidFlag = 0;
  45. if (!string.IsNullOrEmpty(dtSettlInfo.Rows[0]["MutualAidFlag"].ToString()))
  46. {
  47. mutualAidFlag = Convert.ToInt32(dtSettlInfo.Rows[0]["MutualAidFlag"].ToString());
  48. }
  49. if (mutualAidFlag > 0)
  50. {
  51. //开启自付界面,因涉及到多次自付
  52. MutualAid frmMA = new MutualAid(Global.pat.settlID);
  53. if (frmMA.dtSettlInfo.Rows.Count != 0)
  54. {
  55. frmMA.WindowState = FormWindowState.Maximized;
  56. if (frmMA.ShowDialog() == DialogResult.OK)
  57. {
  58. }
  59. else
  60. {
  61. return JsonHelper.setExceptionJson(-1, "收款员取消共济支付撤销!", null);
  62. }
  63. }
  64. else
  65. {
  66. return JsonHelper.setExceptionJson(-1, "开启共济支付失败,原因为未检测到有效的被共济人的医保结算数据!", null);
  67. }
  68. }
  69. return joRtn;
  70. }
  71. }
  72. }