STA.cs 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows.Forms;
  8. using Newtonsoft.Json.Linq;
  9. using PTMedicalInsurance.CardReaders;
  10. using PTMedicalInsurance.Common;
  11. using PTMedicalInsurance.Entity;
  12. using PTMedicalInsurance.Forms;
  13. using PTMedicalInsurance.Helper;
  14. using PTMedicalInsurance.Variables;
  15. namespace PTMedicalInsurance.Business
  16. {
  17. class STA
  18. {
  19. //设置业务实例
  20. CenterBusiness cBus = new CenterBusiness();
  21. HisMainBusiness hBus = new HisMainBusiness();
  22. HisIrisServices hIS = new HisIrisServices();
  23. MIIrisServices mIS = new MIIrisServices();
  24. InvokeHelper invoker = new InvokeHelper();
  25. private XmlHelper xmler = new XmlHelper();
  26. public delegate void callBack(string errMsg);
  27. [STAThread]
  28. public void ReadCard(object o)
  29. {
  30. string outParam = "", funNo = "";
  31. ChooseCard cc = new ChooseCard();
  32. try
  33. {
  34. #region【弹框展示医保/工伤】
  35. //如果是自助机 这段代码展示用码业务类型需要屏蔽掉
  36. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  37. if (cc.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  38. {
  39. Global.pat.card.ecBizType = cc.businessType;
  40. }
  41. else
  42. {
  43. ((object[])o)[0] = -1;
  44. ((object[])o)[1] = "收款员取消结算!";
  45. }
  46. #endregion
  47. Global.pat.card.ecBizType = "01101";
  48. //02电子凭证 03社保卡 05人脸识别
  49. if (Global.ssmp.cardType == "03")
  50. {
  51. if (Global.pat.businessType == "GetPatientInfo")
  52. funNo = "1402"; //1402交易(参数不变)即可不需要输入密码进行刷卡和扫码操作
  53. else
  54. funNo = "1401";
  55. }
  56. else
  57. if ((Global.ssmp.cardType == "02") && (Global.pat.businessType == "GetPatientInfo"))
  58. funNo = "1403";
  59. else
  60. funNo = "1401";
  61. InvokeComCenter carder = new InvokeComCenter();
  62. JObject joInput = new JObject();
  63. joInput.Add("akb020", "H65010401167");
  64. joInput.Add("psnNo", "111111");
  65. string input = joInput.ToString();
  66. //原来用 1401,改1403只弹出电子凭证
  67. if (carder.Business(funNo, ref input, ref outParam) != 0)
  68. {
  69. ((object[])o)[0] = -1;
  70. ((object[])o)[1] = outParam;
  71. }
  72. else
  73. {
  74. //新疆读卡返回格式与异地不同,先按照本地的格式取参保地,如果取不到表示参保人是异地的
  75. string rtnCode = JsonHelper.getDestValue(JObject.Parse(outParam), "code");
  76. string insuplcAdmdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "data.insuplcAdmdvs");
  77. if (insuplcAdmdvs != "") //本地-返回结果=1表示成功
  78. {
  79. if (rtnCode != "1")
  80. {
  81. ((object[])o)[0] = -1;
  82. ((object[])o)[1] = outParam;
  83. return;
  84. }
  85. }
  86. else
  87. {
  88. if (rtnCode != "0") //异地-返回结果=0表示成功
  89. {
  90. ((object[])o)[0] = -1;
  91. ((object[])o)[1] = outParam;
  92. return;
  93. }
  94. }
  95. Resp1101 info = JsonHelper.getOutput<Resp1101>(JObject.Parse(outParam));
  96. Global.pat.card.NO = info.data.cardNo;
  97. Global.pat.card.SN = info.data.cardSn;
  98. Global.pat.mdtrtcertType = info.data.mdtrtCertType;
  99. Global.pat.mdtrtcertNO = info.data.mdtrtCertNo;
  100. Global.pat.certNO = info.data.certNo;
  101. Global.pat.certType = info.data.psnCertType;
  102. Global.pat.name = info.data.psnName;
  103. Global.pat.insuplc_admdvs = info.data.insuplcAdmdvs;
  104. //异地参保人员扫码---如果上面没有取到参保地说明 参保人员扫码返回值的格式不是新疆本地
  105. if ((string.IsNullOrEmpty(info.data.insuplcAdmdvs)) && (Global.ssmp.cardType == "02"))
  106. {
  107. Global.pat.insuplc_admdvs = info.data.insuOrg;
  108. Global.pat.mdtrtcertType = info.data.idType;
  109. Global.pat.mdtrtcertNO = info.data.ecToken;
  110. Global.pat.name = info.data.userName;
  111. Global.pat.certNO = info.data.idNo;
  112. Global.pat.certType = info.data.idType;
  113. }
  114. ((object[])o)[0] = 0;
  115. ((object[])o)[1] = outParam;
  116. }
  117. }
  118. catch (Exception ex)
  119. {
  120. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  121. ((object[])o)[0] = -1;
  122. ((object[])o)[1] = outParam;
  123. }
  124. }
  125. [STAThread]
  126. public void ReadCardNew(object o)
  127. {
  128. string outParam = "", funNo = "";
  129. ChooseCardNew cc = new ChooseCardNew();
  130. try
  131. {
  132. #region【弹框展示医保/工伤】
  133. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  134. if (cc.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  135. {
  136. ((object[])o)[0] = 0;
  137. }
  138. else
  139. {
  140. ((object[])o)[0] = -1;
  141. ((object[])o)[1] = "收款员取消结算!";
  142. return;
  143. }
  144. #endregion
  145. }
  146. catch (Exception ex)
  147. {
  148. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  149. ((object[])o)[0] = -1;
  150. ((object[])o)[1] = outParam;
  151. }
  152. }
  153. public void ReadCard_IdentifyFace(object o)
  154. {
  155. string outParam = "", funNo = "";
  156. ChooseCard cc = new ChooseCard();
  157. CardReader CardRead = new CardReader();
  158. try
  159. {
  160. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  161. //if (cc.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  162. //{
  163. // Global.pat.card.ecBizType = cc.businessType;
  164. //}
  165. //else
  166. //{
  167. // ((object[])o)[0] = -1;
  168. // ((object[])o)[1] = "收款员取消结算!";
  169. //}
  170. //人脸识别
  171. if (Global.ssmp.cardType == "05")
  172. {
  173. Global.inf.ecURL = "";
  174. Global.pat.card.ecBizType = "01101";
  175. Global.pat.mdtrtcertType = "01";
  176. Global.pat.certType = "01";
  177. Global.inf.hospitalNO = "H65010401167";
  178. Random rd = new Random();
  179. int iNum = rd.Next();
  180. string sLSH = DateTime.Now.ToString("yyyyMMddHHmmss") + Global.inf.hospitalNO + iNum.ToString().Substring(0, 5);
  181. JObject joCardInfo = new JObject();
  182. joCardInfo.Add("operatorId", Global.user.ID);
  183. joCardInfo.Add("operatorName", Global.user.name);
  184. joCardInfo.Add("officeId", Global.user.officeID);
  185. joCardInfo.Add("officeName", Global.user.officeName);
  186. joCardInfo.Add("orgId", Global.inf.hospitalNO);
  187. joCardInfo.Add("businessType", Global.pat.card.ecBizType);
  188. //1.调用人脸识别认证 cn.nhsa.ec.auth
  189. joCardInfo.Add("outBizNo", sLSH);
  190. joCardInfo.Add("extData", "");
  191. JObject JoEcAuth = new JObject();
  192. JoEcAuth.Add("orgId", Global.inf.hospitalNO);
  193. JoEcAuth.Add("transType", "cn.nhsa.ec.auth");
  194. JoEcAuth.Add("data", joCardInfo);
  195. JoEcAuth.Add("extra", "");
  196. //调用刷脸认证接口cn.nhsa.ec.auth返回授权信息authNo
  197. //CardRead.NationEcTrans(Global.inf.ecURL, JoEcAuth.ToString(), out outParam);
  198. if (JsonHelper.getDestValue(JObject.Parse(outParam), "code") != "0")
  199. {
  200. ((object[])o)[0] = -1;
  201. ((object[])o)[1] = outParam;
  202. }
  203. else
  204. {
  205. //成功返回授权信息
  206. string auth = JsonHelper.getDestValue(JObject.Parse(outParam), "data.authNo");
  207. JObject JoAuthCheckInput = new JObject();
  208. JoAuthCheckInput.Add("orgId", Global.inf.hospitalNO);
  209. JoAuthCheckInput.Add("outBizNo", DateTime.Now.ToString("yyyyMMddHHmmss") + Global.inf.hospitalNO + iNum.ToString().Substring(0, 5));
  210. JoAuthCheckInput.Add("authNo", auth);
  211. JoAuthCheckInput.Add("businessType", Global.pat.card.ecBizType);
  212. JoAuthCheckInput.Add("operatorId", Global.user.ID);
  213. JoAuthCheckInput.Add("operatorName", Global.user.name);
  214. JoAuthCheckInput.Add("officeId", Global.user.officeID);
  215. JoAuthCheckInput.Add("officeName", Global.user.officeName);
  216. JoAuthCheckInput.Add("extData", "");
  217. JObject JoAuthChck = new JObject();
  218. JoAuthChck.Add("orgId", Global.inf.hospitalNO);
  219. JoAuthChck.Add("transType", "cn.nhsa.auth.check");
  220. JoAuthChck.Add("data", JoAuthCheckInput);
  221. JoAuthChck.Add("extra", "");
  222. //2.调用刷脸认证接口cn.nhsa.ec.auth返回授权信息authNo
  223. //CardRead.NationEcTrans(Global.inf.ecURL, JoAuthChck.ToString(), out outParam);
  224. if (JsonHelper.getDestValue(JObject.Parse(outParam), "code") != "0")
  225. {
  226. ((object[])o)[0] = -1;
  227. ((object[])o)[1] = outParam;
  228. }
  229. else
  230. {
  231. Global.pat.ecToken = JsonHelper.getDestValue(JObject.Parse(outParam), "data.ecToken");
  232. Global.pat.name = JsonHelper.getDestValue(JObject.Parse(outParam), "data.userName");
  233. Global.pat.IDType = JsonHelper.getDestValue(JObject.Parse(outParam), "data.idType");
  234. Global.pat.IDNO = JsonHelper.getDestValue(JObject.Parse(outParam), "data.idNo");
  235. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "data.insuOrg");
  236. Global.pat.mdtrtcertNO = Global.pat.ecToken;
  237. Global.pat.certType = Global.pat.IDType;
  238. Global.pat.certNO = Global.pat.IDNO;
  239. ((object[])o)[0] = 0;
  240. ((object[])o)[1] = outParam;
  241. }
  242. }
  243. }
  244. else
  245. {
  246. if (Global.ssmp.cardType == "02") //02电子凭证 03社保卡 05人脸识别
  247. {
  248. Global.pat.card.ecBizType = "01101";
  249. funNo = "1403";
  250. }
  251. else if (Global.ssmp.cardType == "03")
  252. {
  253. Global.pat.card.ecBizType = "";
  254. funNo = "1402"; //1402交易(参数不变)即可不需要输入密码进行刷卡和扫码操作
  255. }
  256. else
  257. {
  258. Global.pat.card.ecBizType = "";
  259. funNo = "1401";
  260. }
  261. InvokeComCenter carder = new InvokeComCenter();
  262. JObject joInput = new JObject();
  263. joInput.Add("akb020", "H65010401167");
  264. joInput.Add("psnNo", "111111");
  265. string input = joInput.ToString();
  266. //原来用 1401,改1403只弹出电子凭证
  267. if (carder.Business(funNo, ref input, ref outParam) != 0)
  268. {
  269. ((object[])o)[0] = -1;
  270. ((object[])o)[1] = outParam;
  271. }
  272. else
  273. {
  274. Resp1101 info = JsonHelper.getOutput<Resp1101>(JObject.Parse(outParam));
  275. Global.pat.card.NO = info.data.cardNo;
  276. Global.pat.card.SN = info.data.cardSn;
  277. Global.pat.mdtrtcertType = info.data.mdtrtCertType;
  278. Global.pat.mdtrtcertNO = info.data.mdtrtCertNo;
  279. Global.pat.certNO = info.data.certNo;
  280. Global.pat.certType = info.data.psnCertType;
  281. Global.pat.name = info.data.psnName;
  282. Global.pat.insuplc_admdvs = info.data.insuplcAdmdvs;
  283. ((object[])o)[0] = 0;
  284. ((object[])o)[1] = outParam;
  285. }
  286. }
  287. }
  288. catch (Exception ex)
  289. {
  290. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  291. ((object[])o)[0] = -1;
  292. ((object[])o)[1] = outParam;
  293. }
  294. }
  295. /// <summary>
  296. /// 读卡-备份最老版
  297. /// </summary>
  298. /// <param name="o"></param>
  299. public void ReadCard_old(object o)
  300. {
  301. string outParam = "";
  302. ChooseCard cc = new ChooseCard();
  303. CardReader CardRead = new CardReader();
  304. try
  305. {
  306. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  307. if (cc.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  308. {
  309. Global.pat.card.ecBizType = cc.businessType;
  310. }
  311. else
  312. {
  313. ((object[])o)[0] = -1;
  314. ((object[])o)[1] = "收款员取消结算!";
  315. }
  316. InvokeComCenter carder = new InvokeComCenter();
  317. JObject joInput = new JObject();
  318. joInput.Add("akb020", "H65010401167");
  319. joInput.Add("psnNo", "111111");
  320. string input = joInput.ToString();
  321. //原来用 1401,改1403只弹出电子凭证
  322. if (carder.Business("1401", ref input, ref outParam) != 0)
  323. {
  324. ((object[])o)[0] = -1;
  325. ((object[])o)[1] = outParam;
  326. }
  327. else
  328. {
  329. Resp1101 info = JsonHelper.getOutput<Resp1101>(JObject.Parse(outParam));
  330. Global.pat.card.NO = info.data.cardNo;
  331. Global.pat.card.SN = info.data.cardSn;
  332. Global.pat.mdtrtcertType = info.data.mdtrtCertType;
  333. Global.pat.mdtrtcertNO = info.data.mdtrtCertNo;
  334. Global.pat.certNO = info.data.certNo;
  335. Global.pat.certType = info.data.psnCertType;
  336. Global.pat.name = info.data.psnName;
  337. Global.pat.insuplc_admdvs = info.data.insuplcAdmdvs;
  338. ((object[])o)[0] = 0;
  339. ((object[])o)[1] = outParam;
  340. }
  341. }
  342. catch (Exception ex)
  343. {
  344. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  345. ((object[])o)[0] = -1;
  346. ((object[])o)[1] = outParam;
  347. }
  348. }
  349. public void CallBack(string errMsg)
  350. {
  351. MessageBox.Show(errMsg);
  352. }
  353. [STAThread]
  354. public void showPatInfo(object o)
  355. {
  356. string outParam = "";
  357. JObject joOutparam = JObject.Parse(((object[])o)[1].ToString());
  358. JObject joOutput = JObject.Parse(JsonHelper.getDestValue(joOutparam, "output"));
  359. //编码转换
  360. JArray jaConvertCode = new JArray();
  361. JObject joConvertCodeParam = new JObject();
  362. joConvertCodeParam.Add("hospitalDr", Global.inf.hospitalDr);
  363. joConvertCodeParam.Add("interfaceDr", Global.inf.interfaceDr);
  364. joConvertCodeParam.Add("output", joOutput);
  365. jaConvertCode.Add(joConvertCodeParam);
  366. JObject joConvertCode = new JObject();
  367. joConvertCode.Add("code", "09010054");
  368. joConvertCode.Add("params", jaConvertCode);
  369. InvokeHelper invoker = new InvokeHelper();
  370. JObject joConvertCodeRtn = invoker.invokeInsuService(joConvertCode.ToString(), "患者信息编码转换");
  371. PatientInsuInfo frmPatientInfo = new PatientInsuInfo(joConvertCodeRtn);
  372. try
  373. {
  374. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  375. frmPatientInfo.StartPosition = FormStartPosition.CenterScreen;
  376. frmPatientInfo.BringToFront();
  377. if (frmPatientInfo.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  378. {
  379. //原来用的是转换后的
  380. //frmPatientInfo.joSelectedInsuInfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  381. //frmPatientInfo.joSelectedInsuInfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  382. //joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedInsuInfo", frmPatientInfo.joSelectedInsuInfo));
  383. //现在用转换之前的
  384. JArray jaInsuInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "insuinfo"));
  385. JArray jaIdInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "idetinfo"));
  386. JObject joSelectedInsuInfo = (JObject)jaInsuInfo[frmPatientInfo.insuInfoIndex];
  387. JObject joSelectedIdInfo;
  388. if (jaIdInfo.Count != 0)
  389. {
  390. joSelectedIdInfo = (JObject)jaIdInfo[frmPatientInfo.idInfoIndex];
  391. }
  392. else
  393. {
  394. joSelectedIdInfo = new JObject();
  395. }
  396. joSelectedInsuInfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  397. joSelectedInsuInfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  398. if (joOutparam["selectedInsuInfo"] != null)
  399. {
  400. joOutparam["selectedInsuInfo"] = joSelectedInsuInfo;
  401. }
  402. else
  403. {
  404. joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedInsuInfo", joSelectedInsuInfo));
  405. }
  406. if (joOutparam["selectedIdInfo"] != null)
  407. {
  408. joOutparam["selectedIdInfo"] = joSelectedInsuInfo;
  409. }
  410. else
  411. {
  412. joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedIdInfo", joSelectedInsuInfo));
  413. }
  414. outParam = joOutparam.ToString();
  415. ((object[])o)[0] = 0;
  416. ((object[])o)[2] = outParam;
  417. }
  418. else
  419. {
  420. ((object[])o)[0] = -1;
  421. ((object[])o)[2] = "收款员取消结算!";
  422. }
  423. }
  424. catch (Exception ex)
  425. {
  426. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  427. ((object[])o)[0] = -1;
  428. ((object[])o)[2] = outParam;
  429. }
  430. }
  431. [STAThread]
  432. public void showOutPatRegisterForm(object o)
  433. {
  434. string outParam = "";
  435. //调用服务获取门诊诊断信息
  436. string diagnoses;
  437. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  438. {
  439. ((object[])o)[0] = -1;
  440. ((object[])o)[1] = JsonHelper.setExceptionJson(-1, "getPatDiagnoses", diagnoses).ToString();
  441. return ;
  442. }
  443. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  444. JObject joReg = new JObject();
  445. try
  446. {
  447. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  448. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  449. //登记面板实例
  450. OutpatientRegistration frmReg = new OutpatientRegistration();
  451. //frmReg.dblkcbxSettelmentWay.Enabled = false;
  452. //险种类型
  453. DataTable dtInsuType = (DataTable)frmReg.dblkcbxInsuranceType.DataSource;
  454. for (int i = 0; i < dtInsuType.Rows.Count; i++)
  455. {
  456. if (dtInsuType.Rows[i]["Code"].ToString() == Global.pat.insuType)
  457. {
  458. frmReg.dblkcbxInsuranceType.Text = dtInsuType.Rows[i]["Name"].ToString();
  459. frmReg.insuType = dtInsuType.Rows[i]["Code"].ToString();
  460. if (Global.pat.isWorkInjury)
  461. {
  462. frmReg.dblkcbxInsuranceType.Text = "工伤保险";
  463. }
  464. }
  465. }
  466. //医疗类别
  467. DataTable dtMedType = (DataTable)frmReg.dblkcbxMedicalType.DataSource;
  468. for (int i = 0; i < dtMedType.Rows.Count; i++)
  469. {
  470. if (dtMedType.Rows[i]["Code"].ToString() == "11")
  471. {
  472. frmReg.dblkcbxMedicalType.Text = dtMedType.Rows[i]["Name"].ToString();
  473. frmReg.med_type = dtMedType.Rows[i]["Code"].ToString();
  474. }
  475. }
  476. //结算方式
  477. DataTable dtSettlWay = (DataTable)frmReg.dblkcbxSettelmentWay.DataSource;
  478. for (int i = 0; i < dtSettlWay.Rows.Count; i++)
  479. {
  480. if (dtSettlWay.Rows[i]["Code"].ToString() == "01")
  481. {
  482. frmReg.dblkcbxSettelmentWay.Text = dtSettlWay.Rows[i]["Name"].ToString();
  483. frmReg.psn_setlway = dtSettlWay.Rows[i]["Code"].ToString();
  484. }
  485. }
  486. //转换下主要诊断
  487. for (int i = 0; i < jaDiagnoses.Count; i++)
  488. {
  489. string diag_type = JsonHelper.getDestValue((JObject)jaDiagnoses[i], "diag_type");
  490. switch (diag_type)
  491. {
  492. case "1":
  493. {
  494. jaDiagnoses[i]["diag_type_name"] = new JObject();
  495. jaDiagnoses[i]["diag_type_name"] = "西医主要诊断";
  496. break;
  497. }
  498. case "2":
  499. {
  500. jaDiagnoses[i]["diag_type_name"] = new JObject();
  501. jaDiagnoses[i]["diag_type_name"] = "西医其他诊断";
  502. break;
  503. }
  504. case "3":
  505. {
  506. jaDiagnoses[i]["diag_type_name"] = new JObject();
  507. jaDiagnoses[i]["diag_type_name"] = "中医主病诊断";
  508. break;
  509. }
  510. case "4":
  511. {
  512. jaDiagnoses[i]["diag_type_name"] = new JObject();
  513. jaDiagnoses[i]["diag_type_name"] = "中医主证诊断";
  514. break;
  515. }
  516. }
  517. }
  518. frmReg.DtDiagnose = (DataTable)jaDiagnoses.ToObject(typeof(DataTable));
  519. //展示登记面板
  520. if (frmReg.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  521. {
  522. string diseCodg = frmReg.diseCodg, diseName = frmReg.diseName;
  523. Global.pat.disCode = diseCodg;
  524. Global.pat.disName = diseName;
  525. ////哈尔滨要求必须传病种。普通疾病传主诊断
  526. //if (string.IsNullOrEmpty(diseCodg))
  527. //{
  528. // diseCodg = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_code");
  529. //};
  530. //Global.pat.disCode = diseCodg;
  531. //if (string.IsNullOrEmpty(diseName))
  532. //{
  533. // diseName = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_name");
  534. //};
  535. //组织挂号入参
  536. JObject joRegInpar = new JObject();
  537. string occurTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  538. joRegInpar.Add("psn_no", Global.pat.psn_no);
  539. joRegInpar.Add("insutype", frmReg.insuType);
  540. joRegInpar.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime"));//挂号时间 occurTime
  541. joRegInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  542. joRegInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  543. string admDr = Utils.convertAdmDr(Global.pat.adm_Dr.ToString());
  544. joRegInpar.Add("ipt_otp_no", admDr);
  545. joRegInpar.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no"));
  546. joRegInpar.Add("dr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name"));
  547. joRegInpar.Add("dept_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg"));
  548. joRegInpar.Add("dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name"));
  549. joRegInpar.Add("exp_content", "");
  550. joRegInpar.Add("caty", "72");
  551. joReg.Add("data", joRegInpar);
  552. //组织就诊信息入参
  553. JObject joMdtrtinfo = new JObject();
  554. for (int i = 0; i < jaDiagnoses.Count; i++)
  555. {
  556. jaDiagnoses[i]["vali_flag"] = new JObject();
  557. jaDiagnoses[i]["vali_flag"] = "1";
  558. }
  559. joMdtrtinfo.Add("mdtrt_id", Global.pat.mdtrtID);
  560. joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  561. Global.pat.medType = frmReg.med_type;
  562. joMdtrtinfo.Add("med_type", frmReg.med_type); //医疗类别
  563. joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间
  564. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  565. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  566. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  567. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  568. //joMdtrtinfo.Add("birctrl_matn_date", ""); //计划生育手术或生育日期 JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_matn_date") 20230228医保中心校验传正确时间或空
  569. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  570. //joMdtrtinfo.Add("geso_val", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.geso_val")); //孕周数
  571. joMdtrtinfo.Add("exp_content", ""); //字段扩展
  572. //组织结算入参
  573. JObject joSetlInpar = new JObject();
  574. joSetlInpar.Add("psn_no", Global.pat.psn_no);
  575. joSetlInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  576. joSetlInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  577. joSetlInpar.Add("med_type", Global.pat.medType);
  578. joSetlInpar.Add("medfee_sumamt", "");
  579. joSetlInpar.Add("psn_setlway", frmReg.psn_setlway); //结算方式
  580. joSetlInpar.Add("mdtrt_id", Global.pat.mdtrtID);
  581. joSetlInpar.Add("chrg_bchno", Global.pat.adm_Dr.ToString());
  582. joSetlInpar.Add("acct_used_flag", frmReg.personAccountUsedFlag);//个人账户使用标志
  583. joSetlInpar.Add("insutype", frmReg.insuType);//险种类型
  584. joSetlInpar.Add("pub_hosp_rfom_flag", "");
  585. joSetlInpar.Add("exp_content11", "");
  586. if (Global.pat.isWorkInjury)
  587. {
  588. joSetlInpar.Add("SpecialType", "GGS");//险种类型
  589. }
  590. joSetlInpar.Add("minpacunt_drug_trac_cnt", Global.Set.minpacunt_drug_trac_cnt); //本次结算应上传最小包装追溯码数量
  591. joSetlInpar.Add("mcs_trac_cnt", Global.Set.mcs_trac_cnt); //本次结算应上传耗材追溯码数量
  592. joReg.Add("mdtrtinfo", joMdtrtinfo);
  593. joReg.Add("diseinfo", jaDiagnoses);
  594. joReg.Add("settlement", joSetlInpar);
  595. ((object[])o)[0] =0;
  596. ((object[])o)[1] = joReg.ToString();
  597. return;
  598. }
  599. else
  600. {
  601. ((object[])o)[0] = -1;
  602. ((object[])o)[1] = "收费员取消操作!";
  603. return;
  604. }
  605. }
  606. catch (Exception ex)
  607. {
  608. ((object[])o)[0] = -1;
  609. ((object[])o)[1] = "登记界面显示异常:" + ex.Message;
  610. return;
  611. }
  612. }
  613. [STAThread]
  614. public void showInPatRegisterForm(object o)
  615. {
  616. //调用服务获取门诊诊断信息
  617. string diagnoses;
  618. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  619. {
  620. ((object[])o)[0] = -1;
  621. ((object[])o)[1] = JsonHelper.setExceptionJson(-1, "getPatDiagnoses", diagnoses).ToString();
  622. return;
  623. }
  624. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  625. JObject joReg = new JObject();
  626. try
  627. {
  628. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  629. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  630. string dscg_maindiag_code = "", dscg_maindiag_name = "";
  631. // 对诊断数组进行转换 转换下主要诊断
  632. JArray jaConvertedDiagnoses = new JArray();
  633. JArray jaInPatDiagnoses = new JArray();
  634. JArray jaOutPatDiagnoses = new JArray();
  635. for (int i = 0; i < jaDiagnoses.Count; i++)
  636. {
  637. string diag_type = JsonHelper.getDestValue((JObject)jaDiagnoses[i], "diag_type");
  638. switch (diag_type)
  639. {
  640. case "1":
  641. {
  642. jaDiagnoses[i]["diag_type_name"] = new JObject();
  643. jaDiagnoses[i]["diag_type_name"] = "西医主要诊断";
  644. break;
  645. }
  646. case "2":
  647. {
  648. jaDiagnoses[i]["diag_type_name"] = new JObject();
  649. jaDiagnoses[i]["diag_type_name"] = "西医其他诊断";
  650. break;
  651. }
  652. case "3":
  653. {
  654. jaDiagnoses[i]["diag_type_name"] = new JObject();
  655. jaDiagnoses[i]["diag_type_name"] = "中医主病诊断";
  656. break;
  657. }
  658. case "4":
  659. {
  660. jaDiagnoses[i]["diag_type_name"] = new JObject();
  661. jaDiagnoses[i]["diag_type_name"] = "中医主证诊断";
  662. break;
  663. }
  664. }
  665. if (jaDiagnoses[i]["diaTypeCode"].ToString() == "ADD") //ADD 入院 OPD 门诊
  666. {
  667. jaInPatDiagnoses.Add(jaDiagnoses[i]);
  668. }
  669. if (jaDiagnoses[i]["diaTypeCode"].ToString() == "OPD") //ADD 入院 OPD 门诊
  670. {
  671. jaOutPatDiagnoses.Add(jaDiagnoses[i]);
  672. }
  673. }
  674. if (jaInPatDiagnoses.Count > 0)
  675. {
  676. jaConvertedDiagnoses = (JArray)jaInPatDiagnoses.DeepClone();
  677. }
  678. else
  679. {
  680. jaConvertedDiagnoses = (JArray)jaOutPatDiagnoses.DeepClone();
  681. }
  682. for (int i = 0; i < jaConvertedDiagnoses.Count; i++)
  683. {
  684. jaConvertedDiagnoses[i]["diag_srt_no"] = i + 1;
  685. if (jaConvertedDiagnoses[i]["maindiag_flag"].ToString() == "1")
  686. {
  687. dscg_maindiag_code = jaConvertedDiagnoses[i]["diag_code"].ToString();
  688. dscg_maindiag_name = jaConvertedDiagnoses[i]["diag_name"].ToString();
  689. }
  690. }
  691. //登记面板实例
  692. OutpatientRegistration frmReg = new OutpatientRegistration();
  693. frmReg.tbPassword.Visible = true;
  694. frmReg.uiLabel36.Visible = true;
  695. //frmReg.dblkcbxSettelmentWay.Enabled = false;
  696. DataTable dt = (DataTable)frmReg.dblkcbxInsuranceType.DataSource;
  697. int selectedIndex = 0;
  698. for (int i = 0; i < dt.Rows.Count; i++)
  699. {
  700. if (dt.Rows[i]["Code"].ToString() == Global.pat.insuType)
  701. {
  702. selectedIndex = i;
  703. frmReg.dblkcbxInsuranceType.Text = dt.Rows[i]["Name"].ToString();
  704. frmReg.insuType = dt.Rows[i]["Code"].ToString();
  705. }
  706. }
  707. DataTable dtMedType = (DataTable)frmReg.dblkcbxMedicalType.DataSource;
  708. for (int i = 0; i < dtMedType.Rows.Count; i++)
  709. {
  710. if (dtMedType.Rows[i]["Code"].ToString() == "21")
  711. {
  712. frmReg.dblkcbxMedicalType.Text = dtMedType.Rows[i]["Name"].ToString();
  713. frmReg.med_type = dtMedType.Rows[i]["Code"].ToString();
  714. }
  715. }
  716. frmReg.DtDiagnose = (DataTable)jaConvertedDiagnoses.ToObject(typeof(DataTable));
  717. //展示登记面板
  718. if (frmReg.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  719. {
  720. //如果日间手术,同时床位为空,则提示
  721. string bedNo = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_bed");
  722. if ((bedNo == "")&&(frmReg.med_type == "28"))
  723. {
  724. ((object[])o)[0] = -1;
  725. ((object[])o)[1] = "床位号为空!";
  726. return;
  727. }
  728. string diseCodg = "", diseName = "";
  729. diseCodg = frmReg.diseCodg;
  730. diseName = frmReg.diseName;
  731. JObject joMdtrtinfo = new JObject();
  732. joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  733. joMdtrtinfo.Add("insutype", Global.pat.insuType); //险种类型
  734. joMdtrtinfo.Add("coner_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.coner_name")); //联系人姓名
  735. joMdtrtinfo.Add("tel", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.tel")); //联系电话
  736. joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间
  737. joMdtrtinfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType); //就诊凭证类型
  738. joMdtrtinfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO); //就诊凭证编号
  739. joMdtrtinfo.Add("med_type", frmReg.med_type); //医疗类别
  740. //string ipAdmNo = Utils.convertAdmDr(JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.ipt_no"));
  741. joMdtrtinfo.Add("ipt_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.ipt_no")); //住院号
  742. joMdtrtinfo.Add("medrcdno", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.medrcdno")); //病历号
  743. joMdtrtinfo.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no")); //主治医生编码
  744. joMdtrtinfo.Add("chfpdr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name")); //主诊医师姓名
  745. //joMdtrtinfo.Add("adm_diag_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_diag_dscr")); //入院诊断描述
  746. joMdtrtinfo.Add("adm_diag_dscr", "");
  747. joMdtrtinfo.Add("adm_dept_codg", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg")); //入院科室编码
  748. joMdtrtinfo.Add("adm_dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name")); //入院科室名称
  749. joMdtrtinfo.Add("adm_bed", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_bed")); //入院床位
  750. joMdtrtinfo.Add("dscg_maindiag_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_code")); //住院主诊断代码
  751. joMdtrtinfo.Add("dscg_maindiag_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_name")); //住院主诊断名称
  752. //joMdtrtinfo.Add("dscg_maindiag_code", dscg_maindiag_code); //住院主诊断代码
  753. //joMdtrtinfo.Add("dscg_maindiag_name", dscg_maindiag_name); //住院主诊断名称
  754. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  755. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  756. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  757. joMdtrtinfo.Add("oprn_oprt_code", frmReg.oprn_oprt_code); //手术操作代码
  758. joMdtrtinfo.Add("oprn_oprt_name", frmReg.oprn_oprt_name); //手术操作名称
  759. joMdtrtinfo.Add("fpsc_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fpsc_no")); //计划生育服务证号
  760. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  761. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  762. joMdtrtinfo.Add("latechb_flag", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.latechb_flag")); //晚育标志
  763. //joMdtrtinfo.Add("geso_val", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.geso_val")); //孕周数
  764. //joMdtrtinfo.Add("fetts", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fetts")); //胎次
  765. //joMdtrtinfo.Add("fetus_cnt", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fetus_cnt")); //胎儿数
  766. //joMdtrtinfo.Add("pret_flag", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.pret_flag")); //早产标志
  767. //joMdtrtinfo.Add("birctrl_matn_date", ""); //计划生育手术或生育日期 JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_matn_date") 20230228医保中心校验传正确时间或空
  768. joMdtrtinfo.Add("dise_type_code", frmReg.dise_type_code); //病种类型
  769. joMdtrtinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs); //参保地医保区划
  770. joMdtrtinfo.Add("mdtrtarea_admvs", Global.inf.areaCode); //就医地医保区划
  771. joReg.Add("mdtrtinfo", joMdtrtinfo);
  772. joReg.Add("diseinfo", jaConvertedDiagnoses);
  773. Global.pat.disCode = diseCodg;
  774. Global.pat.disName = diseName;
  775. Global.pat.medType = frmReg.med_type;
  776. if (Global.pat.isWorkInjury)
  777. {
  778. Global.pat.ExpContent = "GGS";
  779. }
  780. ((object[])o)[0] = 0;
  781. ((object[])o)[1] = joReg.ToString();
  782. return;
  783. }
  784. else
  785. {
  786. ((object[])o)[0] = -1;
  787. ((object[])o)[1] = "收费员取消操作!";
  788. return;
  789. }
  790. }
  791. catch (Exception ex)
  792. {
  793. ((object[])o)[0] = -1;
  794. ((object[])o)[1] = "登记界面显示异常:" + ex.Message;
  795. return;
  796. }
  797. }
  798. [STAThread]
  799. public void uploadFee(object o)
  800. {
  801. string outParam = "";
  802. object[] oArr = (object[])o;
  803. try
  804. {
  805. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  806. string funNO = oArr[1].ToString();
  807. int singleCount = int.Parse(oArr[2].ToString());
  808. PTMedicalInsurance.Forms.FeeUpload pb = new PTMedicalInsurance.Forms.FeeUpload(funNO, singleCount);
  809. pb.StartPosition = FormStartPosition.CenterScreen;
  810. if (pb.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  811. {
  812. ((object[])o)[0] = 0;
  813. ((object[])o)[3] = pb.outParam;
  814. }
  815. else
  816. {
  817. outParam = "收款员取消";
  818. ((object[])o)[0] = -1;
  819. ((object[])o)[3] = outParam;
  820. }
  821. }
  822. catch (Exception ex)
  823. {
  824. outParam = "uploadFee 异常:" + ex.Message;
  825. ((object[])o)[0] = -1;
  826. ((object[])o)[3] = outParam;
  827. o = oArr;
  828. return;
  829. }
  830. }
  831. [STAThread]
  832. public void showSettlementForm(object o)
  833. {
  834. string outParam = "";
  835. JObject joSettlement = JObject.Parse(((object[])o)[1].ToString());
  836. try
  837. {
  838. IntPtr hwnd = WinApi.GetWindowsHandle("prBrowser");
  839. SettlementInfo frmSettlment = new SettlementInfo(joSettlement);
  840. //相关信息转换到结算信息面板
  841. if (frmSettlment.ShowDialog(new WindowWrapper(hwnd)) == DialogResult.OK)
  842. {
  843. ((object[])o)[0] = 0;
  844. ((object[])o)[1] = outParam;
  845. }
  846. else
  847. {
  848. outParam = "收款员取消";
  849. ((object[])o)[0] = -1;
  850. ((object[])o)[1] = outParam;
  851. }
  852. }
  853. catch (Exception ex)
  854. {
  855. outParam = "showSettlementForm 异常:" + ex.Message;
  856. ((object[])o)[0] = -1;
  857. ((object[])o)[1] = outParam;
  858. }
  859. }
  860. [STAThread]
  861. public void Exception(object o)
  862. {
  863. try
  864. {
  865. //显示异常处理界面
  866. HandleException frmEX = new HandleException();
  867. frmEX.WindowState = FormWindowState.Maximized;
  868. frmEX.ShowDialog();
  869. }
  870. catch (Exception ex)
  871. {
  872. CallBack(ex.Message);
  873. }
  874. }
  875. [STAThread]
  876. public void CheckAndClearing(object o)
  877. {
  878. try
  879. {
  880. //显示对账界面
  881. Clearing frm = new Clearing();
  882. frm.WindowState = FormWindowState.Maximized;
  883. frm.ShowDialog();
  884. }
  885. catch (Exception ex)
  886. {
  887. CallBack(ex.Message);
  888. }
  889. }
  890. [STAThread]
  891. public void PrescribeCirculation(object o)
  892. {
  893. try
  894. {
  895. //显示处方上传
  896. PrescriptionCirculation PresCir = new PrescriptionCirculation("");
  897. //PresCir.WindowState = FormWindowState.Minimized;
  898. PresCir.ShowDialog();
  899. }
  900. catch (Exception ex)
  901. {
  902. CallBack(ex.Message);
  903. }
  904. }
  905. [STAThread]
  906. public void BasicData(object o)
  907. {
  908. try
  909. {
  910. //显示异常处理界面
  911. BasicData frm = new BasicData();
  912. frm.WindowState = FormWindowState.Maximized;
  913. frm.ShowDialog();
  914. }
  915. catch (Exception ex)
  916. {
  917. CallBack(ex.Message);
  918. }
  919. }
  920. [STAThread]
  921. public void CenterQuery(object o)
  922. {
  923. try
  924. {
  925. //显示异常处理界面
  926. CenterQuery frm = new CenterQuery();
  927. frm.WindowState = FormWindowState.Maximized;
  928. frm.ShowDialog();
  929. }
  930. catch (Exception ex)
  931. {
  932. CallBack(ex.Message);
  933. }
  934. }
  935. }
  936. public class WindowWrapper : System.Windows.Forms.IWin32Window
  937. {
  938. public WindowWrapper(IntPtr handle)
  939. {
  940. _hwnd = handle;
  941. }
  942. public IntPtr Handle
  943. {
  944. get { return _hwnd; }
  945. }
  946. private IntPtr _hwnd;
  947. }
  948. }