HospitalRegister.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  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. //WindowState = FormWindowState.Maximized;
  53. dt_Begin.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  54. dt_End.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);
  55. GridViewSetter grdSetter = new GridViewSetter();
  56. grdSetter.SetHeaderTextOfReferralDrugsInfo(dgvReferralRecordDrugs);
  57. grdSetter.DatagridviewColumnWidthAdaptation(dgvReferralRecordDrugs);
  58. cbb_CertType.SelectedIndex = 0;
  59. DrCode = "140005";
  60. //获取医院用户信息
  61. JObject joUserInfo = hIS.GetHosUserInfo("");
  62. DataTable dt = (DataTable)joUserInfo["result"]["rows"].ToObject(typeof(DataTable));
  63. SetDBLKCombox(ref cbx_DocInfo, dt);
  64. }
  65. private void btnReadCard_Click(object sender, EventArgs e)
  66. {
  67. if (hBus.readCard(out string outParam) != 0)
  68. {
  69. MessageBox.Show("读卡失败:" + outParam);
  70. return;
  71. }
  72. else
  73. {
  74. string patInfo = outParam;
  75. //展示患者信息界面
  76. if (hBus.showPatInfo(patInfo, out outParam) == 0)
  77. {
  78. patInfo = outParam;
  79. if (hBus.setGlobalPatAfaterShowPatInfo(patInfo, out string errMsg) != 0)
  80. {
  81. MessageBox.Show("患者参保信息赋值失败:" + errMsg);
  82. return;
  83. }
  84. tb_Name.Text = Global.pat.name;
  85. tb_InsuAdmvs.Text = Global.pat.insuplc_admdvs;
  86. tb_PsnNo.Text = Global.pat.psn_no;
  87. tb_CertNo.Text = Global.pat.certNO;
  88. }
  89. }
  90. }
  91. private int CheckParamValue(out string errMsg)
  92. {
  93. errMsg = "";
  94. int iRes = -1;
  95. Boolean bPass = false;
  96. if ((tb_Name.Text == "") || (tb_InsuAdmvs.Text == "") || (tb_PsnNo.Text == ""))
  97. {
  98. errMsg = ("请先操作医保读卡获取参保信息!");
  99. return iRes;
  100. }
  101. if (dt_Begin.Text == "")
  102. {
  103. errMsg = ("开始时间不能为空!");
  104. return iRes;
  105. }
  106. if (dt_End.Text == "")
  107. {
  108. errMsg = ("截止时间不能为空!");
  109. return iRes;
  110. }
  111. if (tb_PsnNo.Text == "")
  112. {
  113. errMsg = ("医保人员编号不能为空!");
  114. return iRes;
  115. }
  116. if (cbx_DocInfo.Text == "")
  117. {
  118. errMsg = ("申请医师不能为空!");
  119. return iRes;
  120. }
  121. return 0;
  122. }
  123. private int SaveReferralRecord(JObject joInParam,JObject joRtnParam,out string OutMsg)
  124. {
  125. int iRes;
  126. string errMsg;
  127. //解析返回值
  128. string trt_dcla_detl_sn = JsonHelper.getDestValue(joRtnParam, "output.result.trt_dcla_detl_sn"); //待遇申报明细流水号
  129. JObject joInPut = new JObject();
  130. joInPut.Add("Hospital_Dr", Global.inf.hospitalDr);
  131. joInPut.Add("Interface_Dr", Global.inf.interfaceDr);
  132. joInPut.Add("PatientName", JsonHelper.getDestValue(joInParam, "psn_name"));
  133. joInPut.Add("PersonalNO", JsonHelper.getDestValue(joInParam, "psn_no"));
  134. joInPut.Add("CertNo", JsonHelper.getDestValue(joInParam, "certno"));
  135. joInPut.Add("InsuDrCode", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].memo.dr_code"));
  136. joInPut.Add("RecordDr", trt_dcla_detl_sn);
  137. joInPut.Add("HISCode", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].memo.dr_name"));
  138. joInPut.Add("InsuCode", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].hilist_code"));
  139. joInPut.Add("InsuName", JsonHelper.getDestValue(joInParam, "med_insu_dir_list[0].hilist_name"));
  140. joInPut.Add("ValidFlag", 1);
  141. joInPut.Add("UpdateUserID", Global.user.ID);
  142. joInPut.Add("OccurDateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  143. joInPut.Add("InParam", joInParam.ToString()); //dt_Begin.Value.ToString("yyyy-MM-dd")
  144. joInPut.Add("BeginDate", dt_Begin.Value.ToString("yyyy-MM-dd"));
  145. joInPut.Add("EndDate", dt_End.Value.ToString("yyyy-MM-dd"));
  146. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("02030011", joInPut).ToString(), "插入特药备案申请信息");
  147. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  148. {
  149. OutMsg = errMsg;
  150. return -1;
  151. }
  152. else
  153. {
  154. OutMsg = joRtn.ToString();
  155. return 0;
  156. }
  157. }
  158. private void btnDelete_Click(object sender, EventArgs e)
  159. {
  160. if (dgvReferralRecordDrugs.DataSource == null)
  161. {
  162. MessageBox.Show("请先查询特药登记信息!");
  163. return;
  164. }
  165. string OutPut, errMsg;
  166. int i = dgvReferralRecordDrugs.CurrentRow.Index;
  167. DataTable dt = (DataTable)dgvReferralRecordDrugs.DataSource;
  168. string RecordID = dt.Rows[i]["trt_dcla_detl_sn"].ToString();
  169. string PersonalNO = dt.Rows[i]["psn_no"].ToString();
  170. JObject joData = new JObject();
  171. joData.Add("trt_dcla_detl_sn", RecordID); //待遇申报明细流水号
  172. joData.Add("psn_no", PersonalNO); //医保个人编码
  173. joData.Add("exp_content", ""); //扩展字段
  174. JObject joDataInput = new JObject();
  175. joDataInput.Add("data", joData);
  176. string sInput = JsonHelper.setCenterInpar("3672", joDataInput);
  177. JObject joRtn = invoker.invokeCenterService("3672", sInput);
  178. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  179. {
  180. MessageBox.Show("删除特药登记信息失败:" + errMsg);
  181. return;
  182. }
  183. else
  184. {
  185. JObject joDataQ = new JObject();
  186. joDataQ.Add("psn_no", Global.pat.psn_no); //医保个人编码
  187. joDataQ.Add("fixmedins_code", Global.inf.hospitalNO); //机构编号
  188. joDataQ.Add("page_num", "1"); //分页页码
  189. joDataQ.Add("page_size", "50"); //分页大小
  190. joDataQ.Add("exp_content", ""); //扩展字段
  191. JObject joDataInputQ = new JObject();
  192. joDataInput.Add("data", joData);
  193. string sInputQ = JsonHelper.setCenterInpar("3673", joDataInputQ);
  194. JObject joRtnQ = invoker.invokeCenterService("3673", sInputQ);
  195. if (JsonHelper.parseCenterRtnValue(joRtnQ, out errMsg) != 0)
  196. {
  197. MessageBox.Show("查询特药登记信息失败:" + errMsg);
  198. return;
  199. }
  200. else
  201. {
  202. DataTable dtQ = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
  203. dgvReferralRecordDrugs.DataSource = dtQ;
  204. if (dtQ.Rows.Count <= 0)
  205. {
  206. dgvReferralRecordDrugs.DataSource = null;
  207. }
  208. }
  209. }
  210. MessageBox.Show("删除特药登记信息成功!");
  211. }
  212. private void btnInsuQuery_Click(object sender, EventArgs e)
  213. {
  214. if (hBus.readCard(out string outParam) != 0)
  215. {
  216. MessageBox.Show("读卡失败:" + outParam);
  217. return;
  218. }
  219. else
  220. {
  221. string patInfo = outParam;
  222. //展示患者信息界面
  223. if (hBus.showPatInfo(patInfo, out outParam) == 0)
  224. {
  225. patInfo = outParam;
  226. if (hBus.setGlobalPatAfaterShowPatInfo(patInfo, out string errMsg) != 0)
  227. {
  228. MessageBox.Show("患者参保信息赋值失败:" + errMsg);
  229. return;
  230. }
  231. JObject joData = new JObject();
  232. joData.Add("psn_no", Global.pat.psn_no); //医保个人编码
  233. joData.Add("fixmedins_code", Global.inf.hospitalNO); //机构编号
  234. joData.Add("page_num", "1"); //分页页码
  235. joData.Add("page_size", "50"); //分页大小
  236. joData.Add("exp_content", ""); //扩展字段
  237. JObject joDataInput = new JObject();
  238. joDataInput.Add("data", joData);
  239. string sInput = JsonHelper.setCenterInpar("3673", joDataInput);
  240. JObject joRtn = invoker.invokeCenterService("3673", sInput);
  241. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  242. {
  243. MessageBox.Show("查询特药登记信息失败:" + errMsg);
  244. return;
  245. }
  246. else
  247. {
  248. DataTable dt = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));
  249. dgvReferralRecordDrugs.DataSource = dt;
  250. if (dt.Rows.Count <= 0)
  251. {
  252. MessageBox.Show("医保中心查询结果返回为空!");
  253. dgvReferralRecordDrugs.DataSource = null;
  254. }
  255. }
  256. }
  257. }
  258. }
  259. private void btnReadCard_Click_1(object sender, EventArgs e)
  260. {
  261. }
  262. private int CancelReferralRecord(JObject joInParam, string ID, string trtDclaDetlSn, out string OutMsg)
  263. {
  264. string errMsg;
  265. JObject joInPut = new JObject();
  266. joInPut.Add("Hospital_Dr", Global.inf.hospitalDr);
  267. joInPut.Add("Interface_Dr", Global.inf.interfaceDr);
  268. joInPut.Add("RecordDr", trtDclaDetlSn);
  269. joInPut.Add("ValidFlag", -1);
  270. joInPut.Add("ID", ID);
  271. joInPut.Add("UpdateUserID", Global.user.ID);
  272. joInPut.Add("OccurDateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  273. joInPut.Add("InParam", joInParam.ToString());
  274. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("02030013", joInPut).ToString(), "更新特药备案申请信息");
  275. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  276. {
  277. OutMsg = errMsg;
  278. return -1;
  279. }
  280. else
  281. {
  282. OutMsg = joRtn.ToString();
  283. return 0;
  284. }
  285. }
  286. private void btnOK_Click(object sender, EventArgs e)
  287. {
  288. string errMsg, outParam;
  289. //校验入参
  290. if (CheckParamValue(out errMsg) != 0)
  291. {
  292. MessageBox.Show(errMsg);
  293. return;
  294. }
  295. //组织调用2507_A特药备案申请入参
  296. JObject joInput = new JObject();
  297. joInput.Add("psn_no", tb_PsnNo.Text);
  298. joInput.Add("psn_cert_type", "01");
  299. joInput.Add("certno", tb_CertNo.Text);
  300. joInput.Add("insutype", Global.pat.insuType);
  301. joInput.Add("emp_no", "");
  302. joInput.Add("emp_nme", "");
  303. joInput.Add("dr_code", DrInsuCode); //医师代码
  304. joInput.Add("dr_name", DrName); //医师姓名
  305. joInput.Add("begndate", dt_Begin.Value.ToString("yyyy-MM-dd"));
  306. joInput.Add("enddate", dt_End.Value.ToString("yyyy-MM-dd"));
  307. joInput.Add("diag_code", "");
  308. joInput.Add("diag_name", "");
  309. joInput.Add("agnter_name", tb_Name_P.Text);
  310. joInput.Add("agnter_cert_type", "01");
  311. joInput.Add("agnter_certno", tb_CertNo.Text);
  312. joInput.Add("agnter_tel", "");
  313. joInput.Add("agnter_addr", "");
  314. joInput.Add("agnter_rlts", "");
  315. joInput.Add("exp_content", "");
  316. JObject joData = new JObject();
  317. joData.Add("data", joInput);
  318. string sInput = JsonHelper.setCenterInpar("3671", joData);
  319. JObject joRtn = invoker.invokeCenterService("3671", sInput);
  320. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  321. {
  322. MessageBox.Show("新增特药登记信息失败:" + errMsg);
  323. return;
  324. }
  325. else
  326. {
  327. string trt_dcla_detl_sn = JsonHelper.getDestValue(joRtn, "output.result.trt_dcla_detl_sn");
  328. if (SaveReferralRecord(joInput, joRtn, out errMsg) != 0)
  329. {
  330. JObject joInputData = new JObject();
  331. joInputData.Add("trt_dcla_detl_sn", trt_dcla_detl_sn); //待遇申报明细流水号
  332. joInputData.Add("psn_no", tb_PsnNo.Text); //医保个人编码
  333. joInputData.Add("exp_content", "特药登记信息填写错误"); //扩展字段
  334. JObject joDatahh = new JObject();
  335. joDatahh.Add("data", joInputData);
  336. string sInputData = JsonHelper.setCenterInpar("3672", joDatahh);
  337. JObject joRtnData = invoker.invokeCenterService("3672", sInputData);
  338. if (JsonHelper.parseCenterRtnValue(joRtnData, out errMsg) != 0)
  339. {
  340. MessageBox.Show("新增特药登记信息成功,保存到数据库失败,删除特药登记信息失败:" + errMsg + ",请手动删除已上传的特药登记信息后重新新增特药登记信息!");
  341. return;
  342. }
  343. else
  344. {
  345. MessageBox.Show("新增特药登记信息成功,保存到数据库失败,删除特药登记信息成功,请重新新增特药登记信息!");
  346. }
  347. return;
  348. }
  349. MessageBox.Show("新增特药登记信息成功");
  350. }
  351. }
  352. private void cbx_DocInfo_AfterSelector(object sender, PTControl.AfterSelectorEventArgs e)
  353. {
  354. DataGridViewRow row = e.Value as DataGridViewRow;
  355. DataRowView dataRow = row.DataBoundItem as DataRowView;
  356. DrCode = dataRow["Code"].ToString().Trim(); //HIS工号
  357. DrName = dataRow["descripts"].ToString().Trim(); //姓名
  358. DrInsuCode = dataRow["insuUserCode"].ToString().Trim(); //医保医师代码
  359. DrCertNo = dataRow["credNo"].ToString().Trim(); //身份证号
  360. cbx_DocInfo.Text = DrName;
  361. }
  362. }
  363. }