TableButton.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. using PTMedicalInsurance.Forms;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. using PTMedicalInsurance.Helper;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.ComponentModel;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows.Forms;
  14. namespace WinFrom1.ToFile
  15. {
  16. public partial class TableButton : Form
  17. {
  18. IrisDataHelper irisData = new IrisDataHelper();
  19. InvokeHelper invoker = new InvokeHelper();
  20. JObject userMsg = (JObject)JsonConvert.DeserializeObject("");
  21. public string fromType = "";
  22. public TableButton(string type = "")
  23. {
  24. fromType = type;
  25. InitializeComponent();
  26. //GetTableData(this,EventArgs.Empty, type);
  27. this.Text = type;
  28. this.Load += new EventHandler(GetTableData);
  29. //switch (type)
  30. //{
  31. // case "转院备案撤销":
  32. // this.Load += new EventHandler(GetTableData);
  33. // break;
  34. // case "慢特病备案撤销":
  35. // this.Load += new EventHandler(GetTableData);
  36. // break;
  37. // case "定点备案撤销":
  38. // this.Load += new EventHandler(GetTableData);
  39. // break;
  40. // default:
  41. // break;
  42. //}
  43. }
  44. #region 示例Json
  45. string rtn = "{\"body\":{\"output\":{\"medinsinfo\":[{\"fixmedins_code\":\"1200001001569\",\"fixmedins_name\":\"天津河西区普瑞眼科医院有限公司\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"05\"},{\"fixmedins_code\":\"5101001002094\",\"fixmedins_name\":\"成都普瑞眼科医院有限责任公司\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"11\"},{\"fixmedins_code\":\"5199001000058\",\"fixmedins_name\":\"成都普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"10\"},{\"fixmedins_code\":\"5299001102440\",\"fixmedins_name\":\"贵州普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"02\"},{\"fixmedins_code\":\"5399001000144\",\"fixmedins_name\":\"昆明普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"04\"},{\"fixmedins_code\":\"6101001000198\",\"fixmedins_name\":\"西安普瑞眼科医院有限责任公司\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"03\"},{\"fixmedins_code\":\"6201001100030\",\"fixmedins_name\":\"兰州普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"06\"},{\"fixmedins_code\":\"6299001100030\",\"fixmedins_name\":\"兰州普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"06\"},{\"fixmedins_code\":\"6599001102925\",\"fixmedins_name\":\"乌鲁木齐普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"06\"},{\"fixmedins_code\":\"6600001000519\",\"fixmedins_name\":\"乌鲁木齐普瑞眼科医院(有限公司)\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"05\"},{\"fixmedins_code\":\"H34010202798\",\"uscc\":\"91340102MA2WCNTB23\",\"fixmedins_name\":\"合肥瑶海区普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"07\"},{\"fixmedins_code\":\"H34010400768\",\"uscc\":\"91340100MA2MYPJ64A\",\"fixmedins_name\":\"合肥普瑞眼科医院\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"04\"},{\"fixmedins_code\":\"H34012400958\",\"uscc\":\"91340124MA2RG8M04F\",\"fixmedins_name\":\"庐江普瑞眼科门诊部\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"11\"},{\"fixmedins_code\":\"H34017200925\",\"uscc\":\"91340111MA2PGYQ5X2\",\"fixmedins_name\":\"合肥经济开发区普瑞眼科门诊部\",\"fixmedins_type\":\"1\",\"hosp_lv\":\"11\"}]},\"infcode\":0,\"inf_refmsgid\":\"340121202209022050100314008840\"},\"code\":200,\"csbCode\":200,\"message\":\"SUCCESS\",\"requestId\":\"ac11000116621230090334471d0121\",\"state\":{}}";
  46. #endregion
  47. /// <summary>
  48. /// 动态的点击事件
  49. /// </summary>
  50. /// <param name="sender"></param>
  51. /// <param name="e"></param>
  52. void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
  53. {
  54. if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
  55. if (dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString() != "撤销") return;
  56. //JObject insuJson = new JObject();
  57. dynamic joData = new JObject();
  58. DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
  59. joData.psn_no = row.Cells[0].Value.ToString(); //人员代码 2501
  60. joData.trt_dcla_detl_sn = row.Cells[3].Value.ToString(); //流水号
  61. joData.memo = "撤销备案"; //撤销原因
  62. //insuJson.Add(new JProperty("data", joData));
  63. //insuJson.Add(new JProperty("infno", "2506"));
  64. JObject joRtn = new JObject();
  65. switch (fromType)
  66. {
  67. case "转院备案撤销":
  68. joRtn = invoker.invokeInsuService(JsonHelper.setCenterInpar("2502", joData.ToString()), "转院备案撤销");
  69. break;
  70. case "慢特病备案撤销":
  71. joRtn = invoker.invokeInsuService(JsonHelper.setCenterInpar("2504", joData.ToString()), "慢特病备案撤销");
  72. break;
  73. case "定点备案撤销":
  74. joRtn = invoker.invokeInsuService(JsonHelper.setCenterInpar("2506", joData.ToString()), "定点备案撤销");
  75. break;
  76. default:
  77. break;
  78. }
  79. if (joRtn.ToString().IndexOf("errorCode") != -1)
  80. {
  81. string errorCode = joRtn["errorCode"].ToString();
  82. if (errorCode == "-1")
  83. {
  84. MessageBox.Show(joRtn["errorMessage"].ToString());
  85. return;
  86. }
  87. }
  88. string code = joRtn["code"].ToString();
  89. string csbCode = joRtn["csbCode"].ToString();
  90. string message = joRtn["message"].ToString();
  91. if (code == "200" && message == "SUCCESS") //调用IRIS
  92. {
  93. string infcode = joRtn["body"]["infcode"].ToString();
  94. if (infcode == "-1")
  95. {
  96. MessageBox.Show("备案撤销失败(医保)!");
  97. return;
  98. }
  99. JObject setJson = new JObject();
  100. string parNum = "";
  101. setJson.Add(new JProperty("params", SetBackDataJson(fromType, out parNum)));
  102. setJson.Add(new JProperty("code", parNum));
  103. //setJson.Add(new JProperty("session", irisData.AddUserJson()));
  104. setJson.Add(new JProperty("session", userMsg));
  105. JObject irsRtn = invoker.invokeIrisService(setJson.ToString().Replace("\r\n", ""), fromType);
  106. string errorCode = irsRtn["errorCode"].ToString().Trim();
  107. if (errorCode == "0")
  108. {
  109. this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] = new DataGridViewTextBoxCell();
  110. this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "已撤销";
  111. }
  112. else {
  113. MessageBox.Show("写入IRIS失败!");
  114. }
  115. }
  116. }
  117. #region 人员备案查询
  118. /// <summary>
  119. /// 动态获取数据并填充
  120. /// </summary>
  121. /// <param name="sender"></param>
  122. /// <param name="e"></param>
  123. public void GetTableData(object sender, EventArgs e)
  124. {
  125. try
  126. {
  127. JObject setJson = new JObject();
  128. string parNum = "";
  129. switch (fromType)
  130. {
  131. case "转院备案撤销": //查询转院备案列表
  132. {
  133. setJson.Add(new JProperty("params", SetGetDataJson("查询转院备案列表", "2502", out parNum)));
  134. break;
  135. }
  136. case "慢特病备案撤销": //查询慢特病备案列表
  137. {
  138. setJson.Add(new JProperty("params", SetGetDataJson("查询慢特病备案列表", "2504", out parNum)));
  139. break;
  140. }
  141. case "定点备案撤销": //查询定点备案列表
  142. {
  143. setJson.Add(new JProperty("params", SetGetDataJson("查询定点备案列表", "2506", out parNum)));
  144. break;
  145. }
  146. default:
  147. break;
  148. }
  149. setJson.Add(new JProperty("code", parNum));
  150. //setJson.Add(new JProperty("session", irisData.AddUserJson()));
  151. setJson.Add(new JProperty("session", userMsg));
  152. //return setJson;
  153. string inParms = setJson.ToString().Replace("\r\n", "");
  154. //JObject obRtn = invoker.invokeIrisService(inParms, fromType);
  155. #region 示例obRtn
  156. string ddd = "{\"errorCode\":\"0\",\"errorMessage\":\"\",\"result\":{\"data\":[{\"TransCode\":\"\",\"TransDesc\":\"\",\"CardID\":\"51277119900812897X\",\"Name\":\"高果果\",\"PsnNo\":\"501128\",\"InsuType\":\"\",\"Tel\":\"\",\"DiseCodg\":\"\",\"DiseName\":\"\",\"DiagCode\":\"\",\"DiagName\":\"\",\"FixmedinsCode\":\"\",\"FixmedinsName\":\"广州番禺普瑞眼科医院\",\"ReflinMedinsNo\":\"\",\"ReflinMedinsName\":\"\",\"BegnDate\":\"\",\"EndDate\":\"\",\"CreateDate\":\"2022-09-12\",\"CreateTime\":\"\",\"CreateUserDr\":\"\",\"InsuSerNo\":\"99000022122\",\"BizTypeFlag\":\"1\",\"FixSrtNo\":\"\",}]}}";
  157. JObject obRtn = (JObject)JsonConvert.DeserializeObject(ddd);
  158. #endregion
  159. if (obRtn.ToString().IndexOf("errorCode") != -1)
  160. {
  161. string errorCode = obRtn["errorCode"].ToString();
  162. if (errorCode == "-1")
  163. {
  164. MessageBox.Show(obRtn["errorMessage"].ToString());
  165. return;
  166. }
  167. }
  168. //string errorCode = obRtn["errorCode"].ToString().Trim();
  169. if (obRtn["errorCode"].ToString() == "0")
  170. {
  171. //string data = obRtn["result"].ToString().Trim();
  172. JArray newData = new JArray();
  173. JArray data = (JArray)JsonConvert.DeserializeObject(obRtn["result"]["data"].ToString());
  174. foreach (var item in data)
  175. {
  176. JObject tabRow = new JObject();
  177. tabRow["人员编号"] = item["PsnNo"].ToString().Trim();
  178. tabRow["姓名"] = item["Name"].ToString().Trim();
  179. tabRow["身份证号"] = item["CardID"].ToString().Trim();
  180. tabRow["申报流水号"] = item["InsuSerNo"].ToString().Trim();
  181. tabRow["申报时间"] = item["CreateDate"].ToString().Trim();
  182. //tabRow["业务类型"] = item["BizTypeFlag"].ToString().Trim();
  183. tabRow["定点医疗机构"] = item["FixmedinsName"].ToString().Trim();
  184. newData.Add(tabRow);
  185. }
  186. dataGridView1.DataSource = JsonConvert.DeserializeObject(newData.ToString());
  187. int coon = dataGridView1.Columns.Count;
  188. DataGridViewButtonColumn colHead = new DataGridViewButtonColumn();
  189. colHead.HeaderText = "撤销备案";
  190. this.dataGridView1.Columns.Add(colHead);
  191. int rows = this.dataGridView1.Rows.Count;
  192. for (int i = 0; i < rows; i++)
  193. {
  194. DataGridViewButtonCell btnCell = new DataGridViewButtonCell();
  195. btnCell.Value = "撤销";
  196. btnCell.FlatStyle = FlatStyle.Flat;
  197. btnCell.Style.BackColor = Color.Tomato;
  198. //dr.Cells.Add(btnCell);
  199. this.dataGridView1.Rows[i].Cells[coon] = btnCell;
  200. }
  201. //根据数据自动调整列宽
  202. for (int i = 0; i < coon + 1; i++)
  203. {
  204. dataGridView1.AutoResizeColumn(i);
  205. }
  206. this.dataGridView1.CellMouseDown += new DataGridViewCellMouseEventHandler(dataGridView1_CellMouseDown);
  207. }
  208. else
  209. {
  210. string errorMessage = obRtn["errorMessage"].ToString();
  211. MessageBox.Show(errorMessage);
  212. }
  213. }
  214. catch (Exception )
  215. {
  216. MessageBox.Show("查询备案列表异常,原因是:\r\n");
  217. }
  218. }
  219. /// <summary>
  220. /// 填充parms节内容
  221. /// </summary>
  222. /// <param name="types">业务名称</param>
  223. /// <param name="parNum">返回的业务接口</param>
  224. /// <returns></returns>
  225. private JObject SetGetDataJson(string types,string tranSCode, out string parNum)
  226. {
  227. parNum = "";
  228. dynamic joData = new JObject();
  229. switch (types)
  230. {
  231. case "查询转院备案列表": //查询转院备案列表
  232. {
  233. parNum = "02030003";
  234. break;
  235. }
  236. case "查询慢特病备案列表": //查询慢特病备案列表
  237. {
  238. parNum = "02030006";
  239. break;
  240. }
  241. case "查询定点备案列表": //查询定点备案列表
  242. {
  243. parNum = "02030009";
  244. break;
  245. }
  246. default:
  247. break;
  248. }
  249. joData.CardID = ""; //身份证号
  250. joData.TransCode = tranSCode; //交易代码 2501
  251. joData.CreateDate = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); //操作日期
  252. return joData;
  253. }
  254. #endregion
  255. #region 撤销操作
  256. /// <summary>
  257. /// 填充parms节内容
  258. /// </summary>
  259. /// <param name="types">业务名称</param>
  260. /// <param name="parNum">返回的业务接口</param>
  261. /// <returns></returns>
  262. private JObject SetBackDataJson(string types, out string parNum)
  263. {
  264. dynamic joData = new JObject();
  265. switch (types)
  266. {
  267. case "转院备案撤销": //查询转院备案列表
  268. {
  269. parNum = "02030002";
  270. break;
  271. }
  272. case "慢特病备案撤销": //查询慢特病备案列表
  273. {
  274. parNum = "02030005";
  275. break;
  276. }
  277. case "定点备案撤销": //查询定点备案列表
  278. {
  279. parNum = "02030008";
  280. break;
  281. }
  282. default:
  283. parNum = "";
  284. break;
  285. }
  286. joData.ID = ""; //转诊记录ID
  287. joData.trtDclaDetlSn = ""; //流水号
  288. return joData;
  289. }
  290. #endregion
  291. }
  292. }