IrisInterfaceService.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. /******************************************************************************
  2. * 文件名称: IrisInterfaceService.cs
  3. * 文件说明: IRIS接口服务的封装
  4. * 当前版本: V1.0
  5. * 创建日期: 2022-04-14
  6. *
  7. * 2020-04-12: 增加 getDirectoryMaxVersionNO 方法
  8. ******************************************************************************/
  9. using Newtonsoft.Json.Linq;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using ChengDuMedInsu2;
  16. using MedicalInsurance.Helper;
  17. using MedicalInsurance.Common;
  18. namespace MedicalInsurance.Business
  19. {
  20. class IrisInterfaceService
  21. {
  22. /// <summary>
  23. /// 根据HisType获取当前目录最大版本号
  24. /// </summary>
  25. /// <param name="directoryType"></param>
  26. /// <returns></returns>
  27. public JObject getDirectoryMaxVersionNO(int directoryType)
  28. {
  29. try
  30. {
  31. dynamic joParam = new JObject();
  32. joParam.HospitalID = GlobalVariables.hospitalNO;
  33. joParam.InterfaceID = GlobalVariables.InterfaceID;
  34. joParam.HisType = directoryType + 1;
  35. JObject joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010037", joParam);
  36. InvokeHelper invoke = new InvokeHelper();
  37. JObject joRtn = invoke.invokeInsuService(joInparam.ToString(),"获取当前目录最大版本号");
  38. return joRtn;
  39. }
  40. catch (Exception ex)
  41. {
  42. return JsonHelper.getIrisExceptionJson(-1,"获取版本号异常:" , ex.Message);
  43. }
  44. }
  45. /// <summary>
  46. /// 通过分页的方式查询医保目录
  47. /// </summary>
  48. /// <param name="currentPage"></param>
  49. /// <param name="pageSize"></param>
  50. /// <param name="irisCode"></param>
  51. /// <param name="directoryType"></param>
  52. public JObject getDirectoryByPagination(int currentPage, int pageSize, string serviceCode, int directoryType, string directoryCode, string directoryName)
  53. {
  54. try
  55. {
  56. InvokeHelper invoker = new InvokeHelper();
  57. dynamic joInput = new JObject();
  58. joInput.code = serviceCode; // "09010019";
  59. dynamic joTmp = new JObject();
  60. JArray jaParmas = new JArray();
  61. joTmp.HospitalID = GlobalVariables.hospitalNO;
  62. joTmp.InterfaceID = GlobalVariables.InterfaceID;
  63. joTmp.Code = directoryCode;
  64. joTmp.Name = directoryName;
  65. jaParmas.Add(joTmp);
  66. joInput.Add("params", JArray.FromObject(jaParmas));
  67. JArray jaPagination = new JArray();
  68. joTmp = new JObject();
  69. joTmp.pageSize = pageSize;
  70. joTmp.currentPage = currentPage;
  71. joTmp.sortColumn = "";
  72. joTmp.sortOrder = "";
  73. joTmp.hisType = directoryType;
  74. jaPagination.Add(joTmp);
  75. joInput.Add("pagination", JArray.FromObject(jaPagination));
  76. return invoker.invokeInsuService(joInput.ToString(), "getDirectoryByPagination");
  77. }
  78. catch (Exception ex)
  79. {
  80. return JsonHelper.getIrisExceptionJson(-1, "getDirectoryByPagination", ex.Message);
  81. }
  82. }
  83. /// <summary>
  84. /// 获取当前接口
  85. /// </summary>
  86. /// <returns></returns>
  87. public JObject getCurrentInterface()
  88. {
  89. JObject joRtn = new JObject();
  90. JObject joInparam = new JObject();
  91. try
  92. {
  93. InvokeHelper invoke = new InvokeHelper();
  94. dynamic joParam = new JObject();
  95. joParam.HospitalDr = GlobalVariables.hospitalDr;
  96. joParam.InterfaceID = GlobalVariables.InterfaceID;
  97. joParam.InterfaceDr = GlobalVariables.interfaceDr;
  98. joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010003", joParam);
  99. JObject joOutparam = invoke.invokeInsuService(joInparam.ToString(), "获取接口信息");
  100. JArray jaParams = new JArray();
  101. jaParams = JArray.FromObject(joOutparam["result"]["data"]);
  102. JToken _token = jaParams[0];
  103. if (_token is null)
  104. {
  105. joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息失败!", "返回值为空");
  106. }
  107. if (_token.Type == JTokenType.String)
  108. {
  109. joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息失败!返回值为字符串", _token.ToString());
  110. }
  111. else //if (_token.Type == JTokenType.Object)
  112. {
  113. joRtn = JObject.FromObject(_token);
  114. }
  115. return joRtn;
  116. }
  117. catch (Exception ex)
  118. {
  119. joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息异常!", ex.Message);
  120. return joRtn;
  121. }
  122. }
  123. /// <summary>
  124. /// 保存登记信息到云医保平台
  125. /// </summary>
  126. /// <param name="joRegisterInfo"></param>
  127. /// <returns></returns>
  128. public JObject saveRegisterInfo(JObject joRegisterInfo,JObject joHisAdmInfo)
  129. {
  130. JObject joTmp = new JObject();
  131. joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
  132. joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
  133. joTmp.Add("admID", JsonHelper.getJsonValue(joHisAdmInfo, "admdr"));
  134. joTmp.Add("PatientName", JsonHelper.getJsonValue(joHisAdmInfo, "patname"));
  135. joTmp.Add("PersonalNO", JsonHelper.getJsonValue(joRegisterInfo, "psn_no"));
  136. joTmp.Add("InsuRegID", JsonHelper.getJsonValue(joHisAdmInfo, "insu_reg_id"));
  137. //joTmp.Add("InsuRegID", "510100CD000096568181");
  138. joTmp.Add("RegDate", JsonHelper.getJsonValue(joRegisterInfo, "begntime"));
  139. joTmp.Add("InsuType", JsonHelper.getJsonValue(joRegisterInfo, "insutype"));
  140. joTmp.Add("CertificateType", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_cert_type"));
  141. joTmp.Add("CertificateNO", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_cert_no"));
  142. joTmp.Add("MedicalType", JsonHelper.getJsonValue(joRegisterInfo, "med_type"));
  143. joTmp.Add("AttendDoctorNO", JsonHelper.getJsonValue(joRegisterInfo, "atddr_no"));
  144. joTmp.Add("ChiefPhyDocName", JsonHelper.getJsonValue(joRegisterInfo, "chfpdr_name"));
  145. joTmp.Add("AdmitDiagDesc", JsonHelper.getJsonValue(joRegisterInfo, "adm_diag_dscr"));
  146. joTmp.Add("AdmitDepartmentCode", JsonHelper.getJsonValue(joRegisterInfo, "adm_dept_codg"));
  147. joTmp.Add("AdmitDepartmentName", JsonHelper.getJsonValue(joRegisterInfo, "adm_dept_name"));
  148. joTmp.Add("AdmBed", JsonHelper.getJsonValue(joRegisterInfo, "adm_bed"));
  149. joTmp.Add("MainDiagCode", JsonHelper.getJsonValue(joRegisterInfo, "dscg_maindiag_code"));
  150. joTmp.Add("MainDiagName", JsonHelper.getJsonValue(joRegisterInfo, "dscg_maindiag_name"));
  151. joTmp.Add("MainConditionDdesc", JsonHelper.getJsonValue(joRegisterInfo, "main_cond_dscr"));
  152. joTmp.Add("DiseasecCode", JsonHelper.getJsonValue(joRegisterInfo, "dise_codg"));
  153. joTmp.Add("DiseasecName", JsonHelper.getJsonValue(joRegisterInfo, "dise_name"));
  154. joTmp.Add("OperationCode", JsonHelper.getJsonValue(joRegisterInfo, "oprn_oprt_code"));
  155. joTmp.Add("OperationName", JsonHelper.getJsonValue(joRegisterInfo, "oprn_oprt_name"));
  156. joTmp.Add("DiseasecTypeCode", JsonHelper.getJsonValue(joRegisterInfo, "dise_type_code"));
  157. joTmp.Add("InsuranceAreaCode", GlobalVariables.hospitalAreaCode);
  158. joTmp.Add("TreatmentAreaCode",GlobalVariables.patientAreaCode);
  159. joTmp.Add("RegState", JsonHelper.getJsonValue(joHisAdmInfo, "regstate"));
  160. joTmp.Add("ValidFlag", JsonHelper.getJsonValue(joHisAdmInfo, "validflag"));
  161. joTmp.Add("Type", JsonHelper.getJsonValue(joHisAdmInfo, "type"));
  162. joTmp.Add("updateUserID", JsonHelper.getJsonValue(joHisAdmInfo, "updateUserID"));
  163. InvokeHelper invoker = new InvokeHelper();
  164. string serviceCode = "09010044", serviceName = "新增登记信息";
  165. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
  166. return invoker.invokeInsuService(inpar,serviceName);
  167. }
  168. /// <summary>
  169. /// 撤销登记(云医保平台)
  170. /// </summary>
  171. /// <param name="joRegisterInfo"></param>
  172. /// <returns></returns>
  173. public JObject cancleRegisterInfo(JObject joRegisterInfo)
  174. {
  175. JObject joTmp = new JObject();
  176. joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
  177. joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
  178. joTmp.Add("admID", JsonHelper.getJsonValue(joRegisterInfo, "admID"));
  179. joTmp.Add("PersonalNO", JsonHelper.getJsonValue(joRegisterInfo, "PersonalNO"));
  180. joTmp.Add("InsuRegID", JsonHelper.getJsonValue(joRegisterInfo, "InsuRegID"));
  181. joTmp.Add("CancleRegDate", JsonHelper.getJsonValue(joRegisterInfo, "CancleRegDate"));
  182. joTmp.Add("Type", JsonHelper.getJsonValue(joRegisterInfo, "Type"));
  183. joTmp.Add("ValidFlag", -1);
  184. joTmp.Add("updateUserID",GlobalVariables.operatorNO);
  185. InvokeHelper invoker = new InvokeHelper();
  186. string serviceCode = "09010044", serviceName = "取消登记信息";
  187. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
  188. return invoker.invokeIrisService(inpar, serviceName);
  189. }
  190. /// <summary>
  191. /// 调用云HIS 服务
  192. /// </summary>
  193. /// <param name="joRegisterInfo"></param>
  194. /// <param name="jaSession"></param>
  195. /// <returns></returns>
  196. public JObject sendRegisterInfoToHis(JObject joRegisterInfo, JArray jaSession)
  197. {
  198. InvokeHelper invoker = new InvokeHelper();
  199. string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
  200. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joRegisterInfo,jaSession).ToString();
  201. return invoker.invokeInsuService(inpar, serviceName);
  202. }
  203. }
  204. }