InsuBusiness.cs 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using PTMedicalInsurance.Common;
  7. using PTMedicalInsurance.Business;
  8. using System.Windows.Forms;
  9. using PTMedicalInsurance.Helper;
  10. using Newtonsoft.Json;
  11. using Newtonsoft.Json.Linq;
  12. using PTMedicalInsurance.Variables;
  13. using PTMedicalInsurance.Forms;
  14. using System.IO;
  15. using System.Reflection;
  16. using System.Data;
  17. namespace PTMedicalInsurance
  18. {
  19. public class InsuBusiness : IInsuBusiness
  20. {
  21. //定义相关的变量
  22. private Patients patient;
  23. private Fees fee;
  24. private Settlements settlement;
  25. //json对象属性
  26. private JObject joInParam;
  27. private JArray jaSession ;
  28. private JArray jaParams;
  29. private JObject joParam;
  30. private JObject joInterface;
  31. //设置业务实例
  32. CenterBusiness cBus = new CenterBusiness();
  33. HisMainBusiness hBus = new HisMainBusiness();
  34. HisIrisServices hIS = new HisIrisServices();
  35. MIIrisServices mIS= new MIIrisServices();
  36. InvokeHelper invoker = new InvokeHelper();
  37. CardReader_HN CardRead = new CardReader_HN();
  38. ReadCardClass rcl = new ReadCardClass();
  39. private string businessType;
  40. private string operationType; //RegisterOP 门诊挂号 SettlementOP门诊收费
  41. private string partialFlag;
  42. System.Type ComType = null;
  43. object ComInstance = null;
  44. public InsuBusiness()
  45. {
  46. Global.curEvt.path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  47. ComputerInfo comp = new ComputerInfo();
  48. Global.curEvt.mac = comp.GetMAC();
  49. Global.curEvt.ip = comp.GetIP(); //"10.1.4.100";
  50. Global.pat.insuplc_admdvs = ""; //如果是NULL中心会报错
  51. }
  52. private int parseInparam(string inParam,out string errMsg)
  53. {
  54. errMsg = "";
  55. try
  56. {
  57. joInParam = JObject.Parse(inParam);
  58. jaSession = JArray.Parse(JsonHelper.getDestValue(joInParam, "session"));
  59. Global.curEvt.jaSession = jaSession;
  60. jaParams = JArray.Parse(JsonHelper.getDestValue(joInParam, "params"));
  61. joParam = JObject.FromObject(jaParams[0]);
  62. joInterface = JObject.Parse(JsonHelper.getDestValue(joInParam, "interfaceinfo"));
  63. businessType = JsonHelper.getDestValue(joInParam, "businessType");
  64. operationType = JsonHelper.getDestValue(joInParam, "operationType");
  65. return 0;
  66. }
  67. catch (Exception ex)
  68. {
  69. errMsg = "parseInparam 解析入参异常:" + errMsg;
  70. return -1;
  71. }
  72. }
  73. /// <summary>
  74. /// 签到
  75. /// </summary>
  76. /// <param name="InParam"></param>
  77. /// <returns></returns>
  78. public string Init(string InParam)
  79. {
  80. string errMsg, rtnResult ="";
  81. JObject joRtn = new JObject();
  82. try
  83. {
  84. if (hBus.initEnvironment(InParam, out errMsg) != 0)
  85. {
  86. return JsonHelper.setExceptionJson(-100, "initEnvironment 失败", errMsg).ToString();
  87. }
  88. else
  89. {
  90. if (mIS.isSigned(ref Global.curEvt.signno) != true)
  91. {
  92. //北京没有初始化
  93. Global.curEvt.signno = DateTime.Now.ToString("yyyyMMddHHmmss");
  94. //插入签到表
  95. if (mIS.saveSignRecord(Global.curEvt.signno, out errMsg) != 0)
  96. {
  97. rtnResult = JsonHelper.setIrisReturnValue(0, "北京首信医保无签到接口,HIS签到成功但插入签到表失败:" + errMsg, null).ToString();
  98. }
  99. else
  100. {
  101. rtnResult = JsonHelper.setIrisReturnValue(0, "北京首信医保无签到接口,HIS签到成功", joRtn).ToString();
  102. }
  103. }
  104. else
  105. {
  106. rtnResult = JsonHelper.setIrisReturnValue(0, "初始化成功!", null).ToString();
  107. }
  108. return rtnResult;
  109. }
  110. }
  111. catch (Exception ex)
  112. {
  113. rtnResult = JsonHelper.setExceptionJson(-100, "Init 异常", ex.Message).ToString();
  114. return rtnResult;
  115. }
  116. finally
  117. {
  118. Global.writeLog("初始化结果:" + rtnResult);
  119. }
  120. }
  121. /// <summary>
  122. /// 初始化
  123. /// </summary>
  124. /// <param name="inParam"></param>
  125. /// <param name="outParam"></param>
  126. /// <returns></returns>
  127. private int init(string inParam, out string outParam)
  128. {
  129. string errMsg;
  130. outParam = "";
  131. try
  132. {
  133. //BS架构调用方式问题,每次调用都需要重新初始化
  134. JObject joInitRtn = JObject.Parse(Init(inParam));
  135. if (JsonHelper.parseIrisRtnValue(joInitRtn, out errMsg) != 0)
  136. {
  137. outParam = JsonHelper.setExceptionJson(-100, "init(HIS医保环境初始化)", errMsg).ToString();
  138. return -1;
  139. }
  140. else
  141. {
  142. return 0;
  143. }
  144. }
  145. catch (Exception ex)
  146. {
  147. outParam = JsonHelper.setExceptionJson(-100, "init(HIS医保环境初始化)异常", ex.Message).ToString();
  148. return -1;
  149. }
  150. }
  151. /// <summary>
  152. /// 获取患者信息
  153. /// </summary>
  154. /// <param name="InParam"></param>
  155. /// <returns></returns>
  156. public string GetPatientInfo(string InParam)
  157. {
  158. Global.writeLog("GetPatientInfo入参:" + JsonHelper.Compress(InParam));
  159. //设置返回值,错误信息
  160. int errCode;
  161. string errMsg, rtnResult = "",outParam;
  162. JObject joPatInfoRtn = new JObject();
  163. //BS架构调用方式问题,每次调用都需要重新初始化
  164. if (init(InParam,out outParam)!= 0)
  165. {
  166. rtnResult = outParam;
  167. return rtnResult;
  168. }
  169. JObject joInParam = JObject.Parse(InParam);
  170. string businessType = JsonHelper.getDestValue(joInParam,"businessType");
  171. try
  172. {
  173. switch (businessType)
  174. {
  175. case "M1"://门诊读卡
  176. {
  177. //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
  178. if (hBus.readCard(out outParam) != 0)
  179. {
  180. rtnResult = JsonHelper.setExceptionJson(-1, "读卡失败!", outParam).ToString();
  181. }
  182. else
  183. {
  184. string patInfo = outParam;
  185. JObject joPatInfo = hBus.ConvertXMLToObject(outParam);
  186. //展示患者信息界面
  187. if (hBus.showPatInfo(joPatInfo, out outParam) != 0)
  188. {
  189. rtnResult = outParam;
  190. MessageBox.Show(rtnResult);
  191. //return rtnResult;
  192. }
  193. else
  194. {
  195. //赋值全局变量,统一异地和本地返回的参保信息
  196. hBus.setGlobalPatAfaterShowPatInfo(joPatInfo, out joPatInfoRtn, out errMsg);
  197. //插入患者本次就诊用的参保信息
  198. if (mIS.insertPatCurInsuInfo(joPatInfo, out outParam) != 0)
  199. {
  200. rtnResult = JsonHelper.setExceptionJson(-1, "插入患者参保信息失败,请联系管理员!", outParam).ToString();
  201. //return rtnResult;
  202. }
  203. rtnResult = JsonHelper.setIrisReturnValue(0, "", joPatInfoRtn).ToString();
  204. //return rtnResult;
  205. }
  206. }
  207. break;
  208. }
  209. case "Z1"://住院读卡
  210. {
  211. //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
  212. if (hBus.readCard(out outParam) != 0)
  213. {
  214. rtnResult = JsonHelper.setExceptionJson(-1, "读卡失败!", outParam).ToString();
  215. }
  216. else
  217. {
  218. string patInfo = outParam;
  219. JObject joPatInfo = hBus.ConvertXMLToObject(outParam);
  220. //展示患者信息界面
  221. if (hBus.showPatInfo(joPatInfo, out outParam) != 0)
  222. {
  223. rtnResult = outParam;
  224. MessageBox.Show(rtnResult);
  225. //return rtnResult;
  226. }
  227. else
  228. {
  229. //赋值全局变量,统一异地和本地返回的参保信息
  230. hBus.setGlobalPatAfaterShowPatInfo(joPatInfo, out joPatInfoRtn, out errMsg);
  231. //插入患者本次就诊用的参保信息
  232. if (mIS.insertPatCurInsuInfo(joPatInfo, out outParam) != 0)
  233. {
  234. rtnResult = JsonHelper.setExceptionJson(-1, "插入患者参保信息失败,请联系管理员!", outParam).ToString();
  235. //return rtnResult;
  236. }
  237. rtnResult = JsonHelper.setIrisReturnValue(0, "", joPatInfoRtn).ToString();
  238. //return rtnResult;
  239. }
  240. }
  241. break;
  242. }
  243. case "MedicalOrderSharing": //医嘱共享 MedicalOrderSharing MedicalOrderSharing
  244. {
  245. string type = JsonHelper.getDestValue(joInParam, "params[0].type"); //调用医嘱共享业务接口-00:查询门诊历史交易 01:参保人照片
  246. Global.pat.psn_no = JsonHelper.getDestValue(joInParam, "params[0].psn_No");
  247. Global.inf.interfaceDr = int.Parse(JsonHelper.getDestValue(joInParam, "interfaceID"));
  248. Global.pat.adm_Dr = int.Parse(JsonHelper.getDestValue(joInParam, "params[0].admID"));
  249. Global.pat.name = JsonHelper.getDestValue(joInParam, "params[0].PatientName");
  250. Global.pat.certNO = JsonHelper.getDestValue(joInParam, "params[0].certNO");
  251. Global.user.ID = JsonHelper.getDestValue(joInParam, "session[0].userID");
  252. JObject joRtn = mIS.getInterface_TY(Global.inf.interfaceDr.ToString(), "");
  253. Global.inf.hospitalDr = int.Parse(JsonHelper.getDestValue(joRtn, "HospitalDr"));
  254. #region【调用医嘱共享业务接口-00:查询门诊历史交易 01:参保人照片】
  255. JObject joMedOrderShare = new JObject();
  256. //00调用医嘱共享接口查询门诊历史交易
  257. if (hBus.MedInsuOrderShareInfo("00", out joMedOrderShare, out outParam) != 0)
  258. {
  259. rcl.Close(ComType, ComInstance, out errMsg);
  260. rtnResult = JsonHelper.setExceptionJson(-101, "MedInsuOrderShareInfo-00:", outParam).ToString();
  261. return rtnResult;
  262. }
  263. else
  264. {
  265. //调用IRIS服务插入医嘱共享信息表
  266. if (mIS.insertMedOrderShareInfo("00", joMedOrderShare, out outParam) != 0)
  267. {
  268. rcl.Close(ComType, ComInstance, out errMsg);
  269. rtnResult = JsonHelper.setExceptionJson(-102, "insertMedOrderShareInfo-00:", outParam).ToString();
  270. return rtnResult;
  271. }
  272. }
  273. //01调用医嘱共享接口查询患者照片
  274. if (hBus.MedInsuOrderShareInfo("01", out joMedOrderShare, out outParam) != 0)
  275. {
  276. rcl.Close(ComType, ComInstance, out errMsg);
  277. rtnResult = JsonHelper.setExceptionJson(-101, "MedInsuOrderShareInfo-01:", outParam).ToString();
  278. return rtnResult;
  279. }
  280. else
  281. {
  282. //调用IRIS服务插入医嘱共享信息表
  283. if (mIS.insertMedOrderShareInfo("01", joMedOrderShare, out outParam) != 0)
  284. {
  285. rcl.Close(ComType, ComInstance, out errMsg);
  286. rtnResult = JsonHelper.setExceptionJson(-102, "insertMedOrderShareInfo-01:", outParam).ToString();
  287. return rtnResult;
  288. }
  289. }
  290. rtnResult = JsonHelper.setExceptionJson(0, "insertMedOrderShareInfo-01:", outParam).ToString();
  291. return rtnResult;
  292. #endregion
  293. break;
  294. }
  295. }
  296. return rtnResult;
  297. }
  298. catch (Exception ex)
  299. {
  300. rtnResult = JsonHelper.setIrisReturnValue(-1 , "GetPatientInfo发生异常;" + ex.Message,null).ToString();
  301. return rtnResult;
  302. }
  303. finally
  304. {
  305. Global.writeLog("GetPatientInfo出参:" + JsonHelper.Compress(rtnResult));
  306. }
  307. }
  308. /// <summary>
  309. /// 登记
  310. /// </summary>
  311. /// <param name="InParam"></param>
  312. /// <returns></returns>
  313. public string Register(string InParam)
  314. {
  315. Global.writeLog("Register 入参:" + JsonHelper.Compress(InParam));
  316. //设置返回值,错误信息
  317. string errMsg, rtnResult = "", outParam;
  318. try
  319. {
  320. //解析入参
  321. if (parseInparam(InParam, out errMsg) != 0)
  322. {
  323. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  324. return rtnResult;
  325. }
  326. //BS架构调用方式问题,每次调用都需要重新初始化
  327. if (init(InParam, out outParam) != 0)
  328. {
  329. rtnResult = outParam;
  330. return rtnResult;
  331. }
  332. //获取pat
  333. hBus.GetRegPatInfo(businessType, joInParam, out Global.pat);
  334. switch (businessType)
  335. {
  336. case "M2"://门诊登记
  337. {
  338. break;
  339. }
  340. case "M2C"://门诊登记撤销
  341. {
  342. break;
  343. }
  344. case "Z0"://住院修改
  345. {
  346. break;
  347. }
  348. case "Z2"://入院登记
  349. {
  350. string regInParam = "";
  351. Global.pat.admType = 2;
  352. Global.pat.RYorCY = "1";
  353. //需要HIS生成一个唯一的登记流水号前端展示出来 手工录入首信客户端
  354. Global.pat.mdtrtID = "05155009" + DateTime.Now.ToString("yyMMddHHmmss"); //"05155009" + DateTime.Now.ToString("yyMMddHHmmss")
  355. if (Global.pat.mdtrtID == "")
  356. {
  357. rtnResult = JsonHelper.setExceptionJson(-1, "住院登记流水号不能为空!", outParam).ToString();
  358. return rtnResult;
  359. }
  360. if (hBus.GetInPatRegisterFormNew(out regInParam) == 0)
  361. {
  362. //插入医保平台
  363. JObject joRegInfo = JObject.Parse(JsonHelper.setCenterInpar_plain("2401", regInParam));
  364. if (mIS.saveInpatRegisterInfoNew(joRegInfo, Global.pat.mdtrtID, out outParam) != 0)
  365. {
  366. rtnResult = JsonHelper.setExceptionJson(-1, "云平台保存登记信息", outParam).ToString();
  367. return rtnResult;
  368. }
  369. //返回登记信息,插入HIS
  370. if (hIS.returnRegisterInfoNew(joRegInfo, Global.pat.mdtrtID, out outParam) != 0)
  371. {
  372. rtnResult = JsonHelper.setExceptionJson(-1, "HIS平台保存登记信息", outParam).ToString();
  373. return rtnResult;
  374. }
  375. else
  376. {
  377. rtnResult = JsonHelper.setIrisReturnValue(0, "登记成功", null).ToString();
  378. return rtnResult;
  379. }
  380. }
  381. else
  382. {
  383. rtnResult = JsonHelper.setExceptionJson(-1, "获取住院登记信息", regInParam).ToString();
  384. return rtnResult;
  385. }
  386. }
  387. case "Z2C"://入院登记取消
  388. {
  389. //北京无取消中心登记接口 直接返回中西取消成功后取消医保平台登记
  390. if (mIS.cancleRegister(1, out outParam) != 0)
  391. {
  392. rtnResult = JsonHelper.setExceptionJson(-1, "中心取消登记成功,但云医保平台取消失败,", outParam).ToString();
  393. return rtnResult;
  394. }
  395. //取消HIS 登记
  396. if (hIS.cancleRegister( out outParam) != 0)
  397. {
  398. rtnResult = JsonHelper.setExceptionJson(-1, "中心和云医保平台取消登记成功,但HIS取消失败,", outParam).ToString();
  399. return rtnResult;
  400. }
  401. else
  402. {
  403. //CM 20230602 删除医保平台医保费用明细上传表数据
  404. mIS.deleteFee(out errMsg);
  405. rtnResult = JsonHelper.setIrisReturnValue(0, "取消医保登记成功", null).ToString();
  406. return rtnResult;
  407. }
  408. }
  409. case "Z6"://出院登记
  410. {
  411. rtnResult = JsonHelper.setIrisReturnValue(0, "出院登记成功", null).ToString();
  412. return rtnResult;
  413. }
  414. case "Z6C"://出院登记取消
  415. {
  416. rtnResult = JsonHelper.setIrisReturnValue(0, "取消出院登记成功", null).ToString();
  417. return rtnResult;
  418. }
  419. default:
  420. {
  421. rtnResult = JsonHelper.setExceptionJson(-1, "Register 交易", "传入的业务编码不对!").ToString();
  422. return rtnResult;
  423. }
  424. }
  425. }
  426. catch (Exception ex)
  427. {
  428. rtnResult = JsonHelper.setIrisReturnValue(-1, "Register 发生异常;" + ex.Message, null).ToString();
  429. return rtnResult;
  430. }
  431. finally
  432. {
  433. Global.writeLog("Register 出参:" + JsonHelper.Compress(rtnResult));
  434. }
  435. return "";
  436. }
  437. /// <summary>
  438. /// 费用上传
  439. /// </summary>
  440. /// <param name="InParam"></param>
  441. /// <returns></returns>
  442. public string FeeUpload(string InParam)
  443. {
  444. Global.writeLog("FeeUpload 入参:" + JsonHelper.Compress(InParam));
  445. //设置返回值,错误信息
  446. int errCode;
  447. string errMsg, rtnResult = "", outParam;
  448. try
  449. {
  450. //解析入参
  451. if (parseInparam(InParam, out errMsg) != 0)
  452. {
  453. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  454. return rtnResult;
  455. }
  456. //BS架构调用方式问题,每次调用都需要重新初始化
  457. if (init(InParam, out outParam) != 0)
  458. {
  459. rtnResult = outParam;
  460. return rtnResult;
  461. }
  462. //获取pat
  463. hBus.GetFeeHisInfo(businessType, joInParam, out Global.pat);
  464. switch (businessType)
  465. {
  466. case "M3"://门诊费用上传
  467. {
  468. break;
  469. }
  470. case "M3C"://门诊费用撤销
  471. {
  472. break;
  473. }
  474. case "Z3"://入院费用上传
  475. {
  476. Global.pat.admType = 2;
  477. //从医保平台获取患者详细的医保登记信息
  478. if (mIS.queryRegisterInfo(1, out outParam) != 0)
  479. {
  480. rtnResult = JsonHelper.setExceptionJson(-1, "查询患者云平台登记信息", outParam).ToString();
  481. return rtnResult;
  482. }
  483. else
  484. {
  485. JObject joReg = JObject.Parse(outParam);
  486. Global.pat.medType = JsonHelper.getDestValue(joReg, "data.MedicalType");
  487. Global.pat.insuType = JsonHelper.getDestValue(joReg, "data.InsuType");
  488. Global.pat.gend = JsonHelper.getDestValue(joReg, "data.Gend");
  489. if (Global.pat.gend == "")
  490. Global.pat.gend = "1";
  491. }
  492. //先取消中心费用传送
  493. // cBus.cancleFeeUpload("2302", out errMsg);
  494. //再删除医保传送表的数据
  495. //mIS.deleteFee( out errMsg);
  496. //开始进行费用传送
  497. //调用HIS费用查询信息
  498. if (hIS.getHisFee(Global.pat, out outParam) != 0)
  499. {
  500. rtnResult = JsonHelper.setExceptionJson(-1, "获取HIS费用", outParam).ToString();
  501. return rtnResult;
  502. }
  503. //调用医保平台转换
  504. JObject joHisFee = JObject.Parse(outParam);
  505. if (mIS.convertHisFeeWithInsuCode(joHisFee,out outParam) != 0)
  506. {
  507. rtnResult = JsonHelper.setExceptionJson(-1, "转换HIS费用", outParam).ToString();
  508. return rtnResult;
  509. }
  510. JArray jaFeeDetail = JArray.Parse(JsonHelper.getDestValue(JObject.Parse(outParam), "data"));
  511. //组织出院诊断和手术信息
  512. if (hBus.writeDisToFile(out outParam) != 0)
  513. {
  514. rtnResult = JsonHelper.setExceptionJson(-1, "组织zyjd出院诊断和手术入参", outParam).ToString();
  515. return rtnResult;
  516. }
  517. else
  518. {
  519. //写入文件内容
  520. Global.writeInFile("zyjd" + Global.pat.adm_Dr, outParam);
  521. }
  522. //按指定条数分割后上传,保存,更新
  523. if (hBus.writeFeeToFile(jaFeeDetail, out outParam) != 0)
  524. {
  525. rtnResult = JsonHelper.setExceptionJson(-1, "组织zyfy出院费用入参", outParam).ToString();
  526. return rtnResult;
  527. }
  528. else
  529. {
  530. //写入文件内容
  531. Global.writeInFile("zyfy" + Global.pat.adm_Dr, outParam);
  532. rtnResult = JsonHelper.setIrisReturnValue(0, "住院费用【" + "zyfy" + Global.pat.adm_Dr + ".in】导出成功", null).ToString();
  533. return rtnResult;
  534. }
  535. }
  536. case "Z3C"://住院费用上传取消
  537. {
  538. rtnResult = JsonHelper.setIrisReturnValue(0, "住院费用上传取消成功", null).ToString();
  539. return rtnResult;
  540. //if (mIS.deleteFee(out errMsg) != 0)
  541. //{
  542. // rtnResult = JsonHelper.setExceptionJson(-1, "删除医保平台费用", errMsg).ToString();
  543. // return rtnResult;
  544. //}
  545. //else
  546. //{
  547. // rtnResult = JsonHelper.setIrisReturnValue(0, "住院费用上传取消成功", null).ToString();
  548. // return rtnResult;
  549. //}
  550. }
  551. default:
  552. {
  553. rtnResult = JsonHelper.setExceptionJson(-1, "FeeUpload 交易", "传入的业务编码不对!").ToString();
  554. return rtnResult;
  555. }
  556. }
  557. return rtnResult;
  558. }
  559. catch (Exception ex)
  560. {
  561. rtnResult = JsonHelper.setExceptionJson(-1, "FeeUpload 交易", ex.Message).ToString();
  562. return rtnResult;
  563. }
  564. finally
  565. {
  566. Global.writeLog("FeeUpload 出参:" + JsonHelper.Compress(rtnResult));
  567. }
  568. }
  569. /// <summary>
  570. /// 结算
  571. /// </summary>
  572. /// <param name="InParam"></param>
  573. /// <returns></returns>
  574. public string Settlement(string InParam)
  575. {
  576. Global.writeLog("Settlement 入参:" + JsonHelper.Compress(InParam));
  577. //设置返回值,错误信息
  578. string errMsg, rtnResult = "", outParam;
  579. try
  580. {
  581. //解析入参
  582. if (parseInparam(InParam, out errMsg) != 0)
  583. {
  584. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  585. return rtnResult;
  586. }
  587. //BS架构调用方式问题,每次调用都需要重新初始化
  588. if (init(InParam, out outParam) != 0)
  589. {
  590. rtnResult = outParam;
  591. return rtnResult;
  592. }
  593. //获取pat
  594. hBus.GetSettlementHisInfo(businessType, joInParam, out Global.pat);
  595. //MessageBox.Show("businessType:" + businessType + "|||Global.pat.partialFlag:" + Global.pat.partialFlag);
  596. switch (businessType)
  597. {
  598. case "M4"://门诊预结算
  599. {
  600. OutpatientRegistration frmReg = new OutpatientRegistration();
  601. if (frmReg.ShowDialog() == DialogResult.OK)
  602. {
  603. rtnResult = "调用结束";
  604. }
  605. break;
  606. }
  607. case "M4C"://门诊预结算撤销
  608. {
  609. break;
  610. }
  611. case "M5"://门诊结算
  612. {
  613. string patInfo = "";
  614. string CloseMsg = "";
  615. JObject joPatInfo = new JObject();
  616. JObject jo = new JObject();
  617. if (hBus.readCardSettle(out ComType, out ComInstance, out outParam) != 0)
  618. {
  619. rcl.Close(ComType, ComInstance, out CloseMsg);
  620. rtnResult = JsonHelper.setExceptionJson(-100, "readCard:", outParam).ToString();
  621. return rtnResult;
  622. }
  623. else
  624. {
  625. patInfo = outParam;
  626. joPatInfo = hBus.ConvertXMLToObject(outParam);
  627. //展示患者信息界面
  628. if (hBus.showPatInfo(joPatInfo, out outParam) != 0)
  629. {
  630. rcl.Close(ComType, ComInstance, out CloseMsg);
  631. rtnResult = JsonHelper.setExceptionJson(-100, "showPatInfoNew:", outParam).ToString();
  632. return rtnResult;
  633. }
  634. //患者信息赋值给全局变量
  635. if (hBus.setGlobalPatAfaterShowPatInfo(joPatInfo, out jo, out errMsg) != 0)
  636. {
  637. rcl.Close(ComType, ComInstance, out CloseMsg);
  638. rtnResult = JsonHelper.setExceptionJson(-1, "取参保返回值赋值全局变量setGlobalPatAfaterShowPatInfo", errMsg).ToString();
  639. return rtnResult;
  640. }
  641. #region【调用医嘱共享业务接口-00:查询门诊历史交易 01:参保人照片】
  642. if ((Global.inf.operationType == "RegisterOP") && (Global.pat.bMedInsuShare)) //挂号结算的时候调用
  643. {
  644. JObject joMedOrderShare = new JObject();
  645. //00调用医嘱共享接口查询门诊历史交易
  646. if (hBus.MedInsuOrderShareInfo("00", out joMedOrderShare, out outParam) != 0)
  647. {
  648. rcl.Close(ComType, ComInstance, out CloseMsg);
  649. rtnResult = JsonHelper.setExceptionJson(-100, "MedInsuOrderShareInfo-00:", outParam).ToString();
  650. return rtnResult;
  651. }
  652. else
  653. {
  654. //调用IRIS服务插入医嘱共享信息表
  655. if (mIS.insertMedOrderShareInfo("00", joMedOrderShare, out outParam) != 0)
  656. {
  657. rcl.Close(ComType, ComInstance, out CloseMsg);
  658. rtnResult = JsonHelper.setExceptionJson(-100, "insertMedOrderShareInfo-00:", outParam).ToString();
  659. return rtnResult;
  660. }
  661. }
  662. //01调用医嘱共享接口获取参保人员照片
  663. if (hBus.MedInsuOrderShareInfo("01", out joMedOrderShare, out outParam) != 0)
  664. {
  665. rcl.Close(ComType, ComInstance, out CloseMsg);
  666. rtnResult = JsonHelper.setExceptionJson(-100, "MedInsuOrderShareInfo-01:", outParam).ToString();
  667. return rtnResult;
  668. }
  669. else
  670. {
  671. //调用IRIS服务插入医嘱共享信息表
  672. if (mIS.insertMedOrderShareInfo("01", joMedOrderShare, out outParam) != 0)
  673. {
  674. rcl.Close(ComType, ComInstance, out CloseMsg);
  675. rtnResult = JsonHelper.setExceptionJson(-100, "insertMedOrderShareInfo-01:", outParam).ToString();
  676. return rtnResult;
  677. }
  678. }
  679. }
  680. #endregion
  681. }
  682. //校验HIS姓名与医保姓名是否一致
  683. if (hBus.checkName(Global.pat.name, out errMsg) != 0)
  684. {
  685. rcl.Close(ComType, ComInstance, out CloseMsg);
  686. rtnResult = JsonHelper.setExceptionJson(-1, "校验HIS与医保姓名是否一致", errMsg).ToString();
  687. return rtnResult;
  688. }
  689. //北京医保没有门诊挂号和门诊就诊信息上传交易,这里自定义一个登记流水号
  690. Global.pat.mdtrtID = "HIS05155009" + DateTime.Now.ToString("yyMMddHHmmss");
  691. //插入患者本次就诊用的参保信息
  692. if (mIS.insertPatCurInsuInfo(joPatInfo, out outParam) != 0)
  693. {
  694. if (DialogResult.Yes != MessageBox.Show(outParam, " 是否继续? ", MessageBoxButtons.YesNo))
  695. {
  696. rcl.Close(ComType, ComInstance, out CloseMsg);
  697. rtnResult = JsonHelper.setExceptionJson(-1, "插入患者本次就诊用的参保信息,请联系管理员!是否继续?", outParam).ToString();
  698. return rtnResult;
  699. }
  700. }
  701. //显示门诊登记面板
  702. if (hBus.showOutPatRegisterForm(out outParam, out string presInfo) != 0)
  703. {
  704. rcl.Close(ComType, ComInstance, out CloseMsg);
  705. rtnResult = JsonHelper.setExceptionJson(-1, "显示门诊登记面板", outParam).ToString();
  706. return rtnResult;
  707. }
  708. JObject joReg = JObject.Parse(outParam);
  709. //组织医保平台插入门诊医保登记参数
  710. JObject jo2201Inpar = JObject.Parse(JsonHelper.getDestProperty(joReg, "data"));
  711. JObject jo2203Inpar = new JObject();
  712. jo2203Inpar.Add("mdtrtinfo", JObject.Parse(JsonHelper.getDestValue(joReg, "mdtrtinfo")));
  713. jo2203Inpar.Add("diseinfo", JArray.Parse(JsonHelper.getDestValue(joReg, "diseinfo")));
  714. //插入门诊医保登记信息
  715. if (mIS.saveOutpatRegisterInfo(jo2201Inpar, jo2203Inpar, out errMsg) != 0)
  716. {
  717. rcl.Close(ComType, ComInstance, out CloseMsg);
  718. rtnResult = JsonHelper.setExceptionJson(-1, "门诊登记医保平台保存失败,请联系管理员!", errMsg).ToString();
  719. return rtnResult;
  720. }
  721. //组织费用明细参数
  722. if (hBus.setFeeInParam(out outParam) != 0)
  723. {
  724. rcl.Close(ComType, ComInstance, out CloseMsg);
  725. rtnResult = JsonHelper.setExceptionJson(-1, "组织费用明细参数异常", outParam).ToString();
  726. return rtnResult;
  727. }
  728. //费用分解 feeitemarray
  729. string sMXXX = outParam;
  730. string sCFXX = presInfo;
  731. //预结算、divide费用分解、DivideNation异地门诊收费预结算
  732. if (hBus.preSettlementOutPatOP(ComType, ComInstance, sCFXX, sMXXX, out outParam) != 0)
  733. {
  734. rcl.Close(ComType, ComInstance, out CloseMsg);
  735. rtnResult = JsonHelper.setExceptionJson(-1, "门诊医保预结算信息", outParam).ToString();
  736. return rtnResult;
  737. }
  738. //正式结算、本地Trade结算确认、HISFinishedNotice本地门诊交易完成通知(本地对账),异地TradeNation门诊结算、TradeCheckNation异地门诊交易实时对账
  739. if (hBus.SettlementOPOutPat(ComType, ComInstance, sCFXX, sMXXX, out outParam) != 0)
  740. {
  741. rcl.Close(ComType, ComInstance, out CloseMsg);
  742. rtnResult = JsonHelper.setExceptionJson(-1, "门诊医保正式结算信息", outParam).ToString();
  743. return rtnResult;
  744. }
  745. else
  746. {
  747. //展示医保返回费用信息
  748. if (hBus.showMedInsuFeeOP(Global.Set.SettleStr, out outParam) != 0)
  749. {
  750. rcl.Close(ComType, ComInstance, out CloseMsg);
  751. rtnResult = JsonHelper.setExceptionJson(-1, "展示门诊结算返回费用明细信息错误", outParam).ToString();
  752. return rtnResult;
  753. }
  754. //返回给云医保平台结算信息
  755. if (mIS.saveSettlementOP(Global.Set.SettleStr, Global.pat.iOtherProvLocal, out errMsg) != 0)
  756. {
  757. rcl.Close(ComType, ComInstance, out CloseMsg);
  758. rtnResult = JsonHelper.setExceptionJson(-1, "结算成功,但云医保平台保存失败", errMsg).ToString();
  759. return rtnResult;
  760. }
  761. //返回给HIS
  762. if (hIS.returnOutpatSettlementInfoOP(Global.Set.SettleStr, Global.pat.iOtherProvLocal, out outParam) != 0)
  763. {
  764. rcl.Close(ComType, ComInstance, out CloseMsg);
  765. rtnResult = JsonHelper.setExceptionJson(-1, "返回门诊结算信息给HIS", outParam).ToString();
  766. return rtnResult;
  767. }
  768. else
  769. {
  770. //MessageBox.Show("returnToFrontEndAfterSettlementOP:" + Global.Set.SettleStr);
  771. rcl.Close(ComType, ComInstance, out CloseMsg);
  772. JObject joHisServieRtn = JObject.Parse(outParam);
  773. hBus.returnToFrontEndAfterSettlementOP(Global.Set.SettleStr, Global.pat.iOtherProvLocal, joHisServieRtn, out outParam);
  774. //本地、异地门诊结算完成后 打印收据
  775. if (hBus.printBill(ComType, ComInstance, out string PrintMsg) != 0)
  776. {
  777. rcl.Close(ComType, ComInstance, out CloseMsg);
  778. MessageBox.Show("收据打印异常,请在【医保结算查询打印】菜单重新打印:" + PrintMsg);
  779. rtnResult = JsonHelper.setIrisReturnValue(0, "结算成功,收据打印失败" + PrintMsg, JObject.Parse(outParam)).ToString();
  780. }
  781. else
  782. {
  783. rcl.Close(ComType, ComInstance, out CloseMsg);
  784. rtnResult = JsonHelper.setIrisReturnValue(0, "结算成功", JObject.Parse(outParam)).ToString();
  785. }
  786. return rtnResult;
  787. }
  788. }
  789. }
  790. case "M5C"://门诊结算撤销
  791. {
  792. string CloseMsg = "";
  793. //hIS.cancleSettlementInfoHAHA(null, out string rr);
  794. //rtnResult = JsonHelper.setIrisReturnValue(0, "取消结算成功", null).ToString();
  795. //return rtnResult;
  796. //撤销中心医保结算
  797. if (hBus.cancelSettleMentRecord(out outParam) != 0)
  798. {
  799. rtnResult = JsonHelper.setExceptionJson(-1, "中心取消结算失败,", outParam).ToString();
  800. rcl.Close(ComType, ComInstance, out CloseMsg);
  801. return rtnResult;
  802. }
  803. else
  804. {
  805. string newSettleID = outParam; //退费成功中心返回的退费交易流水号tradeno
  806. //退云医保平台结算
  807. if (mIS.cancleSettlement(newSettleID, out outParam) != 0)
  808. {
  809. rtnResult = JsonHelper.setExceptionJson(-1, "取消平台结算信息", outParam).ToString();
  810. //return rtnResult;
  811. }
  812. int admType = 3; //门诊结算
  813. if (Global.inf.operationType == "RegisterOP")
  814. admType = 7; //挂号
  815. //取消医保平台登记
  816. if (mIS.cancleRegister(admType, out outParam) != 0)
  817. {
  818. rtnResult = JsonHelper.setExceptionJson(-1, "中心取消登记成功,但云医保平台取消失败,", outParam).ToString();
  819. //return rtnResult;
  820. }
  821. //退HIS结算
  822. if (hIS.cancleSettlementInfo(joParam, out outParam) != 0)
  823. {
  824. rtnResult = JsonHelper.setExceptionJson(-1, "取消HIS结算信息", outParam).ToString();
  825. return rtnResult;
  826. }
  827. else
  828. {
  829. rtnResult = JsonHelper.setIrisReturnValue(0, "取消结算成功", null).ToString();
  830. return rtnResult;
  831. }
  832. }
  833. }
  834. case "Z4"://住院预结算
  835. {
  836. Global.pat.RYorCY = "2";
  837. Global.pat.admType = 2;
  838. rtnResult = JsonHelper.setExceptionJson(-100, "该接口不支持预结算!", null).ToString();
  839. return rtnResult;
  840. }
  841. case "Z4C"://住院预结算撤销
  842. {
  843. rtnResult = JsonHelper.setExceptionJson(-100, "该接口不支持预结算取消!", null).ToString();
  844. return rtnResult;
  845. }
  846. case "Z5"://住院结算
  847. {
  848. //Global.pat.hisSumAmt = "147.66";
  849. Global.pat.hisPrePayment = "0.00"; //医保结算不加入预交金
  850. Global.Set.settlID = "HIS05155009" + DateTime.Now.ToString("yyMMddHHmmss");
  851. //弹框输入本次住院报销金额
  852. if (hBus.InputInsuAmt(Global.pat.hisSumAmt, Global.pat.hisPrePayment, out outParam) != 0)
  853. {
  854. rtnResult = JsonHelper.setExceptionJson(-1, "获取医保基金支付金额", outParam).ToString();
  855. return rtnResult;
  856. }
  857. else
  858. {
  859. //从云医保平台获取患者详细的医保登记信息
  860. if (mIS.queryRegisterInfo(1, out outParam) != 0)
  861. {
  862. rtnResult = JsonHelper.setExceptionJson(-1, "查询患者云平台登记信息", outParam).ToString();
  863. return rtnResult;
  864. }
  865. else
  866. {
  867. JObject joReg = JObject.Parse(outParam);
  868. Global.pat.medType = JsonHelper.getDestValue(joReg, "data.MedicalType");
  869. Global.pat.insuType = JsonHelper.getDestValue(joReg, "data.InsuType");
  870. Global.pat.mdtrtcertType= JsonHelper.getDestValue(joReg, "data.CertificateType");
  871. Global.pat.mdtrtcertNO = JsonHelper.getDestValue(joReg, "data.CertificateNO");
  872. Global.pat.DiseasecCode= JsonHelper.getDestValue(joReg, "data.MainDiagCode");
  873. Global.pat.DiseasecName = JsonHelper.getDestValue(joReg, "data.MainDiagName");
  874. }
  875. //返回给云医保平台结算信息
  876. if (mIS.saveSettlementNewIP(out errMsg) != 0)
  877. {
  878. rtnResult = JsonHelper.setExceptionJson(-1, "医保结算成功,但云医保平台保存失败", errMsg).ToString();
  879. return rtnResult;
  880. }
  881. //返回给HIS
  882. if (hIS.returnOutpatSettlementInfoNewIP(joParam,out outParam) != 0)
  883. {
  884. rtnResult = JsonHelper.setExceptionJson(-1, "返回住院结算信息给HIS", outParam).ToString();
  885. return rtnResult;
  886. }
  887. else
  888. {
  889. JObject joHisServieRtn = JObject.Parse(outParam);
  890. hBus.returnToFrontEndAfterSettlementNewIP(joHisServieRtn, out outParam);
  891. rtnResult = JsonHelper.setIrisReturnValue(0, "结算成功", JObject.Parse(outParam)).ToString();
  892. return rtnResult;
  893. }
  894. }
  895. }
  896. case "Z5C"://住院结算撤销
  897. {
  898. //查询结算表
  899. string sqlStr = " SELECT Top 1 * FROM BS_MedInsuSettlement "
  900. + " WHERE billType = 1 and ValidFlag=1 and Hospital_Dr=" + Global.inf.hospitalDr
  901. + " and Adm_Dr='" + Global.pat.adm_Dr + "'"
  902. + " and MdtrtID='" + Global.pat.mdtrtID + "'"
  903. + " And SettlementID='" + Global.pat.settlID + "'"
  904. + " Order By ID DESC ";
  905. JObject joSql = new JObject();
  906. joSql.Add("sqlStr", sqlStr);
  907. JObject joSettlInfo = mIS.QuerySettlementInfo(joSql);
  908. if (JsonHelper.getDestValue(joSettlInfo, "result.data[0]") == "")
  909. {
  910. rtnResult = JsonHelper.setExceptionJson(-1, "09010059查询医保平台结算记录表返回", "未查询到医保平台结算记录").ToString();
  911. return rtnResult;
  912. }
  913. //Global.pat.insuplc_admdvs = JsonHelper.getDestValue(joSettlInfo, "result.data[0].insuplc_admdvs");
  914. //Global.pat.SettID_YBJSB = JsonHelper.getDestValue(joSettlInfo, "result.data[0].SettlementID");
  915. //if (Global.pat.settlID != Global.pat.SettID_YBJSB)
  916. //{
  917. // rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", "前端传来结算SettlementID【" + Global.pat.settlID + "】与DLL通过SQL语句" + joSql
  918. // + ",获取到的SettlementID【" + Global.pat.SettID_YBJSB + "】不一致,可能存在HIS单边账,请联系医保开发人员处理该笔结算记录!").ToString();
  919. // return rtnResult;
  920. //}
  921. //取消平台结算信息
  922. if (mIS.cancleSettlement(Global.pat.settlID, out outParam) != 0)
  923. {
  924. rtnResult = JsonHelper.setExceptionJson(-1, "中心结算取消成功,医保平台结算信息取消失败!", outParam).ToString();
  925. return rtnResult;
  926. }
  927. //取消HIS医保结算信息
  928. if (hIS.cancleSettlementInfo(joParam, out outParam) != 0)
  929. {
  930. rtnResult = JsonHelper.setExceptionJson(-1, "中心跟医保平台结算取消成功, 取消HIS结算信息失败!", outParam).ToString();
  931. return rtnResult;
  932. }
  933. rtnResult = JsonHelper.setIrisReturnValue(0, "取消结算成功", null).ToString();
  934. return rtnResult;
  935. }
  936. default:
  937. {
  938. rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", "传入的业务编码不对!").ToString();
  939. return rtnResult;
  940. }
  941. }
  942. return rtnResult;
  943. }
  944. catch (Exception ex)
  945. {
  946. rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", ex.Message).ToString();
  947. return rtnResult;
  948. }
  949. finally
  950. {
  951. Global.writeLog("Settlement 出参:" + JsonHelper.Compress(rtnResult));
  952. }
  953. }
  954. /// <summary>
  955. /// 辅助交易
  956. /// </summary>
  957. /// <param name="InParam"></param>
  958. /// <returns></returns>
  959. public string AgentFun(string InParam)
  960. {
  961. Global.writeLog("AgentFun 入参:" + JsonHelper.Compress(InParam));
  962. //设置返回值,错误信息
  963. int errCode;
  964. string errMsg, rtnResult = "", outParam;
  965. try
  966. {
  967. //解析入参
  968. if (parseInparam(InParam, out errMsg) != 0)
  969. {
  970. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  971. return rtnResult;
  972. }
  973. //BS架构调用方式问题,每次调用都需要重新初始化
  974. if (init(InParam, out outParam) != 0)
  975. {
  976. rtnResult = outParam;
  977. return rtnResult;
  978. }
  979. //获取pat
  980. //hBus.GetFeeHisInfo(businessType, joInParam, out Global.pat);
  981. switch (businessType)
  982. {
  983. case "BasicData"://基础数据维护
  984. {
  985. BasicData bd = new BasicData();
  986. if (bd.ShowDialog() != DialogResult.OK)
  987. {
  988. rtnResult = JsonHelper.setExceptionJson(-100, "", "已退出基础数据维护界面").ToString();
  989. return rtnResult;
  990. }
  991. break;
  992. }
  993. case "Exception"://异常处理
  994. {
  995. //显示异常处理界面
  996. HandleException frmEX = new HandleException();
  997. if (frmEX.ShowDialog() != DialogResult.OK)
  998. {
  999. rtnResult = JsonHelper.setExceptionJson(-100, "", "已退出异常处理界面").ToString();
  1000. return rtnResult;
  1001. }
  1002. break;
  1003. }
  1004. case "CheckAndClearing"://对账清算
  1005. {
  1006. Clearing frmEX = new Clearing();
  1007. if (frmEX.ShowDialog() != DialogResult.OK)
  1008. {
  1009. rtnResult = JsonHelper.setExceptionJson(-100, "", "已退出对账清算界面").ToString();
  1010. return rtnResult;
  1011. }
  1012. break;
  1013. }
  1014. case "Print"://打印
  1015. {
  1016. //显示打印界面
  1017. SettlementBillPrint frmSettlList;
  1018. string insuAdmObj = JsonHelper.getDestValue(joInParam, "insuAdmObj");
  1019. if (insuAdmObj == "")
  1020. {
  1021. frmSettlList = new SettlementBillPrint();
  1022. //frmSettlList.ShowDialog();
  1023. if (frmSettlList.ShowDialog() != DialogResult.OK)
  1024. {
  1025. rtnResult = JsonHelper.setExceptionJson(-100, "", "已退出打印界面界面").ToString();
  1026. return rtnResult;
  1027. }
  1028. }
  1029. else
  1030. {
  1031. JObject joInsuAdmObj = JObject.Parse(insuAdmObj);
  1032. frmSettlList = new SettlementBillPrint(joInsuAdmObj);
  1033. string groupID = JsonHelper.getDestValue((JObject)Global.curEvt.jaSession[0], "groupID");
  1034. string userName = JsonHelper.getDestValue((JObject)Global.curEvt.jaSession[0], "userName");
  1035. DataTable dt = (DataTable)frmSettlList.dgvSettlRecord.DataSource;
  1036. int i = frmSettlList.dgvSettlRecord.CurrentRow.Index;
  1037. string AdmID = dt.Rows[i]["AdmID"].ToString();
  1038. string PsnNo = dt.Rows[i]["PersonnelNO"].ToString();
  1039. string MdtrtID = dt.Rows[i]["MdtrtID"].ToString();
  1040. string SettlementID = dt.Rows[i]["SettlementID"].ToString();
  1041. Global.pat.adm_Dr = int.Parse(AdmID);
  1042. frmSettlList.btnPrint_Click(null, null);
  1043. }
  1044. return JsonHelper.setIrisReturnValue(0, "", null).ToString();
  1045. break;
  1046. }
  1047. case "Log"://日志
  1048. {
  1049. MessageBox.Show(businessType);
  1050. break;
  1051. }
  1052. case "RecordUpload"://上传记录
  1053. {
  1054. MessageBox.Show(businessType);
  1055. break;
  1056. }
  1057. case "HospitalRegister"://备案
  1058. {
  1059. ToRecordChoose Referral = new ToRecordChoose();
  1060. Referral.ShowDialog();
  1061. break;
  1062. }
  1063. case "PrescribeCirculation"://医保处方流转
  1064. {
  1065. //PrescriptionCirculation PresCir = new PrescriptionCirculation();
  1066. PrescriptionCirculation PresCir = new PrescriptionCirculation("0000833734");
  1067. //PresCir.WindowState = FormWindowState.Minimized;
  1068. if (PresCir.ShowDialog() != DialogResult.OK)
  1069. {
  1070. rtnResult = JsonHelper.setExceptionJson(-100, "", "已退出提交外配处方信息界面").ToString();
  1071. return rtnResult;
  1072. }
  1073. break;
  1074. }
  1075. default:
  1076. {
  1077. rtnResult = JsonHelper.setExceptionJson(-1, "AgentFun 交易", "传入的业务编码不对!").ToString();
  1078. return rtnResult;
  1079. }
  1080. }
  1081. return rtnResult;
  1082. }
  1083. catch (Exception ex)
  1084. {
  1085. rtnResult = JsonHelper.setExceptionJson(-1, "AgentFun 交易", ex.Message).ToString();
  1086. return rtnResult;
  1087. }
  1088. finally
  1089. {
  1090. Global.writeLog("AgentFun 出参:" + JsonHelper.Compress(rtnResult));
  1091. }
  1092. }
  1093. public string Download(string InParam)
  1094. {
  1095. Global.writeLog("Download 入参:" + JsonHelper.Compress(InParam));
  1096. //设置返回值,错误信息
  1097. int errCode;
  1098. string errMsg, rtnResult = "", outParam;
  1099. try
  1100. {
  1101. //解析入参
  1102. if (parseInparam(InParam, out errMsg) != 0)
  1103. {
  1104. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  1105. return rtnResult;
  1106. }
  1107. //BS架构调用方式问题,每次调用都需要重新初始化
  1108. if (init(InParam, out outParam) != 0)
  1109. {
  1110. rtnResult = outParam;
  1111. return rtnResult;
  1112. }
  1113. dynamic joData = new JObject();
  1114. joData.data = joParam["data"];
  1115. //string code = (string)joInParam["code"];
  1116. string funNO = (string)joParam["funNO"];
  1117. switch (businessType)
  1118. {
  1119. case "DirectoryDownload":
  1120. {
  1121. string downloadParam = JsonHelper.setCenterInpar(funNO, joData.ToString());
  1122. rtnResult = hBus.DownloadDirectory(funNO, downloadParam).ToString();
  1123. break;
  1124. }
  1125. case "DictionayDownload":
  1126. {
  1127. string downloadParam = JsonHelper.setCenterInpar(funNO, joData.ToString());
  1128. rtnResult = hBus.downDictionary(downloadParam);
  1129. break;
  1130. }
  1131. }
  1132. return rtnResult;
  1133. }
  1134. catch (Exception ex)
  1135. {
  1136. rtnResult = JsonHelper.setExceptionJson(-100, "Download", ex.Message).ToString();
  1137. return rtnResult;
  1138. }
  1139. finally
  1140. {
  1141. Global.writeLog("Download 出参:" + rtnResult);
  1142. }
  1143. }
  1144. public string PlatformDirectConnect(string InParam)
  1145. {
  1146. //设置返回值,错误信息
  1147. int errCode;
  1148. string errMsg, rtnResult = "", outParam;
  1149. try
  1150. {
  1151. Global.writeLog("PlatformDirectConnect 入参:" + JsonHelper.Compress(InParam));
  1152. //解析入参
  1153. if (parseInparam(InParam, out errMsg) != 0)
  1154. {
  1155. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  1156. return rtnResult;
  1157. }
  1158. Global.businessType = businessType;
  1159. string funNO = JsonHelper.getDestValue(joInParam, "funNO");
  1160. //BS架构调用方式问题,每次调用都需要重新初始化
  1161. if (init(InParam, out outParam) != 0)
  1162. {
  1163. rtnResult = outParam;
  1164. return rtnResult;
  1165. }
  1166. JObject joRtn = invoker.invokeCenterService(funNO, JsonHelper.setCenterInpar(funNO, joParam));
  1167. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  1168. {
  1169. rtnResult = JsonHelper.setExceptionJson(-1, "平台直连错误", errMsg).ToString();
  1170. return rtnResult;
  1171. }
  1172. else
  1173. {
  1174. rtnResult = JsonHelper.setIrisReturnValue(0, "", joRtn).ToString();
  1175. return rtnResult;
  1176. }
  1177. }
  1178. catch (Exception ex)
  1179. {
  1180. rtnResult = JsonHelper.setExceptionJson(-1, "PlatformDirectConnect 交易", ex.Message).ToString();
  1181. return rtnResult;
  1182. }
  1183. finally
  1184. {
  1185. Global.writeLog("PlatformDirectConnect 出参:" + JsonHelper.Compress(rtnResult));
  1186. }
  1187. }
  1188. }
  1189. }