PrescriptionCirculation.cs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  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 PTMedicalInsurance.Common;
  11. using PTMedicalInsurance.Helper;
  12. using PTMedicalInsurance.FormSetter;
  13. using PTMedicalInsurance.Business;
  14. using PTMedicalInsurance.Variables;
  15. using Newtonsoft.Json.Linq;
  16. using Newtonsoft.Json;
  17. using System.Xml;
  18. namespace PTMedicalInsurance.Forms
  19. {
  20. public partial class PrescriptionCirculation : Form
  21. {
  22. //1.声明自适应类实例
  23. AutoResizeForm asc = new AutoResizeForm();
  24. HisIrisServices hIS = new HisIrisServices();
  25. InvokeHelper invoker = new InvokeHelper();
  26. AnalysisXML AnXML = new AnalysisXML();
  27. ReadCardClass rcl = new ReadCardClass();
  28. FileHandle comp = new FileHandle();
  29. public string patInfo = "", ReadCardOutParam = "", CertNo = "";
  30. public string presAdmLoc = "", presAdmDoc = "", presAdmID = "", presNo = "", hiRxno = "";
  31. public string DrCode = "", DrName = "", DrInsuCode = "", DrCertNo = "";
  32. public string HospRxno = "";
  33. private void btnClose_Click(object sender, EventArgs e)
  34. {
  35. this.Close();
  36. }
  37. private void dgv_HISRegInfo_CellClick(object sender, DataGridViewCellEventArgs e)
  38. {
  39. if (dgv_HISRegInfo.DataSource == null)
  40. return;
  41. if (dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["ID"].Value.ToString() == "")
  42. return;
  43. string outParam = "";
  44. DataTable dt = null;
  45. presAdmDoc = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["doc"].Value.ToString();
  46. presAdmLoc = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["loc"].Value.ToString();
  47. presNo = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["prescNo"].Value.ToString();
  48. presAdmID = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["admID"].Value.ToString();
  49. Global.pat.adm_Dr = int.Parse(presAdmID);
  50. if (presNo == "") return;
  51. //获取HIS处方明细信息
  52. if (GetHISPrescFeeInfo(presNo, ref outParam, ref dt) != 0)
  53. {
  54. MessageBox.Show(outParam);
  55. return;
  56. }
  57. dgv_PrescriptionInfo.DataSource = dt;
  58. }
  59. private void btnPresUpload_Click(object sender, EventArgs e)
  60. {
  61. string PutExRxInfo = "", Appmsg = "", AppRtnMsg = "", OutMsg = "", OutMsg_Close = "", InsuOutMsg = "", outParam = "";
  62. Global.pat.mdtrtarea_admvs = "110105";
  63. System.Type ComType = null;
  64. dynamic ComInstance = null;
  65. if (((DataTable)dgv_HISRegInfo.DataSource == null) || ((DataTable)dgv_PrescriptionInfo.DataSource == null))
  66. {
  67. MessageBox.Show("请先查询该患者就诊处方信息!");
  68. return;
  69. }
  70. if (presNo == "")
  71. {
  72. MessageBox.Show("请选择处方就诊记录!");
  73. return;
  74. }
  75. #region【获取外配处方上传业务入参】
  76. if (GetPreVerificationInput(presAdmID, presNo, ref outParam) != 0)
  77. {
  78. MessageBox.Show("【医保外配处方流转业务】获取外配处方上传预核验业务入参失败:" + outParam);
  79. return;
  80. }
  81. PutExRxInfo = outParam;
  82. #endregion
  83. #region【外配处方上传】
  84. //1.创建首信医保Com实例
  85. if (rcl.CreateBusinessObj(out ComType, out ComInstance) != 0)
  86. {
  87. MessageBox.Show("实例创建失败");
  88. return;
  89. }
  90. else
  91. {
  92. Appmsg = "<multiclass>1</multiclass>";
  93. //2.读卡前先Open
  94. rcl.Open(ComType, ComInstance, out outParam);
  95. //3.调用获取病人信息
  96. Appmsg = JsonHelper.GetinPar(Appmsg, 0);
  97. rcl.BussniessObj("GetPersonInfo_ExRx_RQ", Appmsg, ComType, ComInstance, out AppRtnMsg);
  98. XmlDocument xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
  99. if (AnXML.CheckState(xmlDoc, out OutMsg) == false)
  100. {
  101. rcl.Close(ComType, ComInstance, out OutMsg_Close);
  102. MessageBox.Show("获取参保信息GetPersonInfo_ExRx_RQ失败,中心返回错误信息:" + OutMsg + "\r\n"
  103. + "调用【Close】关闭读卡设备输出:" + OutMsg_Close);
  104. return;
  105. }
  106. else
  107. {
  108. MessageBox.Show(AppRtnMsg);
  109. //4.调用提交外配处方信息
  110. rcl.BussniessObj("PutExRxInfo", PutExRxInfo, ComType, ComInstance, out AppRtnMsg);
  111. xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
  112. if (AnXML.CheckState(xmlDoc, out OutMsg) == false)
  113. {
  114. rcl.Close(ComType, ComInstance, out OutMsg_Close);
  115. MessageBox.Show("提交外配处方信息PutExRxInfo失败,中心返回错误信息:" + OutMsg + "\r\n"
  116. + "调用【Close】关闭读卡设备输出:" + OutMsg_Close);
  117. return;
  118. }
  119. else
  120. {
  121. xmlDoc = null;
  122. rcl.Close(ComType, ComInstance, out OutMsg_Close);
  123. MessageBox.Show("提交外配处方信息成功:" + AppRtnMsg);
  124. return;
  125. }
  126. }
  127. }
  128. #endregion
  129. }
  130. /// <summary>
  131. /// 获取电子处方预核验入参
  132. /// </summary>
  133. /// <param name="AdmID"></param>
  134. /// <param name="prescNo"></param>
  135. /// <param name="outParam"></param>
  136. /// <returns></returns>
  137. private int GetPreVerificationInput(string AdmID, string prescNo, ref string outParam)
  138. {
  139. dynamic joTmp = new JObject();
  140. joTmp.Add("prescNo", prescNo);
  141. joTmp.Add("admID", AdmID);
  142. JObject joRtnPreVerificationData = hIS.GetPreVerificationData(joTmp);
  143. if (JsonHelper.parseIrisRtnValue(joRtnPreVerificationData, out outParam) != 0)
  144. {
  145. outParam = "获取外配处方上传入参失败,请联系管理员!" + outParam;
  146. return -1;
  147. }
  148. else
  149. {
  150. if (joRtnPreVerificationData["result"]["rxdiagnosisinfo"].ToString() == "[]")
  151. {
  152. outParam = "获取外配处方上传入参结果为空!";
  153. return -1;
  154. }
  155. else
  156. {
  157. //封装XML入参
  158. outParam = GetPreVerificationInputXML(joRtnPreVerificationData);
  159. return 0;
  160. }
  161. }
  162. }
  163. private string GetPreVerificationInputXML(JObject joInput)
  164. {
  165. string sData_XML = "", sText = "", OutMsg = "";
  166. string sRxdiagnosisInfo = "", sFeeitemInfo = "";
  167. string sRxdiagnosisinfoarray = "", sFeeitemarray = "";
  168. string InsuCodeDose = "", InsuHowtouseCode = "";
  169. JArray jaRxdiagnosisinfo = JArray.Parse(JsonHelper.getDestValue(joInput, "result.rxdiagnosisinfo"));
  170. JArray jaFeeItem = JArray.Parse(JsonHelper.getDestValue(joInput, "result.feeitem"));
  171. //循环取 处方信息
  172. for (int i = 0; i < jaRxdiagnosisinfo.Count; i++)
  173. {
  174. string curetype = jaRxdiagnosisinfo[i]["curetype"].ToString();
  175. string rxno = jaRxdiagnosisinfo[i]["rxno"].ToString();
  176. string diagnoseno = jaRxdiagnosisinfo[i]["diagnoseno"].ToString();
  177. string recipedate = jaRxdiagnosisinfo[i]["recipedate"].ToString();
  178. string recipetype = jaRxdiagnosisinfo[i]["recipetype"].ToString();
  179. string diagnosename = jaRxdiagnosisinfo[i]["diagnosename"].ToString();
  180. string diagnosecode = jaRxdiagnosisinfo[i]["diagnosecode"].ToString();
  181. string sectioncode = jaRxdiagnosisinfo[i]["sectioncode"].ToString();
  182. string sectionname = jaRxdiagnosisinfo[i]["sectionname"].ToString();
  183. string drname = jaRxdiagnosisinfo[i]["drname"].ToString();
  184. string drid = jaRxdiagnosisinfo[i]["drid"].ToString();
  185. string billstype = "2"; //jaRxdiagnosisinfo[i]["billstype"].ToString(); //2-西药或中成药处方;4-中草药处方;
  186. //DateTime dt = Convert.ToDateTime(recipedate);
  187. //recipedate = dt.ToString("yyyyMMHHmmss");
  188. recipedate = recipedate.Trim().Replace(":", "").Replace("-", "").Replace(" ","");
  189. sRxdiagnosisInfo = sRxdiagnosisInfo
  190. + " <rxdiagnosisinfo> "
  191. + " <curetype>"+ curetype + "</curetype> " // 医疗类别 √
  192. + " <rxno>"+ rxno + "</rxno> " //处方序号 √
  193. + " <diagnoseno>"+ diagnoseno + "</diagnoseno> " //诊断序号 √
  194. + " <recipedate>"+ recipedate + "</recipedate> " //处方日期/时间 √
  195. + " <recipetype>"+ recipetype + "</recipetype> " //处方类别 √
  196. + " <diagnosename>"+ diagnosename + "</diagnosename> " //诊断名称
  197. + " <diagnosecode>"+ diagnosecode + "</diagnosecode> " //诊断编码
  198. + " <medicalrecord></medicalrecord> " //病历信息
  199. + " <sectioncode>10</sectioncode> " //就诊科别代码
  200. + " <sectionname>"+ sectionname + "</sectionname> " //就诊科别名称
  201. + " <hissectionname>眼科</hissectionname> " //HIS就诊科别名称
  202. + " <drid>"+ drid + "</drid> " //医师编码
  203. + " <drname>"+ drname + "</drname> " //医师姓名
  204. + " <drlevel></drlevel> " //drlevel
  205. + " <registertradeno></registertradeno> " //挂号交易流水号
  206. + " <billstype>"+ billstype + "</billstype> " //单据类型
  207. + " </rxdiagnosisinfo> ";
  208. }
  209. sRxdiagnosisinfoarray = "<rxdiagnosisinfoarray>"+ sRxdiagnosisInfo + "</rxdiagnosisinfoarray>";
  210. //循环取 费用明细信息
  211. for (int i = 0; i < jaFeeItem.Count; i++)
  212. {
  213. string rxitemno = jaFeeItem[i]["rxitemno"].ToString();
  214. string rxno = jaFeeItem[i]["rxno"].ToString();
  215. string itemcode = jaFeeItem[i]["itemcode"].ToString();
  216. string hisname = jaFeeItem[i]["hisname"].ToString();
  217. string itemtype = jaFeeItem[i]["itemtype"].ToString();
  218. string dose = jaFeeItem[i]["dose"].ToString();
  219. string howtouse = jaFeeItem[i]["howtouse"].ToString();
  220. string dosage = jaFeeItem[i]["dosage"].ToString();
  221. string days = jaFeeItem[i]["days"].ToString();
  222. string fee = jaFeeItem[i]["fee"].ToString();
  223. string count = jaFeeItem[i]["count"].ToString();
  224. string unitPrice = jaFeeItem[i]["unitPrice"].ToString();
  225. rxitemno = rxitemno.Trim().Replace("||", "-");
  226. //查找剂型医保对照关系
  227. if (hIS.GetRelationShipDir(70, "", dose, out OutMsg) == 0)
  228. {
  229. JArray jaRtnDose = (JArray)JObject.Parse(OutMsg)["result"]["data"];
  230. InsuCodeDose = jaRtnDose[0]["InsuCode"].ToString();
  231. }
  232. //查找用法(用药频次)医保对照关系
  233. if (hIS.GetRelationShipDir(229, "", howtouse, out OutMsg) == 0)
  234. {
  235. JArray jaRtnHowtouse = (JArray)JObject.Parse(OutMsg)["result"]["data"];
  236. InsuHowtouseCode = jaRtnHowtouse[0]["InsuCode"].ToString();
  237. }
  238. sFeeitemInfo = sFeeitemInfo
  239. + " <feeitem "
  240. + " rxitemno= " + comp.quotedStr(rxitemno) //外配处方明细序号 √
  241. + " rxno= " + comp.quotedStr(rxno) //处方序号 √
  242. + " itemcode= " + comp.quotedStr(itemcode) //HIS项目代码 √
  243. + " hisname= " + comp.quotedStr(hisname) //HIS项目名称 √
  244. + " itemtype= " + comp.quotedStr(itemtype) //项目类别 √
  245. + " unitprice= " + comp.quotedStr(unitPrice) //单价
  246. + " count= " + comp.quotedStr(count) //数量
  247. + " fee= " + comp.quotedStr(fee) //费用总金额
  248. + " dose= " + comp.quotedStr(InsuCodeDose) //剂型 √
  249. + " specification= " + comp.quotedStr("") //规格
  250. + " unit= " + comp.quotedStr("") //单位
  251. + " howtouse= " + comp.quotedStr(InsuHowtouseCode) //用法(用药频次) √
  252. + " dosage= " + comp.quotedStr(dosage) //单次用量 √
  253. + " packaging= " + comp.quotedStr("") //包装单位
  254. + " minpackage= " + comp.quotedStr("") //最小包装
  255. + " conversion= " + comp.quotedStr("") //换算率
  256. + " days= " + comp.quotedStr(days) //用药天数 √
  257. + " drugapprovalnumber= " + comp.quotedStr("") //药品批准文号
  258. + " /> ";
  259. }
  260. sFeeitemarray = "<feeitemarray>"+ sFeeitemInfo + "</feeitemarray>";
  261. sText = " <autouploadflag>0</autouploadflag> " //自动上传标识,0,不自动上传;1,自动上传
  262. + sRxdiagnosisinfoarray
  263. + sFeeitemarray;
  264. sData_XML = JsonHelper.GetinPar(sText, 0);
  265. //MessageBox.Show("sData_XML:" + sData_XML);
  266. return sData_XML;
  267. }
  268. public PrescriptionCirculation(string PatInfo)
  269. {
  270. InitializeComponent();
  271. asc.controllInitializeSize(this);
  272. asc.controlAutoSize(this);
  273. GridViewSetter grdSetter = new GridViewSetter();
  274. grdSetter.SetHeaderTextOfHISRegister(dgv_HISRegInfo);
  275. grdSetter.SetHeaderTextOfHISPrescFee(dgv_PrescriptionInfo);
  276. grdSetter.DatagridviewColumnWidthAdaptation(dgv_HISRegInfo);
  277. grdSetter.DatagridviewColumnWidthAdaptation(dgv_PrescriptionInfo);
  278. dtST.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");
  279. dtED.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
  280. if (PatInfo != "")
  281. {
  282. //查询HIS就诊信息
  283. string outParam = "";
  284. DataTable dt = null;
  285. if (GetHISRegInfo(dtST.Text, dtED.Text, PatInfo, ref outParam, ref dt) != 0)
  286. {
  287. MessageBox.Show(outParam);
  288. return;
  289. }
  290. dgv_HISRegInfo.DataSource = dt;
  291. tb_CertNo.Text = PatInfo;
  292. //查询处方明细信息
  293. if (dt.Rows.Count == 0)
  294. return;
  295. if (dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["ID"].Value.ToString() == "")
  296. return;
  297. DataTable dt2 = null;
  298. presAdmDoc = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["doc"].Value.ToString();
  299. presAdmLoc = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["loc"].Value.ToString();
  300. presNo = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["prescNo"].Value.ToString();
  301. presAdmID = dgv_HISRegInfo.Rows[dgv_HISRegInfo.CurrentRow.Index].Cells["admID"].Value.ToString();
  302. Global.pat.adm_Dr = int.Parse(presAdmID);
  303. if (presNo == "") return;
  304. //获取HIS处方明细信息
  305. if (GetHISPrescFeeInfo(presNo, ref outParam, ref dt2) != 0)
  306. {
  307. MessageBox.Show(outParam);
  308. return;
  309. }
  310. dgv_PrescriptionInfo.DataSource = dt2;
  311. }
  312. }
  313. private void Other_FormClosed(object sender, FormClosedEventArgs e)
  314. {
  315. }
  316. private void Other_Load(object sender, EventArgs e)
  317. {
  318. this.Height = 800;
  319. this.Width = 1500;
  320. this.WindowState = FormWindowState.Maximized;
  321. asc.controllInitializeSize(this);
  322. asc.controlAutoSize(this);
  323. }
  324. /// <summary>
  325. /// 获取HIS就诊信息
  326. /// </summary>
  327. /// <param name="joParam"></param>
  328. /// <param name="outParam"></param>
  329. /// <returns></returns>
  330. public JObject GetHISRegInfo(JObject joParam)
  331. {
  332. //string errMsg;
  333. try
  334. {
  335. string serviceCode = "09030048";
  336. string inpar = JsonHelper.setIrisInpar(serviceCode, joParam).ToString();
  337. JObject joRtn = invoker.invokeHISService(inpar, "获取HIS就诊信息");
  338. return joRtn;
  339. }
  340. catch (Exception ex)
  341. {
  342. return JsonHelper.setExceptionJson(-1, "获取HIS就诊信息异常:", ex.Message);
  343. }
  344. }
  345. /// <summary>
  346. /// 获取HIS就诊信息
  347. /// </summary>
  348. /// <param name="dtST"></param>
  349. /// <param name="dtED"></param>
  350. /// <param name="PatInfo"></param>
  351. /// <param name="errMsg"></param>
  352. /// <param name="DT"></param>
  353. /// <returns></returns>
  354. private int GetHISRegInfo(string dtST, string dtED, string PatInfo, ref string errMsg, ref DataTable DT)
  355. {
  356. dynamic joTmp = new JObject();
  357. joTmp.Add("stDate", dtST);
  358. joTmp.Add("endDate", dtED);
  359. joTmp.Add("patInfo", PatInfo);
  360. JObject joRtnHISRegInfo = hIS.GetHISRegInfo(joTmp);
  361. if (JsonHelper.parseIrisRtnValue(joRtnHISRegInfo, out errMsg) != 0)
  362. {
  363. errMsg = "获取HIS患者就诊信息失败,请联系管理员!" + errMsg;
  364. return -1;
  365. }
  366. else
  367. {
  368. if ((joRtnHISRegInfo["result"]["rows"].ToString() == "[]"))
  369. {
  370. errMsg = "查询HIS就诊信息结果为空!";
  371. return -1;
  372. }
  373. else
  374. {
  375. DT = (DataTable)joRtnHISRegInfo["result"]["rows"].ToObject(typeof(DataTable));
  376. return 0;
  377. }
  378. }
  379. }
  380. /// <summary>
  381. /// 获取HIS费用明细信息
  382. /// </summary>
  383. /// <param name="PrescNo"></param>
  384. /// <param name="errMsg"></param>
  385. /// <param name="DT"></param>
  386. /// <returns></returns>
  387. private int GetHISPrescFeeInfo(string PrescNo, ref string errMsg, ref DataTable DT)
  388. {
  389. dynamic joTmp = new JObject();
  390. joTmp.Add("prescNo", PrescNo);
  391. JObject joRtnHISPrescFeeInfo = hIS.GetHISPrescFeeInfo(joTmp);
  392. if (JsonHelper.parseIrisRtnValue(joRtnHISPrescFeeInfo, out errMsg) != 0)
  393. {
  394. errMsg = "获取HIS患者处方信息失败,请联系管理员!" + errMsg;
  395. return -1;
  396. }
  397. else
  398. {
  399. if ((joRtnHISPrescFeeInfo["result"]["rows"].ToString() == "[]"))
  400. {
  401. errMsg = "查询HIS处方信息结果为空!";
  402. return -1;
  403. }
  404. else
  405. {
  406. DT = (DataTable)joRtnHISPrescFeeInfo["result"]["rows"].ToObject(typeof(DataTable));
  407. return 0;
  408. }
  409. }
  410. }
  411. private void btnGetInfo_Click(object sender, EventArgs e)
  412. {
  413. if (tb_CertNo.Text == "")
  414. {
  415. MessageBox.Show("请先输入患者身份证号进行查找患者未结算处方信息!");
  416. return;
  417. }
  418. else
  419. {
  420. dgv_HISRegInfo.DataSource = null;
  421. dgv_PrescriptionInfo.DataSource = null;
  422. CertNo = tb_CertNo.Text;
  423. Global.pat.certNO = tb_CertNo.Text;
  424. }
  425. #region【查询HIS就诊信息-用身份证号查询患者当日的就诊记录】
  426. string outParam = "";
  427. DataTable dt1 = null;
  428. if (GetHISRegInfo(dtST.Text, dtED.Text, Global.pat.certNO, ref outParam, ref dt1) != 0)
  429. {
  430. MessageBox.Show(outParam);
  431. return;
  432. }
  433. dgv_HISRegInfo.DataSource = dt1;
  434. #endregion
  435. #region【调用医保平台获取医保登记信息-根据HIS就诊信息查找医保登记信息 (接诊医生、接诊科室)】
  436. /*
  437. if (GetInsuRegIDFromHIS(presAdmID, presAdmDoc, presAdmLoc, out Global.pat.mdtrtID, out outParam) != 0)
  438. {
  439. MessageBox.Show(outParam);
  440. return;
  441. }
  442. */
  443. #endregion
  444. presAdmDoc = dgv_HISRegInfo.Rows[0].Cells["doc"].Value.ToString();
  445. presAdmLoc = dgv_HISRegInfo.Rows[0].Cells["loc"].Value.ToString();
  446. presNo = dgv_HISRegInfo.Rows[0].Cells["prescNo"].Value.ToString();
  447. presAdmID = dgv_HISRegInfo.Rows[0].Cells["admID"].Value.ToString();
  448. Global.pat.adm_Dr = int.Parse(presAdmID);
  449. if (presNo == "") return;
  450. DataTable dt2 = null;
  451. //获取HIS处方明细信息
  452. if (GetHISPrescFeeInfo(presNo, ref outParam, ref dt2) != 0)
  453. {
  454. MessageBox.Show(outParam);
  455. return;
  456. }
  457. dgv_PrescriptionInfo.DataSource = dt2;
  458. }
  459. }
  460. }