InsuServices.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using MedicalInsurance.Helper;
  7. using MedicalInsurance.Common;
  8. using Newtonsoft.Json.Linq;
  9. namespace MedicalInsurance.Business
  10. {
  11. class InsuServices
  12. {
  13. /// <summary>
  14. /// 根据HisType获取当前目录最大版本号
  15. /// </summary>
  16. /// <param name="directoryType"></param>
  17. /// <returns></returns>
  18. public JObject getDirectoryMaxVersionNO(int directoryType)
  19. {
  20. try
  21. {
  22. dynamic joParam = new JObject();
  23. joParam.HospitalDr = GlobalVariables.hospitalDr;
  24. joParam.InterfaceDr = GlobalVariables.interfaceDr;
  25. joParam.HisType = directoryType + 1;
  26. JObject joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010037", joParam);
  27. InvokeHelper invoker = new InvokeHelper();
  28. JObject joRtn = invoker.invokeInsuService(joInparam.ToString(), "获取当前目录最大版本号");
  29. return joRtn;
  30. }
  31. catch (Exception ex)
  32. {
  33. return JsonHelper.getIrisExceptionJson(-1, "获取版本号异常:", ex.Message);
  34. }
  35. }
  36. /// <summary>
  37. /// 通过分页的方式查询医保目录
  38. /// </summary>
  39. /// <param name="currentPage"></param>
  40. /// <param name="pageSize"></param>
  41. /// <param name="irisCode"></param>
  42. /// <param name="directoryType"></param>
  43. public JObject getDirectoryByPagination(int currentPage, int pageSize, string serviceCode, int directoryType, string directoryCode, string directoryName, int directoryDr)
  44. {
  45. try
  46. {
  47. InvokeHelper invoker = new InvokeHelper();
  48. dynamic joInput = new JObject();
  49. joInput.code = serviceCode;
  50. dynamic joTmp = new JObject();
  51. JArray jaParmas = new JArray();
  52. joTmp.HospitalDr = GlobalVariables.hospitalDr;
  53. joTmp.InterfaceDr = directoryDr;
  54. joTmp.Code = directoryCode;
  55. joTmp.Name = directoryName;
  56. jaParmas.Add(joTmp);
  57. joInput.Add("params", JArray.FromObject(jaParmas));
  58. JArray jaPagination = new JArray();
  59. joTmp = new JObject();
  60. joTmp.pageSize = pageSize;
  61. joTmp.currentPage = currentPage;
  62. joTmp.sortColumn = "";
  63. joTmp.sortOrder = "";
  64. joTmp.hisType = directoryType;
  65. jaPagination.Add(joTmp);
  66. joInput.Add("pagination", JArray.FromObject(jaPagination));
  67. return invoker.invokeInsuService(joInput.ToString(), "通过分页的方式查询医保目录");
  68. }
  69. catch (Exception ex)
  70. {
  71. return JsonHelper.getIrisExceptionJson(-1, "通过分页的方式查询医保目录异常", ex.Message);
  72. }
  73. }
  74. /// <summary>
  75. /// 获取接口信息
  76. /// </summary>
  77. /// <returns></returns>
  78. public JObject getInterface()
  79. {
  80. dynamic joParam = new JObject();
  81. joParam.HospitalDr = GlobalVariables.hospitalDr;
  82. joParam.InterfaceID = "";
  83. JObject joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010003", joParam);
  84. InvokeHelper invoker = new InvokeHelper();
  85. return invoker.invokeInsuService(joInparam.ToString(), "获取接口信息");
  86. }
  87. /// <summary>
  88. /// 获取指定接口信息
  89. /// </summary>
  90. /// <param name="inparam"></param>
  91. /// <returns></returns>
  92. public JObject getspecifiedInterface(int HospDr,int InterfaceDr)
  93. {
  94. JObject joRtn = new JObject();
  95. JObject joInparam = new JObject();
  96. string errorMsg = "";
  97. try
  98. {
  99. InvokeHelper invoke = new InvokeHelper();
  100. dynamic joParam = new JObject();
  101. joParam.HospitalDr = HospDr;
  102. joParam.InterfaceDr = InterfaceDr;
  103. joInparam = JsonHelper.getIrisServiceInparamBaseJson("09010003", joParam);
  104. JObject joOutparam = invoke.invokeInsuService(joInparam.ToString(), "获取指定接口信息");
  105. if (JsonHelper.parseBusinessJson(joOutparam, out errorMsg) != 0)
  106. {
  107. return joOutparam;
  108. }
  109. JArray jaParams = new JArray();
  110. jaParams = JArray.FromObject(joOutparam["result"]["data"]);
  111. JToken _token = jaParams[0];
  112. if (_token is null)
  113. {
  114. joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息失败!", "返回值为空");
  115. }
  116. if (_token.Type == JTokenType.String)
  117. {
  118. joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息失败!返回值为字符串", _token.ToString());
  119. }
  120. else //if (_token.Type == JTokenType.Object)
  121. {
  122. JObject joResult = JObject.FromObject(_token);
  123. joRtn.Add("errorCode", 0);
  124. joRtn.Add("errorMessage", "");
  125. joRtn.Add("result", joResult);
  126. }
  127. return joRtn;
  128. }
  129. catch (Exception ex)
  130. {
  131. joRtn = JsonHelper.getIrisExceptionJson(-100, "获取接口信息异常!", ex.Message);
  132. GlobalVariables.writeLog(joRtn.ToString());
  133. return joRtn;
  134. }
  135. }
  136. /// <summary>
  137. /// 获取指定字典信息
  138. /// </summary>
  139. /// <returns></returns>
  140. public JObject getSpecDictionary(string interfaceDr, string dicType)
  141. {
  142. string sqlStr = "select '' Code,'' Name,'' PinyinSearchCode union all";
  143. sqlStr = sqlStr + " SELECT Code,Name,PinyinSearchCode FROM MedInsu_Tables.Dictionary WHERE Hosp_Dr= " + GlobalVariables.hospitalDr + " AND Interface_Dr = " + interfaceDr + " AND Type = '" + dicType + "'";
  144. JObject joSqlstr = new JObject();
  145. joSqlstr.Add("sqlStr", sqlStr);
  146. JArray jaParam = new JArray();
  147. jaParam.Add(joSqlstr);
  148. JObject joSettlQuery = new JObject();
  149. joSettlQuery.Add("params", jaParam);
  150. joSettlQuery.Add("code", "09010063");
  151. InvokeHelper invoker = new InvokeHelper();
  152. return invoker.invokeInsuService(joSettlQuery.ToString(), "查询指定字典信息");
  153. }
  154. /// <summary>
  155. /// 保存登记信息到云医保平台
  156. /// </summary>
  157. /// <param name="joRegisterInfo"></param>
  158. /// <returns></returns>
  159. public JObject saveRegisterInfo(JObject joRegisterInfo, JObject joHisAdmInfo)
  160. {
  161. JObject joTmp = new JObject();
  162. joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
  163. joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
  164. joTmp.Add("AdmID", JsonHelper.getJsonValue(joHisAdmInfo, "admdr"));
  165. joTmp.Add("PatientName", JsonHelper.getJsonValue(joHisAdmInfo, "patname"));
  166. joTmp.Add("PersonalNO", JsonHelper.getJsonValue(joRegisterInfo, "psn_no"));
  167. joTmp.Add("InsuRegID", JsonHelper.getJsonValue(joHisAdmInfo, "insu_reg_id"));
  168. //joTmp.Add("InsuRegID", "510100CD000096568181");
  169. joTmp.Add("RegDate", JsonHelper.getJsonValue(joRegisterInfo, "begntime"));
  170. joTmp.Add("InsuType", JsonHelper.getJsonValue(joRegisterInfo, "insutype"));
  171. joTmp.Add("CertificateType", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_cert_type"));
  172. joTmp.Add("CertificateNO", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_cert_no"));
  173. joTmp.Add("MedicalType", JsonHelper.getJsonValue(joRegisterInfo, "med_type"));
  174. joTmp.Add("AttendDoctorNO", JsonHelper.getJsonValue(joRegisterInfo, "atddr_no"));
  175. joTmp.Add("ChiefPhyDocName", JsonHelper.getJsonValue(joRegisterInfo, "chfpdr_name"));
  176. joTmp.Add("AdmitDiagDesc", JsonHelper.getJsonValue(joRegisterInfo, "adm_diag_dscr"));
  177. joTmp.Add("AdmitDepartmentCode", JsonHelper.getJsonValue(joRegisterInfo, "adm_dept_codg"));
  178. joTmp.Add("AdmitDepartmentName", JsonHelper.getJsonValue(joRegisterInfo, "adm_dept_name"));
  179. joTmp.Add("AdmBed", JsonHelper.getJsonValue(joRegisterInfo, "adm_bed"));
  180. joTmp.Add("MainDiagCode", JsonHelper.getJsonValue(joRegisterInfo, "dscg_maindiag_code"));
  181. joTmp.Add("MainDiagName", JsonHelper.getJsonValue(joRegisterInfo, "dscg_maindiag_name"));
  182. joTmp.Add("MainConditionDdesc", JsonHelper.getJsonValue(joRegisterInfo, "main_cond_dscr"));
  183. joTmp.Add("DiseasecCode", JsonHelper.getJsonValue(joRegisterInfo, "dise_codg"));
  184. joTmp.Add("DiseasecName", JsonHelper.getJsonValue(joRegisterInfo, "dise_name"));
  185. joTmp.Add("OperationCode", JsonHelper.getJsonValue(joRegisterInfo, "oprn_oprt_code"));
  186. joTmp.Add("OperationName", JsonHelper.getJsonValue(joRegisterInfo, "oprn_oprt_name"));
  187. joTmp.Add("DiseasecTypeCode", JsonHelper.getJsonValue(joRegisterInfo, "dise_type_code"));
  188. joTmp.Add("InsuranceAreaCode", GlobalVariables.patientAreaCode);
  189. joTmp.Add("TreatmentAreaCode", GlobalVariables.hospitalAreaCode);
  190. joTmp.Add("RegState", JsonHelper.getJsonValue(joHisAdmInfo, "regstate"));
  191. joTmp.Add("ValidFlag", JsonHelper.getJsonValue(joHisAdmInfo, "validflag"));
  192. joTmp.Add("Type", JsonHelper.getJsonValue(joHisAdmInfo, "type"));
  193. joTmp.Add("updateUserID", JsonHelper.getJsonValue(joHisAdmInfo, "updateUserID"));
  194. joTmp.Add("msgid", JsonHelper.getJsonValue(joHisAdmInfo, "msgid"));
  195. joTmp.Add("OccurTime", JsonHelper.getJsonValue(joRegisterInfo, "OccurTime"));
  196. InvokeHelper invoker = new InvokeHelper();
  197. string serviceCode = "09010044", serviceName = "新增登记信息";
  198. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
  199. return invoker.invokeInsuService(inpar, serviceName);
  200. }
  201. /// <summary>
  202. /// 撤销登记(云医保平台)
  203. /// </summary>
  204. /// <param name="joRegisterInfo"></param>
  205. /// <returns></returns>
  206. public JObject cancleRegisterInfo(JObject joRegisterInfo)
  207. {
  208. JObject joTmp = new JObject();
  209. joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
  210. joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
  211. joTmp.Add("AdmID", JsonHelper.getJsonValue(joRegisterInfo, "admID"));
  212. joTmp.Add("PersonalNO", JsonHelper.getJsonValue(joRegisterInfo, "PersonalNO"));
  213. joTmp.Add("InsuRegID", JsonHelper.getJsonValue(joRegisterInfo, "InsuRegID"));
  214. joTmp.Add("CancleRegDate", JsonHelper.getJsonValue(joRegisterInfo, "CancleRegDate"));
  215. joTmp.Add("Type", JsonHelper.getJsonValue(joRegisterInfo, "Type"));
  216. joTmp.Add("ValidFlag", -1);
  217. joTmp.Add("updateUserID", GlobalVariables.operatorNO);
  218. InvokeHelper invoker = new InvokeHelper();
  219. string serviceCode = "09010044", serviceName = "取消登记信息";
  220. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
  221. return invoker.invokeInsuService(inpar, serviceName);
  222. }
  223. /// <summary>
  224. /// 撤销结算(云医保平台)
  225. /// </summary>
  226. /// <param name="joRegisterInfo"></param>
  227. /// <returns></returns>
  228. public JObject cancleSettlement(JObject joRegisterInfo)
  229. {
  230. JObject joTmp = new JObject();
  231. joTmp.Add("HospitalDr", GlobalVariables.hospitalDr);
  232. joTmp.Add("InterfaceDr", GlobalVariables.interfaceDr);
  233. joTmp.Add("admID", JsonHelper.getJsonValue(joRegisterInfo, "admID"));
  234. joTmp.Add("mdtrt_id", JsonHelper.getJsonValue(joRegisterInfo, "mdtrt_id"));
  235. joTmp.Add("setl_id", JsonHelper.getJsonValue(joRegisterInfo, "setl_id"));
  236. joTmp.Add("newSetlId", JsonHelper.getJsonValue(joRegisterInfo, "newSetlId"));
  237. joTmp.Add("updateUserID", GlobalVariables.operatorNO);
  238. joTmp.Add("msgid", GlobalVariables.msgid);
  239. InvokeHelper invoker = new InvokeHelper();
  240. string serviceCode = "09010052", serviceName = "取消结算信息";
  241. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joTmp).ToString();
  242. return invoker.invokeInsuService(inpar, serviceName);
  243. }
  244. /// <summary>
  245. /// 调用云HIS 服务
  246. /// </summary>
  247. /// <param name="joRegisterInfo"></param>
  248. /// <param name="jaSession"></param>
  249. /// <returns></returns>
  250. public JObject sendRegisterInfoToHis(JObject joRegisterInfo, JArray jaSession)
  251. {
  252. InvokeHelper invoker = new InvokeHelper();
  253. string serviceCode = "05110002", serviceName = "将登记信息返回给HIS";
  254. string inpar = JsonHelper.getIrisServiceInparamBaseJson(serviceCode, joRegisterInfo, jaSession).ToString();
  255. return invoker.invokeHISService(inpar, serviceName);
  256. }
  257. /// <summary>
  258. /// 查询结算信息
  259. /// </summary>
  260. /// <returns></returns>
  261. public JObject querySettlementInfo(string sqlStr)
  262. {
  263. JObject joSqlstr = new JObject();
  264. joSqlstr.Add("sqlStr", sqlStr);
  265. JArray jaParam = new JArray();
  266. jaParam.Add(joSqlstr);
  267. JObject joSettlQuery = new JObject();
  268. joSettlQuery.Add("params", jaParam);
  269. joSettlQuery.Add("code", "09010059");
  270. InvokeHelper invoker = new InvokeHelper();
  271. JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
  272. return joRtn;
  273. }
  274. }
  275. }