IrisServices.cs 43 KB

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