HospitalRegister.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Newtonsoft.Json.Linq;
  11. using PTMedicalInsurance.Helper;
  12. using PTMedicalInsurance.Business;
  13. using PTMedicalInsurance.Variables;
  14. using PTMedicalInsurance.FormSetter;
  15. namespace PTMedicalInsurance.Forms
  16. {
  17. public partial class HospitalRegister : Form
  18. {
  19. public string DrCode = "", DrName = "", DrInsuCode = "", DrCertNo = "";
  20. private HisMainBusiness hBus = new HisMainBusiness();
  21. private InvokeHelper invoker = new InvokeHelper();
  22. private HisIrisServices hIS = new HisIrisServices();
  23. private MIIrisServices mIS = new MIIrisServices();
  24. public HospitalRegister()
  25. {
  26. InitializeComponent();
  27. }
  28. private void SetDBLKCombox(ref PTControl.DBLookupCombox dblcbx, DataTable dtUserInfo)
  29. {
  30. dblcbx.sDisplayField = "Code,descripts,insuUserCode,credNo";
  31. dblcbx.sDisplayMember = "姓名";
  32. dblcbx.sKeyWords = "Code,descripts";
  33. dblcbx.DataSource = dtUserInfo;
  34. dblcbx.RowFilterVisible = true;
  35. dblcbx.TextBox.Width = 400;
  36. dblcbx.DataGridView.Width = 400;
  37. dblcbx.DataGridView.Columns[0].Name = "编码";
  38. dblcbx.DataGridView.Columns[1].Name = "姓名";
  39. dblcbx.DataGridView.Columns[2].Name = "医保医师代码";
  40. dblcbx.DataGridView.Columns[3].Name = "证件号码";
  41. dblcbx.DataGridView.Columns[0].Width = 55;
  42. dblcbx.DataGridView.Columns[1].Width = 55;
  43. dblcbx.DataGridView.Columns[2].Width = 115;
  44. dblcbx.DataGridView.Columns[3].Width = 200;
  45. }
  46. private void btnExit_Click(object sender, EventArgs e)
  47. {
  48. Close();
  49. }
  50. private void HospitalRegister_Load(object sender, EventArgs e)
  51. {
  52. dt_Begin.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  53. dt_End.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);
  54. dt_St.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  55. dt_Et.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);
  56. GridViewSetter grdSetter = new GridViewSetter();
  57. grdSetter.SetHeaderTextOfRestrictedDrugsInfo(dgv_MainData);
  58. grdSetter.SetHeaderTextOfReferralDrugsInfo(dgvReferralRecordDrugs);
  59. grdSetter.DatagridviewColumnWidthAdaptation(dgvReferralRecordDrugs);
  60. LoadRestrictedDrugsInfo(GetRestrictedDrugsInfo());
  61. cbb_DclaSouc.SelectedIndex = 0;
  62. cbb_CertType.SelectedIndex = 0;
  63. cbb_SpdiagFlag.SelectedIndex = 0;
  64. cbb_BizAppyType.SelectedIndex = 10;
  65. rg_type.SelectedIndex = 1;
  66. DrCode = "140005";
  67. //获取医院用户信息
  68. JObject joUserInfo = hIS.GetHosUserInfo("");
  69. DataTable dt = (DataTable)joUserInfo["result"]["rows"].ToObject(typeof(DataTable));
  70. SetDBLKCombox(ref cbx_DocInfo, dt);
  71. this.WindowState = FormWindowState.Maximized;
  72. }
  73. /// <summary>
  74. /// 获取当前医院限制药品信息
  75. /// </summary>
  76. public JObject GetRestrictedDrugsInfo()
  77. {
  78. string errMsg;
  79. JObject joTmp = new JObject();
  80. joTmp.Add("medCode", "");
  81. joTmp.Add("medDesc", "");
  82. joTmp.Add("subCatID", "");
  83. joTmp.Add("tipState", "1");
  84. JObject joTmp1 = new JObject();
  85. joTmp1.Add("pageSize", "100");
  86. joTmp1.Add("currentPage", "1");
  87. joTmp1.Add("sortColumn", "");
  88. joTmp1.Add("sortOrder", "");
  89. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar_("pr01002", joTmp, joTmp1).ToString(), "获取限制药品信息");
  90. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  91. {
  92. errMsg = "获取限制药品信息失败,请联系管理员!" + errMsg;
  93. return JsonHelper.setIrisReturnValue(-1, "", JObject.Parse(errMsg));
  94. }
  95. if (joRtn["data"].ToString() == "[]")
  96. {
  97. errMsg = "查询限制药品信息结果为空!";
  98. return JsonHelper.setIrisReturnValue(-1, "查询限制药品信息结果为空", null);
  99. }
  100. JArray jaItem = new JArray();
  101. JArray ja = JArray.Parse(JsonHelper.getDestValue(joRtn, "data"));
  102. for (int i = 0; i < JArray.Parse(JsonHelper.getDestValue(joRtn, "data")).Count; i++)
  103. {
  104. JObject jo = new JObject();
  105. jo.Add("medItemID", ja[i]["medItemID"]);
  106. jo.Add("medCode", ja[i]["medCode"]);
  107. jo.Add("medDesc", ja[i]["medDesc"]);
  108. jo.Add("approvalNum", ja[i]["approvalNum"]);
  109. jo.Add("medSpec", ja[i]["medSpec"]);
  110. jo.Add("medUnitDesc", ja[i]["medUnitDesc"]);
  111. jo.Add("medPrice", "0");
  112. jo.Add("tipState", ja[i]["tipState"]);
  113. jo.Add("tipDesc", ja[i]["tipDesc"]);
  114. jo.Add("negotiationTipDesc", ja[i]["negotiationTipDesc"]);
  115. jo.Add("Cnt", ja[i]["Cnt"]);
  116. jaItem.Add(jo);
  117. }
  118. JObject joRtnNew = new JObject();
  119. joRtnNew.Add("errorCode", "");
  120. joRtnNew.Add("errorMessage", "");
  121. joRtnNew.Add("total", "");
  122. joRtnNew.Add("data", jaItem);
  123. return joRtnNew;
  124. }
  125. public void LoadRestrictedDrugsInfo(JObject joRtn)
  126. {
  127. DataTable dt = (DataTable)joRtn["data"].ToObject(typeof(DataTable));
  128. dgv_MainData.DataSource = dt;
  129. }
  130. private void btnReadCard_Click(object sender, EventArgs e)
  131. {
  132. if (hBus.readCard(out string outParam) != 0)
  133. {
  134. MessageBox.Show("读卡失败:" + outParam);
  135. return;
  136. }
  137. else
  138. {
  139. string patInfo = outParam;
  140. //展示患者信息界面
  141. if (hBus.showPatInfo(patInfo, out outParam) == 0)
  142. {
  143. patInfo = outParam;
  144. if (hBus.setGlobalPatAfaterShowPatInfo(patInfo, out string errMsg) != 0)
  145. {
  146. MessageBox.Show("患者参保信息赋值失败:" + errMsg);
  147. return;
  148. }
  149. tb_Name.Text = Global.pat.name;
  150. tb_InsuAdmvs.Text = Global.pat.insuplc_admdvs;
  151. tb_PsnNo.Text = Global.pat.psn_no;
  152. tb_CertNo.Text = Global.pat.certNO;
  153. }
  154. }
  155. }
  156. private int CheckParamValue(out string errMsg)
  157. {
  158. errMsg = "";
  159. int iRes = -1;
  160. Boolean bPass = false;
  161. if ((tb_Name.Text == "") || (tb_InsuAdmvs.Text == "") || (tb_PsnNo.Text == ""))
  162. {
  163. errMsg = ("请先操作医保读卡获取参保信息!");
  164. return iRes;
  165. }
  166. if (dt_Begin.Text == "")
  167. {
  168. errMsg = ("开始时间不能为空!");
  169. return iRes;
  170. }
  171. if (dt_End.Text == "")
  172. {
  173. errMsg = ("截止时间不能为空!");
  174. return iRes;
  175. }
  176. if (tb_Tel.Text == "")
  177. {
  178. errMsg = ("联系电话不能为空!");
  179. return iRes;
  180. }
  181. if (cbb_DclaSouc.Text == "")
  182. {
  183. errMsg = ("申报来源不能为空!");
  184. return iRes;
  185. }
  186. if (tb_PsnNo.Text == "")
  187. {
  188. errMsg = ("医保人员编号不能为空!");
  189. return iRes;
  190. }
  191. if (cbx_DocInfo.Text == "")
  192. {
  193. errMsg = ("申请医师不能为空!");
  194. return iRes;
  195. }
  196. if (cbb_SpdiagFlag.Text == "")
  197. {
  198. errMsg = ("治疗标识不能为空!");
  199. return iRes;
  200. }
  201. DataTable dtHis = (DataTable)dgv_MainData.DataSource;
  202. for (int i = 0; i < dtHis.Rows.Count; i++)
  203. {
  204. //申请数量
  205. string cnt = dtHis.Rows[i]["Cnt"].ToString();
  206. if (int.Parse(cnt) > 0)
  207. bPass = true;
  208. if ((cnt != "") && (cnt != "0"))
  209. {
  210. string HISCode = dtHis.Rows[i]["medCode"].ToString(); //HIS编码
  211. string hilist_name = dtHis.Rows[i]["medDesc"].ToString(); //药品名称
  212. JObject joRtn = mIS.queryInsuContrastDirInfo(HISCode, 1);
  213. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  214. {
  215. errMsg = (hilist_name + ":未进行医保对照!");
  216. return iRes;
  217. }
  218. else
  219. {
  220. string hilist_code = JsonHelper.getDestValue(joRtn, "result.data[0].InsuCode");
  221. string list_type = JsonHelper.getDestValue(joRtn, "result.data[0].listType");
  222. }
  223. }
  224. }
  225. if (bPass == false)
  226. {
  227. errMsg = ("申请数量不能都为0!");
  228. return iRes;
  229. }
  230. return 0;
  231. }
  232. private void QueryReffalDrugsInfo()
  233. {
  234. string sqlStr = " SELECT * FROM BS_ReferralRecordDrugs ";
  235. sqlStr = sqlStr + "WHERE Hospital_Dr=" + Global.inf.hospitalDr; //Upload=Y And
  236. sqlStr = sqlStr + " and Interface_Dr= " + Global.inf.interfaceDr;
  237. sqlStr = sqlStr + " and OccurDateTime>'" + dt_St.Text + "'";
  238. sqlStr = sqlStr + " and OccurDateTime<'" + dt_Et.Text + "'";
  239. if (tb_CertnoQuery.Text != "")
  240. {
  241. sqlStr = sqlStr + " and Certno='" + tb_CertnoQuery.Text + "'";
  242. }
  243. switch (rg_type.SelectedIndex)
  244. {
  245. case 1:
  246. {
  247. sqlStr = sqlStr + " and ValidFlag='1'";
  248. break;
  249. }
  250. case 2:
  251. {
  252. sqlStr = sqlStr + " and ValidFlag='-1'";
  253. break;
  254. }
  255. }
  256. sqlStr = sqlStr + " Order By ID DESC";
  257. JObject joSqlstr = new JObject();
  258. joSqlstr.Add("sqlStr", sqlStr);
  259. JArray jaParam = new JArray();
  260. jaParam.Add(joSqlstr);
  261. JObject joSettlQuery = new JObject();
  262. joSettlQuery.Add("params", jaParam);
  263. joSettlQuery.Add("code", "02030012");
  264. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询特药备案申请信息");
  265. DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
  266. dgvReferralRecordDrugs.DataSource = dt;
  267. if (dt.Rows.Count <= 0)
  268. dgvReferralRecordDrugs.DataSource = null;
  269. }
  270. private void btnQuery_Click(object sender, EventArgs e)
  271. {
  272. QueryReffalDrugsInfo();
  273. }
  274. private void btnCancel_Click(object sender, EventArgs e)
  275. {
  276. if (dgvReferralRecordDrugs.DataSource == null)
  277. {
  278. MessageBox.Show("请先查询特药备案申请信息!");
  279. return;
  280. }
  281. if ((rtb_CancelReason.Text == "") || (rtb_CancelReason.Text == "请输入撤销原因"))
  282. {
  283. MessageBox.Show("请输入撤销原因!");
  284. return;
  285. }
  286. string OutPut, errMsg;
  287. int i = dgvReferralRecordDrugs.CurrentRow.Index;
  288. DataTable dt = (DataTable)dgvReferralRecordDrugs.DataSource;
  289. string RecordID = dt.Rows[i]["RecordDr"].ToString();
  290. string PersonalNO = dt.Rows[i]["PersonalNO"].ToString();
  291. string ID = dt.Rows[i]["ID"].ToString();
  292. string Memo = rtb_CancelReason.Text;
  293. JObject joData = new JObject();
  294. joData.Add("trt_dcla_detl_sn", RecordID); //待遇申报明细流水号
  295. joData.Add("psn_no", PersonalNO); //医保个人编码
  296. joData.Add("memo", Memo); //撤销原因
  297. JObject joDataInput = new JObject();
  298. joDataInput.Add("data", joData);
  299. string sInput = JsonHelper.setCenterInpar("2508_A", joDataInput);
  300. JObject joRtn = invoker.invokeCenterService("2508_A", sInput);
  301. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  302. {
  303. MessageBox.Show("特药备案申请撤销失败:" + errMsg);
  304. return;
  305. }
  306. else
  307. {
  308. if (CancelReferralRecord(joDataInput, ID, RecordID, out errMsg) != 0)
  309. {
  310. MessageBox.Show("特药备案申请撤销成功,更新数据库失败:" + errMsg);
  311. return;
  312. }
  313. else
  314. {
  315. MessageBox.Show("特药备案申请撤销成功!");
  316. QueryReffalDrugsInfo();
  317. }
  318. }
  319. }
  320. private int SaveReferralRecord(JObject joInParam,JObject joRtnParam,out string OutMsg)
  321. {
  322. int iRes;
  323. string errMsg;
  324. //解析返回值
  325. string trt_dcla_detl_sn = JsonHelper.getDestValue(joRtnParam, "output.result.trt_dcla_detl_sn"); //待遇申报明细流水号
  326. JObject joInPut = new JObject();
  327. joInPut.Add("Hospital_Dr", Global.inf.hospitalDr);
  328. joInPut.Add("Interface_Dr", Global.inf.interfaceDr);
  329. joInPut.Add("PatientName", JsonHelper.getDestValue(joInParam, "psn_name"));
  330. joInPut.Add("PersonalNO", JsonHelper.getDestValue(joInParam, "psn_no"));
  331. joInPut.Add("CertNo", JsonHelper.getDestValue(joInParam, "certno"));
  332. joInPut.Add("InsuDrCode", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].memo.dr_code"));
  333. joInPut.Add("RecordDr", trt_dcla_detl_sn);
  334. joInPut.Add("HISCode", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].memo.dr_name"));
  335. joInPut.Add("InsuCode", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].hilist_code"));
  336. joInPut.Add("InsuName", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].hilist_name"));
  337. joInPut.Add("ValidFlag", 1);
  338. joInPut.Add("UpdateUserID", Global.user.ID);
  339. joInPut.Add("OccurDateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  340. joInPut.Add("InParam", joInParam.ToString()); //dt_Begin.Value.ToString("yyyy-MM-dd")
  341. joInPut.Add("BeginDate", dt_Begin.Value.ToString("yyyy-MM-dd"));
  342. joInPut.Add("EndDate", dt_End.Value.ToString("yyyy-MM-dd"));
  343. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("02030011", joInPut).ToString(), "插入特药备案申请信息");
  344. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  345. {
  346. OutMsg = errMsg;
  347. return -1;
  348. }
  349. else
  350. {
  351. OutMsg = joRtn.ToString();
  352. return 0;
  353. }
  354. }
  355. private int CancelReferralRecord(JObject joInParam, string ID, string trtDclaDetlSn, out string OutMsg)
  356. {
  357. string errMsg;
  358. JObject joInPut = new JObject();
  359. joInPut.Add("Hospital_Dr", Global.inf.hospitalDr);
  360. joInPut.Add("Interface_Dr", Global.inf.interfaceDr);
  361. joInPut.Add("RecordDr", trtDclaDetlSn);
  362. joInPut.Add("ValidFlag", -1);
  363. joInPut.Add("ID", ID);
  364. joInPut.Add("UpdateUserID", Global.user.ID);
  365. joInPut.Add("OccurDateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  366. joInPut.Add("InParam", joInParam.ToString());
  367. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("02030013", joInPut).ToString(), "更新特药备案申请信息");
  368. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  369. {
  370. OutMsg = errMsg;
  371. return -1;
  372. }
  373. else
  374. {
  375. OutMsg = joRtn.ToString();
  376. return 0;
  377. }
  378. }
  379. private void btnOK_Click(object sender, EventArgs e)
  380. {
  381. string errMsg, outParam;
  382. //校验入参
  383. if (CheckParamValue(out errMsg) != 0)
  384. {
  385. MessageBox.Show(errMsg);
  386. return;
  387. }
  388. //治疗标识
  389. string SpdiagFlag = cbb_SpdiagFlag.Text.Trim().Substring(0, 4);
  390. //申报来源
  391. string DclaSouc = cbb_DclaSouc.Text.Trim().Substring(0, 4).Replace(" ","");
  392. //申请业务类型
  393. string BizAppyType= cbb_BizAppyType.Text.Trim().Substring(0, 4).Replace(" ", "");
  394. JArray ja_med_insu_dir_list = new JArray();
  395. DataTable dtHis = (DataTable)dgv_MainData.DataSource;
  396. for (int i = 0; i < dtHis.Rows.Count; i++)
  397. {
  398. string cnt = dtHis.Rows[i]["Cnt"].ToString(); //申请数量
  399. string HISCode = dtHis.Rows[i]["medCode"].ToString(); //HIS编码
  400. string hilist_name = dtHis.Rows[i]["medDesc"].ToString(); //药品名称
  401. string cnt_prcunt = dtHis.Rows[i]["medUnitDesc"].ToString(); //单位
  402. if ((cnt != "") && (cnt != "0"))
  403. {
  404. JObject joHISRtn = mIS.queryInsuContrastDirInfo(HISCode, 1);
  405. string hilist_code = JsonHelper.getDestValue(joHISRtn, "result.data[0].InsuCode");
  406. string list_type = JsonHelper.getDestValue(joHISRtn, "result.data[0].listType");
  407. if (list_type == "")
  408. list_type = "101";
  409. //备注memo
  410. JObject joMemo = new JObject();
  411. joMemo.Add("spdiag_flag", SpdiagFlag); //治疗标识
  412. joMemo.Add("dr_name", DrName); //医保医师姓名
  413. joMemo.Add("dr_code", DrInsuCode); //医保医师代码
  414. joMemo.Add("memo", "62"); //用法
  415. //医保目录列表med_insu_dir_list
  416. JObject jo_med_insu_dir_list = new JObject();
  417. jo_med_insu_dir_list.Add("cnt", cnt);
  418. jo_med_insu_dir_list.Add("hilist_name", hilist_name);
  419. jo_med_insu_dir_list.Add("hilist_code", hilist_code);
  420. jo_med_insu_dir_list.Add("cnt_prcunt", cnt_prcunt);
  421. jo_med_insu_dir_list.Add("list_type", list_type);
  422. jo_med_insu_dir_list.Add("memo", joMemo);
  423. ja_med_insu_dir_list.Add(jo_med_insu_dir_list);
  424. }
  425. }
  426. //定点医疗机构列表psn_fixed_evt_detl_dtos
  427. JObject jo_psn_fixed_evt_detl_dtos = new JObject();
  428. jo_psn_fixed_evt_detl_dtos.Add("evtsn", Global.inf.hospitalNO);
  429. jo_psn_fixed_evt_detl_dtos.Add("fixmedins_code", Global.inf.hospitalNO);
  430. jo_psn_fixed_evt_detl_dtos.Add("fixmedins_name", Global.inf.hospitalName);
  431. JArray ja_psn_fixed_evt_detl_dtos = new JArray();
  432. ja_psn_fixed_evt_detl_dtos.Add(jo_psn_fixed_evt_detl_dtos);
  433. //组织调用2507_A特药备案申请入参
  434. JObject joInput = new JObject();
  435. joInput.Add("psn_no", tb_PsnNo.Text);
  436. joInput.Add("begndate", dt_Begin.Value.ToString("yyyy-MM-dd"));
  437. joInput.Add("enddate", dt_End.Value.ToString("yyyy-MM-dd"));
  438. joInput.Add("tel", tb_Tel.Text);
  439. joInput.Add("dcla_souc", DclaSouc);
  440. joInput.Add("biz_appy_type", BizAppyType);
  441. joInput.Add("addr", tb_Address.Text);
  442. joInput.Add("agnter_name", tb_Name_P.Text);
  443. joInput.Add("agnter_cert_type", "01");
  444. joInput.Add("agnter_certno", tb_CertNo.Text);
  445. joInput.Add("agnter_tel", "");
  446. joInput.Add("agnter_addr", "");
  447. joInput.Add("agnter_rlts", "");
  448. joInput.Add("psn_cert_type", "01");
  449. joInput.Add("certno", tb_CertNo.Text);
  450. joInput.Add("psn_name", tb_Name.Text);
  451. joInput.Add("gend", "");
  452. joInput.Add("naty", "01");
  453. joInput.Add("brdy", "");
  454. joInput.Add("emp_no", "");
  455. joInput.Add("emp_nme", "");
  456. joInput.Add("diag_code", "");
  457. joInput.Add("diag_name", "");
  458. joInput.Add("med_insu_dir_list", ja_med_insu_dir_list);
  459. joInput.Add("psn_fixed_evt_detl_dtos", ja_psn_fixed_evt_detl_dtos);
  460. JObject joData = new JObject();
  461. joData.Add("data", joInput);
  462. string sInput = JsonHelper.setCenterInpar("2507_A", joData);
  463. JObject joRtn = invoker.invokeCenterService("2507_A", sInput);
  464. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  465. {
  466. MessageBox.Show("特药备案申请失败:" + errMsg);
  467. return;
  468. }
  469. else
  470. {
  471. string trt_dcla_detl_sn = JsonHelper.getDestValue(joRtn, "output.result.trt_dcla_detl_sn");
  472. if (SaveReferralRecord(joInput, joRtn, out errMsg) != 0)
  473. {
  474. JObject joInputData = new JObject();
  475. joInputData.Add("trt_dcla_detl_sn", trt_dcla_detl_sn); //待遇申报明细流水号
  476. joInputData.Add("psn_no", tb_PsnNo.Text); //医保个人编码
  477. joInputData.Add("memo", "备案信息填写错误"); //撤销原因
  478. JObject joDatahh = new JObject();
  479. joDatahh.Add("data", joInputData);
  480. string sInputData = JsonHelper.setCenterInpar("2508_A", joDatahh);
  481. JObject joRtnData = invoker.invokeCenterService("2508_A", sInputData);
  482. if (JsonHelper.parseCenterRtnValue(joRtnData, out errMsg) != 0)
  483. {
  484. MessageBox.Show("特药备案申请成功,保存到数据库失败,特药备案申请撤销失败:" + errMsg + ",请手动撤销已上传的特药备案申请后重新提交备案申请!");
  485. return;
  486. }
  487. else
  488. {
  489. MessageBox.Show("特药备案申请成功,保存到数据库失败,特药备案申请撤销成功,请重新提交备案申请!");
  490. }
  491. return;
  492. }
  493. MessageBox.Show("特药备案申请成功");
  494. }
  495. }
  496. private void cbx_DocInfo_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  497. {
  498. DataGridViewRow row = e.Value as DataGridViewRow;
  499. DataRowView dataRow = row.DataBoundItem as DataRowView;
  500. DrCode = dataRow["Code"].ToString().Trim(); //HIS工号
  501. DrName = dataRow["descripts"].ToString().Trim(); //姓名
  502. DrInsuCode = dataRow["insuUserCode"].ToString().Trim(); //医保医师代码
  503. DrCertNo = dataRow["credNo"].ToString().Trim(); //身份证号
  504. cbx_DocInfo.Text = DrName;
  505. }
  506. }
  507. }