IrisServices.cs 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090
  1. /******************************************************************************
  2. * 文件名称: CardReader.cs
  3. * 文件说明: 读卡的封装,包括社保卡,身份证,电子凭证等等
  4. * 当前版本: V1.0
  5. * 创建日期: 2022-06-25
  6. *
  7. * * 2020-06-20: 增加 IrisServices 类(基类)
  8. * ***** 2020-06-25: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用
  9. * ***** 2020-06-25: 增加 CardReader 方法重载,国家版电子凭证使用
  10. *
  11. *
  12. * * 2020-06-20: 增加 HisIrisServices 类(子类)
  13. * ***** 2020-06-25: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用
  14. * ***** 2020-06-25: 增加 CardReader 方法重载,国家版电子凭证使用
  15. *
  16. *
  17. * * 2020-06-20: 增加 MIIrisServices 类(子类)
  18. * ***** 2020-06-25: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用
  19. * ***** 2020-06-25: 增加 CardReader 方法重载,国家版电子凭证使用
  20. ******************************************************************************/
  21. using Newtonsoft.Json.Linq;
  22. using System;
  23. using System.Collections.Generic;
  24. using System.Linq;
  25. using System.Text;
  26. using System.Threading.Tasks;
  27. using PTMedicalInsurance.Variables;
  28. using PTMedicalInsurance.Helper;
  29. namespace PTMedicalInsurance.Business
  30. {
  31. class IrisServices
  32. {
  33. }
  34. class HisIrisServices
  35. {
  36. private InvokeHelper invoker = new InvokeHelper();
  37. /// <summary>
  38. /// 获取诊断信息
  39. /// </summary>
  40. /// <param name="jaSession"></param>
  41. /// <param name="diagnoses"></param>
  42. /// <returns></returns>
  43. public int getPatDiagnoses(Patients pat, out string outParam)
  44. {
  45. outParam = "";
  46. string errMsg;
  47. try
  48. {
  49. JObject joTmp = new JObject();
  50. joTmp.Add("admID", pat.adm_Dr);
  51. joTmp.Add("psn_no", pat.psn_no);
  52. //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110001", joTmp).ToString(), "获取诊断信息");
  53. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110014", joTmp).ToString(), "获取诊断信息");
  54. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  55. {
  56. outParam = "获取诊断信息失败,请联系管理员!" + errMsg;
  57. return -1;
  58. }
  59. else
  60. {
  61. outParam = joRtn.ToString();
  62. return 0;
  63. }
  64. }
  65. catch (Exception ex)
  66. {
  67. outParam = "getPatDiagnoses 异常:" + ex.Message;
  68. return -1;
  69. }
  70. }
  71. /// <summary>
  72. /// 返回登记信息给HIS
  73. /// </summary>
  74. /// <param name="joRegIn"></param>
  75. /// <param name="joRegOut"></param>
  76. /// <param name="outParam"></param>
  77. /// <returns></returns>
  78. public int returnRegisterInfo(JObject joRegIn, JObject joRegOut, out string outParam)
  79. {
  80. string errMsg;
  81. try
  82. {
  83. JObject joSendToIris2401 = joRegIn;
  84. joSendToIris2401.Add("admID", Global.pat.adm_Dr);
  85. joSendToIris2401.Add("mdtrt_id", JsonHelper.getDestValue(joRegOut, "output.result.mdtrt_id"));
  86. joSendToIris2401.Add("interfaceDr", Global.inf.interfaceDr);
  87. joSendToIris2401.Add("billID", Global.pat.billID);
  88. string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
  89. string inpar = JsonHelper.setIrisInpar(serviceCode, joRegIn).ToString();
  90. JObject joRtn = invoker.invokeHISService(inpar,serviceName);
  91. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  92. {
  93. outParam = "中心登记成功但云HIS平台保存失败,请联系管理员!" + errMsg;
  94. return -1;
  95. }
  96. else
  97. {
  98. outParam = "返回给HIS成功";
  99. return 0;
  100. }
  101. }
  102. catch (Exception ex )
  103. {
  104. outParam = "HIS保存登记信息出现异常:!" + ex.Message;
  105. return -1;
  106. }
  107. }
  108. /// <summary>
  109. /// 获取His费用
  110. /// </summary>
  111. /// <param name="pat"></param>
  112. /// <param name="errMsg"></param>
  113. /// <returns></returns>
  114. public int getHisFee(Patients pat, out string outParam)
  115. {
  116. outParam = "";
  117. string errMsg;
  118. try
  119. {
  120. dynamic joIrisParam = new JObject();
  121. JArray jaIrisParams = new JArray();
  122. JObject joIrisTmp = new JObject();
  123. joIrisParam.code = "05110003";
  124. joIrisParam.session = Global.curEvt.jaSession;
  125. joIrisTmp.Add("admID", pat.adm_Dr);
  126. joIrisTmp.Add("billID", pat.billID);
  127. joIrisTmp.Add("recordID", pat.recordID);
  128. jaIrisParams.Add(joIrisTmp);
  129. joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
  130. JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "获取HIS费用");
  131. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  132. {
  133. outParam = errMsg;
  134. return -1;
  135. }
  136. else
  137. {
  138. outParam = joRtn.ToString();
  139. return 0;
  140. }
  141. }
  142. catch (Exception ex)
  143. {
  144. outParam = "deleteFee 异常:" + ex.Message;
  145. return -1;
  146. }
  147. }
  148. /// <summary>
  149. /// 取消登记信息
  150. /// </summary>
  151. /// <param name="outParam"></param>
  152. /// <returns></returns>
  153. public int cancleRegister( out string outParam)
  154. {
  155. outParam = "";
  156. string errMsg;
  157. try
  158. {
  159. dynamic joTmp = new JObject();
  160. joTmp.Add("admID", Global.pat.adm_Dr);
  161. joTmp.Add("interfaceDr", Global.inf.interfaceDr);
  162. joTmp.Add("billID", Global.pat.billID);
  163. string serviceCode = "05110004";
  164. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  165. JObject joRtn = invoker.invokeHISService(inpar, "取消HIS登记信息");
  166. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  167. {
  168. outParam = joRtn.ToString();
  169. return -1;
  170. }
  171. else
  172. {
  173. outParam = joRtn.ToString();
  174. return 0;
  175. }
  176. }
  177. catch (Exception ex)
  178. {
  179. outParam = "取消登记异常" + ":" + ex.Message;
  180. return -1;
  181. }
  182. }
  183. /// <summary>
  184. /// HIS预结算
  185. /// </summary>
  186. /// <param name="joParam"></param>
  187. /// <param name="joSetlinfo"></param>
  188. /// <param name="outParam"></param>
  189. /// <returns></returns>
  190. public int preSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  191. {
  192. string errMsg;
  193. try
  194. {
  195. dynamic joTmp = new JObject();
  196. joTmp = joParam.DeepClone();
  197. joTmp.insuPayInfo = joSetlinfo;
  198. joTmp.updateUserID = Global.user.ID;
  199. joTmp.middleSettleFlag = "";
  200. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110011", joTmp).ToString(), "返回2304结算结果给HIS");
  201. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  202. {
  203. outParam = "返回2303结算结果给HIS失败,请联系管理员!" + errMsg;
  204. return -1;
  205. }
  206. else
  207. {
  208. outParam = joRtn.ToString();
  209. return 0;
  210. }
  211. }
  212. catch (Exception ex)
  213. {
  214. outParam = "返回2303结算结果给HIS出现异常:!" + ex.Message;
  215. return -1;
  216. }
  217. }
  218. /// <summary>
  219. /// 返回住院结算信息给HIS
  220. /// </summary>
  221. /// <param name="joParam"></param>
  222. /// <param name="joSetlinfo"></param>
  223. /// <param name="outParam"></param>
  224. /// <returns></returns>
  225. public int returnInpatSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  226. {
  227. string errMsg;
  228. try
  229. {
  230. dynamic joTmp = new JObject();
  231. joTmp = joParam.DeepClone();
  232. joTmp.insuPayInfo = joSetlinfo;
  233. joTmp.updateUserID = Global.user.ID;
  234. joTmp.middleSettleFlag = "";
  235. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110007", joTmp).ToString(), "返回2304结算结果给HIS");
  236. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  237. {
  238. outParam = "返回2304结算结果给HIS失败,请联系管理员!" + errMsg;
  239. return -1;
  240. }
  241. else
  242. {
  243. outParam = joRtn.ToString();
  244. return 0;
  245. }
  246. }
  247. catch (Exception ex)
  248. {
  249. outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
  250. return -1;
  251. }
  252. }
  253. /// <summary>
  254. /// 返回门诊结算信息给HIS
  255. /// </summary>
  256. /// <param name="joSetlInpar"></param>
  257. /// <param name="joSetlinfo"></param>
  258. /// <param name="outParam"></param>
  259. /// <returns></returns>
  260. public int returnOutpatSettlementInfo(JObject joSetlInpar, JObject joSetlinfo, out string outParam)
  261. {
  262. string errMsg;
  263. try
  264. {
  265. dynamic joTmp = new JObject();
  266. joTmp.settleInfo = joSetlinfo;
  267. joTmp.updateUserID = Global.user.ID;
  268. joTmp.regInfo = joSetlInpar;
  269. joTmp.middleSettleFlag = "";
  270. joTmp.interfaceDr = Global.inf.interfaceDr;
  271. dynamic joHisInfo = new JObject();
  272. joHisInfo.admID = Global.pat.adm_Dr;
  273. joHisInfo.billID = Global.pat.billID;
  274. joHisInfo.recordID = Global.pat.recordID;
  275. joTmp.hisInfo = joHisInfo;
  276. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110009", joTmp).ToString(), "返回2207结算结果给HIS");
  277. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  278. {
  279. outParam = "返回2207结算结果给HIS失败,请联系管理员!" + errMsg;
  280. return -1;
  281. }
  282. else
  283. {
  284. outParam = joRtn.ToString();
  285. return 0;
  286. }
  287. }
  288. catch (Exception ex)
  289. {
  290. outParam = "返回22207结算结果给HIS出现异常:!" + ex.Message;
  291. return -1;
  292. }
  293. }
  294. /// <summary>
  295. /// 取消结算信息
  296. /// </summary>
  297. /// <param name="joParam"></param>
  298. /// <param name="outParam"></param>
  299. /// <returns></returns>
  300. public int cancleSettlementInfo(JObject joParam, out string outParam)
  301. {
  302. string errMsg;
  303. try
  304. {
  305. dynamic joTmp = new JObject();
  306. joTmp = joParam.DeepClone();
  307. joTmp.updateUserID = Global.user.ID;
  308. joTmp.middleSettleFlag = "";
  309. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110008", joTmp).ToString(), "取消HIS医保结算信息");
  310. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  311. {
  312. outParam = "取消HIS医保结算信息失败,请联系管理员!" + errMsg;
  313. return -1;
  314. }
  315. else
  316. {
  317. outParam = "取消HIS医保结算信息成功";
  318. return 0;
  319. }
  320. }
  321. catch (Exception ex)
  322. {
  323. outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
  324. return -1;
  325. }
  326. }
  327. }
  328. class MIIrisServices
  329. {
  330. private InvokeHelper invoker = new InvokeHelper();
  331. /// <summary>
  332. /// 获取接口信息
  333. /// </summary>
  334. /// <returns></returns>
  335. public JObject getInterface()
  336. {
  337. dynamic joParam = new JObject();
  338. joParam.HospitalDr = Global.inf.hospitalDr;
  339. joParam.InterfaceID = "";
  340. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  341. InvokeHelper invoker = new InvokeHelper();
  342. return invoker.invokeInsuService(joInparam.ToString(), "获取接口信息");
  343. }
  344. /// <summary>
  345. /// 判断是否签到过,如果未签到,返回false,如果签到则返回ture,同时返回签到号
  346. /// </summary>
  347. /// <param name="signno"></param>
  348. /// <returns></returns>
  349. public bool isSigned(ref string signno)
  350. {
  351. JObject joIn = new JObject();
  352. joIn.Add("operatorNO", Global.user.ID.ToUpper());
  353. joIn.Add("operatorName", Global.user.name);
  354. joIn.Add("mac", Global.curEvt.mac);
  355. joIn.Add("ip", Global.curEvt.ip);
  356. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  357. joIn.Add("interfaceDr", Global.inf.interfaceDr);
  358. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  359. string data = JsonHelper.setIrisInpar("09010064", joIn).ToString();
  360. JObject joRtn = invoker.invokeInsuService(data, "查询签到信息");
  361. string errMsg = "";
  362. if ( JsonHelper.parseIrisRtnValue(joRtn,out errMsg)!= 0)
  363. {
  364. signno = errMsg;
  365. return false;
  366. }
  367. else
  368. {
  369. signno = JsonHelper.getDestValue(joRtn, "result.SignNo");
  370. return true;
  371. }
  372. }
  373. /// <summary>
  374. ///保存签到信息
  375. /// </summary>
  376. /// <param name="signno"></param>
  377. /// <returns></returns>
  378. public int saveSignRecord( string signno,out string errMsg)
  379. {
  380. if (signno == "")
  381. {
  382. errMsg = "signno不能为空!";
  383. return -1;
  384. }
  385. errMsg = ""; ;
  386. JObject joIn = new JObject();
  387. joIn.Add("operatorNO", Global.user.ID);
  388. joIn.Add("operatorName", Global.user.name);
  389. joIn.Add("mac", Global.curEvt.mac);
  390. joIn.Add("ip", Global.curEvt.ip);
  391. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  392. joIn.Add("interfaceDr", Global.inf.interfaceDr);
  393. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  394. joIn.Add("signNo", signno);
  395. joIn.Add("createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  396. joIn.Add("division", Global.inf.areaCode);
  397. string data = JsonHelper.setIrisInpar("09010065", joIn).ToString();
  398. JObject joRtn = invoker.invokeInsuService(data, "插入签到信息");
  399. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  400. {
  401. return -1;
  402. }
  403. else
  404. {
  405. return 0;
  406. }
  407. }
  408. /// <summary>
  409. /// 保存住院登记信息
  410. /// </summary>
  411. /// <param name="joRegIn"></param>
  412. /// <param name="joRegOut"></param>
  413. /// <param name="outParam"></param>
  414. /// <returns></returns>
  415. public int saveInpatRegisterInfo(JObject joRegIn,JObject joRegOut,out string outParam)
  416. {
  417. //插入云医保平台
  418. JObject joTmp = new JObject();
  419. string errMsg = "";
  420. try
  421. {
  422. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  423. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  424. joTmp.Add("AdmID", Global.pat.adm_Dr);
  425. joTmp.Add("PatientName", Global.pat.name);
  426. joTmp.Add("PersonalNO", Global.pat.psn_no);
  427. joTmp.Add("InsuRegID", JsonHelper.getDestValue(joRegOut, "output.result.mdtrt_id"));
  428. joTmp.Add("RegDate", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.begntime"));
  429. joTmp.Add("InsuType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.insutype"));
  430. joTmp.Add("CertificateType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.mdtrt_cert_type"));
  431. joTmp.Add("CertificateNO", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.mdtrt_cert_no"));
  432. joTmp.Add("MedicalType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.med_type"));
  433. joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.atddr_no"));
  434. joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.chfpdr_name"));
  435. joTmp.Add("AdmitDiagDesc", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_diag_dscr"));
  436. joTmp.Add("AdmitDepartmentCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_dept_codg"));
  437. joTmp.Add("AdmitDepartmentName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_dept_name"));
  438. joTmp.Add("AdmBed", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_bed"));
  439. joTmp.Add("MainDiagCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dscg_maindiag_code"));
  440. joTmp.Add("MainDiagName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dscg_maindiag_name"));
  441. joTmp.Add("MainConditionDdesc", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.main_cond_dscr"));
  442. joTmp.Add("DiseasecCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_codg"));
  443. joTmp.Add("DiseasecName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_name"));
  444. joTmp.Add("OperationCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.oprn_oprt_code"));
  445. joTmp.Add("OperationName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.oprn_oprt_name"));
  446. joTmp.Add("DiseasecTypeCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_type_code"));
  447. joTmp.Add("InsuranceAreaCode", Global.inf.areaCode);
  448. joTmp.Add("TreatmentAreaCode", Global.pat.insuplc_admdvs);
  449. joTmp.Add("RegState", JsonHelper.getDestValue(joRegOut, "regstate"));
  450. joTmp.Add("ValidFlag", JsonHelper.getDestValue(joRegOut, "validflag"));
  451. joTmp.Add("Type", JsonHelper.getDestValue(joRegOut, "type"));
  452. joTmp.Add("updateUserID", Global.user.ID);
  453. joTmp.Add("msgid", Global.curEvt.msgid);
  454. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  455. joTmp.Add("ConerName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.coner_name"));
  456. joTmp.Add("Tel", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.tel"));
  457. string serviceCode = "09010044";
  458. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  459. JObject joRtn = invoker.invokeInsuService(inpar, "新增住院登记信息");
  460. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  461. {
  462. outParam = joRtn.ToString();
  463. return -1;
  464. }
  465. else
  466. {
  467. outParam = joRtn.ToString();
  468. return 0;
  469. }
  470. }
  471. catch (Exception ex)
  472. {
  473. outParam = "保存住院登记信息异常:" + ex.Message;
  474. return -1;
  475. }
  476. }
  477. /// <summary>
  478. /// 保存门诊登记信息
  479. /// </summary>
  480. /// <param name="jo2201Inpar"></param>
  481. /// <param name="jo2201Rtn"></param>
  482. /// <param name="jo2203Inpar"></param>
  483. /// <param name="outParam"></param>
  484. /// <returns></returns>
  485. public int saveOutpatRegisterInfo(JObject jo2201Inpar, JObject jo2201Rtn,JObject jo2203Inpar, out string outParam)
  486. {
  487. //插入云医保平台
  488. JObject joTmp = new JObject();
  489. string errMsg = "";
  490. try
  491. {
  492. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  493. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  494. joTmp.Add("AdmID", Global.pat.adm_Dr);
  495. joTmp.Add("PatientName", Global.pat.name);
  496. joTmp.Add("PersonalNO", Global.pat.psn_no);
  497. joTmp.Add("InsuRegID", JsonHelper.getDestValue(jo2201Rtn, "output.data.mdtrt_id"));
  498. joTmp.Add("RegDate", JsonHelper.getDestValue(jo2201Inpar, "input.data.begntime"));
  499. joTmp.Add("InsuType", JsonHelper.getDestValue(jo2201Inpar, "input.data.insutype"));
  500. joTmp.Add("CertificateType", JsonHelper.getDestValue(jo2201Inpar, "input.data.mdtrt_cert_type"));
  501. joTmp.Add("CertificateNO", JsonHelper.getDestValue(jo2201Inpar, "input.data.mdtrt_cert_no"));
  502. joTmp.Add("MedicalType", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.med_type"));
  503. joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(jo2201Inpar, "input.data.atddr_no"));
  504. joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(jo2201Inpar, "input.data.dr_name"));
  505. joTmp.Add("AdmitDiagDesc", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.main_cond_dscr"));
  506. joTmp.Add("AdmitDepartmentCode", JsonHelper.getDestValue(jo2201Inpar, "input.data.dept_code"));
  507. joTmp.Add("AdmitDepartmentName", JsonHelper.getDestValue(jo2201Inpar, "input.data.dept_name"));
  508. joTmp.Add("AdmBed", "");
  509. joTmp.Add("MainDiagCode", " ");
  510. joTmp.Add("MainDiagName", " ");
  511. joTmp.Add("MainConditionDdesc", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.main_cond_dscr"));
  512. joTmp.Add("DiseasecCode", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.dise_codg"));
  513. joTmp.Add("DiseasecName", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.dise_name"));
  514. joTmp.Add("OperationCode", "");
  515. joTmp.Add("OperationName", "");
  516. joTmp.Add("DiseasecTypeCode", "");
  517. joTmp.Add("InsuranceAreaCode", Global.inf.areaCode);
  518. joTmp.Add("TreatmentAreaCode", Global.pat.insuplc_admdvs);
  519. joTmp.Add("RegState", JsonHelper.getDestValue(jo2201Rtn, "regstate"));
  520. joTmp.Add("ValidFlag", JsonHelper.getDestValue(jo2201Rtn, "validflag"));
  521. joTmp.Add("Type", JsonHelper.getDestValue(jo2201Rtn, "type"));
  522. joTmp.Add("updateUserID", Global.user.ID);
  523. joTmp.Add("msgid", Global.curEvt.msgid);
  524. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  525. string serviceCode = "09010044";
  526. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  527. JObject joRtn = invoker.invokeInsuService(inpar, "新增门诊登记信息");
  528. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  529. {
  530. outParam = joRtn.ToString();
  531. return -1;
  532. }
  533. else
  534. {
  535. outParam = joRtn.ToString();
  536. return 0;
  537. }
  538. }
  539. catch (Exception ex)
  540. {
  541. outParam = "保存门诊登记信息异常:" + ex.Message;
  542. return -1;
  543. }
  544. }
  545. /// <summary>
  546. /// 取消登记
  547. /// </summary>
  548. /// <param name="type"></param>
  549. /// <param name="outParam"></param>
  550. /// <returns></returns>
  551. public int cancleRegister(int type,out string outParam)
  552. {
  553. outParam = "";
  554. string errMsg;
  555. try
  556. {
  557. dynamic joTmp = new JObject();
  558. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  559. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  560. joTmp.Add("AdmID", Global.pat.adm_Dr);
  561. joTmp.Add("PersonalNO",Global.pat.psn_no);
  562. joTmp.Add("InsuRegID", Global.pat.mdtrtID);
  563. joTmp.Add("CancleRegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  564. joTmp.Add("Type", type);
  565. joTmp.Add("ValidFlag", -1);
  566. joTmp.Add("updateUserID", Global.user.ID);
  567. string serviceCode = "09010044";
  568. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  569. JObject joRtn = invoker.invokeInsuService(inpar, "取消云医保平台登记信息");
  570. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  571. {
  572. outParam = "退结算失败,请根据输入条件检查是否存在该笔数据!" + errMsg;
  573. return -1;
  574. }
  575. else
  576. {
  577. outParam = joRtn.ToString();
  578. return 0;
  579. }
  580. }
  581. catch (Exception ex)
  582. {
  583. outParam = "取消登记异常" + ":" + ex.Message;
  584. return -1;
  585. }
  586. }
  587. /// <summary>
  588. /// 删除费用明细
  589. /// </summary>
  590. /// <param name="pat"></param>
  591. /// <param name="errMsg"></param>
  592. /// <returns></returns>
  593. public int deleteFee(out string errMsg)
  594. {
  595. try
  596. {
  597. dynamic joTmp = new JObject();
  598. joTmp = new JObject();
  599. joTmp.code = "09010048";
  600. joTmp.HospitalDr = Global.inf.hospitalDr;
  601. joTmp.admID = Global.pat.adm_Dr;
  602. joTmp.mdtrt_id = Global.pat.mdtrtID;
  603. joTmp.updateUserID = Global.user.ID;
  604. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "删除2301明细");
  605. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  606. {
  607. return -1;
  608. }
  609. else
  610. {
  611. return 0;
  612. }
  613. }
  614. catch (Exception ex)
  615. {
  616. errMsg = "deleteFee 异常:" + ex.Message;
  617. return -1;
  618. }
  619. }
  620. /// <summary>
  621. /// 根据HIS的费用明细获取对照关系
  622. /// </summary>
  623. /// <returns></returns>
  624. public int convertHisFeeWithInsuCode( JObject joHisFee, out string outParam)
  625. {
  626. outParam = "";
  627. string errMsg;
  628. try
  629. {
  630. JArray jaFee = JArray.FromObject(joHisFee["result"]);
  631. JObject joTmp = JsonHelper.setIrisInpar("09010045", jaFee);
  632. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  633. joTmp.Add("med_type", Global.pat.medType);
  634. joTmp.Add("psn_no", Global.pat.psn_no);
  635. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  636. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  637. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "根据HIS的费用明细获取对照关系");
  638. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  639. {
  640. outParam = errMsg;
  641. return -1;
  642. }
  643. else
  644. {
  645. outParam = joRtn.ToString();
  646. return 0;
  647. }
  648. }
  649. catch (Exception ex)
  650. {
  651. outParam = "convertHisFeeWithInsuCode 异常:" + ex.Message;
  652. return -1;
  653. }
  654. }
  655. /// <summary>
  656. /// 插入医保费用
  657. /// </summary>
  658. /// <param name="jaTmp"></param>
  659. /// <param name="outParam"></param>
  660. /// <returns></returns>
  661. public int insertFee(JArray jaTmp,out string outParam)
  662. {
  663. try
  664. {
  665. outParam = "";
  666. string errMsg;
  667. dynamic joTmp = new JObject();
  668. joTmp = new JObject();
  669. joTmp.code = "09010046";
  670. joTmp.HospitalDr = Global.inf.hospitalDr;
  671. joTmp.admID = Global.pat.adm_Dr;
  672. joTmp.mdtrt_id = Global.pat.mdtrtID;
  673. joTmp.updateUserID = Global.user.ID;
  674. joTmp.Add("params", jaTmp);
  675. ;
  676. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "插入2301明细");
  677. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  678. {
  679. outParam = errMsg;
  680. return -1;
  681. }
  682. else
  683. {
  684. outParam = joRtn.ToString();
  685. return 0;
  686. }
  687. }
  688. catch (Exception ex)
  689. {
  690. outParam = "insertFee 异常:" + ex.Message;
  691. return -1;
  692. }
  693. }
  694. /// <summary>
  695. /// 更新医保费用
  696. /// </summary>
  697. /// <param name="jaTmp"></param>
  698. /// <param name="outParam"></param>
  699. /// <returns></returns>
  700. public int updateFee(JArray jaTmp, out string outParam)
  701. {
  702. try
  703. {
  704. outParam = "";
  705. string errMsg;
  706. dynamic joTmp = new JObject();
  707. joTmp.code = "09010047";
  708. JArray jaParams = jaTmp;
  709. joTmp.Add("params", jaParams);
  710. joTmp.HospitalDr = Global.inf.hospitalDr;
  711. joTmp.admID = Global.pat.adm_Dr;
  712. joTmp.mdtrt_id = Global.pat.mdtrtID;
  713. joTmp.updateUserID =Global.user.ID;
  714. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "更新2301明细");
  715. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  716. {
  717. outParam = errMsg;
  718. return -1;
  719. }
  720. else
  721. {
  722. outParam = joRtn.ToString();
  723. return 0;
  724. }
  725. }
  726. catch (Exception ex)
  727. {
  728. outParam = "updateFee 异常:" + ex.Message;
  729. return -1;
  730. }
  731. }
  732. /// <summary>
  733. /// 获取各项费用汇总
  734. /// </summary>
  735. /// <param name="outParam"></param>
  736. /// <returns></returns>
  737. public int getSumFee(out string outParam)
  738. {
  739. try
  740. {
  741. outParam = "";
  742. string errMsg;
  743. //调用IRIS获取医保各项金额
  744. dynamic joTmp = new JObject();
  745. joTmp = new JObject();
  746. joTmp.code = "09010049";
  747. joTmp.HospitalDr = Global.inf.hospitalDr;
  748. joTmp.admID = Global.pat.adm_Dr;
  749. joTmp.mdtrt_id = Global.pat.mdtrtID;
  750. joTmp.updateUserID = Global.user.ID; ;
  751. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "获取各项费用汇总"); ;
  752. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  753. {
  754. outParam = errMsg;
  755. return -1;
  756. }
  757. else
  758. {
  759. outParam = joRtn.ToString();
  760. return 0;
  761. }
  762. }
  763. catch (Exception ex)
  764. {
  765. outParam = "updateFee 异常:" + ex.Message;
  766. return -1;
  767. }
  768. }
  769. /// <summary>
  770. /// 转换结算信息
  771. /// </summary>
  772. /// <param name="pat"></param>
  773. /// <param name="joSettlement"></param>
  774. /// <param name="outParam"></param>
  775. /// <returns></returns>
  776. public int convertSettlementWithInsuCode(JObject joSettlement, out string outParam)
  777. {
  778. outParam = "";
  779. string errMsg;
  780. try
  781. {
  782. JObject joOutput = JObject.FromObject(joSettlement["output"]);
  783. //编码转换
  784. JObject joInpar = new JObject();
  785. joInpar.Add("hospitalDr", Global.inf.hospitalDr);
  786. joInpar.Add("interfaceDr", Global.inf.interfaceDr);
  787. joInpar.Add("output", joOutput);
  788. InvokeHelper invoker = new InvokeHelper();
  789. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010055", joInpar).ToString(), "结算信息编码转换");
  790. //if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  791. //{
  792. // outParam = errMsg;
  793. // return -1;
  794. //}
  795. //else
  796. {
  797. outParam = joRtn.ToString();
  798. return 0;
  799. }
  800. }
  801. catch (Exception ex)
  802. {
  803. outParam = "convertSettlementWithInsuCode 异常:" + ex.Message;
  804. return -1;
  805. }
  806. }
  807. /// <summary>
  808. /// 插入结算信息
  809. /// </summary>
  810. /// <param name="joSettlement"></param>
  811. /// <param name="outParam"></param>
  812. /// <returns></returns>
  813. public int saveSettlement(JObject joSettlement, out string outParam)
  814. {
  815. JObject joTmp = new JObject();
  816. string errMsg = "";
  817. try
  818. {
  819. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joSettlement, "output.setlinfo"));
  820. joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr);
  821. joSetlinfo.Add("admID", Global.pat.adm_Dr);
  822. joSetlinfo.Add("ValidFlag", 1);
  823. joSetlinfo.Add("BillType", 1);
  824. joSetlinfo.Add("updateUserID",Global.user.ID);
  825. joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  826. joSetlinfo.Add("billID", Global.pat.billID);
  827. joSetlinfo.Add("recordID", Global.pat.recordID);
  828. joSetlinfo.Add("msgid", Global.curEvt.msgid);
  829. joSetlinfo.Add("interfaceDr", Global.inf.interfaceDr);
  830. joSetlinfo.Add("admType", 2);
  831. joSetlinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
  832. ;
  833. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010051", joSetlinfo).ToString(), "插入结算信息");
  834. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  835. {
  836. outParam = errMsg;
  837. return -1;
  838. }
  839. else
  840. {
  841. outParam = joRtn.ToString();
  842. return 0;
  843. }
  844. }
  845. catch (Exception ex)
  846. {
  847. outParam = "插入结算信息:" + ex.Message;
  848. return -1;
  849. }
  850. }
  851. /// <summary>
  852. /// 保存结算信息
  853. /// </summary>
  854. /// <param name="joSettlement"></param>
  855. /// <param name="outParam"></param>
  856. /// <returns></returns>
  857. public int saveSettlementDetail(JObject joSettlement, out string outParam)
  858. {
  859. JObject joTmp = new JObject();
  860. string errMsg = "";
  861. try
  862. {
  863. JObject joSetlDetail = new JObject();
  864. joSetlDetail.Add("HospitalDr", Global.inf.hospitalDr);
  865. joSetlDetail.Add("InterfaceDr", Global.inf.interfaceDr);
  866. joSetlDetail.Add("MdtrtID", Global.pat.mdtrtID);
  867. joSetlDetail.Add("SettlementID", JsonHelper.getDestValue(joSettlement, "output.setlinfo.setl_id"));
  868. joSetlDetail.Add("AdmID", Global.pat.adm_Dr);
  869. joSetlDetail.Add("updateUserID", Global.user.ID);
  870. if (JsonHelper.getDestValue(joSettlement, "output.setldetail") == "")
  871. {
  872. outParam = "中心返回结算明细为空!";
  873. Global.writeLog(outParam);
  874. return 0;
  875. }
  876. JArray jaSetlDetail = JArray.Parse(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
  877. joSetlDetail.Add("setldetail", jaSetlDetail);
  878. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010056", joSetlDetail).ToString(), "插入结算明细信息");
  879. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  880. {
  881. outParam = errMsg;
  882. return -1;
  883. }
  884. else
  885. {
  886. outParam = joRtn.ToString();
  887. return 0;
  888. }
  889. }
  890. catch (Exception ex)
  891. {
  892. outParam = "插入结算信息:" + ex.Message;
  893. return -1;
  894. }
  895. }
  896. /// <summary>
  897. /// 取消结算
  898. /// </summary>
  899. /// <param name="outParam"></param>
  900. /// <returns></returns>
  901. public int cancleSettlement(out string outParam)
  902. {
  903. JObject joTmp = new JObject();
  904. string errMsg = "";
  905. try
  906. {
  907. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  908. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  909. joTmp.Add("admID", Global.pat.adm_Dr);
  910. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  911. joTmp.Add("setl_id", Global.pat.settlID);
  912. joTmp.Add("updateUserID", Global.user.ID);
  913. joTmp.Add("msgid", Global.curEvt.msgid);
  914. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010052", joTmp).ToString(), "取消结算信息");
  915. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  916. {
  917. outParam = errMsg;
  918. return -1;
  919. }
  920. else
  921. {
  922. outParam = joRtn.ToString();
  923. return 0;
  924. }
  925. }
  926. catch (Exception ex)
  927. {
  928. outParam = "取消结算信息:" + ex.Message;
  929. return -1;
  930. }
  931. }
  932. /// <summary>
  933. /// 查询登记信息
  934. /// </summary>
  935. /// <param name="type"></param>
  936. /// <param name="outParam"></param>
  937. /// <returns></returns>
  938. public int queryRegisterInfo(int type,out string outParam)
  939. {
  940. JObject joTmp = new JObject();
  941. string errMsg = "";
  942. try
  943. {
  944. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  945. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  946. joTmp.Add("admID", Global.pat.adm_Dr);
  947. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  948. joTmp.Add("type", type);
  949. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010050", joTmp).ToString(), "查询云平台患者登记信息");
  950. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  951. {
  952. outParam = errMsg;
  953. return -1;
  954. }
  955. else
  956. {
  957. outParam = joRtn.ToString();
  958. return 0;
  959. }
  960. }
  961. catch (Exception ex)
  962. {
  963. outParam = "查询云平台患者登记信息:" + ex.Message;
  964. return -1;
  965. }
  966. }
  967. /// <summary>
  968. /// 插入患者该次就诊参保信息
  969. /// </summary>
  970. /// <param name="joBaseInfo"></param>
  971. /// <param name="joInsuInfo"></param>
  972. /// <param name="joIdetInfo"></param>
  973. /// <param name="outParam"></param>
  974. /// <returns></returns>
  975. public int insertPatCurInsuInfo(JObject joBaseInfo, JObject joInsuInfo, JObject joIdetInfo, out string outParam)
  976. {
  977. JObject joTmp = new JObject();
  978. string errMsg = "";
  979. try
  980. {
  981. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  982. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  983. joTmp.Add("AdmID", Global.pat.adm_Dr);
  984. joTmp.Add("PatientName", Global.pat.name);
  985. joTmp.Add("PersonalNO", Global.pat.psn_no);
  986. joTmp.Add("MdtrtID", Global.pat.mdtrtID);
  987. joTmp.Add("PsnCertType", JsonHelper.getDestValue(joBaseInfo, "psn_cert_type"));
  988. joTmp.Add("PsnCertNO", JsonHelper.getDestValue(joBaseInfo, "certno"));
  989. joTmp.Add("Gend", JsonHelper.getDestValue(joBaseInfo, "gend"));
  990. joTmp.Add("Naty", JsonHelper.getDestValue(joBaseInfo, "naty"));
  991. joTmp.Add("Brdy", JsonHelper.getDestValue(joBaseInfo, "brdy"));
  992. joTmp.Add("Age", JsonHelper.getDestValue(joBaseInfo, "age"));
  993. joTmp.Add("Balc", JsonHelper.getDestValue(joInsuInfo, "balc"));
  994. joTmp.Add("Insutype", JsonHelper.getDestValue(joInsuInfo, "insutype"));
  995. joTmp.Add("PsnType", JsonHelper.getDestValue(joInsuInfo, "psn_type"));
  996. joTmp.Add("PsnInsuStas", JsonHelper.getDestValue(joInsuInfo, "psn_insu_stas"));
  997. joTmp.Add("PsnInsuDate", JsonHelper.getDestValue(joInsuInfo, "psn_insu_date"));
  998. joTmp.Add("PausInsuDate", JsonHelper.getDestValue(joInsuInfo, "paus_insu_date"));
  999. joTmp.Add("Cvlservflag", JsonHelper.getDestValue(joInsuInfo, "cvlserv_flag"));
  1000. joTmp.Add("insuplcAdmdvs", JsonHelper.getDestValue(joInsuInfo, "insuplc_admdvs"));
  1001. joTmp.Add("EmpName", JsonHelper.getDestValue(joInsuInfo, "emp_name"));
  1002. joTmp.Add("PsnIdettype", JsonHelper.getDestValue(joIdetInfo, "psn_idet_type"));
  1003. joTmp.Add("PsnTypeLv", JsonHelper.getDestValue(joIdetInfo, "psn_type_lv"));
  1004. joTmp.Add("IdetBegntime", JsonHelper.getDestValue(joIdetInfo, "begntime"));
  1005. joTmp.Add("IdetEndtime", JsonHelper.getDestValue(joIdetInfo, "endtime"));
  1006. joTmp.Add("updateUserID", Global.user.ID);
  1007. string serviceCode = "09010070";
  1008. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  1009. JObject joRtn = invoker.invokeInsuService(inpar, "插入患者该次就诊参保信息");
  1010. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1011. {
  1012. outParam = errMsg;
  1013. return -1;
  1014. }
  1015. else
  1016. {
  1017. outParam = joRtn.ToString();
  1018. return 0;
  1019. }
  1020. }
  1021. catch (Exception ex)
  1022. {
  1023. outParam = "医保平台插入患者该次就诊参保信息:" + ex.Message;
  1024. return -1;
  1025. }
  1026. }
  1027. }
  1028. }