InsuBusiness.cs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  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.Linq;
  11. using PTMedicalInsurance.Variables;
  12. using PTMedicalInsurance.Forms;
  13. using System.IO;
  14. using System.Reflection;
  15. using System.Data;
  16. namespace PTMedicalInsurance
  17. {
  18. public class InsuBusiness : IInsuBusiness
  19. {
  20. //定义相关的变量
  21. //private Patients patient;
  22. //private Fees fee;
  23. //private Settlements settlement;
  24. //json对象属性
  25. private JObject joInParam;
  26. private JArray jaSession ;
  27. private JArray jaParams;
  28. private JObject joParam;
  29. private JObject joInterface;
  30. //设置业务实例
  31. CenterBusiness cBus = new CenterBusiness();
  32. HisMainBusiness hBus = new HisMainBusiness();
  33. HisIrisServices hIS = new HisIrisServices();
  34. MIIrisServices mIS= new MIIrisServices();
  35. InvokeHelper invoker = new InvokeHelper();
  36. //
  37. private string businessType;
  38. private string operationType;
  39. public InsuBusiness()
  40. {
  41. Global.curEvt.path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
  42. ComputerInfo comp = new ComputerInfo();
  43. Global.curEvt.mac = comp.GetMAC();
  44. Global.curEvt.ip = comp.GetIP();
  45. Global.pat.insuplc_admdvs = ""; //如果是NULL中心会报错
  46. }
  47. private int parseInparam(string inParam,out string errMsg)
  48. {
  49. errMsg = "";
  50. try
  51. {
  52. joInParam = JObject.Parse(inParam);
  53. jaSession = JArray.Parse(JsonHelper.getDestValue(joInParam, "session"));
  54. Global.curEvt.jaSession = jaSession;
  55. jaParams = JArray.Parse(JsonHelper.getDestValue(joInParam, "params"));
  56. joParam = JObject.FromObject(jaParams[0]);
  57. joInterface = JObject.Parse(JsonHelper.getDestValue(joInParam, "interfaceinfo"));
  58. businessType = JsonHelper.getDestValue(joInParam, "businessType");
  59. operationType = JsonHelper.getDestValue(joInParam, "operationType");
  60. if (businessType.Substring(0, 2) == "M6")
  61. {
  62. string onlineYBFalg = JsonHelper.getDestValue(joInParam, "insuAdmObj.onlineYBFalg");
  63. //如果是Y 线上医保,其它或空不是.因WebService不能通过DLL 获取根目录,所以强制指定目录
  64. if (onlineYBFalg == "Y")
  65. {
  66. Environment.CurrentDirectory = @"D:\HttpServerAPI\bin";
  67. }
  68. }
  69. return 0;
  70. }
  71. catch (Exception ex)
  72. {
  73. errMsg = "parseInparam 解析入参异常:" + ex.Message;
  74. return -1;
  75. }
  76. }
  77. /// <summary>
  78. /// 签到
  79. /// </summary>
  80. /// <param name="InParam"></param>
  81. /// <returns></returns>
  82. public string Init(string InParam)
  83. {
  84. string errMsg, rtnResult ="";
  85. JObject joRtn = new JObject();
  86. try
  87. {
  88. if (hBus.initEnvironment(InParam, out errMsg) != 0)
  89. {
  90. return JsonHelper.setExceptionJson(-100, "initEnvironment 失败", errMsg).ToString();
  91. //laqu
  92. }
  93. else
  94. {
  95. if (mIS.isSigned(ref Global.curEvt.signno) != true)
  96. {
  97. if (businessType != "BasicData")//如果是打开数据对照界面不调用初始化
  98. {
  99. //if (!Global.curEvt.needSignIn)
  100. //{
  101. // Global.curEvt.signno = "000000";
  102. // rtnResult = JsonHelper.setIrisReturnValue(0, "签到成功", joRtn).ToString();
  103. //}
  104. //else
  105. {
  106. CallResult callResult = new SignInProcess().Process(joRtn);
  107. rtnResult = callResult.Data;
  108. }
  109. }
  110. else
  111. {
  112. Global.curEvt.signno = "ABC123";
  113. rtnResult = JsonHelper.setIrisReturnValue(0, "初始化成功(医保对照不初始化)!", null).ToString();
  114. }
  115. }
  116. else
  117. {
  118. rtnResult = JsonHelper.setIrisReturnValue(0, "初始化成功!", null).ToString();
  119. }
  120. return rtnResult;
  121. }
  122. }
  123. catch (Exception ex)
  124. {
  125. rtnResult = JsonHelper.setExceptionJson(-100, "Init 异常", ex.Message).ToString();
  126. return rtnResult;
  127. }
  128. finally
  129. {
  130. Global.writeLog("初始化结果:" + rtnResult);
  131. }
  132. }
  133. /// <summary>
  134. /// 初始化
  135. /// </summary>
  136. /// <param name="inParam"></param>
  137. /// <param name="outParam"></param>
  138. /// <returns></returns>
  139. private int init(string inParam, out string outParam)
  140. {
  141. string errMsg;
  142. outParam = "";
  143. try
  144. {
  145. //BS架构调用方式问题,每次调用都需要重新初始化
  146. JObject joInitRtn = JObject.Parse(Init(inParam));
  147. if (JsonHelper.parseIrisRtnValue(joInitRtn, out errMsg) != 0)
  148. {
  149. outParam = JsonHelper.setExceptionJson(-100, "init(HIS医保环境初始化)", errMsg).ToString();
  150. return -1;
  151. }
  152. else
  153. {
  154. return 0;
  155. }
  156. }
  157. catch (Exception ex)
  158. {
  159. outParam = JsonHelper.setExceptionJson(-100, "init(HIS医保环境初始化)异常", ex.Message).ToString();
  160. return -1;
  161. }
  162. }
  163. /// <summary>
  164. /// 获取患者信息
  165. /// </summary>
  166. /// <param name="InParam"></param>
  167. /// <returns></returns>
  168. public string GetPatientInfo(string InParam)
  169. {
  170. Global.writeLog("GetPatientInfo入参:" + JsonHelper.Compress(InParam));
  171. //设置返回值,错误信息
  172. string rtnResult = "",outParam;
  173. //BS架构调用方式问题,每次调用都需要重新初始化
  174. if (init(InParam,out outParam)!= 0)
  175. {
  176. rtnResult = outParam;
  177. return rtnResult;
  178. }
  179. JObject joInParam = JObject.Parse(InParam);
  180. string businessType = JsonHelper.getDestValue(joInParam,"businessType");
  181. try
  182. {
  183. switch (businessType)
  184. {
  185. case "M1"://门诊读卡
  186. case "Z1"://住院读卡
  187. {
  188. //打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
  189. PatientService patientService = new PatientService();
  190. patientService.readPatientInfo(out outParam);
  191. rtnResult = JsonHelper.setIrisReturnValue(0, "", JObject.Parse(outParam)).ToString();
  192. break;
  193. }
  194. }
  195. return rtnResult;
  196. }
  197. catch (Exception ex)
  198. {
  199. rtnResult = JsonHelper.setIrisReturnValue(-1 , "GetPatientInfo发生异常;" + ex.Message,null).ToString();
  200. return rtnResult;
  201. }
  202. finally
  203. {
  204. Global.writeLog("GetPatientInfo出参:" + JsonHelper.Compress(rtnResult));
  205. }
  206. }
  207. /// <summary>
  208. /// 登记
  209. /// </summary>
  210. /// <param name="InParam"></param>
  211. /// <returns></returns>
  212. public string Register(string InParam)
  213. {
  214. Global.writeLog("Register 入参:" + JsonHelper.Compress(InParam));
  215. //设置返回值,错误信息
  216. string errMsg, rtnResult = "", outParam;
  217. try
  218. {
  219. //解析入参
  220. if (parseInparam(InParam, out errMsg) != 0)
  221. {
  222. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  223. return rtnResult;
  224. }
  225. //BS架构调用方式问题,每次调用都需要重新初始化
  226. if (init(InParam, out outParam) != 0)
  227. {
  228. rtnResult = outParam;
  229. return rtnResult;
  230. }
  231. //获取pat
  232. hBus.GetRegPatInfo(businessType, joInParam, out Global.pat);
  233. switch (businessType)
  234. {
  235. case "M2"://门诊登记
  236. {
  237. //string patInfo = "";
  238. //errMsg = showPatientInfo(out patInfo, out outParam);
  239. //if (!errMsg.Equals("0"))
  240. //{
  241. // return errMsg;
  242. //}
  243. //Global.writeLog("获取到病人信息:" + patInfo);
  244. //JObject reg = JObject.Parse(patInfo);
  245. //this.OutpatientReg(reg,patInfo);
  246. break;
  247. }
  248. case "M2C"://门诊登记撤销
  249. {
  250. break;
  251. }
  252. case "Z0"://住院修改
  253. {
  254. break;
  255. }
  256. case "Z2"://入院登记
  257. {
  258. Global.Set.clearingWay = "1"; //住院
  259. rtnResult = new InpatientRegistionProcess().Process(joParam).Data;
  260. break;
  261. }
  262. case "Z2C"://入院登记取消
  263. {
  264. rtnResult = new InpatientRegCancelProcess().Process(joParam).Data;
  265. break;
  266. }
  267. case "Z6"://出院登记
  268. {
  269. break;
  270. }
  271. case "Z6C"://出院登记取消
  272. {
  273. rtnResult = new InpatientExitCancelProcess().Process(joParam).Data;
  274. break;
  275. }
  276. default:
  277. {
  278. rtnResult = JsonHelper.setExceptionJson(-1, "Register 交易", "传入的业务编码不对!").ToString();
  279. return rtnResult;
  280. }
  281. }
  282. }
  283. catch (Exception ex)
  284. {
  285. rtnResult = JsonHelper.setIrisReturnValue(-1, "Register 发生异常;" + ex.Message, null).ToString();
  286. return rtnResult;
  287. }
  288. finally
  289. {
  290. Global.writeLog("Register 出参:" + JsonHelper.Compress(rtnResult));
  291. }
  292. return rtnResult;
  293. }
  294. /// <summary>
  295. /// 费用上传
  296. /// </summary>
  297. /// <param name="InParam"></param>
  298. /// <returns></returns>
  299. public string FeeUpload(string InParam)
  300. {
  301. Global.writeLog("FeeUpload 入参:" + JsonHelper.Compress(InParam));
  302. //设置返回值,错误信息
  303. string errMsg, rtnResult = "", outParam;
  304. try
  305. {
  306. //解析入参
  307. if (parseInparam(InParam, out errMsg) != 0)
  308. {
  309. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  310. return rtnResult;
  311. }
  312. //BS架构调用方式问题,每次调用都需要重新初始化
  313. if (init(InParam, out outParam) != 0)
  314. {
  315. rtnResult = outParam;
  316. return rtnResult;
  317. }
  318. //获取pat
  319. hBus.GetFeeHisInfo(businessType, joInParam, out Global.pat);
  320. switch (businessType)
  321. {
  322. case "M3"://门诊费用上传
  323. {
  324. break;
  325. }
  326. case "M3C"://门诊费用撤销
  327. {
  328. break;
  329. }
  330. case "Z3"://入院费用上传
  331. {
  332. rtnResult = new InpatientFeeUploadProcess().Process(joParam).Data;
  333. break;
  334. }
  335. case "Z3C"://住院费用上传取消
  336. {
  337. rtnResult = new InpatientFeeUploadCancelProcess().Process(joParam).Data;
  338. break;
  339. }
  340. default:
  341. {
  342. rtnResult = JsonHelper.setExceptionJson(-1, "FeeUpload 交易", "传入的业务编码不对!").ToString();
  343. return rtnResult;
  344. }
  345. }
  346. return rtnResult;
  347. }
  348. catch (Exception ex)
  349. {
  350. rtnResult = JsonHelper.setExceptionJson(-1, "FeeUpload 交易", ex.Message).ToString();
  351. return rtnResult;
  352. }
  353. finally
  354. {
  355. Global.writeLog("FeeUpload 出参:" + JsonHelper.Compress(rtnResult));
  356. }
  357. }
  358. /// <summary>
  359. /// 结算
  360. /// </summary>
  361. /// <param name="InParam"></param>
  362. /// <returns></returns>
  363. public string Settlement(string InParam)
  364. {
  365. Global.writeLog("Settlement 入参:" + JsonHelper.Compress(InParam));
  366. //设置返回值,错误信息
  367. string errMsg, rtnResult = "", outParam;
  368. try
  369. {
  370. //解析入参
  371. if (parseInparam(InParam, out errMsg) != 0)
  372. {
  373. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  374. return rtnResult;
  375. }
  376. //BS架构调用方式问题,每次调用都需要重新初始化
  377. if (init(InParam, out outParam) != 0)
  378. {
  379. rtnResult = outParam;
  380. return rtnResult;
  381. }
  382. //获取pat
  383. hBus.GetSettlementHisInfo(businessType, joInParam, out Global.pat);
  384. switch (businessType)
  385. {
  386. case "M4"://门诊预结算
  387. {
  388. // 没有做任何处理?是否必须???
  389. //OutpatientRegistration frmReg = new OutpatientRegistration();
  390. //if (frmReg.ShowDialog() == DialogResult.OK)
  391. //{
  392. // rtnResult = "调用结束";
  393. //}
  394. break;
  395. }
  396. case "M4C"://门诊预结算撤销
  397. {
  398. break;
  399. }
  400. case "M5"://门诊结算
  401. {
  402. Global.Set.clearingWay = "6"; //门诊
  403. LocalOPSettleService opService = new LocalOPSettleService();
  404. rtnResult = opService.Charge(operationType, joInParam);
  405. break;
  406. }
  407. case "M5C"://门诊结算撤销
  408. {
  409. LocalOPSettleService opService = new LocalOPSettleService();
  410. rtnResult = opService.DisCharge(joParam);
  411. break;
  412. }
  413. case "M6"://门诊移动支付结算
  414. {
  415. #region 移动支付
  416. //MobilePay mp = new MobilePay(InParam, out errMsg);
  417. //if (errMsg != "")
  418. //{
  419. // rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", errMsg).ToString();
  420. // return rtnResult;
  421. //}
  422. //if (mp.MobilePaySettlement(out outParam) != 0)
  423. // rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", outParam).ToString();
  424. //else
  425. // rtnResult = outParam;
  426. //return rtnResult;
  427. #endregion
  428. LocalMobilePayService mobilePayService = new LocalMobilePayService();
  429. rtnResult = mobilePayService.Charge(businessType,JObject.Parse(InParam));
  430. break;
  431. }
  432. case "M6C"://门诊移动支付结算撤销
  433. {
  434. #region 移动支付取消
  435. LocalMobilePayProcess mp = new LocalMobilePayProcess();
  436. rtnResult = mp.Cancel(JObject.Parse(InParam)).Data;
  437. #endregion
  438. break;
  439. }
  440. case "M6Confirm"://门诊移动支付确认
  441. {
  442. #region 移动支付确认
  443. LocalMobilePayProcess mp = new LocalMobilePayProcess();
  444. rtnResult = mp.Confirm(JObject.Parse(InParam)).Data;
  445. #endregion
  446. break;
  447. }
  448. case "Z4"://住院预结算
  449. {
  450. #region 预结算
  451. Global.pat.RYorCY = "2";
  452. JObject joSettle = new JObject();
  453. CallResult result = new IPPreSettlementProcess().Process(joParam);
  454. if (result.Success)
  455. {
  456. rtnResult = JsonHelper.setExceptionJson(-1, "结算信息展示", result.Data).ToString();
  457. }
  458. else
  459. {
  460. rtnResult = JsonHelper.setIrisReturnValue(0, "预结算成功", null).ToString();
  461. }
  462. break;
  463. #endregion
  464. }
  465. case "Z4C"://住院预结算撤销
  466. {
  467. rtnResult = JsonHelper.setExceptionJson(-100, "该接口不支持预结算取消!", null).ToString();
  468. return rtnResult;
  469. }
  470. case "Z5"://住院结算
  471. {
  472. Global.Set.clearingWay = "1"; //住院
  473. LocalIPSettlementService ipService = new LocalIPSettlementService();
  474. rtnResult = ipService.Charge(operationType,joParam);
  475. break;
  476. }
  477. case "Z5C"://住院结算撤销
  478. {
  479. LocalIPSettlementService ipService = new LocalIPSettlementService();
  480. rtnResult = ipService.DisCharge(joParam);
  481. break;
  482. }
  483. default:
  484. {
  485. rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", "传入的业务编码不对!").ToString();
  486. return rtnResult;
  487. }
  488. }
  489. return rtnResult;
  490. }
  491. catch (Exception ex)
  492. {
  493. rtnResult = JsonHelper.setExceptionJson(-1, "Settlement 交易", ex.Message).ToString();
  494. return rtnResult;
  495. }
  496. finally
  497. {
  498. Global.writeLog("Settlement 出参:" + JsonHelper.Compress(rtnResult));
  499. }
  500. }
  501. /// <summary>
  502. /// 辅助交易
  503. /// </summary>
  504. /// <param name="InParam"></param>
  505. /// <returns></returns>
  506. public string AgentFun(string InParam)
  507. {
  508. Global.writeLog("AgentFun 入参:" + JsonHelper.Compress(InParam));
  509. //设置返回值,错误信息
  510. string errMsg, rtnResult = "", outParam;
  511. try
  512. {
  513. //解析入参
  514. if (parseInparam(InParam, out errMsg) != 0)
  515. {
  516. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  517. return rtnResult;
  518. }
  519. //BS架构调用方式问题,每次调用都需要重新初始化
  520. if (init(InParam, out outParam) != 0)
  521. {
  522. Global.writeLog("初始化异常:"+outParam);
  523. rtnResult = outParam;
  524. // 基础数据没有初始化成功,也可以运行
  525. if (!businessType.Equals("BasicData")) {
  526. return rtnResult;
  527. }
  528. }
  529. //获取pat
  530. hBus.GetAgentFunHisInfo(businessType, joInParam, out Global.pat);
  531. switch (businessType)
  532. {
  533. case "BasicData"://基础数据维护
  534. {
  535. BasicData bd = new BasicData();
  536. bd.ShowDialog();
  537. break;
  538. }
  539. case "Exception"://异常处理
  540. {
  541. //显示异常处理界面
  542. HandleException frmEX = new HandleException();
  543. if (frmEX.ShowDialog() == DialogResult.OK)
  544. {
  545. }
  546. break;
  547. }
  548. case "CheckAndClearing"://对账清算
  549. {
  550. ClearingQuery frmEX = new ClearingQuery();
  551. if (frmEX.ShowDialog() == DialogResult.OK)
  552. {
  553. }
  554. break;
  555. }
  556. case "Print"://打印
  557. {
  558. try
  559. {
  560. rtnResult = new LocalSettleBillPrintProcess().Process(joInParam).Data;
  561. }
  562. catch (Exception ex)
  563. {
  564. MessageBox.Show(ex.Message);
  565. }
  566. break;
  567. }
  568. case "Log"://日志
  569. {
  570. MessageBox.Show(businessType);
  571. break;
  572. }
  573. case "RecordUpload"://上传记录
  574. {
  575. MessageBox.Show(businessType);
  576. break;
  577. }
  578. case "HospitalRegister"://备案
  579. {
  580. ToRecordChoose Referral = new ToRecordChoose();
  581. Referral.ShowDialog();
  582. break;
  583. }
  584. case "PreAndInProcessAnalysis"://事前分析 诊间只有住院的事前分析
  585. {
  586. //Global.pat.adm_Dr = int.Parse(JsonHelper.getDestValue(joInParam, "params[0].admID"));
  587. JObject joResult = new JObject();
  588. joResult.Add("result", JObject.Parse(JsonHelper.getDestValue(joParam, "insuData")));
  589. Global.writeLog(joResult.ToString());
  590. //事前分析
  591. if (Global.curEvt.ext.isOpenAnalysis)
  592. {
  593. //1.门诊挂号 2.门诊收费登记 3.住院登记 4.住院收费登记 5.住院执行医嘱 6.门诊结算 7.门诊预结算 8.住院结算 9.住院预结算 10.购药划卡
  594. if (hBus.PreAnalysis("2", joResult.ToString(), out errMsg) != 0)
  595. {
  596. rtnResult = JsonHelper.setExceptionJson(-1, "PreAndInProcessAnalysis 交易", errMsg).ToString();
  597. break;
  598. }
  599. else
  600. {
  601. rtnResult = JsonHelper.setExceptionJson(0, "PreAndInProcessAnalysis 交易", "上传成功!").ToString();
  602. break;
  603. }
  604. }
  605. else
  606. {
  607. rtnResult = JsonHelper.setExceptionJson(-1, "PreAndInProcessAnalysis 交易", "本地配置文件isOpenAnalysis设置为不启用!").ToString();
  608. break;
  609. }
  610. break;
  611. }
  612. default:
  613. {
  614. rtnResult = JsonHelper.setExceptionJson(-1, "AgentFun 交易", "传入的业务编码不对!").ToString();
  615. break;
  616. }
  617. }
  618. return rtnResult;
  619. }
  620. catch (Exception ex)
  621. {
  622. rtnResult = JsonHelper.setExceptionJson(-1, "AgentFun 交易", ex.Message).ToString();
  623. return rtnResult;
  624. }
  625. finally
  626. {
  627. Global.writeLog("AgentFun 出参:" + JsonHelper.Compress(rtnResult));
  628. }
  629. }
  630. public string PlatformDirectConnect(string InParam)
  631. {
  632. //设置返回值,错误信息
  633. string errMsg, rtnResult = "", outParam;
  634. try
  635. {
  636. Global.writeLog("PlatformDirectConnect 入参:" + JsonHelper.Compress(InParam));
  637. //解析入参
  638. if (parseInparam(InParam, out errMsg) != 0)
  639. {
  640. rtnResult = JsonHelper.setExceptionJson(-1, "", errMsg).ToString();
  641. return rtnResult;
  642. }
  643. Global.businessType = businessType;
  644. string funNO = JsonHelper.getDestValue(joInParam, "funNO");
  645. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(joInParam, "insuplc_admdvs");
  646. Global.inf.interfaceID = JsonHelper.getDestValue(joInParam, "interfaceinfo.ID");
  647. if ("4101".Equals(funNO))
  648. {
  649. Global.curEvt.useLocalOrgCode = true;
  650. Global.curEvt.needSignIn = true;
  651. Global.writeLog(Global.pat.insuplc_admdvs) ;
  652. //本地医保、省医保医保需要使用本地机构
  653. if ((!Utils.isOtherCity()) || "28".Equals(Global.inf.interfaceID))
  654. {
  655. //需要单独签到
  656. Global.curEvt.mac = Global.curEvt.mac + "" + Utils.GetInsuOrgCode();
  657. }
  658. else //异地的
  659. {
  660. Global.curEvt.mac = Global.curEvt.mac + Global.inf.hospitalNO;
  661. }
  662. }
  663. Global.writeLog(Global.curEvt.mac);
  664. //BS架构调用方式问题,每次调用都需要重新初始化
  665. if (init(InParam, out outParam) != 0)
  666. {
  667. rtnResult = outParam;
  668. return rtnResult;
  669. }
  670. TradeEnum trade = TradeEnum.DEFAULT.GetByCode(funNO);
  671. JObject joRtn = invoker.invokeCenterService(trade, joParam);
  672. if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
  673. {
  674. rtnResult = JsonHelper.setExceptionJson(-1, "平台直连错误", errMsg).ToString();
  675. return rtnResult;
  676. }
  677. else
  678. {
  679. rtnResult = JsonHelper.setIrisReturnValue(0, "", joRtn).ToString();
  680. return rtnResult;
  681. }
  682. }
  683. catch (Exception ex)
  684. {
  685. rtnResult = JsonHelper.setExceptionJson(-1, "PlatformDirectConnect 交易", ex.Message).ToString();
  686. return rtnResult;
  687. }
  688. finally
  689. {
  690. Global.writeLog("PlatformDirectConnect 出参:" + JsonHelper.Compress(rtnResult));
  691. }
  692. }
  693. }
  694. }