IrisServices.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  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 PTMedInsuInterface.Variables;
  28. using PTMedInsuInterface.Helper;
  29. using System.Windows.Forms;
  30. namespace PTMedInsuInterface.Business
  31. {
  32. class HisIrisServices
  33. {
  34. public JObject getHospital()
  35. {
  36. dynamic joParam = new JObject();
  37. joParam.hospID = "";
  38. joParam.logonHospID = Global.inf.hospitalDr;
  39. JObject joInparam = JsonHelper.setIrisInpar("09010039", joParam);
  40. InvokeHelper invoker = new InvokeHelper();
  41. return invoker.invokeHISService(joInparam.ToString(), "获取医院列表");
  42. }
  43. }
  44. class MIIrisServices
  45. {
  46. public int getPlatformHospitalDr(string hospID, out string hospDr)
  47. {
  48. string sqlStr = "SELECT * FROM CB_HOSPITAL WHERE HisHospital_Dr = " + hospID;
  49. JObject joParam = new JObject();
  50. JObject joRtn = new JObject();
  51. JObject joOutparam;
  52. string errorMsg = "";
  53. hospDr = "";
  54. try
  55. {
  56. InvokeHelper invoke = new InvokeHelper();
  57. joParam.Add("sqlStr", sqlStr);
  58. JObject joInparam = JsonHelper.setIrisInpar("01030001", joParam);
  59. joOutparam = invoke.invokeInsuService(joInparam.ToString(), "获取平台医院信息");
  60. if (JsonHelper.parseIrisRtnValue(joOutparam, out errorMsg) != 0)
  61. {
  62. hospDr = joOutparam["errorMessage"].ToString();
  63. return -1;
  64. }
  65. if (int.Parse(joOutparam["result"]["total"].ToString()) == 0)
  66. {
  67. hospDr = "平台未返回数据,请检查医保平台是否维护了医院信息!若维护了则检查是否跟HIS平台做了对照处理!";
  68. return -1;
  69. }
  70. if (int.Parse(joOutparam["result"]["total"].ToString()) != 1)
  71. {
  72. hospDr = "平台返回多条数据,请检查医院信息!";
  73. return -1;
  74. }
  75. JArray jaParams = new JArray();
  76. jaParams = JArray.FromObject(joOutparam["result"]["rows"]);
  77. hospDr = jaParams[0]["hospitalID"].ToString();
  78. return 0;
  79. }
  80. catch (Exception ex)
  81. {
  82. hospDr = "获取接口信息异常!" + ex.Message;
  83. return -1;
  84. }
  85. }
  86. /// <summary>
  87. /// 获取接口信息
  88. /// </summary>
  89. /// <returns></returns>
  90. public JObject getInterface()
  91. {
  92. dynamic joParam = new JObject();
  93. joParam.HospitalDr = Global.inf.hospitalDr;
  94. joParam.InterfaceID = "";
  95. joParam.UseFlag = "True";
  96. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  97. InvokeHelper invoker = new InvokeHelper();
  98. return invoker.invokeInsuService(joInparam.ToString(), "获取接口信息");
  99. }
  100. /// <summary>
  101. /// 获取自助机启动接口信息
  102. /// </summary>
  103. /// <returns></returns>
  104. public JObject getSelfServiceInterface()
  105. {
  106. dynamic joParam = new JObject();
  107. joParam.HospitalDr = Global.inf.hospitalDr;
  108. joParam.InterfaceID = "";
  109. joParam.UseFlag = "True";
  110. joParam.SelfServiceFlag = "1";
  111. JObject joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  112. return getInterface(joParam, "获取自助机启动目录信息");
  113. }
  114. public JObject getspecifiedInterface(int HospDr, int InterfaceDr)
  115. {
  116. dynamic joParam = new JObject();
  117. joParam.HospitalDr = HospDr;
  118. joParam.InterfaceID = InterfaceDr;
  119. return getInterface(joParam, "获取指定接口信息");
  120. }
  121. /// <summary>
  122. /// 获取指定接口信息
  123. /// </summary>
  124. /// <param name="inparam"></param>
  125. /// <returns></returns>
  126. //public JObject getspecifiedInterface(int HospDr, int InterfaceDr)
  127. //{
  128. // JObject joRtn = new JObject();
  129. // JObject joInparam = new JObject();
  130. // string errorMsg = "";
  131. // try
  132. // {
  133. // InvokeHelper invoke = new InvokeHelper();
  134. // dynamic joParam = new JObject();
  135. // joParam.HospitalDr = HospDr;
  136. // joParam.InterfaceID = InterfaceDr;
  137. // joInparam = JsonHelper.setIrisInpar("09010003", joParam);
  138. // JObject joOutparam = invoke.invokeInsuService(joInparam.ToString(), "获取指定接口信息");
  139. // if (JsonHelper.parseIrisRtnValue(joOutparam, out errorMsg) != 0)
  140. // {
  141. // return joOutparam;
  142. // }
  143. // JArray jaParams = new JArray();
  144. // jaParams = JArray.FromObject(joOutparam["result"]["data"]);
  145. // JToken _token = jaParams[0];
  146. // if (_token is null)
  147. // {
  148. // joRtn = JsonHelper.setExceptionJson(-100, "获取接口信息失败!", "返回值为空");
  149. // }
  150. // if (_token.Type == JTokenType.String)
  151. // {
  152. // joRtn = JsonHelper.setExceptionJson(-100, "获取接口信息失败!返回值为字符串", _token.ToString());
  153. // }
  154. // else //if (_token.Type == JTokenType.Object)
  155. // {
  156. // JObject joResult = JObject.FromObject(_token);
  157. // if (Global.curEvt.MIVer == "1")
  158. // {
  159. // joRtn = JsonHelper.setIrisReturnValue(0,"", joResult);
  160. // return joRtn;
  161. // }
  162. // dynamic joIn = new JObject();
  163. // joIn.interfaceDr = JsonHelper.getDestValue(joResult, "ID");
  164. // joIn.insuRegionDr = JsonHelper.getDestValue(joResult, "InsuRegionDr");
  165. // JObject joInpar = JsonHelper.setIrisInpar("09010075", joIn);
  166. // JObject joOut = invoke.invokeInsuService(joInpar.ToString(), "获取医保区域信息");
  167. // string insuRegionInterfaceDr = "", errorMessage = "";
  168. // if (JsonHelper.parseIrisRtnValue(joOut, out errorMessage) != 0)
  169. // {
  170. // insuRegionInterfaceDr = "";
  171. // }
  172. // else
  173. // {
  174. // insuRegionInterfaceDr = JsonHelper.getDestValue(joOut, "result.InsuRegionInterfaceDr");
  175. // }
  176. // joResult.Add("insuRegionInterfaceDr", insuRegionInterfaceDr);
  177. // joRtn.Add("errorCode", 0);
  178. // joRtn.Add("errorMessage", "");
  179. // joRtn.Add("result", joResult);
  180. // }
  181. // return joRtn;
  182. // }
  183. // catch (Exception ex)
  184. // {
  185. // joRtn = JsonHelper.setExceptionJson(-100, "获取接口信息异常!", ex.Message );
  186. // Global.writeLog("getspecifiedInterface",joInparam.ToString(),joRtn.ToString());
  187. // return joRtn;
  188. // }
  189. //}
  190. private JObject getInterface(JObject jo,string desc)
  191. {
  192. JObject joRtn = new JObject();
  193. JObject joInparam = new JObject();
  194. string errorMsg ;
  195. try
  196. {
  197. InvokeHelper invoke = new InvokeHelper();
  198. joInparam = JsonHelper.setIrisInpar("09010003", jo);
  199. JObject joOutparam = invoke.invokeInsuService(joInparam.ToString(), desc);
  200. if (JsonHelper.parseIrisRtnValue(joOutparam, out errorMsg) != 0)
  201. {
  202. return joOutparam;
  203. }
  204. JArray jaParams = new JArray();
  205. jaParams = JArray.FromObject(joOutparam["result"]["data"]);
  206. if (jaParams.Count == 0)
  207. {
  208. joRtn = JsonHelper.setExceptionJson(-100, "getInterface", "获取接口信息失败!返回数组为空!请检查 SelfServiceFlag 标志是否开启或者传入参数是否正确!");
  209. return joRtn;
  210. }
  211. //取第一个
  212. JToken _token = jaParams[0];
  213. if (_token is null)
  214. {
  215. joRtn = JsonHelper.setExceptionJson(-100, "获取接口信息失败!", "返回值为空");
  216. }
  217. if (_token.Type == JTokenType.String)
  218. {
  219. joRtn = JsonHelper.setExceptionJson(-100, "获取接口信息失败!返回值为字符串", _token.ToString());
  220. }
  221. else
  222. {
  223. JObject joResult = JObject.FromObject(_token);
  224. if (Global.curEvt.MIVer == "1")
  225. {
  226. joRtn = JsonHelper.setIrisReturnValue(0, "", joResult);
  227. return joRtn;
  228. }
  229. dynamic joIn = new JObject();
  230. joIn.interfaceDr = JsonHelper.getDestValue(joResult, "ID");
  231. joIn.insuRegionDr = JsonHelper.getDestValue(joResult, "InsuRegionDr");
  232. JObject joInpar = JsonHelper.setIrisInpar("09010075", joIn);
  233. JObject joOut = invoke.invokeInsuService(joInpar.ToString(), "获取医保区域信息");
  234. string insuRegionInterfaceDr = "", errorMessage = "";
  235. if (JsonHelper.parseIrisRtnValue(joOut, out errorMessage) != 0)
  236. {
  237. insuRegionInterfaceDr = "";
  238. }
  239. else
  240. {
  241. insuRegionInterfaceDr = JsonHelper.getDestValue(joOut, "result.InsuRegionInterfaceDr");
  242. }
  243. joResult.Add("insuRegionInterfaceDr", insuRegionInterfaceDr);
  244. joRtn.Add("errorCode", 0);
  245. joRtn.Add("errorMessage", "");
  246. joRtn.Add("result", joResult);
  247. }
  248. return joRtn;
  249. }
  250. catch (Exception ex)
  251. {
  252. joRtn = JsonHelper.setExceptionJson(-100, "获取接口信息异常!", ex.Message);
  253. Global.writeLog(desc, joInparam.ToString(), joRtn.ToString());
  254. return joRtn;
  255. }
  256. }
  257. }
  258. }