IrisServices.cs 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407
  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="errMsg"></param>
  41. /// <returns></returns>
  42. public int GetHisPatBaseInfo(out string errMsg)
  43. {
  44. errMsg = "";
  45. try
  46. {
  47. dynamic joTmp = new JObject();
  48. joTmp.admID = Global.pat.adm_Dr;
  49. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110021", joTmp).ToString(), "获取HIS患者基本信息");
  50. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  51. {
  52. errMsg = "获取HIS患者基本信息失败,请联系管理员!" + errMsg;
  53. return -1;
  54. }
  55. else
  56. {
  57. errMsg = joRtn.ToString();
  58. return 0;
  59. }
  60. }
  61. catch (Exception ex)
  62. {
  63. errMsg = "GetHisPatBaseInfo异常:" + ex.Message;
  64. return -1;
  65. }
  66. }
  67. /// <summary>
  68. /// 获取诊断信息
  69. /// </summary>
  70. /// <param name="jaSession"></param>
  71. /// <param name="diagnoses"></param>
  72. /// <returns></returns>
  73. public int getPatDiagnoses(Patients pat, out string outParam)
  74. {
  75. outParam = "";
  76. string errMsg;
  77. try
  78. {
  79. JObject joTmp = new JObject();
  80. joTmp.Add("admID", pat.adm_Dr);
  81. joTmp.Add("psn_no", pat.psn_no);
  82. //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110001", joTmp).ToString(), "获取诊断信息");
  83. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110014", joTmp).ToString(), "获取诊断信息");
  84. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  85. {
  86. outParam = "获取诊断信息失败,请联系管理员!" + errMsg;
  87. return -1;
  88. }
  89. else
  90. {
  91. outParam = joRtn.ToString();
  92. return 0;
  93. }
  94. }
  95. catch (Exception ex)
  96. {
  97. outParam = "getPatDiagnoses 异常:" + ex.Message;
  98. return -1;
  99. }
  100. }
  101. public int getHISDir(JArray jaPagination, JArray jaParams, out JObject joRtn, out string outParam)
  102. {
  103. string errMsg;
  104. joRtn = new JObject();
  105. try
  106. {
  107. dynamic joTmp = new JObject();
  108. joTmp.pagination = jaPagination;
  109. joTmp.session = Global.curEvt.jaSession;
  110. joTmp.Add("params", jaParams);
  111. joTmp.code = "05111002";
  112. joRtn = invoker.invokeHISService(joTmp.ToString(), "查询HIS目录分页");
  113. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  114. {
  115. outParam = "查询HIS目录分页失败,请联系管理员!" + errMsg;
  116. return -1;
  117. }
  118. else
  119. {
  120. if (joRtn["result"]["Data"] == null)
  121. {
  122. outParam = "Data节点不存在";
  123. return -1;
  124. }
  125. outParam = "查询HIS目录分页成功";
  126. return 0;
  127. }
  128. }
  129. catch (Exception ex)
  130. {
  131. outParam = "查询HIS目录分页异常:!" + ex.Message;
  132. return -1;
  133. }
  134. }
  135. /// <summary>
  136. /// 返回登记信息给HIS
  137. /// </summary>
  138. /// <param name="joRegIn"></param>
  139. /// <param name="joRegOut"></param>
  140. /// <param name="outParam"></param>
  141. /// <returns></returns>
  142. public int returnRegisterInfo(JObject joRegIn, JObject joRegOut, out string outParam)
  143. {
  144. string errMsg;
  145. try
  146. {
  147. JObject joSendToIris2401 = joRegIn;
  148. joSendToIris2401.Add("admID", Global.pat.adm_Dr);
  149. joSendToIris2401.Add("mdtrt_id", JsonHelper.getDestValue(joRegOut, "output.result.mdtrt_id"));
  150. joSendToIris2401.Add("interfaceDr", Global.inf.interfaceDr);
  151. joSendToIris2401.Add("billID", Global.pat.billID);
  152. string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
  153. string inpar = JsonHelper.setIrisInpar(serviceCode, joRegIn).ToString();
  154. JObject joRtn = invoker.invokeHISService(inpar,serviceName);
  155. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  156. {
  157. outParam = "中心登记成功但云HIS平台保存失败,请联系管理员!" + errMsg;
  158. return -1;
  159. }
  160. else
  161. {
  162. outParam = "返回给HIS成功";
  163. return 0;
  164. }
  165. }
  166. catch (Exception ex )
  167. {
  168. outParam = "HIS保存登记信息出现异常:!" + ex.Message;
  169. return -1;
  170. }
  171. }
  172. /// <summary>
  173. /// 获取His费用
  174. /// </summary>
  175. /// <param name="pat"></param>
  176. /// <param name="errMsg"></param>
  177. /// <returns></returns>
  178. public int getHisFee(Patients pat, out string outParam)
  179. {
  180. outParam = "";
  181. string errMsg;
  182. try
  183. {
  184. dynamic joIrisParam = new JObject();
  185. JArray jaIrisParams = new JArray();
  186. JObject joIrisTmp = new JObject();
  187. joIrisParam.code = "05110003";
  188. joIrisParam.session = Global.curEvt.jaSession;
  189. joIrisTmp.Add("admID", pat.adm_Dr);
  190. joIrisTmp.Add("billID", pat.billID);
  191. joIrisTmp.Add("recordID", pat.recordID);
  192. jaIrisParams.Add(joIrisTmp);
  193. joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
  194. JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "获取HIS费用");
  195. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  196. {
  197. outParam = errMsg;
  198. return -1;
  199. }
  200. else
  201. {
  202. outParam = joRtn.ToString();
  203. return 0;
  204. }
  205. }
  206. catch (Exception ex)
  207. {
  208. outParam = "deleteFee 异常:" + ex.Message;
  209. return -1;
  210. }
  211. }
  212. /// <summary>
  213. /// 取消登记信息
  214. /// </summary>
  215. /// <param name="outParam"></param>
  216. /// <returns></returns>
  217. public int cancleRegister( out string outParam)
  218. {
  219. outParam = "";
  220. string errMsg;
  221. try
  222. {
  223. dynamic joTmp = new JObject();
  224. joTmp.Add("admID", Global.pat.adm_Dr);
  225. joTmp.Add("interfaceDr", Global.inf.interfaceDr);
  226. joTmp.Add("billID", Global.pat.billID);
  227. string serviceCode = "05110004";
  228. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  229. JObject joRtn = invoker.invokeHISService(inpar, "取消HIS登记信息");
  230. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  231. {
  232. outParam = joRtn.ToString();
  233. return -1;
  234. }
  235. else
  236. {
  237. outParam = joRtn.ToString();
  238. return 0;
  239. }
  240. }
  241. catch (Exception ex)
  242. {
  243. outParam = "取消登记异常" + ":" + ex.Message;
  244. return -1;
  245. }
  246. }
  247. /// <summary>
  248. /// HIS预结算
  249. /// </summary>
  250. /// <param name="joParam"></param>
  251. /// <param name="joSetlinfo"></param>
  252. /// <param name="outParam"></param>
  253. /// <returns></returns>
  254. public int preSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  255. {
  256. string errMsg;
  257. try
  258. {
  259. dynamic joTmp = new JObject();
  260. joTmp = joParam.DeepClone();
  261. joTmp.insuPayInfo = joSetlinfo;
  262. joTmp.updateUserID = Global.user.ID;
  263. joTmp.middleSettleFlag = "";
  264. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110011", joTmp).ToString(), "返回2304结算结果给HIS");
  265. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  266. {
  267. outParam = "返回2303结算结果给HIS失败,请联系管理员!" + errMsg;
  268. return -1;
  269. }
  270. else
  271. {
  272. outParam = joRtn.ToString();
  273. return 0;
  274. }
  275. }
  276. catch (Exception ex)
  277. {
  278. outParam = "返回2303结算结果给HIS出现异常:!" + ex.Message;
  279. return -1;
  280. }
  281. }
  282. /// <summary>
  283. /// 返回住院结算信息给HIS
  284. /// </summary>
  285. /// <param name="joParam"></param>
  286. /// <param name="joSetlinfo"></param>
  287. /// <param name="outParam"></param>
  288. /// <returns></returns>
  289. public int returnInpatSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  290. {
  291. string errMsg;
  292. try
  293. {
  294. dynamic joTmp = new JObject();
  295. joTmp = joParam.DeepClone();
  296. joTmp.insuPayInfo = joSetlinfo;
  297. joTmp.updateUserID = Global.user.ID;
  298. joTmp.middleSettleFlag = "";
  299. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110007", joTmp).ToString(), "返回2304结算结果给HIS");
  300. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  301. {
  302. outParam = "返回2304结算结果给HIS失败,请联系管理员!" + errMsg;
  303. return -1;
  304. }
  305. else
  306. {
  307. outParam = joRtn.ToString();
  308. return 0;
  309. }
  310. }
  311. catch (Exception ex)
  312. {
  313. outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
  314. return -1;
  315. }
  316. }
  317. /// <summary>
  318. /// 返回门诊结算信息给HIS
  319. /// </summary>
  320. /// <param name="joSetlInpar"></param>
  321. /// <param name="joSetlinfo"></param>
  322. /// <param name="outParam"></param>
  323. /// <returns></returns>
  324. public int returnOutpatSettlementInfo(JObject joSetlInpar, JObject joSetlinfo, out string outParam)
  325. {
  326. string errMsg;
  327. try
  328. {
  329. dynamic joTmp = new JObject();
  330. joTmp.settleInfo = joSetlinfo;
  331. joTmp.updateUserID = Global.user.ID;
  332. joTmp.regInfo = joSetlInpar;
  333. joTmp.middleSettleFlag = "";
  334. joTmp.interfaceDr = Global.inf.interfaceDr;
  335. dynamic joHisInfo = new JObject();
  336. joHisInfo.admID = Global.pat.adm_Dr;
  337. joHisInfo.billID = Global.pat.billID;
  338. joHisInfo.recordID = Global.pat.recordID;
  339. joTmp.hisInfo = joHisInfo;
  340. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110009", joTmp).ToString(), "返回2207结算结果给HIS");
  341. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  342. {
  343. outParam = "返回2207结算结果给HIS失败,请联系管理员!" + errMsg;
  344. return -1;
  345. }
  346. else
  347. {
  348. outParam = joRtn.ToString();
  349. return 0;
  350. }
  351. }
  352. catch (Exception ex)
  353. {
  354. outParam = "返回22207结算结果给HIS出现异常:!" + ex.Message;
  355. return -1;
  356. }
  357. }
  358. /// <summary>
  359. /// 取消结算信息
  360. /// </summary>
  361. /// <param name="joParam"></param>
  362. /// <param name="outParam"></param>
  363. /// <returns></returns>
  364. public int cancleSettlementInfo(JObject joParam, out string outParam)
  365. {
  366. string errMsg;
  367. try
  368. {
  369. dynamic joTmp = new JObject();
  370. joTmp = joParam.DeepClone();
  371. joTmp.updateUserID = Global.user.ID;
  372. joTmp.middleSettleFlag = "";
  373. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110008", joTmp).ToString(), "取消HIS医保结算信息");
  374. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  375. {
  376. outParam = "取消HIS医保结算信息失败,请联系管理员!" + errMsg;
  377. return -1;
  378. }
  379. else
  380. {
  381. outParam = "取消HIS医保结算信息成功";
  382. return 0;
  383. }
  384. }
  385. catch (Exception ex)
  386. {
  387. outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
  388. return -1;
  389. }
  390. }
  391. }
  392. class MIIrisServices
  393. {
  394. private InvokeHelper invoker = new InvokeHelper();
  395. /// <summary>
  396. /// 获取医院信息
  397. /// </summary>
  398. /// <returns></returns>
  399. public JObject getHospital()
  400. {
  401. dynamic joParam = new JObject();
  402. joParam.hospID = "";
  403. //joParam.logonHospID = GlobalVariables.hospitalDr;
  404. joParam.logonHospID = "";
  405. //JObject joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010039", joParam);
  406. JObject joInparam = JsonHelper.setIrisInpar("05111001", joParam);
  407. InvokeHelper invoker = new InvokeHelper();
  408. return invoker.invokeHISService(joInparam.ToString(), "获取医院列表");
  409. }
  410. /// <summary>
  411. /// 获取接口信息
  412. /// </summary>
  413. /// <returns></returns>
  414. public JObject getInterface()
  415. {
  416. dynamic joParam = new JObject();
  417. joParam.HospitalDr = Global.inf.hospitalDr;
  418. joParam.InterfaceID = "";
  419. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  420. InvokeHelper invoker = new InvokeHelper();
  421. return invoker.invokeInsuService(joInparam.ToString(), "获取接口信息");
  422. }
  423. /// <summary>
  424. /// 判断是否签到过,如果未签到,返回false,如果签到则返回ture,同时返回签到号
  425. /// </summary>
  426. /// <param name="signno"></param>
  427. /// <returns></returns>
  428. public bool isSigned(ref string signno)
  429. {
  430. JObject joIn = new JObject();
  431. joIn.Add("operatorNO", Global.user.ID.ToUpper());
  432. joIn.Add("operatorName", Global.user.name);
  433. joIn.Add("mac", Global.curEvt.mac);
  434. joIn.Add("ip", Global.curEvt.ip);
  435. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  436. joIn.Add("interfaceDr", Global.inf.interfaceDr);
  437. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  438. string data = JsonHelper.setIrisInpar("09010064", joIn).ToString();
  439. JObject joRtn = invoker.invokeInsuService(data, "查询签到信息");
  440. string errMsg = "";
  441. if ( JsonHelper.parseIrisRtnValue(joRtn,out errMsg)!= 0)
  442. {
  443. signno = errMsg;
  444. return false;
  445. }
  446. else
  447. {
  448. signno = JsonHelper.getDestValue(joRtn, "result.SignNo");
  449. return true;
  450. }
  451. }
  452. /// <summary>
  453. ///保存签到信息
  454. /// </summary>
  455. /// <param name="signno"></param>
  456. /// <returns></returns>
  457. public int saveSignRecord( string signno,out string errMsg)
  458. {
  459. if (signno == "")
  460. {
  461. errMsg = "signno不能为空!";
  462. return -1;
  463. }
  464. errMsg = ""; ;
  465. JObject joIn = new JObject();
  466. joIn.Add("operatorNO", Global.user.ID);
  467. joIn.Add("operatorName", Global.user.name);
  468. joIn.Add("mac", Global.curEvt.mac);
  469. joIn.Add("ip", Global.curEvt.ip);
  470. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  471. joIn.Add("interfaceDr", Global.inf.interfaceDr);
  472. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  473. joIn.Add("signNo", signno);
  474. joIn.Add("createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  475. joIn.Add("division", Global.inf.areaCode);
  476. string data = JsonHelper.setIrisInpar("09010065", joIn).ToString();
  477. JObject joRtn = invoker.invokeInsuService(data, "插入签到信息");
  478. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  479. {
  480. return -1;
  481. }
  482. else
  483. {
  484. return 0;
  485. }
  486. }
  487. /// <summary>
  488. /// 保存住院登记信息
  489. /// </summary>
  490. /// <param name="joRegIn"></param>
  491. /// <param name="joRegOut"></param>
  492. /// <param name="outParam"></param>
  493. /// <returns></returns>
  494. public int saveInpatRegisterInfo(JObject joRegIn,JObject joRegOut,out string outParam)
  495. {
  496. //插入云医保平台
  497. JObject joTmp = new JObject();
  498. string errMsg = "";
  499. try
  500. {
  501. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  502. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  503. joTmp.Add("AdmID", Global.pat.adm_Dr);
  504. joTmp.Add("PatientName", Global.pat.name);
  505. joTmp.Add("PersonalNO", Global.pat.psn_no);
  506. joTmp.Add("InsuRegID", JsonHelper.getDestValue(joRegOut, "output.result.mdtrt_id"));
  507. joTmp.Add("RegDate", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.begntime"));
  508. joTmp.Add("InsuType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.insutype"));
  509. joTmp.Add("CertificateType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.mdtrt_cert_type"));
  510. joTmp.Add("CertificateNO", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.mdtrt_cert_no"));
  511. joTmp.Add("MedicalType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.med_type"));
  512. joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.atddr_no"));
  513. joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.chfpdr_name"));
  514. joTmp.Add("AdmitDiagDesc", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_diag_dscr"));
  515. joTmp.Add("AdmitDepartmentCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_dept_codg"));
  516. joTmp.Add("AdmitDepartmentName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_dept_name"));
  517. joTmp.Add("AdmBed", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_bed"));
  518. joTmp.Add("MainDiagCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dscg_maindiag_code"));
  519. joTmp.Add("MainDiagName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dscg_maindiag_name"));
  520. joTmp.Add("MainConditionDdesc", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.main_cond_dscr"));
  521. joTmp.Add("DiseasecCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_codg"));
  522. joTmp.Add("DiseasecName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_name"));
  523. joTmp.Add("OperationCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.oprn_oprt_code"));
  524. joTmp.Add("OperationName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.oprn_oprt_name"));
  525. joTmp.Add("DiseasecTypeCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_type_code"));
  526. joTmp.Add("InsuranceAreaCode", Global.inf.areaCode);
  527. joTmp.Add("TreatmentAreaCode", Global.pat.insuplc_admdvs);
  528. joTmp.Add("RegState", JsonHelper.getDestValue(joRegOut, "regstate"));
  529. joTmp.Add("ValidFlag", JsonHelper.getDestValue(joRegOut, "validflag"));
  530. joTmp.Add("Type", JsonHelper.getDestValue(joRegOut, "type"));
  531. joTmp.Add("updateUserID", Global.user.ID);
  532. joTmp.Add("msgid", Global.curEvt.msgid);
  533. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  534. joTmp.Add("ConerName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.coner_name"));
  535. joTmp.Add("Tel", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.tel"));
  536. string serviceCode = "09010044";
  537. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  538. JObject joRtn = invoker.invokeInsuService(inpar, "新增住院登记信息");
  539. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  540. {
  541. outParam = joRtn.ToString();
  542. return -1;
  543. }
  544. else
  545. {
  546. outParam = joRtn.ToString();
  547. return 0;
  548. }
  549. }
  550. catch (Exception ex)
  551. {
  552. outParam = "保存住院登记信息异常:" + ex.Message;
  553. return -1;
  554. }
  555. }
  556. /// <summary>
  557. /// 保存门诊登记信息
  558. /// </summary>
  559. /// <param name="jo2201Inpar"></param>
  560. /// <param name="jo2201Rtn"></param>
  561. /// <param name="jo2203Inpar"></param>
  562. /// <param name="outParam"></param>
  563. /// <returns></returns>
  564. public int saveOutpatRegisterInfo(JObject jo2201Inpar, JObject jo2201Rtn,JObject jo2203Inpar, out string outParam)
  565. {
  566. //插入云医保平台
  567. JObject joTmp = new JObject();
  568. string errMsg = "";
  569. try
  570. {
  571. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  572. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  573. joTmp.Add("AdmID", Global.pat.adm_Dr);
  574. joTmp.Add("PatientName", Global.pat.name);
  575. joTmp.Add("PersonalNO", Global.pat.psn_no);
  576. joTmp.Add("InsuRegID", JsonHelper.getDestValue(jo2201Rtn, "output.data.mdtrt_id"));
  577. joTmp.Add("RegDate", JsonHelper.getDestValue(jo2201Inpar, "input.data.begntime"));
  578. joTmp.Add("InsuType", JsonHelper.getDestValue(jo2201Inpar, "input.data.insutype"));
  579. joTmp.Add("CertificateType", JsonHelper.getDestValue(jo2201Inpar, "input.data.mdtrt_cert_type"));
  580. joTmp.Add("CertificateNO", JsonHelper.getDestValue(jo2201Inpar, "input.data.mdtrt_cert_no"));
  581. joTmp.Add("MedicalType", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.med_type"));
  582. joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(jo2201Inpar, "input.data.atddr_no"));
  583. joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(jo2201Inpar, "input.data.dr_name"));
  584. joTmp.Add("AdmitDiagDesc", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.main_cond_dscr"));
  585. joTmp.Add("AdmitDepartmentCode", JsonHelper.getDestValue(jo2201Inpar, "input.data.dept_code"));
  586. joTmp.Add("AdmitDepartmentName", JsonHelper.getDestValue(jo2201Inpar, "input.data.dept_name"));
  587. joTmp.Add("AdmBed", "");
  588. joTmp.Add("MainDiagCode", " ");
  589. joTmp.Add("MainDiagName", " ");
  590. joTmp.Add("MainConditionDdesc", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.main_cond_dscr"));
  591. joTmp.Add("DiseasecCode", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.dise_codg"));
  592. joTmp.Add("DiseasecName", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.dise_name"));
  593. joTmp.Add("OperationCode", "");
  594. joTmp.Add("OperationName", "");
  595. joTmp.Add("DiseasecTypeCode", "");
  596. joTmp.Add("InsuranceAreaCode", Global.inf.areaCode);
  597. joTmp.Add("TreatmentAreaCode", Global.pat.insuplc_admdvs);
  598. joTmp.Add("RegState", JsonHelper.getDestValue(jo2201Rtn, "regstate"));
  599. joTmp.Add("ValidFlag", JsonHelper.getDestValue(jo2201Rtn, "validflag"));
  600. joTmp.Add("Type", JsonHelper.getDestValue(jo2201Rtn, "type"));
  601. joTmp.Add("updateUserID", Global.user.ID);
  602. joTmp.Add("msgid", Global.curEvt.msgid);
  603. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  604. string serviceCode = "09010044";
  605. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  606. JObject joRtn = invoker.invokeInsuService(inpar, "新增门诊登记信息");
  607. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  608. {
  609. outParam = joRtn.ToString();
  610. return -1;
  611. }
  612. else
  613. {
  614. outParam = joRtn.ToString();
  615. return 0;
  616. }
  617. }
  618. catch (Exception ex)
  619. {
  620. outParam = "保存门诊登记信息异常:" + ex.Message;
  621. return -1;
  622. }
  623. }
  624. /// <summary>
  625. /// 取消登记
  626. /// </summary>
  627. /// <param name="type"></param>
  628. /// <param name="outParam"></param>
  629. /// <returns></returns>
  630. public int cancleRegister(int type,out string outParam)
  631. {
  632. outParam = "";
  633. string errMsg;
  634. try
  635. {
  636. dynamic joTmp = new JObject();
  637. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  638. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  639. joTmp.Add("AdmID", Global.pat.adm_Dr);
  640. joTmp.Add("PersonalNO",Global.pat.psn_no);
  641. joTmp.Add("InsuRegID", Global.pat.mdtrtID);
  642. joTmp.Add("CancleRegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  643. joTmp.Add("Type", type);
  644. joTmp.Add("ValidFlag", -1);
  645. joTmp.Add("updateUserID", Global.user.ID);
  646. string serviceCode = "09010044";
  647. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  648. JObject joRtn = invoker.invokeInsuService(inpar, "取消云医保平台登记信息");
  649. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  650. {
  651. outParam = "退结算失败,请根据输入条件检查是否存在该笔数据!" + errMsg;
  652. return -1;
  653. }
  654. else
  655. {
  656. outParam = joRtn.ToString();
  657. return 0;
  658. }
  659. }
  660. catch (Exception ex)
  661. {
  662. outParam = "取消登记异常" + ":" + ex.Message;
  663. return -1;
  664. }
  665. }
  666. /// <summary>
  667. /// 删除费用明细
  668. /// </summary>
  669. /// <param name="pat"></param>
  670. /// <param name="errMsg"></param>
  671. /// <returns></returns>
  672. public int deleteFee(out string errMsg)
  673. {
  674. try
  675. {
  676. dynamic joTmp = new JObject();
  677. joTmp = new JObject();
  678. joTmp.code = "09010048";
  679. joTmp.HospitalDr = Global.inf.hospitalDr;
  680. joTmp.admID = Global.pat.adm_Dr;
  681. joTmp.mdtrt_id = Global.pat.mdtrtID;
  682. joTmp.updateUserID = Global.user.ID;
  683. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "删除2301明细");
  684. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  685. {
  686. return -1;
  687. }
  688. else
  689. {
  690. return 0;
  691. }
  692. }
  693. catch (Exception ex)
  694. {
  695. errMsg = "deleteFee 异常:" + ex.Message;
  696. return -1;
  697. }
  698. }
  699. /// <summary>
  700. /// 根据HIS的费用明细获取对照关系
  701. /// </summary>
  702. /// <returns></returns>
  703. public int convertHisFeeWithInsuCode( JObject joHisFee, out string outParam)
  704. {
  705. outParam = "";
  706. string errMsg;
  707. try
  708. {
  709. JArray jaFee = JArray.FromObject(joHisFee["result"]);
  710. JObject joTmp = JsonHelper.setIrisInpar("09010045", jaFee);
  711. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  712. joTmp.Add("med_type", Global.pat.medType);
  713. joTmp.Add("psn_no", Global.pat.psn_no);
  714. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  715. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  716. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "根据HIS的费用明细获取对照关系");
  717. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  718. {
  719. outParam = errMsg;
  720. return -1;
  721. }
  722. else
  723. {
  724. outParam = joRtn.ToString();
  725. return 0;
  726. }
  727. }
  728. catch (Exception ex)
  729. {
  730. outParam = "convertHisFeeWithInsuCode 异常:" + ex.Message;
  731. return -1;
  732. }
  733. }
  734. /// <summary>
  735. /// 插入医保费用
  736. /// </summary>
  737. /// <param name="jaTmp"></param>
  738. /// <param name="outParam"></param>
  739. /// <returns></returns>
  740. public int insertFee(JArray jaTmp,out string outParam)
  741. {
  742. try
  743. {
  744. outParam = "";
  745. string errMsg;
  746. dynamic joTmp = new JObject();
  747. joTmp = new JObject();
  748. joTmp.code = "09010046";
  749. joTmp.HospitalDr = Global.inf.hospitalDr;
  750. joTmp.admID = Global.pat.adm_Dr;
  751. joTmp.mdtrt_id = Global.pat.mdtrtID;
  752. joTmp.updateUserID = Global.user.ID;
  753. joTmp.Add("params", jaTmp);
  754. ;
  755. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "插入2301明细");
  756. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  757. {
  758. outParam = errMsg;
  759. return -1;
  760. }
  761. else
  762. {
  763. outParam = joRtn.ToString();
  764. return 0;
  765. }
  766. }
  767. catch (Exception ex)
  768. {
  769. outParam = "insertFee 异常:" + ex.Message;
  770. return -1;
  771. }
  772. }
  773. /// <summary>
  774. /// 更新医保费用
  775. /// </summary>
  776. /// <param name="jaTmp"></param>
  777. /// <param name="outParam"></param>
  778. /// <returns></returns>
  779. public int updateFee(JArray jaTmp, out string outParam)
  780. {
  781. try
  782. {
  783. outParam = "";
  784. string errMsg;
  785. dynamic joTmp = new JObject();
  786. joTmp.code = "09010047";
  787. JArray jaParams = jaTmp;
  788. joTmp.Add("params", jaParams);
  789. joTmp.HospitalDr = Global.inf.hospitalDr;
  790. joTmp.admID = Global.pat.adm_Dr;
  791. joTmp.mdtrt_id = Global.pat.mdtrtID;
  792. joTmp.updateUserID =Global.user.ID;
  793. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "更新2301明细");
  794. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  795. {
  796. outParam = errMsg;
  797. return -1;
  798. }
  799. else
  800. {
  801. outParam = joRtn.ToString();
  802. return 0;
  803. }
  804. }
  805. catch (Exception ex)
  806. {
  807. outParam = "updateFee 异常:" + ex.Message;
  808. return -1;
  809. }
  810. }
  811. /// <summary>
  812. /// 获取各项费用汇总
  813. /// </summary>
  814. /// <param name="outParam"></param>
  815. /// <returns></returns>
  816. public int getSumFee(out string outParam)
  817. {
  818. try
  819. {
  820. outParam = "";
  821. string errMsg;
  822. //调用IRIS获取医保各项金额
  823. dynamic joTmp = new JObject();
  824. joTmp = new JObject();
  825. joTmp.code = "09010049";
  826. joTmp.HospitalDr = Global.inf.hospitalDr;
  827. joTmp.admID = Global.pat.adm_Dr;
  828. joTmp.mdtrt_id = Global.pat.mdtrtID;
  829. joTmp.updateUserID = Global.user.ID; ;
  830. JObject joRtn = invoker.invokeInsuService(joTmp.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 = "updateFee 异常:" + ex.Message;
  845. return -1;
  846. }
  847. }
  848. /// <summary>
  849. /// 转换结算信息
  850. /// </summary>
  851. /// <param name="pat"></param>
  852. /// <param name="joSettlement"></param>
  853. /// <param name="outParam"></param>
  854. /// <returns></returns>
  855. public int convertSettlementWithInsuCode(JObject joSettlement, out string outParam)
  856. {
  857. outParam = "";
  858. string errMsg;
  859. try
  860. {
  861. JObject joOutput = JObject.FromObject(joSettlement["output"]);
  862. //编码转换
  863. JObject joInpar = new JObject();
  864. joInpar.Add("hospitalDr", Global.inf.hospitalDr);
  865. joInpar.Add("interfaceDr", Global.inf.interfaceDr);
  866. joInpar.Add("output", joOutput);
  867. InvokeHelper invoker = new InvokeHelper();
  868. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010055", joInpar).ToString(), "结算信息编码转换");
  869. //if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  870. //{
  871. // outParam = errMsg;
  872. // return -1;
  873. //}
  874. //else
  875. {
  876. outParam = joRtn.ToString();
  877. return 0;
  878. }
  879. }
  880. catch (Exception ex)
  881. {
  882. outParam = "convertSettlementWithInsuCode 异常:" + ex.Message;
  883. return -1;
  884. }
  885. }
  886. /// <summary>
  887. /// 插入结算信息
  888. /// </summary>
  889. /// <param name="joSettlement"></param>
  890. /// <param name="outParam"></param>
  891. /// <returns></returns>
  892. public int saveSettlement(JObject joSettlement, out string outParam)
  893. {
  894. JObject joTmp = new JObject();
  895. string errMsg = "";
  896. try
  897. {
  898. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joSettlement, "output.setlinfo"));
  899. joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr);
  900. joSetlinfo.Add("admID", Global.pat.adm_Dr);
  901. joSetlinfo.Add("ValidFlag", 1);
  902. joSetlinfo.Add("BillType", 1);
  903. joSetlinfo.Add("updateUserID",Global.user.ID);
  904. joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  905. joSetlinfo.Add("billID", Global.pat.billID);
  906. joSetlinfo.Add("recordID", Global.pat.recordID);
  907. joSetlinfo.Add("msgid", Global.curEvt.msgid);
  908. joSetlinfo.Add("interfaceDr", Global.inf.interfaceDr);
  909. joSetlinfo.Add("admType", Global.pat.admType);
  910. joSetlinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
  911. ;
  912. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010051", joSetlinfo).ToString(), "插入结算信息");
  913. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  914. {
  915. outParam = errMsg;
  916. return -1;
  917. }
  918. else
  919. {
  920. outParam = joRtn.ToString();
  921. return 0;
  922. }
  923. }
  924. catch (Exception ex)
  925. {
  926. outParam = "插入结算信息:" + ex.Message;
  927. return -1;
  928. }
  929. }
  930. /// <summary>
  931. /// 保存结算信息
  932. /// </summary>
  933. /// <param name="joSettlement"></param>
  934. /// <param name="outParam"></param>
  935. /// <returns></returns>
  936. public int saveSettlementDetail(JObject joSettlement, out string outParam)
  937. {
  938. JObject joTmp = new JObject();
  939. string errMsg = "";
  940. try
  941. {
  942. JObject joSetlDetail = new JObject();
  943. joSetlDetail.Add("HospitalDr", Global.inf.hospitalDr);
  944. joSetlDetail.Add("InterfaceDr", Global.inf.interfaceDr);
  945. joSetlDetail.Add("MdtrtID", Global.pat.mdtrtID);
  946. joSetlDetail.Add("SettlementID", JsonHelper.getDestValue(joSettlement, "output.setlinfo.setl_id"));
  947. joSetlDetail.Add("AdmID", Global.pat.adm_Dr);
  948. joSetlDetail.Add("updateUserID", Global.user.ID);
  949. if (JsonHelper.getDestValue(joSettlement, "output.setldetail") == "")
  950. {
  951. outParam = "中心返回结算明细为空!";
  952. Global.writeLog(outParam);
  953. return 0;
  954. }
  955. JArray jaSetlDetail = JArray.Parse(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
  956. joSetlDetail.Add("setldetail", jaSetlDetail);
  957. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010056", joSetlDetail).ToString(), "插入结算明细信息");
  958. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  959. {
  960. outParam = errMsg;
  961. return -1;
  962. }
  963. else
  964. {
  965. outParam = joRtn.ToString();
  966. return 0;
  967. }
  968. }
  969. catch (Exception ex)
  970. {
  971. outParam = "插入结算信息:" + ex.Message;
  972. return -1;
  973. }
  974. }
  975. /// <summary>
  976. /// 取消结算
  977. /// </summary>
  978. /// <param name="outParam"></param>
  979. /// <returns></returns>
  980. public int cancleSettlement(out string outParam)
  981. {
  982. JObject joTmp = new JObject();
  983. string errMsg = "";
  984. try
  985. {
  986. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  987. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  988. joTmp.Add("admID", Global.pat.adm_Dr);
  989. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  990. joTmp.Add("setl_id", Global.pat.settlID);
  991. joTmp.Add("updateUserID", Global.user.ID);
  992. joTmp.Add("msgid", Global.curEvt.msgid);
  993. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010052", joTmp).ToString(), "取消结算信息");
  994. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  995. {
  996. outParam = errMsg;
  997. return -1;
  998. }
  999. else
  1000. {
  1001. outParam = joRtn.ToString();
  1002. return 0;
  1003. }
  1004. }
  1005. catch (Exception ex)
  1006. {
  1007. outParam = "取消结算信息:" + ex.Message;
  1008. return -1;
  1009. }
  1010. }
  1011. /// <summary>
  1012. /// 查询登记信息
  1013. /// </summary>
  1014. /// <param name="type"></param>
  1015. /// <param name="outParam"></param>
  1016. /// <returns></returns>
  1017. public int queryRegisterInfo(int type,out string outParam)
  1018. {
  1019. JObject joTmp = new JObject();
  1020. string errMsg = "";
  1021. try
  1022. {
  1023. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1024. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1025. joTmp.Add("admID", Global.pat.adm_Dr);
  1026. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  1027. joTmp.Add("type", type);
  1028. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010050", joTmp).ToString(), "查询云平台患者登记信息");
  1029. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1030. {
  1031. outParam = errMsg;
  1032. return -1;
  1033. }
  1034. else
  1035. {
  1036. outParam = joRtn.ToString();
  1037. return 0;
  1038. }
  1039. }
  1040. catch (Exception ex)
  1041. {
  1042. outParam = "查询云平台患者登记信息:" + ex.Message;
  1043. return -1;
  1044. }
  1045. }
  1046. /// <summary>
  1047. /// 插入患者该次就诊参保信息
  1048. /// </summary>
  1049. /// <param name="joBaseInfo"></param>
  1050. /// <param name="joInsuInfo"></param>
  1051. /// <param name="joIdetInfo"></param>
  1052. /// <param name="outParam"></param>
  1053. /// <returns></returns>
  1054. public int insertPatCurInsuInfo(JObject joBaseInfo, JObject joInsuInfo, JObject joIdetInfo, out string outParam)
  1055. {
  1056. JObject joTmp = new JObject();
  1057. string errMsg = "";
  1058. try
  1059. {
  1060. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1061. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1062. joTmp.Add("AdmID", Global.pat.adm_Dr);
  1063. joTmp.Add("PatientName", Global.pat.name);
  1064. joTmp.Add("PersonalNO", Global.pat.psn_no);
  1065. joTmp.Add("MdtrtID", Global.pat.mdtrtID);
  1066. joTmp.Add("PsnCertType", JsonHelper.getDestValue(joBaseInfo, "psn_cert_type"));
  1067. joTmp.Add("PsnCertNO", JsonHelper.getDestValue(joBaseInfo, "certno"));
  1068. joTmp.Add("Gend", JsonHelper.getDestValue(joBaseInfo, "gend"));
  1069. joTmp.Add("Naty", JsonHelper.getDestValue(joBaseInfo, "naty"));
  1070. joTmp.Add("Brdy", JsonHelper.getDestValue(joBaseInfo, "brdy"));
  1071. joTmp.Add("Age", JsonHelper.getDestValue(joBaseInfo, "age"));
  1072. joTmp.Add("Balc", JsonHelper.getDestValue(joInsuInfo, "balc"));
  1073. joTmp.Add("Insutype", JsonHelper.getDestValue(joInsuInfo, "insutype"));
  1074. joTmp.Add("PsnType", JsonHelper.getDestValue(joInsuInfo, "psn_type"));
  1075. joTmp.Add("PsnInsuStas", JsonHelper.getDestValue(joInsuInfo, "psn_insu_stas"));
  1076. joTmp.Add("PsnInsuDate", JsonHelper.getDestValue(joInsuInfo, "psn_insu_date"));
  1077. joTmp.Add("PausInsuDate", JsonHelper.getDestValue(joInsuInfo, "paus_insu_date"));
  1078. joTmp.Add("Cvlservflag", JsonHelper.getDestValue(joInsuInfo, "cvlserv_flag"));
  1079. joTmp.Add("insuplcAdmdvs", JsonHelper.getDestValue(joInsuInfo, "insuplc_admdvs"));
  1080. joTmp.Add("EmpName", JsonHelper.getDestValue(joInsuInfo, "emp_name"));
  1081. joTmp.Add("PsnIdettype", JsonHelper.getDestValue(joIdetInfo, "psn_idet_type"));
  1082. joTmp.Add("PsnTypeLv", JsonHelper.getDestValue(joIdetInfo, "psn_type_lv"));
  1083. joTmp.Add("IdetBegntime", JsonHelper.getDestValue(joIdetInfo, "begntime"));
  1084. joTmp.Add("IdetEndtime", JsonHelper.getDestValue(joIdetInfo, "endtime"));
  1085. joTmp.Add("updateUserID", Global.user.ID);
  1086. string serviceCode = "09010070";
  1087. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  1088. JObject joRtn = invoker.invokeInsuService(inpar, "插入患者该次就诊参保信息");
  1089. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1090. {
  1091. outParam = errMsg;
  1092. return -1;
  1093. }
  1094. else
  1095. {
  1096. outParam = joRtn.ToString();
  1097. return 0;
  1098. }
  1099. }
  1100. catch (Exception ex)
  1101. {
  1102. outParam = "医保平台插入患者该次就诊参保信息:" + ex.Message;
  1103. return -1;
  1104. }
  1105. }
  1106. /// <summary>
  1107. /// 获取指定字典信息
  1108. /// </summary>
  1109. /// <returns></returns>
  1110. public JObject getSpecDictionary(string interfaceDr, string dicType)
  1111. {
  1112. string sqlStr = " select '' Code,'' Name,'' PinyinSearchCode union all ";
  1113. sqlStr = sqlStr + " SELECT B.Code,B.Descripts AS Name,'' PinyinSearchCode FROM HB_Dictionary A JOIN HB_DictionaryDataDetail B ON A.ID = B.HBDictionary_Dr WHERE A.Interface_Dr= " + interfaceDr + " And A.InsuCode = '" + dicType + "' ";
  1114. JObject joSqlstr = new JObject();
  1115. joSqlstr.Add("sqlStr", sqlStr);
  1116. JArray jaParam = new JArray();
  1117. jaParam.Add(joSqlstr);
  1118. JObject joSettlQuery = new JObject();
  1119. joSettlQuery.Add("params", jaParam);
  1120. joSettlQuery.Add("code", "09010063");
  1121. InvokeHelper invoker = new InvokeHelper();
  1122. return invoker.invokeInsuService(joSettlQuery.ToString(), "查询指定字典信息");
  1123. }
  1124. #region 目录下载及对照
  1125. /// <summary>
  1126. /// 通过分页的方式查询医保目录
  1127. /// </summary>
  1128. /// <param name="currentPage"></param>
  1129. /// <param name="pageSize"></param>
  1130. /// <param name="irisCode"></param>
  1131. /// <param name="directoryType"></param>
  1132. public JObject getMIDirectoryByPagination(JObject jo)
  1133. {
  1134. string currentPage;
  1135. string pageSize;
  1136. string serviceCode;
  1137. string directoryType;
  1138. string directoryCode;
  1139. string directoryName;
  1140. string directoryDr;
  1141. string approvalNO;
  1142. try
  1143. {
  1144. currentPage = JsonHelper.getDestValue(jo, "currentPage");
  1145. pageSize = JsonHelper.getDestValue(jo, "pageSize");
  1146. serviceCode = JsonHelper.getDestValue(jo, "serviceCode");
  1147. directoryType = JsonHelper.getDestValue(jo, "directoryType");
  1148. directoryCode = JsonHelper.getDestValue(jo, "directoryCode");
  1149. directoryName = JsonHelper.getDestValue(jo, "directoryName");
  1150. directoryDr = JsonHelper.getDestValue(jo, "directoryDr");
  1151. approvalNO = JsonHelper.getDestValue(jo, "approvalNO");
  1152. InvokeHelper invoker = new InvokeHelper();
  1153. dynamic joInput = new JObject();
  1154. joInput.code = serviceCode;
  1155. dynamic joTmp = new JObject();
  1156. JArray jaParmas = new JArray();
  1157. joTmp.HospitalDr = Global.inf.hospitalDr;
  1158. joTmp.InterfaceDr = directoryDr;
  1159. joTmp.Code = directoryCode;
  1160. joTmp.Name = directoryName;
  1161. joTmp.ApprovalNO = approvalNO;
  1162. jaParmas.Add(joTmp);
  1163. joInput.Add("params", JArray.FromObject(jaParmas));
  1164. JArray jaPagination = new JArray();
  1165. joTmp = new JObject();
  1166. joTmp.pageSize = pageSize;
  1167. joTmp.currentPage = currentPage;
  1168. joTmp.sortColumn = "";
  1169. joTmp.sortOrder = "";
  1170. joTmp.hisType = directoryType;
  1171. jaPagination.Add(joTmp);
  1172. joInput.Add("pagination", JArray.FromObject(jaPagination));
  1173. return invoker.invokeInsuService(joInput.ToString(), "查询医保目录分页");
  1174. }
  1175. catch (Exception ex)
  1176. {
  1177. return JsonHelper.setExceptionJson(-1, "getDirectoryByPagination", ex.Message);
  1178. }
  1179. }
  1180. /// <summary>
  1181. /// 根据HisType获取当前目录最大版本号
  1182. /// </summary>
  1183. /// <param name="directoryType"></param>
  1184. /// <returns></returns>
  1185. public JObject getDirectoryMaxVersionNO(int directoryType)
  1186. {
  1187. try
  1188. {
  1189. dynamic joParam = new JObject();
  1190. joParam.HospitalDr = Global.inf.hospitalDr;
  1191. joParam.InterfaceDr = Global.inf.interfaceDr;
  1192. joParam.HisType = directoryType + 1;
  1193. JObject joInparam = JsonHelper.setIrisInpar("09010037", joParam);
  1194. JObject joRtn = invoker.invokeInsuService("09010037", joInparam.ToString());
  1195. return joRtn;
  1196. }
  1197. catch (Exception ex)
  1198. {
  1199. return JsonHelper.setExceptionJson(-1, "获取版本号异常:", ex.Message);
  1200. }
  1201. }
  1202. public JObject insertDictionary(JObject joData)
  1203. {
  1204. try
  1205. {
  1206. JObject joInparam = JsonHelper.setIrisInpar("09010073", joData);
  1207. JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "插入字典表");
  1208. return joRtn;
  1209. }
  1210. catch (Exception ex)
  1211. {
  1212. return JsonHelper.setExceptionJson(-1, "插入字典表异常:", ex.Message);
  1213. }
  1214. }
  1215. public JObject insertDictionaryDataDetail(JArray jaData)
  1216. {
  1217. try
  1218. {
  1219. dynamic joParam = new JObject();
  1220. joParam.HospitalDr = Global.inf.hospitalDr;
  1221. joParam.InterfaceDr = Global.inf.interfaceDr;
  1222. JObject joInparam = JsonHelper.setIrisInpar("09010074", jaData);
  1223. JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "插入字典明细表");
  1224. return joRtn;
  1225. }
  1226. catch (Exception ex)
  1227. {
  1228. return JsonHelper.setExceptionJson(-1, "插入字典明细表异常:", ex.Message);
  1229. }
  1230. }
  1231. public JObject ConvertHISDir(JObject joHisRtnDir)
  1232. {
  1233. try
  1234. {
  1235. //传给医保平台,进行对照匹配
  1236. dynamic joParam = new JObject();
  1237. joParam.TotalCount = joHisRtnDir["result"]["TotalCount"];
  1238. joParam.HospitalDr = Global.inf.hospitalDr;
  1239. joParam.InterfaceDr = Global.inf.interfaceDr;
  1240. joParam.Data = joHisRtnDir["result"]["Data"];
  1241. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010057", joParam).ToString(), "转换HIS目录分页,显示对照状态及对照的医保编码");
  1242. return joRtn;
  1243. }
  1244. catch (Exception ex)
  1245. {
  1246. return JsonHelper.setExceptionJson(-1, "转换HIS目录分页异常:", ex.Message);
  1247. }
  1248. }
  1249. public JObject GetMappedHISDir(JArray jaPagination, JArray jaParams)
  1250. {
  1251. try
  1252. {
  1253. //传给医保平台,进行对照匹配
  1254. dynamic joParam = new JObject();
  1255. joParam.pagination = jaPagination;
  1256. joParam.session = Global.curEvt.jaSession;
  1257. joParam.Add("params", jaParams);
  1258. joParam.code = "09010058";
  1259. JObject joRtn = invoker.invokeInsuService(joParam.ToString(), "获取已对照目录分页");
  1260. return joRtn;
  1261. }
  1262. catch (Exception ex)
  1263. {
  1264. return JsonHelper.setExceptionJson(-1, "获取已对照目录分页异常:", ex.Message);
  1265. }
  1266. }
  1267. public JObject UpdateDirectoryBySelf(JObject joIn)
  1268. {
  1269. try
  1270. {
  1271. JObject joParam = (JObject)joIn.DeepClone();
  1272. joParam.Add("updateUserID", Global.user.ID);
  1273. joParam.Add("HospitalDr", Global.inf.hospitalDr);
  1274. joParam.Add("InterfaceDr", Global.inf.interfaceDr);
  1275. InvokeHelper invoker = new InvokeHelper();
  1276. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010035", joParam).ToString(), "手动修改医保目录表");
  1277. return joRtn;
  1278. }
  1279. catch (Exception ex)
  1280. {
  1281. return JsonHelper.setExceptionJson(-1, "手动修改医保目录表异常:", ex.Message);
  1282. }
  1283. }
  1284. //哈尔滨独有目录更新
  1285. public JObject UpdateDirectory(JObject joIn)
  1286. {
  1287. try
  1288. {
  1289. JObject joParam = (JObject)joIn.DeepClone();
  1290. joParam.Add("updateUserID", Global.user.ID);
  1291. joParam.Add("HospitalDr", Global.inf.hospitalDr);
  1292. joParam.Add("InterfaceDr", Global.inf.interfaceDr);
  1293. InvokeHelper invoker = new InvokeHelper();
  1294. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010000", joParam).ToString(), "哈尔滨独有目录更新");
  1295. return joRtn;
  1296. }
  1297. catch (Exception ex)
  1298. {
  1299. return JsonHelper.setExceptionJson(-1, "哈尔滨独有目录更新异常:", ex.Message);
  1300. }
  1301. }
  1302. #endregion
  1303. }
  1304. }