IrisServices.cs 84 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109
  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. using System.Windows.Forms;
  30. namespace PTMedicalInsurance.Business
  31. {
  32. class IrisServices
  33. {
  34. }
  35. class HisIrisServices
  36. {
  37. private InvokeHelper invoker = new InvokeHelper();
  38. /// <summary>
  39. /// 获取患者基本信息
  40. /// </summary>
  41. /// <param name="errMsg"></param>
  42. /// <returns></returns>
  43. public int GetHisPatBaseInfo(out string errMsg)
  44. {
  45. errMsg = "";
  46. try
  47. {
  48. dynamic joTmp = new JObject();
  49. joTmp.admID = Global.pat.adm_Dr;
  50. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110021", joTmp).ToString(), "获取HIS患者基本信息");
  51. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  52. {
  53. errMsg = "获取HIS患者基本信息失败,请联系管理员!" + errMsg;
  54. return -1;
  55. }
  56. else
  57. {
  58. errMsg = joRtn.ToString();
  59. return 0;
  60. }
  61. }
  62. catch (Exception ex)
  63. {
  64. errMsg = "GetHisPatBaseInfo异常:" + ex.Message;
  65. return -1;
  66. }
  67. }
  68. /// <summary>
  69. /// 获取诊断信息
  70. /// </summary>
  71. /// <param name="jaSession"></param>
  72. /// <param name="diagnoses"></param>
  73. /// <returns></returns>
  74. public int getPatDiagnoses(Patients pat, out string outParam)
  75. {
  76. outParam = "";
  77. string errMsg;
  78. try
  79. {
  80. JObject joTmp = new JObject();
  81. joTmp.Add("admID", pat.adm_Dr);
  82. joTmp.Add("psn_no", pat.psn_no);
  83. //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110001", joTmp).ToString(), "获取诊断信息");
  84. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110014", joTmp).ToString(), "获取诊断信息");
  85. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  86. {
  87. outParam = "获取诊断信息失败,请联系管理员!" + errMsg;
  88. return -1;
  89. }
  90. else
  91. {
  92. outParam = joRtn.ToString();
  93. return 0;
  94. }
  95. }
  96. catch (Exception ex)
  97. {
  98. outParam = "getPatDiagnoses 异常:" + ex.Message;
  99. return -1;
  100. }
  101. }
  102. /// <summary>
  103. /// 返回登记信息给HIS
  104. /// </summary>
  105. /// <param name="joRegIn"></param>
  106. /// <param name="joRegOut"></param>
  107. /// <param name="outParam"></param>
  108. /// <returns></returns>
  109. public int returnRegisterInfo(JObject joRegIn, JObject joRegOut, out string outParam)
  110. {
  111. string errMsg;
  112. try
  113. {
  114. JObject joSendToIris2401 = joRegIn;
  115. joSendToIris2401.Add("admID", Global.pat.adm_Dr);
  116. joSendToIris2401.Add("mdtrt_id", JsonHelper.getDestValue(joRegOut, "output.result.mdtrt_id"));
  117. joSendToIris2401.Add("interfaceDr", Global.inf.interfaceDr);
  118. joSendToIris2401.Add("billID", Global.pat.billID);
  119. string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
  120. string inpar = JsonHelper.setIrisInpar(serviceCode, joRegIn).ToString();
  121. JObject joRtn = invoker.invokeHISService(inpar,serviceName);
  122. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  123. {
  124. outParam = "中心登记成功但云HIS平台保存失败,请联系管理员!" + errMsg;
  125. return -1;
  126. }
  127. else
  128. {
  129. outParam = "返回给HIS成功";
  130. return 0;
  131. }
  132. }
  133. catch (Exception ex )
  134. {
  135. outParam = "HIS保存登记信息出现异常:!" + ex.Message;
  136. return -1;
  137. }
  138. }
  139. /// <summary>
  140. /// 获取His费用
  141. /// </summary>
  142. /// <param name="pat"></param>
  143. /// <param name="errMsg"></param>
  144. /// <returns></returns>
  145. public int getHisFee(Patients pat, out string outParam)
  146. {
  147. outParam = "";
  148. string errMsg;
  149. try
  150. {
  151. dynamic joIrisParam = new JObject();
  152. JArray jaIrisParams = new JArray();
  153. JObject joIrisTmp = new JObject();
  154. joIrisParam.code = "05110003";
  155. joIrisParam.session = Global.curEvt.jaSession;
  156. joIrisTmp.Add("admID", pat.adm_Dr);
  157. joIrisTmp.Add("billID", pat.billID);
  158. joIrisTmp.Add("recordID", pat.recordID);
  159. jaIrisParams.Add(joIrisTmp);
  160. joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
  161. JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "获取HIS费用");
  162. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  163. {
  164. outParam = errMsg;
  165. return -1;
  166. }
  167. else
  168. {
  169. outParam = joRtn.ToString();
  170. return 0;
  171. }
  172. }
  173. catch (Exception ex)
  174. {
  175. outParam = "deleteFee 异常:" + ex.Message;
  176. return -1;
  177. }
  178. }
  179. /// <summary>
  180. /// 更新云HIS费用明细表上传标志
  181. /// </summary>
  182. /// <param name="outParam"></param>
  183. /// <returns></returns>
  184. public int UpdateInsuUplod(out string outParam)
  185. {
  186. outParam = "";
  187. string errMsg;
  188. try
  189. {
  190. dynamic joIrisParam = new JObject();
  191. JArray jaIrisParams = new JArray();
  192. JObject joIrisTmp = new JObject();
  193. joIrisParam.code = "05110022";
  194. joIrisParam.session = Global.curEvt.jaSession;
  195. joIrisTmp.Add("admID", Global.pat.adm_Dr);
  196. joIrisTmp.Add("billID", Global.pat.billID);
  197. joIrisTmp.Add("recordID", Global.pat.recordID);
  198. jaIrisParams.Add(joIrisTmp);
  199. joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
  200. JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "更新HIS费用明细表InsuUpload标志为N");
  201. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  202. {
  203. outParam = errMsg;
  204. return -1;
  205. }
  206. else
  207. {
  208. outParam = joRtn.ToString();
  209. return 0;
  210. }
  211. }
  212. catch (Exception ex)
  213. {
  214. outParam = "UpdateInsuUplod 异常:" + ex.Message;
  215. return -1;
  216. }
  217. }
  218. /// <summary>
  219. /// 取消登记信息
  220. /// </summary>
  221. /// <param name="outParam"></param>
  222. /// <returns></returns>
  223. public int cancleRegister( out string outParam)
  224. {
  225. outParam = "";
  226. string errMsg;
  227. try
  228. {
  229. dynamic joTmp = new JObject();
  230. joTmp.Add("admID", Global.pat.adm_Dr);
  231. joTmp.Add("interfaceDr", Global.inf.interfaceDr);
  232. joTmp.Add("billID", Global.pat.billID);
  233. string serviceCode = "05110004";
  234. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  235. JObject joRtn = invoker.invokeHISService(inpar, "取消HIS登记信息");
  236. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  237. {
  238. outParam = joRtn.ToString();
  239. return -1;
  240. }
  241. else
  242. {
  243. outParam = joRtn.ToString();
  244. return 0;
  245. }
  246. }
  247. catch (Exception ex)
  248. {
  249. outParam = "取消登记异常" + ":" + ex.Message;
  250. return -1;
  251. }
  252. }
  253. /// <summary>
  254. /// HIS预结算
  255. /// </summary>
  256. /// <param name="joParam"></param>
  257. /// <param name="joSetlinfo"></param>
  258. /// <param name="outParam"></param>
  259. /// <returns></returns>
  260. public int preSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  261. {
  262. string errMsg;
  263. try
  264. {
  265. dynamic joTmp = new JObject();
  266. joTmp = joParam.DeepClone();
  267. joTmp.insuPayInfo = joSetlinfo;
  268. joTmp.updateUserID = Global.user.ID;
  269. joTmp.middleSettleFlag = "";
  270. JObject joSumFee = new JObject();
  271. if (sumInsuRtnSettlInfo(joSetlinfo, out joSumFee, out errMsg) != 0)
  272. {
  273. outParam = "汇总结算结果失败,请联系管理员!" + errMsg;
  274. return -1;
  275. }
  276. joTmp.sumFeeObj = joSumFee;
  277. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110020", joTmp).ToString(), "返回2303结算结果给HIS");
  278. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  279. {
  280. outParam = "返回2303结算结果给HIS失败,请联系管理员!" + errMsg;
  281. return -1;
  282. }
  283. else
  284. {
  285. outParam = joRtn.ToString();
  286. return 0;
  287. }
  288. }
  289. catch (Exception ex)
  290. {
  291. outParam = "返回2303结算结果给HIS出现异常:!" + ex.Message;
  292. return -1;
  293. }
  294. }
  295. //public int preSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  296. //{
  297. // string errMsg;
  298. // try
  299. // {
  300. // dynamic joTmp = new JObject();
  301. // joTmp = joParam.DeepClone();
  302. // joTmp.insuPayInfo = joSetlinfo;
  303. // joTmp.updateUserID = Global.user.ID;
  304. // joTmp.middleSettleFlag = "";
  305. // JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110011", joTmp).ToString(), "返回2304结算结果给HIS");
  306. // if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  307. // {
  308. // outParam = "返回2303结算结果给HIS失败,请联系管理员!" + errMsg;
  309. // return -1;
  310. // }
  311. // else
  312. // {
  313. // outParam = joRtn.ToString();
  314. // return 0;
  315. // }
  316. // }
  317. // catch (Exception ex)
  318. // {
  319. // outParam = "返回2303结算结果给HIS出现异常:!" + ex.Message;
  320. // return -1;
  321. // }
  322. //}
  323. /// <summary>
  324. /// 返回住院结算信息给HIS
  325. /// </summary>
  326. /// <param name="joParam"></param>
  327. /// <param name="joSetlinfo"></param>
  328. /// <param name="outParam"></param>
  329. /// <returns></returns>
  330. public int returnInpatSettlementInfo(JObject joParam, JObject joSetlinfo, out string outParam)
  331. {
  332. string errMsg;
  333. try
  334. {
  335. dynamic joTmp = new JObject();
  336. joTmp = joParam.DeepClone();
  337. joTmp.insuPayInfo = joSetlinfo;
  338. joTmp.updateUserID = Global.user.ID;
  339. joTmp.middleSettleFlag = "";
  340. JObject joSumFee = new JObject();
  341. if (sumInsuRtnSettlInfo(joSetlinfo, out joSumFee, out errMsg) != 0)
  342. {
  343. outParam = "汇总结算结果失败,请联系管理员!" + errMsg;
  344. return -1;
  345. }
  346. joTmp.sumFeeObj = joSumFee;
  347. //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110007", joTmp).ToString(), "返回2304结算结果给HIS");
  348. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110017", joTmp).ToString(), "返回2304结算结果给HIS");
  349. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  350. {
  351. outParam = "返回2304结算结果给HIS失败,请联系管理员!" + errMsg;
  352. return -1;
  353. }
  354. else
  355. {
  356. outParam = joRtn.ToString();
  357. return 0;
  358. }
  359. }
  360. catch (Exception ex)
  361. {
  362. outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
  363. return -1;
  364. }
  365. }
  366. /// <summary>
  367. /// 预结算后返回门诊结算信息给HIS,HIS进行预结算
  368. /// </summary>
  369. /// <param name="joSetlInpar"></param>
  370. /// <param name="joSetlinfo"></param>
  371. /// <param name="outParam"></param>
  372. /// <returns></returns>
  373. public int preSettlement(JObject joSetlInpar, JObject joSetlinfo, out string outParam)
  374. {
  375. string errMsg;
  376. try
  377. {
  378. JObject joSumFee = new JObject();
  379. if (sumInsuRtnSettlInfo(joSetlinfo, out joSumFee, out errMsg) != 0)
  380. {
  381. outParam = "汇总结算结果失败,请联系管理员!" + errMsg;
  382. return -1;
  383. }
  384. dynamic joTmp = new JObject();
  385. joTmp.settleInfo = joSetlinfo;
  386. joTmp.updateUserID = Global.user.ID;
  387. joTmp.regInfo = joSetlInpar;
  388. joTmp.middleSettleFlag = "";
  389. joTmp.interfaceDr = Global.inf.interfaceDr;
  390. dynamic joHisInfo = new JObject();
  391. joHisInfo.admID = Global.pat.adm_Dr;
  392. joHisInfo.billID = Global.pat.billID;
  393. joHisInfo.recordID = Global.pat.recordID;
  394. joTmp.hisInfo = joHisInfo;
  395. joTmp.psn_type = Global.pat.psn_type;
  396. joTmp.sumFeeObj = joSumFee;
  397. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110019", joTmp).ToString(), "返回2206结算结果给HIS进行预结算");
  398. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  399. {
  400. outParam = "返回2206结算结果给HIS进行预结算失败,请联系管理员!" + errMsg;
  401. return -1;
  402. }
  403. else
  404. {
  405. outParam = joRtn.ToString();
  406. return 0;
  407. }
  408. }
  409. catch (Exception ex)
  410. {
  411. outParam = "返回2206结算结果给HIS进行预结算异常!" + ex.Message;
  412. return -1;
  413. }
  414. }
  415. /// <summary>
  416. /// 返回门诊结算信息给HIS
  417. /// </summary>
  418. /// <param name="joSetlInpar"></param>
  419. /// <param name="joSetlinfo"></param>
  420. /// <param name="outParam"></param>
  421. /// <returns></returns>
  422. public int returnOutpatSettlementInfo(JObject joSetlInpar, JObject joSetlinfo, out string outParam)
  423. {
  424. string errMsg;
  425. try
  426. {
  427. JObject joSumFee = new JObject();
  428. if (sumInsuRtnSettlInfo(joSetlinfo, out joSumFee, out errMsg) != 0)
  429. {
  430. outParam = "返回2207结算结果给HIS失败,请联系管理员!";
  431. return -1;
  432. }
  433. joSetlInpar.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
  434. joSetlInpar.Add("mdtrtarea_admvs", Global.inf.areaCode);
  435. dynamic joTmp = new JObject();
  436. joTmp.settleInfo = joSetlinfo;
  437. joTmp.updateUserID = Global.user.ID;
  438. joTmp.regInfo = joSetlInpar;
  439. joTmp.middleSettleFlag = "";
  440. joTmp.interfaceDr = Global.inf.interfaceDr;
  441. dynamic joHisInfo = new JObject();
  442. joHisInfo.admID = Global.pat.adm_Dr;
  443. joHisInfo.billID = Global.pat.billID;
  444. joHisInfo.recordID = Global.pat.recordID;
  445. joTmp.hisInfo = joHisInfo;
  446. joTmp.psn_type = Global.pat.psn_type;
  447. joTmp.sumFeeObj = joSumFee;
  448. //0511018 {"feeObj":{"ybAmt":"医保支付","psnAcctAmt":"个人账户","psnCashAmt":"个人现金","hospAmt":"医院垫付"}}
  449. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110018", joTmp).ToString(), "返回2207结算结果给HIS");
  450. //JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110009", joTmp).ToString(), "返回2207结算结果给HIS");
  451. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  452. {
  453. outParam = "返回2207结算结果给HIS失败,请联系管理员!" + errMsg;
  454. return -1;
  455. }
  456. else
  457. {
  458. outParam = joRtn.ToString();
  459. return 0;
  460. }
  461. }
  462. catch (Exception ex)
  463. {
  464. outParam = "返回22207结算结果给HIS出现异常:!" + ex.Message;
  465. return -1;
  466. }
  467. }
  468. /// <summary>
  469. /// 获取结算费用的封装
  470. /// </summary>
  471. /// <param name="jo"></param>
  472. /// <param name="path"></param>
  473. /// <returns></returns>
  474. private decimal getFee(JObject jo, string path)
  475. {
  476. try
  477. {
  478. string temp = JsonHelper.getDestValue(jo, path);
  479. if (temp == "")
  480. {
  481. return 0;
  482. }
  483. else
  484. {
  485. return decimal.Parse(temp);
  486. }
  487. }
  488. catch (Exception ex)
  489. {
  490. Global.writeLog("getFee异常:" + ex.Message);
  491. return 0;
  492. }
  493. }
  494. /// <summary>
  495. /// 汇总医保返回的结算金额(按照HIS的原则汇总,后期HIS按照这个来进行勾稽关系判断)
  496. /// </summary>
  497. /// <param name="jo"></param>
  498. /// <returns></returns>
  499. public int sumInsuRtnSettlInfo(JObject jo, out JObject joSumFee, out string errMsg)
  500. {
  501. // 医疗费总额是患者在医药机构花费的所有诊疗、药品、耗材、服务设施等项目费用的总和 = 基金支付总额 + 个人负担总金额 + 其他(如医院负担金额);
  502. //3、基金支付总额 = 基本医保统筹基金支出(含职工基本医疗保险、居民基本医疗保险)+补充医疗保险基金支出 (含覆盖全体参保人的居民大病保险和大额医疗费用补助、覆盖部分参保人的企业职工大额医疗费用补助和公务员医疗补助等)+医疗救助基金支出 + 其他支出(如伤残人员医疗保障基金支出);
  503. //5、个人账户支出中包含账户共济支付金额
  504. joSumFee = new JObject();
  505. errMsg = "";
  506. decimal ybAmt, psnAcctAmt, hospAmt, psnCashAmt, medFee, ownpayhosppart;
  507. try
  508. {
  509. ybAmt = getFee(jo, "hifp_pay") //基本医保统筹基金支出
  510. + getFee(jo, "hifes_pay") //企业补充医疗保险基金支出
  511. + getFee(jo, "hifmi_pay") //居民大病保险
  512. //+ getFee(jo, "hifob_pay") //大额医疗费用补助
  513. + getFee(jo, "hifob_pay") //职工大额医疗费用补助
  514. + getFee(jo, "cvlserv_pay") //公务员医疗补助
  515. + getFee(jo, "maf_pay") //医疗救助基金支出
  516. + getFee(jo, "oth_pay"); //其他支出
  517. //+ getFee(jo, "ownpay_hosp_part"); //自费中医院负担部分
  518. ownpayhosppart = getFee(jo, "ownpay_hosp_part"); //自费中医院负担部分
  519. psnAcctAmt = getFee(jo, "acct_pay"); //账户支付金额
  520. psnCashAmt = getFee(jo, "psn_cash_pay"); //现金支付金额
  521. hospAmt = getFee(jo, "hosp_part_amt")+ ownpayhosppart; //医院承担金额
  522. medFee = getFee(jo, "medfee_sumamt"); //总费用
  523. joSumFee.Add("ybAmt", ybAmt);
  524. joSumFee.Add("psnAcctAmt", psnAcctAmt);
  525. joSumFee.Add("hospAmt", hospAmt);
  526. joSumFee.Add("psnCashAmt", psnCashAmt);
  527. joSumFee.Add("ownpayhosppart", ownpayhosppart);
  528. //MessageBox.Show("medFee:" + medFee.ToString()+ " ybAmt:" + ybAmt.ToString()+ " psnAcctAmt:" + psnAcctAmt.ToString()+ " psnCashAmt:" + psnCashAmt.ToString()+" hospAmt:" + hospAmt.ToString());
  529. if (medFee != (ybAmt + psnAcctAmt + psnCashAmt + hospAmt))
  530. {
  531. errMsg = "ybAmt + psnAcctAmt + psnCashAmt + hospAmt(hospAmt+ownpayhosppart) != medFee";
  532. return -1;
  533. }
  534. return 0;
  535. }
  536. catch (Exception ex)
  537. {
  538. errMsg = ex.Message;
  539. return 1;
  540. }
  541. }
  542. /// <summary>
  543. /// 取消结算信息
  544. /// </summary>
  545. /// <param name="joParam"></param>
  546. /// <param name="outParam"></param>
  547. /// <returns></returns>
  548. public int cancleSettlementInfo(JObject joParam, out string outParam)
  549. {
  550. string errMsg;
  551. try
  552. {
  553. dynamic joTmp = new JObject();
  554. joTmp = joParam.DeepClone();
  555. joTmp.updateUserID = Global.user.ID;
  556. joTmp.middleSettleFlag = "";
  557. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110008", joTmp).ToString(), "取消HIS医保结算信息");
  558. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  559. {
  560. outParam = "取消HIS医保结算信息失败,请联系管理员!" + errMsg;
  561. return -1;
  562. }
  563. else
  564. {
  565. outParam = "取消HIS医保结算信息成功";
  566. return 0;
  567. }
  568. }
  569. catch (Exception ex)
  570. {
  571. outParam = "返回2304结算结果给HIS出现异常:!" + ex.Message;
  572. return -1;
  573. }
  574. }
  575. public int getHISDir(JArray jaPagination, JArray jaParams, out JObject joRtn, out string outParam)
  576. {
  577. string errMsg;
  578. joRtn = new JObject();
  579. try
  580. {
  581. dynamic joTmp = new JObject();
  582. joTmp.pagination = jaPagination;
  583. joTmp.session = Global.curEvt.jaSession;
  584. joTmp.Add("params",jaParams);
  585. joTmp.code = "05111002";
  586. joRtn = invoker.invokeHISService(joTmp.ToString(), "查询HIS目录分页");
  587. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  588. {
  589. outParam = "查询HIS目录分页失败,请联系管理员!" + errMsg;
  590. return -1;
  591. }
  592. else
  593. {
  594. if (joRtn["result"]["Data"] == null)
  595. {
  596. outParam = "Data节点不存在";
  597. return -1;
  598. }
  599. outParam = "查询HIS目录分页成功";
  600. return 0;
  601. }
  602. }
  603. catch (Exception ex)
  604. {
  605. outParam = "查询HIS目录分页异常:!" + ex.Message;
  606. return -1;
  607. }
  608. }
  609. /// <summary>
  610. /// 从HIS获取医保事前事中服务交易入参报文
  611. /// </summary>
  612. /// <param name="pat"></param>
  613. /// <param name="errMsg"></param>
  614. /// <returns></returns>
  615. public int GetInsuPatInfo(string TrigScen, Patients pat, out string outParam)
  616. {
  617. outParam = "";
  618. string errMsg;
  619. try
  620. {
  621. dynamic joIrisParam = new JObject();
  622. JArray jaIrisParams = new JArray();
  623. JObject joIrisTmp = new JObject();
  624. joIrisParam.code = "05110015";
  625. joIrisParam.session = Global.curEvt.jaSession;
  626. joIrisTmp.Add("admID", pat.adm_Dr);
  627. joIrisTmp.Add("billID", pat.billID);
  628. joIrisTmp.Add("recordID", pat.recordID);
  629. joIrisTmp.Add("userID",Global.user.ID);
  630. joIrisTmp.Add("hospID", Global.inf.hisHospitalDr);
  631. joIrisTmp.Add("psnNo", Global.pat.psn_no);
  632. joIrisTmp.Add("mdtrtId", Global.pat.mdtrtID);
  633. joIrisTmp.Add("InsuredType", Global.pat.insuType);
  634. joIrisTmp.Add("MedicalType", Global.pat.medType);
  635. joIrisTmp.Add("YBArea", Global.pat.insuplc_admdvs);
  636. joIrisTmp.Add("TrigScen", TrigScen);
  637. joIrisTmp.Add("InterfaceID", Global.inf.interfaceDr);
  638. jaIrisParams.Add(joIrisTmp);
  639. joIrisParam.Add("params", JArray.FromObject(jaIrisParams));
  640. JObject joRtn = invoker.invokeHISService(joIrisParam.ToString(), "获取HIS费用");
  641. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  642. {
  643. outParam = errMsg;
  644. return -1;
  645. }
  646. else
  647. {
  648. outParam = joRtn.ToString();
  649. return 0;
  650. }
  651. }
  652. catch (Exception ex)
  653. {
  654. outParam = "GetInsuPatInfo医保事前事中服务报文获取 异常:" + ex.Message;
  655. return -1;
  656. }
  657. }
  658. /// <summary>
  659. /// 事前分析
  660. /// </summary>
  661. /// <param name="errMsg"></param>
  662. /// <returns></returns>
  663. public int PreAnalysis(out string errMsg)
  664. {
  665. errMsg = "";
  666. try
  667. {
  668. JObject joTmp = new JObject();
  669. joTmp.Add("billID", Global.pat.billID);
  670. joTmp.Add("recordID", Global.pat.recordID);
  671. JObject joRtn = invoker.invokeHISService(JsonHelper.setIrisInpar("05110022", joTmp).ToString(), "获取事前分析内容");
  672. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  673. {
  674. errMsg = "获取事前分析内容失败,请联系管理员!" + errMsg;
  675. return -1;
  676. }
  677. else
  678. {
  679. errMsg = joRtn.ToString();
  680. return 0;
  681. }
  682. }
  683. catch (Exception ex)
  684. {
  685. errMsg = ex.Message;
  686. return -1;
  687. }
  688. }
  689. /// <summary>
  690. /// 获取HIS就诊信息
  691. /// </summary>
  692. /// <param name="joParam"></param>
  693. /// <param name="outParam"></param>
  694. /// <returns></returns>
  695. public JObject GetHISRegInfo(JObject joParam)
  696. {
  697. //string errMsg;
  698. try
  699. {
  700. string serviceCode = "09030048";
  701. string inpar = JsonHelper.setIrisInpar(serviceCode, joParam).ToString();
  702. JObject joRtn = invoker.invokeHISService(inpar, "获取HIS就诊信息");
  703. return joRtn;
  704. }
  705. catch (Exception ex)
  706. {
  707. return JsonHelper.setExceptionJson(-1, "获取HIS就诊信息异常:", ex.Message);
  708. }
  709. }
  710. /// <summary>
  711. /// 获取HIS处方明细信息
  712. /// </summary>
  713. /// <param name="joParam"></param>
  714. /// <param name="outParam"></param>
  715. /// <returns></returns>
  716. public JObject GetHISPrescFeeInfo(JObject joParam)
  717. {
  718. //string errMsg;
  719. try
  720. {
  721. string serviceCode = "09030049";
  722. string inpar = JsonHelper.setIrisInpar(serviceCode, joParam).ToString();
  723. JObject joRtn = invoker.invokeHISService(inpar, "获取HIS处方信息");
  724. return joRtn;
  725. }
  726. catch (Exception ex)
  727. {
  728. return JsonHelper.setExceptionJson(-1, "获取HIS处方信息异常:", ex.Message);
  729. }
  730. }
  731. /// <summary>
  732. /// 获取HIS处方明细信息
  733. /// </summary>
  734. /// <param name="joParam"></param>
  735. /// <param name="outParam"></param>
  736. /// <returns></returns>
  737. public JObject GetPreVerificationData(JObject joParam)
  738. {
  739. //string errMsg;
  740. try
  741. {
  742. string serviceCode = "09030050";
  743. string inpar = JsonHelper.setIrisInpar(serviceCode, joParam).ToString();
  744. JObject joRtn = invoker.invokeHISService(inpar, "组织处方预核验数据");
  745. return joRtn;
  746. }
  747. catch (Exception ex)
  748. {
  749. return JsonHelper.setExceptionJson(-1, "组织处方预核验数据异常:", ex.Message);
  750. }
  751. }
  752. }
  753. class MIIrisServices
  754. {
  755. private InvokeHelper invoker = new InvokeHelper();
  756. /// <summary>
  757. /// 获取接口信息
  758. /// </summary>
  759. /// <returns></returns>
  760. public JObject getInterface()
  761. {
  762. dynamic joParam = new JObject();
  763. joParam.HospitalDr = Global.inf.hospitalDr;
  764. joParam.InterfaceID = "";
  765. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  766. InvokeHelper invoker = new InvokeHelper();
  767. return invoker.invokeInsuService(joInparam.ToString(), "获取接口信息");
  768. }
  769. public JObject getInterface(string interfaceID)
  770. {
  771. dynamic joParam = new JObject();
  772. joParam.HospitalDr = Global.inf.hospitalDr;
  773. joParam.InterfaceID = interfaceID;
  774. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  775. InvokeHelper invoke = new InvokeHelper();
  776. JObject joRtn = invoke.invokeInsuService(joInparam.ToString(), "获取接口信息");
  777. JObject joInterfaceInfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "result.data[0]"));
  778. joInterfaceInfo.Add("operatorNO", "0");
  779. joInterfaceInfo.Add("operatorName", "管理员");
  780. return joInterfaceInfo;
  781. }
  782. public JObject getInterface_TY(string interfaceID,string hospitalDr)
  783. {
  784. dynamic joParam = new JObject();
  785. joParam.HospitalDr = hospitalDr;
  786. joParam.InterfaceID = interfaceID;
  787. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  788. InvokeHelper invoke = new InvokeHelper();
  789. JObject joRtn = invoke.invokeInsuService(joInparam.ToString(), "获取接口信息");
  790. JObject joInterfaceInfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "result.data[0]"));
  791. joInterfaceInfo.Add("operatorNO", "0");
  792. joInterfaceInfo.Add("operatorName", "管理员");
  793. return joInterfaceInfo;
  794. }
  795. public string GetCommonInterface_Dr(string interfaceID, string hospitalDr)
  796. {
  797. dynamic joParam = new JObject();
  798. joParam.HospitalDr = hospitalDr;
  799. joParam.InterfaceID = interfaceID;
  800. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  801. InvokeHelper invoke = new InvokeHelper();
  802. JObject joRtn = invoke.invokeInsuService(joInparam.ToString(), "获取接口信息");
  803. JObject joInterfaceInfo = JObject.Parse(JsonHelper.getDestValue(joRtn, "result.data[0]"));
  804. if (JsonHelper.getDestValue(joInterfaceInfo, "InsuCurrencyCataLogue")!="")
  805. return JsonHelper.getDestValue(joInterfaceInfo, "InsuCurrencyCataLogue");
  806. else
  807. return interfaceID;
  808. }
  809. /// <summary>
  810. /// 判断是否签到过,如果未签到,返回false,如果签到则返回ture,同时返回签到号
  811. /// </summary>
  812. /// <param name="signno"></param>
  813. /// <returns></returns>
  814. public bool isSigned(ref string signno)
  815. {
  816. JObject joIn = new JObject();
  817. joIn.Add("operatorNO", Global.user.ID.ToUpper());
  818. joIn.Add("operatorName", Global.user.name);
  819. joIn.Add("mac", Global.curEvt.mac);
  820. joIn.Add("ip", Global.curEvt.ip);
  821. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  822. joIn.Add("interfaceDr", Global.inf.interfaceDr);
  823. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  824. string data = JsonHelper.setIrisInpar("09010064", joIn).ToString();
  825. JObject joRtn = invoker.invokeInsuService(data, "查询签到信息");
  826. string errMsg = "";
  827. //MessageBox.Show("查询签到信息:"+joRtn.ToString());
  828. if (JsonHelper.parseIrisRtnValue(joRtn,out errMsg)!= 0)
  829. {
  830. signno = "";
  831. return false;
  832. }
  833. else
  834. {
  835. signno = JsonHelper.getDestValue(joRtn, "result.SignNo");
  836. return true;
  837. }
  838. }
  839. public bool isSigned_MutualAid(ref string signno)
  840. {
  841. JObject joIn = new JObject();
  842. joIn.Add("operatorNO", Global.user.ID.ToUpper());
  843. joIn.Add("operatorName", Global.user.name);
  844. joIn.Add("mac", Global.curEvt.mac);
  845. joIn.Add("ip", Global.curEvt.ip);
  846. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  847. joIn.Add("interfaceDr", Global.inf.mutualAidInterfaceDr);
  848. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  849. string data = JsonHelper.setIrisInpar("09010064", joIn).ToString();
  850. JObject joRtn = invoker.invokeInsuService(data, "查询签到信息");
  851. string errMsg = "";
  852. //MessageBox.Show("查询签到信息:"+joRtn.ToString());
  853. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  854. {
  855. signno = "";
  856. return false;
  857. }
  858. else
  859. {
  860. signno = JsonHelper.getDestValue(joRtn, "result.SignNo");
  861. return true;
  862. }
  863. }
  864. /// <summary>
  865. ///保存签到信息
  866. /// </summary>
  867. /// <param name="signno"></param>
  868. /// <returns></returns>
  869. public int saveSignRecord( string signno,out string errMsg)
  870. {
  871. if (signno == "")
  872. {
  873. errMsg = "signno不能为空!";
  874. return -1;
  875. }
  876. errMsg = ""; ;
  877. JObject joIn = new JObject();
  878. joIn.Add("operatorNO", Global.user.ID);
  879. joIn.Add("operatorName", Global.user.name);
  880. joIn.Add("mac", Global.curEvt.mac);
  881. joIn.Add("ip", Global.curEvt.ip);
  882. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  883. joIn.Add("interfaceDr", Global.inf.interfaceDr);
  884. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  885. joIn.Add("signNo", signno);
  886. joIn.Add("createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  887. joIn.Add("division", Global.inf.areaCode);
  888. string data = JsonHelper.setIrisInpar("09010065", joIn).ToString();
  889. //MessageBox.Show("插入签到信息入参:"+ data);
  890. JObject joRtn = new JObject();
  891. if (Global.inf.SignType == "Update")
  892. joRtn = invoker.invokeInsuService(data, "更新签到信息");
  893. else
  894. joRtn = invoker.invokeInsuService(data, "插入签到信息");
  895. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  896. {
  897. return -1;
  898. }
  899. else
  900. {
  901. return 0;
  902. }
  903. }
  904. /// <summary>
  905. ///保存签到信息
  906. /// </summary>
  907. /// <param name="signno"></param>
  908. /// <returns></returns>
  909. public int saveSignRecord_MutualAid(string signno, out string errMsg)
  910. {
  911. if (signno == "")
  912. {
  913. errMsg = "signno不能为空!";
  914. return -1;
  915. }
  916. errMsg = ""; ;
  917. JObject joIn = new JObject();
  918. joIn.Add("operatorNO", Global.user.ID);
  919. joIn.Add("operatorName", Global.user.name);
  920. joIn.Add("mac", Global.curEvt.mac);
  921. joIn.Add("ip", Global.curEvt.ip);
  922. joIn.Add("hospitalDr", Global.inf.hospitalDr);
  923. joIn.Add("interfaceDr", Global.inf.mutualAidInterfaceDr);
  924. joIn.Add("date", DateTime.Now.ToString("yyyy-MM-dd"));
  925. joIn.Add("signNo", signno);
  926. joIn.Add("createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  927. joIn.Add("division", Global.inf.mutualAidHospitalAreaCode);
  928. string data = JsonHelper.setIrisInpar("09010065", joIn).ToString();
  929. //MessageBox.Show("插入签到信息入参:"+ data);
  930. JObject joRtn = new JObject();
  931. if (Global.inf.SignType == "Update")
  932. joRtn = invoker.invokeInsuService(data, "更新签到信息");
  933. else
  934. joRtn = invoker.invokeInsuService(data, "插入签到信息");
  935. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  936. {
  937. return -1;
  938. }
  939. else
  940. {
  941. return 0;
  942. }
  943. }
  944. /// <summary>
  945. /// 保存住院登记信息
  946. /// </summary>
  947. /// <param name="joRegIn"></param>
  948. /// <param name="joRegOut"></param>
  949. /// <param name="outParam"></param>
  950. /// <returns></returns>
  951. public int saveInpatRegisterInfo(JObject joRegIn,JObject joRegOut,out string outParam)
  952. {
  953. //插入云医保平台
  954. JObject joTmp = new JObject();
  955. string errMsg = "";
  956. try
  957. {
  958. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  959. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  960. joTmp.Add("AdmDr", Global.pat.adm_Dr);
  961. joTmp.Add("PatientName", Global.pat.name);
  962. joTmp.Add("PersonalNO", Global.pat.psn_no);
  963. joTmp.Add("InsuRegID", JsonHelper.getDestValue(joRegOut, "output.result.mdtrt_id"));
  964. joTmp.Add("RegDate", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.begntime"));
  965. joTmp.Add("InsuType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.insutype"));
  966. joTmp.Add("CertificateType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.mdtrt_cert_type"));
  967. joTmp.Add("CertificateNO", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.mdtrt_cert_no"));
  968. joTmp.Add("MedicalType", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.med_type"));
  969. joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.atddr_no"));
  970. joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.chfpdr_name"));
  971. joTmp.Add("AdmInDiagDesc", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_diag_dscr"));
  972. joTmp.Add("AdmInDepCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_dept_codg"));
  973. joTmp.Add("AdmInDepName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_dept_name"));
  974. joTmp.Add("AdmBed", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.adm_bed"));
  975. joTmp.Add("MainDiagCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dscg_maindiag_code"));
  976. joTmp.Add("MainDiagName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dscg_maindiag_name"));
  977. joTmp.Add("MainConditionDesc", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.main_cond_dscr"));
  978. joTmp.Add("DiseasecCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_codg"));
  979. joTmp.Add("DiseasecName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_name"));
  980. joTmp.Add("OperationCode", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.oprn_oprt_code"));
  981. joTmp.Add("OperationName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.oprn_oprt_name"));
  982. joTmp.Add("DiseasecTypeCode", Global.pat.DisType); //JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.dise_type_code")
  983. joTmp.Add("InsuranceAreaCode", Global.pat.insuplc_admdvs);
  984. joTmp.Add("TreatmentAreaCode", Global.pat.mdtrtarea_admvs);
  985. joTmp.Add("RegState", JsonHelper.getDestValue(joRegOut, "regstate"));
  986. joTmp.Add("ValidFlag", JsonHelper.getDestValue(joRegOut, "validflag"));
  987. joTmp.Add("Type", JsonHelper.getDestValue(joRegOut, "type"));
  988. joTmp.Add("updateUserID", Global.user.ID);
  989. joTmp.Add("MSGID", Global.curEvt.msgid);
  990. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  991. joTmp.Add("ConerName", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.coner_name"));
  992. joTmp.Add("Tel", JsonHelper.getDestValue(joRegIn, "input.mdtrtinfo.tel"));
  993. string serviceCode = "09010044";
  994. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  995. JObject joRtn = invoker.invokeInsuService(inpar, "新增住院登记信息");
  996. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  997. {
  998. outParam = joRtn.ToString();
  999. return -1;
  1000. }
  1001. else
  1002. {
  1003. outParam = joRtn.ToString();
  1004. return 0;
  1005. }
  1006. }
  1007. catch (Exception ex)
  1008. {
  1009. outParam = "保存住院登记信息异常:" + ex.Message;
  1010. return -1;
  1011. }
  1012. }
  1013. /// <summary>
  1014. /// 保存门诊登记信息
  1015. /// </summary>
  1016. /// <param name="jo2201Inpar"></param>
  1017. /// <param name="jo2201Rtn"></param>
  1018. /// <param name="jo2203Inpar"></param>
  1019. /// <param name="outParam"></param>
  1020. /// <returns></returns>
  1021. public int saveOutpatRegisterInfo(JObject jo2201Inpar, JObject jo2201Rtn,JObject jo2203Inpar, out string outParam)
  1022. {
  1023. //插入云医保平台
  1024. JObject joTmp = new JObject();
  1025. string errMsg = "";
  1026. try
  1027. {
  1028. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1029. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1030. joTmp.Add("AdmDr", Global.pat.adm_Dr);
  1031. joTmp.Add("PatientName", Global.pat.name);
  1032. joTmp.Add("PersonalNO", Global.pat.psn_no);
  1033. joTmp.Add("InsuRegID", JsonHelper.getDestValue(jo2201Rtn, "output.data.mdtrt_id"));
  1034. joTmp.Add("RegDate", JsonHelper.getDestValue(jo2201Inpar, "input.data.begntime"));
  1035. joTmp.Add("InsuType", JsonHelper.getDestValue(jo2201Inpar, "input.data.insutype"));
  1036. joTmp.Add("CertificateType", JsonHelper.getDestValue(jo2201Inpar, "input.data.mdtrt_cert_type"));
  1037. joTmp.Add("CertificateNO", JsonHelper.getDestValue(jo2201Inpar, "input.data.mdtrt_cert_no"));
  1038. joTmp.Add("MedicalType", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.med_type"));
  1039. joTmp.Add("AttendDoctorNO", JsonHelper.getDestValue(jo2201Inpar, "input.data.atddr_no"));
  1040. joTmp.Add("ChiefPhyDocName", JsonHelper.getDestValue(jo2201Inpar, "input.data.dr_name"));
  1041. joTmp.Add("AdmInDiagDesc", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.main_cond_dscr"));
  1042. joTmp.Add("AdmInDepCode", JsonHelper.getDestValue(jo2201Inpar, "input.data.dept_code"));
  1043. joTmp.Add("AdmInDepName", JsonHelper.getDestValue(jo2201Inpar, "input.data.dept_name"));
  1044. joTmp.Add("AdmBed", "");
  1045. joTmp.Add("MainDiagCode", " ");
  1046. joTmp.Add("MainDiagName", " ");
  1047. joTmp.Add("MainConditionDesc", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.main_cond_dscr"));
  1048. joTmp.Add("DiseasecCode", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.dise_codg"));
  1049. joTmp.Add("DiseasecName", JsonHelper.getDestValue(jo2203Inpar, "input.mdtrtinfo.dise_name"));
  1050. joTmp.Add("OperationCode", "");
  1051. joTmp.Add("OperationName", "");
  1052. joTmp.Add("DiseasecTypeCode", "");
  1053. joTmp.Add("InsuranceAreaCode", Global.inf.areaCode);
  1054. joTmp.Add("TreatmentAreaCode", Global.pat.insuplc_admdvs);
  1055. joTmp.Add("RegState", JsonHelper.getDestValue(jo2201Rtn, "regstate"));
  1056. joTmp.Add("ValidFlag", JsonHelper.getDestValue(jo2201Rtn, "validflag"));
  1057. joTmp.Add("Type", JsonHelper.getDestValue(jo2201Rtn, "type"));
  1058. joTmp.Add("updateUserID", Global.user.ID);
  1059. joTmp.Add("msgid", Global.curEvt.msgid);
  1060. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  1061. string serviceCode = "09010044";
  1062. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  1063. JObject joRtn = invoker.invokeInsuService(inpar, "新增门诊登记信息");
  1064. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1065. {
  1066. outParam = joRtn.ToString();
  1067. return -1;
  1068. }
  1069. else
  1070. {
  1071. outParam = joRtn.ToString();
  1072. return 0;
  1073. }
  1074. }
  1075. catch (Exception ex)
  1076. {
  1077. outParam = "保存门诊登记信息异常:" + ex.Message;
  1078. return -1;
  1079. }
  1080. }
  1081. /// <summary>
  1082. /// 取消登记
  1083. /// </summary>
  1084. /// <param name="type"></param>
  1085. /// <param name="outParam"></param>
  1086. /// <returns></returns>
  1087. public int cancleRegister(int type,out string outParam)
  1088. {
  1089. outParam = "";
  1090. string errMsg;
  1091. try
  1092. {
  1093. dynamic joTmp = new JObject();
  1094. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1095. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1096. joTmp.Add("AdmDr", Global.pat.adm_Dr);
  1097. joTmp.Add("PersonalNO",Global.pat.psn_no);
  1098. joTmp.Add("InsuRegID", Global.pat.mdtrtID);
  1099. joTmp.Add("CancleRegDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  1100. joTmp.Add("Type", type);
  1101. joTmp.Add("ValidFlag", -1);
  1102. joTmp.Add("updateUserID", Global.user.ID);
  1103. string serviceCode = "09010044";
  1104. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  1105. JObject joRtn = invoker.invokeInsuService(inpar, "取消云医保平台登记信息");
  1106. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1107. {
  1108. outParam = "退结算失败,请根据输入条件检查是否存在该笔数据!" + errMsg;
  1109. return -1;
  1110. }
  1111. else
  1112. {
  1113. outParam = joRtn.ToString();
  1114. return 0;
  1115. }
  1116. }
  1117. catch (Exception ex)
  1118. {
  1119. outParam = "取消登记异常" + ":" + ex.Message;
  1120. return -1;
  1121. }
  1122. }
  1123. /// <summary>
  1124. /// 删除费用明细
  1125. /// </summary>
  1126. /// <param name="pat"></param>
  1127. /// <param name="errMsg"></param>
  1128. /// <returns></returns>
  1129. public int deleteFee(out string errMsg)
  1130. {
  1131. try
  1132. {
  1133. dynamic joTmp = new JObject();
  1134. joTmp = new JObject();
  1135. joTmp.code = "09010048";
  1136. joTmp.HospitalDr = Global.inf.hospitalDr;
  1137. joTmp.admID = Global.pat.adm_Dr;
  1138. joTmp.mdtrt_id = Global.pat.mdtrtID;
  1139. joTmp.updateUserID = Global.user.ID;
  1140. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "删除2301明细");
  1141. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1142. {
  1143. return -1;
  1144. }
  1145. else
  1146. {
  1147. return 0;
  1148. }
  1149. }
  1150. catch (Exception ex)
  1151. {
  1152. errMsg = "deleteFee 异常:" + ex.Message;
  1153. return -1;
  1154. }
  1155. }
  1156. /// <summary>
  1157. /// 根据HIS的费用明细获取对照关系
  1158. /// </summary>
  1159. /// <returns></returns>
  1160. public int convertHisFeeWithInsuCode( JObject joHisFee, out string outParam)
  1161. {
  1162. outParam = "";
  1163. string errMsg;
  1164. try
  1165. {
  1166. JArray jaFee = JArray.FromObject(joHisFee["result"]);
  1167. JObject joTmp = JsonHelper.setIrisInpar("09010045", jaFee);
  1168. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  1169. joTmp.Add("med_type", Global.pat.medType);
  1170. joTmp.Add("psn_no", Global.pat.psn_no);
  1171. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1172. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1173. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "根据HIS的费用明细获取对照关系");
  1174. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1175. {
  1176. outParam = errMsg;
  1177. return -1;
  1178. }
  1179. else
  1180. {
  1181. outParam = joRtn.ToString();
  1182. return 0;
  1183. }
  1184. }
  1185. catch (Exception ex)
  1186. {
  1187. outParam = "convertHisFeeWithInsuCode 异常:" + ex.Message;
  1188. return -1;
  1189. }
  1190. }
  1191. /// <summary>
  1192. /// 转换事前事中 处方信息集合-住院
  1193. /// </summary>
  1194. /// <returns></returns>
  1195. public int convertFsiOrderDtos(JArray fsiOrderDtos, out string outParam)
  1196. {
  1197. outParam = "";
  1198. string errMsg;
  1199. try
  1200. {
  1201. JObject joTmp = JsonHelper.setIrisInpar("09010077", fsiOrderDtos);
  1202. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1203. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1204. //JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010077", fsiOrderDtos).ToString(), "转换事前事中处方信息集合");
  1205. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "转换事前事中处方信息集合");
  1206. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1207. {
  1208. outParam = errMsg;
  1209. return -1;
  1210. }
  1211. else
  1212. {
  1213. outParam = joRtn.ToString();
  1214. return 0;
  1215. }
  1216. }
  1217. catch (Exception ex)
  1218. {
  1219. outParam = "convertHisFeeWithInsuCode 异常:" + ex.Message;
  1220. return -1;
  1221. }
  1222. }
  1223. /// <summary>
  1224. /// 插入医保费用
  1225. /// </summary>
  1226. /// <param name="jaTmp"></param>
  1227. /// <param name="outParam"></param>
  1228. /// <returns></returns>
  1229. public int insertFee(JArray jaTmp,out string outParam)
  1230. {
  1231. try
  1232. {
  1233. outParam = "";
  1234. string errMsg;
  1235. dynamic joTmp = new JObject();
  1236. joTmp = new JObject();
  1237. joTmp.code = "09010046";
  1238. joTmp.HospitalDr = Global.inf.hospitalDr;
  1239. joTmp.admID = Global.pat.adm_Dr;
  1240. joTmp.mdtrt_id = Global.pat.mdtrtID;
  1241. joTmp.updateUserID = Global.user.ID;
  1242. joTmp.Add("params", jaTmp);
  1243. ;
  1244. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "插入2301明细");
  1245. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1246. {
  1247. outParam = errMsg;
  1248. return -1;
  1249. }
  1250. else
  1251. {
  1252. outParam = joRtn.ToString();
  1253. return 0;
  1254. }
  1255. }
  1256. catch (Exception ex)
  1257. {
  1258. outParam = "insertFee 异常:" + ex.Message;
  1259. return -1;
  1260. }
  1261. }
  1262. /// <summary>
  1263. /// 更新医保费用
  1264. /// </summary>
  1265. /// <param name="jaTmp"></param>
  1266. /// <param name="outParam"></param>
  1267. /// <returns></returns>
  1268. public int updateFee(JArray jaTmp, out string outParam)
  1269. {
  1270. try
  1271. {
  1272. outParam = "";
  1273. string errMsg;
  1274. dynamic joTmp = new JObject();
  1275. joTmp.code = "09010047";
  1276. JArray jaParams = jaTmp;
  1277. joTmp.Add("params", jaParams);
  1278. joTmp.HospitalDr = Global.inf.hospitalDr;
  1279. joTmp.admID = Global.pat.adm_Dr;
  1280. joTmp.mdtrt_id = Global.pat.mdtrtID;
  1281. joTmp.updateUserID =Global.user.ID;
  1282. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "更新2301明细");
  1283. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1284. {
  1285. outParam = errMsg;
  1286. return -1;
  1287. }
  1288. else
  1289. {
  1290. outParam = joRtn.ToString();
  1291. return 0;
  1292. }
  1293. }
  1294. catch (Exception ex)
  1295. {
  1296. outParam = "updateFee 异常:" + ex.Message;
  1297. return -1;
  1298. }
  1299. }
  1300. /// <summary>
  1301. /// 获取各项费用汇总
  1302. /// </summary>
  1303. /// <param name="outParam"></param>
  1304. /// <returns></returns>
  1305. public int getSumFee(out string outParam)
  1306. {
  1307. try
  1308. {
  1309. outParam = "";
  1310. string errMsg;
  1311. //调用IRIS获取医保各项金额
  1312. dynamic joTmp = new JObject();
  1313. joTmp = new JObject();
  1314. joTmp.code = "09010049";
  1315. joTmp.HospitalDr = Global.inf.hospitalDr;
  1316. joTmp.admID = Global.pat.adm_Dr;
  1317. joTmp.mdtrt_id = Global.pat.mdtrtID;
  1318. joTmp.updateUserID = Global.user.ID; ;
  1319. JObject joRtn = invoker.invokeInsuService(joTmp.ToString(), "获取各项费用汇总"); ;
  1320. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1321. {
  1322. outParam = errMsg;
  1323. return -1;
  1324. }
  1325. else
  1326. {
  1327. outParam = joRtn.ToString();
  1328. return 0;
  1329. }
  1330. }
  1331. catch (Exception ex)
  1332. {
  1333. outParam = "getSumFee 异常:" + ex.Message;
  1334. return -1;
  1335. }
  1336. }
  1337. /// <summary>
  1338. /// 转换结算信息
  1339. /// </summary>
  1340. /// <param name="pat"></param>
  1341. /// <param name="joSettlement"></param>
  1342. /// <param name="outParam"></param>
  1343. /// <returns></returns>
  1344. public int convertSettlementWithInsuCode(JObject joSettlement, out string outParam)
  1345. {
  1346. outParam = "";
  1347. string errMsg;
  1348. try
  1349. {
  1350. JObject joOutput = JObject.FromObject(joSettlement["output"]);
  1351. //编码转换
  1352. JObject joInpar = new JObject();
  1353. joInpar.Add("hospitalDr", Global.inf.hospitalDr);
  1354. joInpar.Add("interfaceDr", Global.inf.interfaceDr);
  1355. joInpar.Add("output", joOutput);
  1356. InvokeHelper invoker = new InvokeHelper();
  1357. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010055", joInpar).ToString(), "结算信息编码转换");
  1358. if (JsonHelper.getDestValue(joRtn, "errorCode") != "")
  1359. {
  1360. outParam = JsonHelper.getDestValue(joRtn, "errorMessage");
  1361. return -1;
  1362. }
  1363. else
  1364. {
  1365. outParam = joRtn.ToString();
  1366. return 0;
  1367. }
  1368. }
  1369. catch (Exception ex)
  1370. {
  1371. outParam = "convertSettlementWithInsuCode 异常:" + ex.Message;
  1372. return -1;
  1373. }
  1374. }
  1375. /// <summary>
  1376. /// 插入结算信息
  1377. /// </summary>
  1378. /// <param name="joSettlement"></param>
  1379. /// <param name="outParam"></param>
  1380. /// <returns></returns>
  1381. public int saveSettlement(JObject joSettlement, out string outParam)
  1382. {
  1383. JObject joTmp = new JObject();
  1384. string errMsg = "";
  1385. try
  1386. {
  1387. JObject joSetlinfo = JObject.Parse(JsonHelper.getDestValue(joSettlement, "output.setlinfo"));
  1388. joSetlinfo.Add("HospitalDr", Global.inf.hospitalDr);
  1389. joSetlinfo.Add("admID", Global.pat.adm_Dr);
  1390. joSetlinfo.Add("ValidFlag", 1);
  1391. joSetlinfo.Add("BillType", 1);
  1392. joSetlinfo.Add("updateUserID",Global.user.ID);
  1393. joSetlinfo.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  1394. joSetlinfo.Add("billID", Global.pat.billID);
  1395. joSetlinfo.Add("recordID", Global.pat.recordID);
  1396. joSetlinfo.Add("msgid", Global.curEvt.msgid);
  1397. joSetlinfo.Add("interfaceDr", Global.inf.interfaceDr);
  1398. joSetlinfo.Add("admType", Global.pat.admType);
  1399. joSetlinfo.Add("insuplc_admdvs", Global.pat.insuplc_admdvs);
  1400. joSetlinfo.Add("HospitalizationsDays", Global.Set.hospitalizationsDays);
  1401. joSetlinfo.Add("HospitalizationsTimes", Global.Set.hospitalizationsTimes);
  1402. joSetlinfo.Add("HISAdmTime", Global.Set.hisAdmTime);
  1403. joSetlinfo.Add("HISDischargeTime", Global.Set.hisDischargeTime);
  1404. //原结算记录插入账户代支标志和医保结算ID
  1405. if (Global.pat.AccountMutualAidPay)
  1406. {
  1407. joSetlinfo.Add("MainSettlementIDOfMutualAid", JsonHelper.getDestValue(joSettlement, "output.setlinfo.setl_id"));
  1408. joSetlinfo.Add("MutualAidFlag", 1);
  1409. }
  1410. else
  1411. {
  1412. joSetlinfo.Add("MainSettlementIDOfMutualAid", "");
  1413. joSetlinfo.Add("MutualAidFlag", "0");
  1414. }
  1415. //医保钱包支付金额
  1416. JObject joExpContent = JObject.Parse(joSetlinfo["exp_content"].ToString());
  1417. joSetlinfo.Add("medIns_wallet_pay", JsonHelper.getDestValue(joExpContent, "wltpay_amt")); //医保钱包支付金额
  1418. Global.pat.joSettlInfoOfMutualAid = (JObject)joSetlinfo.DeepClone();
  1419. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010051", joSetlinfo).ToString(), "插入结算信息");
  1420. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1421. {
  1422. outParam = errMsg;
  1423. return -1;
  1424. }
  1425. else
  1426. {
  1427. outParam = joRtn.ToString();
  1428. return 0;
  1429. }
  1430. }
  1431. catch (Exception ex)
  1432. {
  1433. outParam = "插入结算信息:" + ex.Message;
  1434. return -1;
  1435. }
  1436. }
  1437. /// <summary>
  1438. /// 保存结算信息
  1439. /// </summary>
  1440. /// <param name="joSettlement"></param>
  1441. /// <param name="outParam"></param>
  1442. /// <returns></returns>
  1443. public int saveSettlementDetail(JObject joSettlement, out string outParam)
  1444. {
  1445. JObject joTmp = new JObject();
  1446. string errMsg = "";
  1447. try
  1448. {
  1449. JObject joSetlDetail = new JObject();
  1450. joSetlDetail.Add("HospitalDr", Global.inf.hospitalDr);
  1451. joSetlDetail.Add("InterfaceDr", Global.inf.interfaceDr);
  1452. joSetlDetail.Add("MdtrtID", Global.pat.mdtrtID);
  1453. joSetlDetail.Add("SettlementID", JsonHelper.getDestValue(joSettlement, "output.setlinfo.setl_id"));
  1454. joSetlDetail.Add("AdmID", Global.pat.adm_Dr);
  1455. joSetlDetail.Add("updateUserID", Global.user.ID);
  1456. if (JsonHelper.getDestValue(joSettlement, "output.setldetail") == "")
  1457. {
  1458. outParam = "中心返回结算明细为空!";
  1459. Global.writeLog(outParam);
  1460. return 0;
  1461. }
  1462. JArray jaSetlDetail = JArray.Parse(JsonHelper.getDestValue(joSettlement, "output.setldetail"));
  1463. joSetlDetail.Add("setldetail", jaSetlDetail);
  1464. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010056", joSetlDetail).ToString(), "插入结算明细信息");
  1465. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1466. {
  1467. outParam = errMsg;
  1468. return -1;
  1469. }
  1470. else
  1471. {
  1472. outParam = joRtn.ToString();
  1473. return 0;
  1474. }
  1475. }
  1476. catch (Exception ex)
  1477. {
  1478. outParam = "插入结算信息:" + ex.Message;
  1479. return -1;
  1480. }
  1481. }
  1482. /// <summary>
  1483. /// 取消结算
  1484. /// </summary>
  1485. /// <param name="outParam"></param>
  1486. /// <returns></returns>
  1487. public int cancleSettlement(string newSettlID, out string outParam)
  1488. {
  1489. JObject joTmp = new JObject();
  1490. string errMsg = "";
  1491. try
  1492. {
  1493. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1494. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1495. joTmp.Add("admID", Global.pat.adm_Dr);
  1496. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  1497. joTmp.Add("setl_id", Global.pat.settlID);
  1498. joTmp.Add("new_setl_id", newSettlID);
  1499. joTmp.Add("updateUserID", Global.user.ID);
  1500. joTmp.Add("msgid", Global.curEvt.msgid);
  1501. joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  1502. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010052", joTmp).ToString(), "取消结算信息");
  1503. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1504. {
  1505. outParam = errMsg;
  1506. return -1;
  1507. }
  1508. else
  1509. {
  1510. outParam = joRtn.ToString();
  1511. return 0;
  1512. }
  1513. }
  1514. catch (Exception ex)
  1515. {
  1516. outParam = "取消结算信息:" + ex.Message;
  1517. return -1;
  1518. }
  1519. }
  1520. /// <summary>
  1521. /// 更新结算
  1522. /// </summary>
  1523. /// <param name="SettlID"></param>
  1524. /// <param name="iLX">iLX=1表示更新账户共济结算标志和结算ID</param>
  1525. /// <param name="outParam"></param>
  1526. /// <returns></returns>
  1527. public int updateSettlement(string SettlID,int iLX, out string outParam)
  1528. {
  1529. JObject joTmp = new JObject();
  1530. string errMsg;
  1531. try
  1532. {
  1533. joTmp.Add("updateUserID", Global.user.ID);
  1534. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1535. joTmp.Add("AdmDr", Global.pat.adm_Dr);
  1536. joTmp.Add("SettlementID", SettlID);
  1537. joTmp.Add("MdtrtID", Global.pat.mdtrtID);
  1538. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1539. joTmp.Add("ValidFlag", 1);
  1540. joTmp.Add("BillType", 1);
  1541. if (iLX == 1)
  1542. {
  1543. joTmp.Add("MutualAidFlag", 1);
  1544. joTmp.Add("MainSettlementIDOfMutualAid", SettlID);
  1545. }
  1546. else
  1547. {
  1548. joTmp.Add("MutualAidFlag", 0);
  1549. joTmp.Add("MainSettlementIDOfMutualAid", "");
  1550. }
  1551. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010080", joTmp).ToString(), "更新结算信息");
  1552. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1553. {
  1554. outParam = errMsg;
  1555. return -1;
  1556. }
  1557. else
  1558. {
  1559. outParam = joRtn.ToString();
  1560. return 0;
  1561. }
  1562. }
  1563. catch (Exception ex)
  1564. {
  1565. outParam = "更新结算信息:" + ex.Message;
  1566. return -1;
  1567. }
  1568. }
  1569. /// <summary>
  1570. /// 查询登记信息
  1571. /// </summary>
  1572. /// <param name="type"></param>
  1573. /// <param name="outParam"></param>
  1574. /// <returns></returns>
  1575. public int queryRegisterInfo(int type,out string outParam)
  1576. {
  1577. JObject joTmp = new JObject();
  1578. string errMsg = "";
  1579. try
  1580. {
  1581. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1582. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1583. joTmp.Add("admID", Global.pat.adm_Dr);
  1584. joTmp.Add("mdtrt_id", Global.pat.mdtrtID);
  1585. joTmp.Add("type", type);
  1586. joTmp.Add("billID", Global.pat.billID);
  1587. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010050", joTmp).ToString(), "查询云平台患者登记信息");
  1588. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1589. {
  1590. outParam = errMsg;
  1591. return -1;
  1592. }
  1593. else
  1594. {
  1595. outParam = joRtn.ToString();
  1596. return 0;
  1597. }
  1598. }
  1599. catch (Exception ex)
  1600. {
  1601. outParam = "查询云平台患者登记信息:" + ex.Message;
  1602. return -1;
  1603. }
  1604. }
  1605. /// <summary>
  1606. /// 插入患者该次就诊参保信息
  1607. /// </summary>
  1608. /// <param name="joBaseInfo"></param>
  1609. /// <param name="joInsuInfo"></param>
  1610. /// <param name="joIdetInfo"></param>
  1611. /// <param name="outParam"></param>
  1612. /// <returns></returns>
  1613. public int insertPatCurInsuInfo(JObject joBaseInfo, JObject joInsuInfo, JObject joIdetInfo, out string outParam)
  1614. {
  1615. JObject joTmp = new JObject();
  1616. string errMsg = "";
  1617. try
  1618. {
  1619. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1620. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1621. joTmp.Add("AdmID", Global.pat.adm_Dr);
  1622. joTmp.Add("PatientName", Global.pat.name);
  1623. joTmp.Add("PersonalNO", Global.pat.psn_no);
  1624. joTmp.Add("MdtrtID", Global.pat.mdtrtID);
  1625. joTmp.Add("PsnCertType", JsonHelper.getDestValue(joBaseInfo, "psn_cert_type"));
  1626. joTmp.Add("PsnCertNO", JsonHelper.getDestValue(joBaseInfo, "certno"));
  1627. joTmp.Add("Gend", JsonHelper.getDestValue(joBaseInfo, "gend"));
  1628. joTmp.Add("Naty", JsonHelper.getDestValue(joBaseInfo, "naty"));
  1629. joTmp.Add("Brdy", JsonHelper.getDestValue(joBaseInfo, "brdy"));
  1630. joTmp.Add("Age", JsonHelper.getDestValue(joBaseInfo, "age"));
  1631. joTmp.Add("Balc", JsonHelper.getDestValue(joInsuInfo, "balc"));
  1632. joTmp.Add("Insutype", JsonHelper.getDestValue(joInsuInfo, "insutype"));
  1633. joTmp.Add("PsnType", JsonHelper.getDestValue(joInsuInfo, "psn_type"));
  1634. joTmp.Add("PsnInsuStas", JsonHelper.getDestValue(joInsuInfo, "psn_insu_stas"));
  1635. joTmp.Add("PsnInsuDate", JsonHelper.getDestValue(joInsuInfo, "psn_insu_date"));
  1636. joTmp.Add("PausInsuDate", JsonHelper.getDestValue(joInsuInfo, "paus_insu_date"));
  1637. joTmp.Add("Cvlservflag", JsonHelper.getDestValue(joInsuInfo, "cvlserv_flag"));
  1638. joTmp.Add("insuplcAdmdvs", JsonHelper.getDestValue(joInsuInfo, "insuplc_admdvs"));
  1639. joTmp.Add("EmpName", JsonHelper.getDestValue(joInsuInfo, "emp_name"));
  1640. joTmp.Add("PsnIdettype", JsonHelper.getDestValue(joIdetInfo, "psn_idet_type"));
  1641. joTmp.Add("PsnTypeLv", JsonHelper.getDestValue(joIdetInfo, "psn_type_lv"));
  1642. joTmp.Add("IdetBegntime", JsonHelper.getDestValue(joIdetInfo, "begntime"));
  1643. joTmp.Add("IdetEndtime", JsonHelper.getDestValue(joIdetInfo, "endtime"));
  1644. joTmp.Add("updateUserID", Global.user.ID);
  1645. string serviceCode = "09010070";
  1646. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  1647. JObject joRtn = invoker.invokeInsuService(inpar, "插入患者该次就诊参保信息");
  1648. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1649. {
  1650. outParam = errMsg;
  1651. return -1;
  1652. }
  1653. else
  1654. {
  1655. outParam = joRtn.ToString();
  1656. return 0;
  1657. }
  1658. }
  1659. catch (Exception ex)
  1660. {
  1661. outParam = "医保平台插入患者该次就诊参保信息:" + ex.Message;
  1662. return -1;
  1663. }
  1664. }
  1665. #region 目录下载及对照
  1666. /// <summary>
  1667. /// 通过分页的方式查询医保目录
  1668. /// </summary>
  1669. /// <param name="currentPage"></param>
  1670. /// <param name="pageSize"></param>
  1671. /// <param name="irisCode"></param>
  1672. /// <param name="directoryType"></param>
  1673. public JObject getMIDirectoryByPagination(JObject jo)
  1674. {
  1675. string currentPage;
  1676. string pageSize;
  1677. string serviceCode;
  1678. string directoryType;
  1679. string directoryCode;
  1680. string directoryName;
  1681. string directoryDr;
  1682. string approvalNO ;
  1683. try
  1684. {
  1685. currentPage = JsonHelper.getDestValue(jo, "currentPage");
  1686. pageSize = JsonHelper.getDestValue(jo, "pageSize");
  1687. serviceCode = JsonHelper.getDestValue(jo, "serviceCode");
  1688. directoryType = JsonHelper.getDestValue(jo, "directoryType");
  1689. directoryCode = JsonHelper.getDestValue(jo, "directoryCode");
  1690. directoryName = JsonHelper.getDestValue(jo, "directoryName");
  1691. directoryDr = JsonHelper.getDestValue(jo, "directoryDr");
  1692. approvalNO = JsonHelper.getDestValue(jo, "approvalNO");
  1693. InvokeHelper invoker = new InvokeHelper();
  1694. dynamic joInput = new JObject();
  1695. joInput.code = serviceCode;
  1696. dynamic joTmp = new JObject();
  1697. JArray jaParmas = new JArray();
  1698. joTmp.HospitalDr = Global.inf.hospitalDr;
  1699. joTmp.InterfaceDr = directoryDr;
  1700. joTmp.Code = directoryCode;
  1701. joTmp.Name = directoryName;
  1702. joTmp.ApprovalNO = approvalNO;
  1703. jaParmas.Add(joTmp);
  1704. joInput.Add("params", JArray.FromObject(jaParmas));
  1705. JArray jaPagination = new JArray();
  1706. joTmp = new JObject();
  1707. joTmp.pageSize = pageSize;
  1708. joTmp.currentPage = currentPage;
  1709. joTmp.sortColumn = "";
  1710. joTmp.sortOrder = "";
  1711. joTmp.hisType = directoryType;
  1712. jaPagination.Add(joTmp);
  1713. joInput.Add("pagination", JArray.FromObject(jaPagination));
  1714. return invoker.invokeInsuService(joInput.ToString(), "查询医保目录分页");
  1715. }
  1716. catch (Exception ex)
  1717. {
  1718. return JsonHelper.setExceptionJson(-1, "getDirectoryByPagination", ex.Message);
  1719. }
  1720. }
  1721. /// <summary>
  1722. /// 根据HisType获取当前目录最大版本号
  1723. /// </summary>
  1724. /// <param name="directoryType"></param>
  1725. /// <returns></returns>
  1726. public JObject getDirectoryMaxVersionNO(int directoryType)
  1727. {
  1728. try
  1729. {
  1730. string errorMessage;
  1731. dynamic joParam = new JObject();
  1732. joParam.HospitalDr = Global.inf.hospitalDr;
  1733. joParam.InterfaceDr = Global.inf.interfaceDr;
  1734. joParam.HisType = directoryType + 1;
  1735. JObject joInparam = JsonHelper.setIrisInpar("09010037", joParam);
  1736. JObject joRtn = invoker.invokeInsuService(joInparam.ToString(),"获取最大版本号");
  1737. if (JsonHelper.parseIrisRtnValue(joRtn, out errorMessage) != 0)
  1738. {
  1739. return JsonHelper.setExceptionJson(-1, "获取版本号失败", errorMessage);
  1740. }
  1741. return joRtn;
  1742. }
  1743. catch (Exception ex)
  1744. {
  1745. return JsonHelper.setExceptionJson(-1, "获取版本号异常:", ex.Message);
  1746. }
  1747. }
  1748. public JObject insertDictionary(JObject joData)
  1749. {
  1750. try
  1751. {
  1752. JObject joInparam = JsonHelper.setIrisInpar("09010073", joData);
  1753. JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "插入字典表");
  1754. return joRtn;
  1755. }
  1756. catch (Exception ex)
  1757. {
  1758. return JsonHelper.setExceptionJson(-1, "插入字典表异常:", ex.Message);
  1759. }
  1760. }
  1761. public JObject insertDictionaryDataDetail(JArray jaData)
  1762. {
  1763. try
  1764. {
  1765. dynamic joParam = new JObject();
  1766. joParam.HospitalDr = Global.inf.hospitalDr;
  1767. joParam.InterfaceDr = Global.inf.interfaceDr;
  1768. JObject joInparam = JsonHelper.setIrisInpar("09010074", jaData);
  1769. JObject joRtn = invoker.invokeInsuService( joInparam.ToString(),"插入字典明细表");
  1770. return joRtn;
  1771. }
  1772. catch (Exception ex)
  1773. {
  1774. return JsonHelper.setExceptionJson(-1, "插入字典明细表异常:", ex.Message);
  1775. }
  1776. }
  1777. public JObject ConvertHISDir(JObject joHisRtnDir)
  1778. {
  1779. try
  1780. {
  1781. //传给医保平台,进行对照匹配
  1782. dynamic joParam = new JObject();
  1783. joParam.TotalCount = joHisRtnDir["result"]["TotalCount"];
  1784. joParam.HospitalDr = Global.inf.hospitalDr;
  1785. joParam.InterfaceDr = Global.inf.interfaceDr;
  1786. joParam.Data = joHisRtnDir["result"]["Data"];
  1787. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010057", joParam).ToString(), "转换HIS目录分页,显示对照状态及对照的医保编码");
  1788. return joRtn;
  1789. }
  1790. catch (Exception ex)
  1791. {
  1792. return JsonHelper.setExceptionJson(-1, "转换HIS目录分页异常:", ex.Message);
  1793. }
  1794. }
  1795. public JObject GetMappedHISDir(JArray jaPagination, JArray jaParams)
  1796. {
  1797. try
  1798. {
  1799. //传给医保平台,进行对照匹配
  1800. dynamic joParam = new JObject();
  1801. joParam.pagination = jaPagination;
  1802. joParam.session = Global.curEvt.jaSession;
  1803. joParam.Add("params", jaParams);
  1804. joParam.code = "09010058";
  1805. JObject joRtn = invoker.invokeInsuService(joParam.ToString(), "获取已对照目录分页");
  1806. return joRtn;
  1807. }
  1808. catch (Exception ex)
  1809. {
  1810. return JsonHelper.setExceptionJson(-1, "获取已对照目录分页异常:", ex.Message);
  1811. }
  1812. }
  1813. public JObject GetNoMappHISDir(JObject joHisRtnDir)
  1814. {
  1815. try
  1816. {
  1817. //传给医保平台,进行对照匹配
  1818. dynamic joParam = new JObject();
  1819. joParam.TotalCount = joHisRtnDir["result"]["TotalCount"];
  1820. joParam.HospitalDr = Global.inf.hospitalDr;
  1821. joParam.InterfaceDr = Global.inf.interfaceDr;
  1822. joParam.Data = joHisRtnDir["result"]["Data"];
  1823. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010088", joParam).ToString(), "获取未对照目录");
  1824. return joRtn;
  1825. }
  1826. catch (Exception ex)
  1827. {
  1828. return JsonHelper.setExceptionJson(-1, "获取未对照目录异常:", ex.Message);
  1829. }
  1830. }
  1831. public JObject UpdateDirectoryBySelf(JObject joIn)
  1832. {
  1833. try
  1834. {
  1835. //查询区域通用目录
  1836. MIIrisServices mIS = new MIIrisServices();
  1837. JObject joRtnTY = mIS.getInterface_TY(Global.inf.interfaceDr.ToString(), "");
  1838. string InsuCurrencyCataLogue = JsonHelper.getDestValue(joRtnTY, "InsuCurrencyCataLogue"); //通用目录编码 6
  1839. string InterfaceName_TY = JsonHelper.getDestValue(joRtnTY, "InterfaceName_TY"); //通用目录接口名称
  1840. string HospName_TY = JsonHelper.getDestValue(joRtnTY, "HospitalName"); //通用目录所属医院名称
  1841. string HospitalDr_TY = JsonHelper.getDestValue(joRtnTY, "HospitalDr_TY"); //通用目录所属医院ID
  1842. JObject joParam = (JObject)joIn.DeepClone();
  1843. if ((InsuCurrencyCataLogue != "") && (HospitalDr_TY != ""))
  1844. {
  1845. joParam.Add("updateUserID", Global.user.ID);
  1846. joParam.Add("HospitalDr", HospitalDr_TY);
  1847. joParam.Add("InterfaceDr", InsuCurrencyCataLogue);
  1848. }
  1849. else
  1850. {
  1851. joParam.Add("updateUserID", Global.user.ID);
  1852. joParam.Add("HospitalDr", Global.inf.hospitalDr);
  1853. joParam.Add("InterfaceDr", Global.inf.interfaceDr);
  1854. }
  1855. InvokeHelper invoker = new InvokeHelper();
  1856. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010035", joParam).ToString(), "手动修改医保目录表");
  1857. return joRtn;
  1858. }
  1859. catch (Exception ex)
  1860. {
  1861. return JsonHelper.setExceptionJson(-1, "手动修改医保目录表异常:", ex.Message);
  1862. }
  1863. }
  1864. public JObject QueryTransactionLog(JObject joSqlStr)
  1865. {
  1866. try
  1867. {
  1868. InvokeHelper invoker = new InvokeHelper();
  1869. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010060", joSqlStr).ToString(), "查询交易日志(冲正)");
  1870. return joRtn;
  1871. }
  1872. catch (Exception ex)
  1873. {
  1874. return JsonHelper.setExceptionJson(-1, "查询交易日志(冲正)异常:", ex.Message);
  1875. }
  1876. }
  1877. public JObject QuerySettlementInfo(JObject joSqlStr)
  1878. {
  1879. try
  1880. {
  1881. InvokeHelper invoker = new InvokeHelper();
  1882. JObject joRtn = invoker.invokeInsuService(JsonHelper.setIrisInpar("09010059", joSqlStr).ToString(), "查询结算信息");
  1883. return joRtn;
  1884. }
  1885. catch (Exception ex)
  1886. {
  1887. return JsonHelper.setExceptionJson(-1, "查询交易日志(冲正)异常:", ex.Message);
  1888. }
  1889. }
  1890. #endregion
  1891. #region【DRG业务相关】
  1892. public int insertDRGExitInfo(JObject joInput,int iLX, out string outParam)
  1893. {
  1894. JObject joTmp = new JObject();
  1895. string errMsg = "";
  1896. try
  1897. {
  1898. joTmp.Add("HospitalDr", Global.inf.hospitalDr);
  1899. joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
  1900. joTmp.Add("AdmID", Global.pat.adm_Dr);
  1901. joTmp.Add("Name", Global.pat.name);
  1902. joTmp.Add("SettlementID", JsonHelper.getDestValue(joInput, "setl_id"));
  1903. joTmp.Add("PersonalNo", Global.pat.psn_no);
  1904. joTmp.Add("Name", JsonHelper.getDestValue(joInput, "psn_name"));
  1905. joTmp.Add("INSUPrecNo", JsonHelper.getDestValue(joInput, "rx_drord_no"));
  1906. joTmp.Add("HISPrecNo", JsonHelper.getDestValue(joInput, "rx_drord_no"));
  1907. joTmp.Add("BusinessType", "exit_type");
  1908. joTmp.Add("Type", JsonHelper.getDestValue(joInput, "exit_type"));
  1909. joTmp.Add("AppyChkSetlListID", JsonHelper.getDestValue(joInput, "appy_chk_setl_list_id"));
  1910. joTmp.Add("DRGCode", JsonHelper.getDestValue(joInput, "drg_codg"));
  1911. joTmp.Add("DRGName", JsonHelper.getDestValue(joInput, "drg_name"));
  1912. joTmp.Add("FixmedinsCode", JsonHelper.getDestValue(joInput, "fixmedins_code"));
  1913. joTmp.Add("FixmedinsName", JsonHelper.getDestValue(joInput, "fixmedins_name"));
  1914. joTmp.Add("ValidFlag", iLX);
  1915. joTmp.Add("UpdateDate", DateTime.Now.ToString("yyyy-MM-dd"));
  1916. joTmp.Add("UpdateTime", DateTime.Now.ToString("HH:mm:ss"));
  1917. joTmp.Add("UpdateUserDr", Global.user.ID);
  1918. string serviceCode = "09010070";
  1919. string inpar = JsonHelper.setIrisInpar(serviceCode, joTmp).ToString();
  1920. JObject joRtn = invoker.invokeInsuService(inpar, "插入更新DRG业务信息");
  1921. if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0)
  1922. {
  1923. outParam = errMsg;
  1924. return -1;
  1925. }
  1926. else
  1927. {
  1928. outParam = joRtn.ToString();
  1929. return 0;
  1930. }
  1931. }
  1932. catch (Exception ex)
  1933. {
  1934. outParam = "医保平台插入更新DRG业务信息:" + ex.Message;
  1935. return -1;
  1936. }
  1937. }
  1938. #endregion
  1939. }
  1940. }