STA.cs 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  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.Common;
  10. using PTMedicalInsurance.Entity;
  11. using PTMedicalInsurance.Forms;
  12. using PTMedicalInsurance.Helper;
  13. using PTMedicalInsurance.Variables;
  14. namespace PTMedicalInsurance.Business
  15. {
  16. class STA
  17. {
  18. //设置业务实例
  19. CenterBusiness cBus = new CenterBusiness();
  20. HisMainBusiness hBus = new HisMainBusiness();
  21. HisIrisServices hIS = new HisIrisServices();
  22. MIIrisServices mIS = new MIIrisServices();
  23. InvokeHelper invoker = new InvokeHelper();
  24. private XmlHelper xmler = new XmlHelper();
  25. public delegate void callBack(string errMsg);
  26. [STAThread]
  27. public void ReadCard(object o)
  28. {
  29. string outParam = "";
  30. ChooseCard cc = new ChooseCard();
  31. try
  32. {
  33. if (tools.ShowAppDiaglog(cc) == DialogResult.OK)
  34. {
  35. Global.pat.card.ecBizType = cc.businessType;
  36. }
  37. else
  38. {
  39. ((object[])o)[0] = -1;
  40. ((object[])o)[1] = "收款员取消结算!";
  41. }
  42. InvokeComCenter carder = new InvokeComCenter();
  43. JObject joInput = new JObject();
  44. joInput.Add("akb020", "H65010200152");
  45. joInput.Add("psnNo", "111111");
  46. string input = joInput.ToString();
  47. if (carder.Business("1401", ref input, ref outParam) != 0)
  48. {
  49. ((object[])o)[0] = -1;
  50. ((object[])o)[1] = outParam;
  51. }
  52. else
  53. {
  54. Resp1101 info = JsonHelper.getOutput<Resp1101>(JObject.Parse(outParam));
  55. Global.pat.card.NO = info.data.cardNo;
  56. Global.pat.card.SN = info.data.cardSn;
  57. Global.pat.mdtrtcertType = info.data.mdtrtCertType;
  58. Global.pat.mdtrtcertNO = info.data.mdtrtCertNo;
  59. Global.pat.certNO = info.data.certNo;
  60. Global.pat.certType = info.data.psnCertType;
  61. Global.pat.name = info.data.psnName;
  62. Global.pat.insuplc_admdvs = info.data.insuplcAdmdvs;
  63. ((object[])o)[0] = 0;
  64. ((object[])o)[1] = outParam;
  65. }
  66. }
  67. catch (Exception ex)
  68. {
  69. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  70. ((object[])o)[0] = -1;
  71. ((object[])o)[1] = outParam;
  72. }
  73. }
  74. public void CallBack(string errMsg)
  75. {
  76. MessageBox.Show(errMsg);
  77. }
  78. [STAThread]
  79. public void showPatInfo(object o)
  80. {
  81. string outParam = "";
  82. JObject joOutparam = JObject.Parse(((object[])o)[1].ToString());
  83. JObject joOutput = JObject.Parse(JsonHelper.getDestValue(joOutparam, "output"));
  84. //编码转换
  85. JArray jaConvertCode = new JArray();
  86. JObject joConvertCodeParam = new JObject();
  87. joConvertCodeParam.Add("hospitalDr", Global.inf.hospitalDr);
  88. joConvertCodeParam.Add("interfaceDr", Global.inf.interfaceDr);
  89. joConvertCodeParam.Add("output", joOutput);
  90. jaConvertCode.Add(joConvertCodeParam);
  91. JObject joConvertCode = new JObject();
  92. joConvertCode.Add("code", "09010054");
  93. joConvertCode.Add("params", jaConvertCode);
  94. InvokeHelper invoker = new InvokeHelper();
  95. JObject joConvertCodeRtn = invoker.invokeInsuService(joConvertCode.ToString(), "患者信息编码转换");
  96. PatientInsuInfo frmPatientInfo = new PatientInsuInfo(joConvertCodeRtn);
  97. try
  98. {
  99. frmPatientInfo.StartPosition = FormStartPosition.CenterScreen;
  100. frmPatientInfo.BringToFront();
  101. if (tools.ShowAppDiaglog(frmPatientInfo) == DialogResult.OK)
  102. {
  103. //原来用的是转换后的
  104. //frmPatientInfo.joSelectedInsuInfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  105. //frmPatientInfo.joSelectedInsuInfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  106. //joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedInsuInfo", frmPatientInfo.joSelectedInsuInfo));
  107. //现在用转换之前的
  108. JArray jaInsuInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "insuinfo"));
  109. JArray jaIdInfo = JArray.Parse(JsonHelper.getDestValue(joOutput, "idetinfo"));
  110. JObject joSelectedInsuInfo = (JObject)jaInsuInfo[frmPatientInfo.insuInfoIndex];
  111. JObject joSelectedIdInfo;
  112. if (jaIdInfo.Count != 0)
  113. {
  114. joSelectedIdInfo = (JObject)jaIdInfo[frmPatientInfo.idInfoIndex];
  115. }
  116. else
  117. {
  118. joSelectedIdInfo = new JObject();
  119. }
  120. joSelectedInsuInfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  121. joSelectedInsuInfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  122. if (joOutparam["selectedInsuInfo"] != null)
  123. {
  124. joOutparam["selectedInsuInfo"] = joSelectedInsuInfo;
  125. }
  126. else
  127. {
  128. joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedInsuInfo", joSelectedInsuInfo));
  129. }
  130. if (joOutparam["selectedIdInfo"] != null)
  131. {
  132. joOutparam["selectedIdInfo"] = joSelectedInsuInfo;
  133. }
  134. else
  135. {
  136. joOutparam.Property("output").AddBeforeSelf(new JProperty("selectedIdInfo", joSelectedInsuInfo));
  137. }
  138. outParam = joOutparam.ToString();
  139. ((object[])o)[0] = 0;
  140. ((object[])o)[2] = outParam;
  141. }
  142. else
  143. {
  144. ((object[])o)[0] = -1;
  145. ((object[])o)[2] = "收款员取消结算!";
  146. }
  147. }
  148. catch (Exception ex)
  149. {
  150. outParam = JsonHelper.setIrisReturnValue(-1, "门诊结算异常:" + ex.Message, null).ToString();
  151. ((object[])o)[0] = -1;
  152. ((object[])o)[2] = outParam;
  153. }
  154. }
  155. [STAThread]
  156. public void showOutPatRegisterForm(object o)
  157. {
  158. string outParam = "";
  159. //调用服务获取门诊诊断信息
  160. string diagnoses;
  161. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  162. {
  163. ((object[])o)[0] = -1;
  164. ((object[])o)[1] = JsonHelper.setExceptionJson(-1, "getPatDiagnoses", diagnoses).ToString();
  165. return ;
  166. }
  167. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  168. JObject joReg = new JObject();
  169. try
  170. {
  171. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  172. //登记面板实例
  173. OutpatientRegistration frmReg = new OutpatientRegistration();
  174. //frmReg.dblkcbxSettelmentWay.Enabled = false;
  175. //险种类型
  176. DataTable dtInsuType = (DataTable)frmReg.dblkcbxInsuranceType.DataSource;
  177. for (int i = 0; i < dtInsuType.Rows.Count; i++)
  178. {
  179. if (dtInsuType.Rows[i]["Code"].ToString() == Global.pat.insuType)
  180. {
  181. frmReg.dblkcbxInsuranceType.Text = dtInsuType.Rows[i]["Name"].ToString();
  182. frmReg.insuType = dtInsuType.Rows[i]["Code"].ToString();
  183. if (Global.pat.isWorkInjury)
  184. {
  185. frmReg.dblkcbxInsuranceType.Text = "工伤保险";
  186. }
  187. }
  188. }
  189. //医疗类别
  190. DataTable dtMedType = (DataTable)frmReg.dblkcbxMedicalType.DataSource;
  191. for (int i = 0; i < dtMedType.Rows.Count; i++)
  192. {
  193. if (dtMedType.Rows[i]["Code"].ToString() == "11")
  194. {
  195. frmReg.dblkcbxMedicalType.Text = dtMedType.Rows[i]["Name"].ToString();
  196. frmReg.med_type = dtMedType.Rows[i]["Code"].ToString();
  197. }
  198. }
  199. //结算方式
  200. DataTable dtSettlWay = (DataTable)frmReg.dblkcbxSettelmentWay.DataSource;
  201. for (int i = 0; i < dtSettlWay.Rows.Count; i++)
  202. {
  203. if (dtSettlWay.Rows[i]["Code"].ToString() == "01")
  204. {
  205. frmReg.dblkcbxSettelmentWay.Text = dtSettlWay.Rows[i]["Name"].ToString();
  206. frmReg.psn_setlway = dtSettlWay.Rows[i]["Code"].ToString();
  207. }
  208. }
  209. //转换下主要诊断
  210. for (int i = 0; i < jaDiagnoses.Count; i++)
  211. {
  212. string diag_type = JsonHelper.getDestValue((JObject)jaDiagnoses[i], "diag_type");
  213. switch (diag_type)
  214. {
  215. case "1":
  216. {
  217. jaDiagnoses[i]["diag_type_name"] = new JObject();
  218. jaDiagnoses[i]["diag_type_name"] = "西医主要诊断";
  219. break;
  220. }
  221. case "2":
  222. {
  223. jaDiagnoses[i]["diag_type_name"] = new JObject();
  224. jaDiagnoses[i]["diag_type_name"] = "西医其他诊断";
  225. break;
  226. }
  227. case "3":
  228. {
  229. jaDiagnoses[i]["diag_type_name"] = new JObject();
  230. jaDiagnoses[i]["diag_type_name"] = "中医主病诊断";
  231. break;
  232. }
  233. case "4":
  234. {
  235. jaDiagnoses[i]["diag_type_name"] = new JObject();
  236. jaDiagnoses[i]["diag_type_name"] = "中医主证诊断";
  237. break;
  238. }
  239. }
  240. }
  241. frmReg.DtDiagnose = (DataTable)jaDiagnoses.ToObject(typeof(DataTable));
  242. //展示登记面板
  243. if (tools.ShowAppDiaglog(frmReg) == DialogResult.OK)
  244. {
  245. string diseCodg = frmReg.diseCodg, diseName = frmReg.diseName;
  246. //哈尔滨要求必须传病种。普通疾病传主诊断
  247. if (string.IsNullOrEmpty(diseCodg))
  248. {
  249. diseCodg = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_code");
  250. };
  251. Global.pat.disCode = diseCodg;
  252. if (string.IsNullOrEmpty(diseName))
  253. {
  254. diseName = JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_name");
  255. };
  256. //组织挂号入参
  257. JObject joRegInpar = new JObject();
  258. string occurTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  259. joRegInpar.Add("psn_no", Global.pat.psn_no);
  260. joRegInpar.Add("insutype", frmReg.insuType);
  261. joRegInpar.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime"));//挂号时间 occurTime
  262. joRegInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  263. joRegInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  264. string admDr = Utils.convertAdmDr(Global.pat.adm_Dr.ToString());
  265. joRegInpar.Add("ipt_otp_no", admDr);
  266. joRegInpar.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no"));
  267. joRegInpar.Add("dr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name"));
  268. joRegInpar.Add("dept_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg"));
  269. joRegInpar.Add("dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name"));
  270. joRegInpar.Add("exp_content", "");
  271. joRegInpar.Add("caty", "72");
  272. joReg.Add("data", joRegInpar);
  273. //组织就诊信息入参
  274. JObject joMdtrtinfo = new JObject();
  275. for (int i = 0; i < jaDiagnoses.Count; i++)
  276. {
  277. jaDiagnoses[i]["vali_flag"] = new JObject();
  278. jaDiagnoses[i]["vali_flag"] = "1";
  279. }
  280. joMdtrtinfo.Add("mdtrt_id", Global.pat.mdtrtID);
  281. joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  282. Global.pat.medType = frmReg.med_type;
  283. joMdtrtinfo.Add("med_type", frmReg.med_type); //医疗类别
  284. joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间
  285. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  286. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  287. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  288. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  289. //joMdtrtinfo.Add("birctrl_matn_date", ""); //计划生育手术或生育日期 JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_matn_date") 20230228医保中心校验传正确时间或空
  290. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  291. //joMdtrtinfo.Add("geso_val", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.geso_val")); //孕周数
  292. joMdtrtinfo.Add("exp_content", ""); //字段扩展
  293. //组织结算入参
  294. JObject joSetlInpar = new JObject();
  295. joSetlInpar.Add("psn_no", Global.pat.psn_no);
  296. joSetlInpar.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  297. joSetlInpar.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  298. joSetlInpar.Add("med_type", Global.pat.medType);
  299. joSetlInpar.Add("medfee_sumamt", "");
  300. joSetlInpar.Add("psn_setlway", frmReg.psn_setlway); //结算方式
  301. joSetlInpar.Add("mdtrt_id", Global.pat.mdtrtID);
  302. joSetlInpar.Add("chrg_bchno", Global.pat.adm_Dr.ToString());
  303. joSetlInpar.Add("acct_used_flag", frmReg.personAccountUsedFlag);//个人账户使用标志
  304. joSetlInpar.Add("insutype", frmReg.insuType);//险种类型
  305. joSetlInpar.Add("pub_hosp_rfom_flag", "");
  306. joSetlInpar.Add("exp_content11", "");
  307. joReg.Add("mdtrtinfo", joMdtrtinfo);
  308. joReg.Add("diseinfo", jaDiagnoses);
  309. joReg.Add("settlement", joSetlInpar);
  310. ((object[])o)[0] =0;
  311. ((object[])o)[1] = joReg.ToString();
  312. return;
  313. }
  314. else
  315. {
  316. ((object[])o)[0] = -1;
  317. ((object[])o)[1] = "收费员取消操作!";
  318. return;
  319. }
  320. }
  321. catch (Exception ex)
  322. {
  323. ((object[])o)[0] = -1;
  324. ((object[])o)[1] = "登记界面显示异常:" + ex.Message;
  325. return;
  326. }
  327. }
  328. [STAThread]
  329. public void showInPatRegisterForm(object o)
  330. {
  331. //调用服务获取门诊诊断信息
  332. string diagnoses;
  333. if (hIS.getPatDiagnoses(Global.pat, out diagnoses) != 0)
  334. {
  335. ((object[])o)[0] = -1;
  336. ((object[])o)[1] = JsonHelper.setExceptionJson(-1, "getPatDiagnoses", diagnoses).ToString();
  337. return;
  338. }
  339. JObject joHisRtnInfo = JObject.Parse(diagnoses);
  340. JObject joReg = new JObject();
  341. try
  342. {
  343. JArray jaDiagnoses = JArray.Parse(JsonHelper.getDestValue(joHisRtnInfo, "diseinfo"));
  344. string dscg_maindiag_code = "", dscg_maindiag_name = "";
  345. // 对诊断数组进行转换 转换下主要诊断
  346. JArray jaConvertedDiagnoses = new JArray();
  347. JArray jaInPatDiagnoses = new JArray();
  348. JArray jaOutPatDiagnoses = new JArray();
  349. for (int i = 0; i < jaDiagnoses.Count; i++)
  350. {
  351. string diag_type = JsonHelper.getDestValue((JObject)jaDiagnoses[i], "diag_type");
  352. switch (diag_type)
  353. {
  354. case "1":
  355. {
  356. jaDiagnoses[i]["diag_type_name"] = new JObject();
  357. jaDiagnoses[i]["diag_type_name"] = "西医主要诊断";
  358. break;
  359. }
  360. case "2":
  361. {
  362. jaDiagnoses[i]["diag_type_name"] = new JObject();
  363. jaDiagnoses[i]["diag_type_name"] = "西医其他诊断";
  364. break;
  365. }
  366. case "3":
  367. {
  368. jaDiagnoses[i]["diag_type_name"] = new JObject();
  369. jaDiagnoses[i]["diag_type_name"] = "中医主病诊断";
  370. break;
  371. }
  372. case "4":
  373. {
  374. jaDiagnoses[i]["diag_type_name"] = new JObject();
  375. jaDiagnoses[i]["diag_type_name"] = "中医主证诊断";
  376. break;
  377. }
  378. }
  379. if (jaDiagnoses[i]["diaTypeCode"].ToString() == "ADD") //ADD 入院 OPD 门诊
  380. {
  381. jaInPatDiagnoses.Add(jaDiagnoses[i]);
  382. }
  383. if (jaDiagnoses[i]["diaTypeCode"].ToString() == "OPD") //ADD 入院 OPD 门诊
  384. {
  385. jaOutPatDiagnoses.Add(jaDiagnoses[i]);
  386. }
  387. }
  388. if (jaInPatDiagnoses.Count > 0)
  389. {
  390. jaConvertedDiagnoses = (JArray)jaInPatDiagnoses.DeepClone();
  391. }
  392. else
  393. {
  394. jaConvertedDiagnoses = (JArray)jaOutPatDiagnoses.DeepClone();
  395. }
  396. for (int i = 0; i < jaConvertedDiagnoses.Count; i++)
  397. {
  398. jaConvertedDiagnoses[i]["diag_srt_no"] = i + 1;
  399. if (jaConvertedDiagnoses[i]["maindiag_flag"].ToString() == "1")
  400. {
  401. dscg_maindiag_code = jaConvertedDiagnoses[i]["diag_code"].ToString();
  402. dscg_maindiag_name = jaConvertedDiagnoses[i]["diag_name"].ToString();
  403. }
  404. }
  405. //登记面板实例
  406. OutpatientRegistration frmReg = new OutpatientRegistration();
  407. //frmReg.dblkcbxSettelmentWay.Enabled = false;
  408. DataTable dt = (DataTable)frmReg.dblkcbxInsuranceType.DataSource;
  409. int selectedIndex = 0;
  410. for (int i = 0; i < dt.Rows.Count; i++)
  411. {
  412. if (dt.Rows[i]["Code"].ToString() == Global.pat.insuType)
  413. {
  414. selectedIndex = i;
  415. frmReg.dblkcbxInsuranceType.Text = dt.Rows[i]["Name"].ToString();
  416. frmReg.insuType = dt.Rows[i]["Code"].ToString();
  417. }
  418. }
  419. DataTable dtMedType = (DataTable)frmReg.dblkcbxMedicalType.DataSource;
  420. for (int i = 0; i < dtMedType.Rows.Count; i++)
  421. {
  422. if (dtMedType.Rows[i]["Code"].ToString() == "21")
  423. {
  424. frmReg.dblkcbxMedicalType.Text = dtMedType.Rows[i]["Name"].ToString();
  425. frmReg.med_type = dtMedType.Rows[i]["Code"].ToString();
  426. }
  427. }
  428. frmReg.DtDiagnose = (DataTable)jaConvertedDiagnoses.ToObject(typeof(DataTable));
  429. //展示登记面板
  430. if (tools.ShowAppDiaglog(frmReg) == DialogResult.OK)
  431. {
  432. string diseCodg = "", diseName = "";
  433. diseCodg = frmReg.diseCodg;
  434. diseName = frmReg.diseName;
  435. JObject joMdtrtinfo = new JObject();
  436. joMdtrtinfo.Add("psn_no", Global.pat.psn_no); //人员编号
  437. joMdtrtinfo.Add("insutype", Global.pat.insuType); //险种类型
  438. joMdtrtinfo.Add("coner_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.coner_name")); //联系人姓名
  439. joMdtrtinfo.Add("tel", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.tel")); //联系电话
  440. joMdtrtinfo.Add("begntime", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.begntime")); //开始时间
  441. joMdtrtinfo.Add("mdtrt_cert_type", Global.pat.mdtrtcertType); //就诊凭证类型
  442. joMdtrtinfo.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO); //就诊凭证编号
  443. joMdtrtinfo.Add("med_type", frmReg.med_type); //医疗类别
  444. //string ipAdmNo = Utils.convertAdmDr(JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.ipt_no"));
  445. joMdtrtinfo.Add("ipt_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.ipt_no")); //住院号
  446. joMdtrtinfo.Add("medrcdno", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.medrcdno")); //病历号
  447. joMdtrtinfo.Add("atddr_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.atddr_no")); //主治医生编码
  448. joMdtrtinfo.Add("chfpdr_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.chfpdr_name")); //主诊医师姓名
  449. //joMdtrtinfo.Add("adm_diag_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_diag_dscr")); //入院诊断描述
  450. joMdtrtinfo.Add("adm_diag_dscr", "");
  451. joMdtrtinfo.Add("adm_dept_codg", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_codg")); //入院科室编码
  452. joMdtrtinfo.Add("adm_dept_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_dept_name")); //入院科室名称
  453. joMdtrtinfo.Add("adm_bed", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.adm_bed")); //入院床位
  454. joMdtrtinfo.Add("dscg_maindiag_code", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_code")); //住院主诊断代码
  455. joMdtrtinfo.Add("dscg_maindiag_name", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.dscg_maindiag_name")); //住院主诊断名称
  456. //joMdtrtinfo.Add("dscg_maindiag_code", dscg_maindiag_code); //住院主诊断代码
  457. //joMdtrtinfo.Add("dscg_maindiag_name", dscg_maindiag_name); //住院主诊断名称
  458. joMdtrtinfo.Add("main_cond_dscr", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.main_cond_dscr")); //主要病情描述
  459. joMdtrtinfo.Add("dise_codg", diseCodg); //病种编码
  460. joMdtrtinfo.Add("dise_name", diseName); //病种名称
  461. joMdtrtinfo.Add("oprn_oprt_code", frmReg.oprn_oprt_code); //手术操作代码
  462. joMdtrtinfo.Add("oprn_oprt_name", frmReg.oprn_oprt_name); //手术操作名称
  463. joMdtrtinfo.Add("fpsc_no", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fpsc_no")); //计划生育服务证号
  464. joMdtrtinfo.Add("matn_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.matn_type")); //生育类别
  465. joMdtrtinfo.Add("birctrl_type", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_type")); //计划生育手术类别
  466. joMdtrtinfo.Add("latechb_flag", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.latechb_flag")); //晚育标志
  467. //joMdtrtinfo.Add("geso_val", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.geso_val")); //孕周数
  468. //joMdtrtinfo.Add("fetts", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fetts")); //胎次
  469. //joMdtrtinfo.Add("fetus_cnt", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.fetus_cnt")); //胎儿数
  470. //joMdtrtinfo.Add("pret_flag", JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.pret_flag")); //早产标志
  471. //joMdtrtinfo.Add("birctrl_matn_date", ""); //计划生育手术或生育日期 JsonHelper.getDestValue(joHisRtnInfo, "mdtrtinfo.birctrl_matn_date") 20230228医保中心校验传正确时间或空
  472. joMdtrtinfo.Add("dise_type_code", frmReg.dise_type_code); //病种类型
  473. joMdtrtinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs); //参保地医保区划
  474. joMdtrtinfo.Add("mdtrtarea_admvs", Global.inf.areaCode); //就医地医保区划
  475. joReg.Add("mdtrtinfo", joMdtrtinfo);
  476. joReg.Add("diseinfo", jaConvertedDiagnoses);
  477. Global.pat.disCode = diseCodg;
  478. Global.pat.disName = diseName;
  479. Global.pat.medType = frmReg.med_type;
  480. if (Global.pat.isWorkInjury)
  481. {
  482. Global.pat.ExpContent = "GGS";
  483. }
  484. ((object[])o)[0] = 0;
  485. ((object[])o)[1] = joReg.ToString();
  486. return;
  487. }
  488. else
  489. {
  490. ((object[])o)[0] = -1;
  491. ((object[])o)[1] = "收费员取消操作!";
  492. return;
  493. }
  494. }
  495. catch (Exception ex)
  496. {
  497. ((object[])o)[0] = -1;
  498. ((object[])o)[1] = "登记界面显示异常:" + ex.Message;
  499. return;
  500. }
  501. }
  502. [STAThread]
  503. public void uploadFee(object o)
  504. {
  505. string outParam = "";
  506. object[] oArr = (object[])o;
  507. try
  508. {
  509. string funNO = oArr[1].ToString();
  510. int singleCount = int.Parse(oArr[2].ToString());
  511. PTMedicalInsurance.Forms.FeeUpload pb = new PTMedicalInsurance.Forms.FeeUpload(funNO, singleCount);
  512. pb.StartPosition = FormStartPosition.CenterScreen;
  513. if (tools.ShowAppDiaglog(pb) == DialogResult.OK)
  514. {
  515. ((object[])o)[0] = 0;
  516. ((object[])o)[3] = pb.outParam;
  517. }
  518. else
  519. {
  520. outParam = "收款员取消";
  521. ((object[])o)[0] = -1;
  522. ((object[])o)[3] = outParam;
  523. }
  524. }
  525. catch (Exception ex)
  526. {
  527. outParam = "uploadFee 异常:" + ex.Message;
  528. ((object[])o)[0] = -1;
  529. ((object[])o)[3] = outParam;
  530. o = oArr;
  531. return;
  532. }
  533. }
  534. [STAThread]
  535. public void showSettlementForm(object o)
  536. {
  537. string outParam = "";
  538. JObject joSettlement = JObject.Parse(((object[])o)[1].ToString());
  539. try
  540. {
  541. SettlementInfo frmSettlment = new SettlementInfo(joSettlement);
  542. //相关信息转换到结算信息面板
  543. if (tools.ShowAppDiaglog(frmSettlment) == DialogResult.OK)
  544. {
  545. ((object[])o)[0] = 0;
  546. ((object[])o)[1] = outParam;
  547. }
  548. else
  549. {
  550. outParam = "收款员取消";
  551. ((object[])o)[0] = -1;
  552. ((object[])o)[1] = outParam;
  553. }
  554. }
  555. catch (Exception ex)
  556. {
  557. outParam = "showSettlementForm 异常:" + ex.Message;
  558. ((object[])o)[0] = -1;
  559. ((object[])o)[1] = outParam;
  560. }
  561. }
  562. [STAThread]
  563. public void Exception(object o)
  564. {
  565. try
  566. {
  567. //显示异常处理界面
  568. HandleException frmEX = new HandleException();
  569. frmEX.WindowState = FormWindowState.Maximized;
  570. frmEX.ShowDialog();
  571. }
  572. catch (Exception ex)
  573. {
  574. CallBack(ex.Message);
  575. }
  576. }
  577. [STAThread]
  578. public void CheckAndClearing(object o)
  579. {
  580. try
  581. {
  582. //显示对账界面
  583. Clearing frm = new Clearing();
  584. frm.WindowState = FormWindowState.Maximized;
  585. frm.ShowDialog();
  586. }
  587. catch (Exception ex)
  588. {
  589. CallBack(ex.Message);
  590. }
  591. }
  592. [STAThread]
  593. public void PrescribeCirculation(object o)
  594. {
  595. try
  596. {
  597. //显示处方上传
  598. PrescriptionCirculation PresCir = new PrescriptionCirculation("");
  599. //PresCir.WindowState = FormWindowState.Minimized;
  600. PresCir.ShowDialog();
  601. }
  602. catch (Exception ex)
  603. {
  604. CallBack(ex.Message);
  605. }
  606. }
  607. [STAThread]
  608. public void BasicData(object o)
  609. {
  610. try
  611. {
  612. //显示异常处理界面
  613. BasicData frm = new BasicData();
  614. frm.WindowState = FormWindowState.Maximized;
  615. frm.ShowDialog();
  616. }
  617. catch (Exception ex)
  618. {
  619. CallBack(ex.Message);
  620. }
  621. }
  622. }
  623. public class WindowWrapper : System.Windows.Forms.IWin32Window
  624. {
  625. public WindowWrapper(IntPtr handle)
  626. {
  627. _hwnd = handle;
  628. }
  629. public IntPtr Handle
  630. {
  631. get { return _hwnd; }
  632. }
  633. private IntPtr _hwnd;
  634. }
  635. }