HisBusiness.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /******************************************************************************
  2. * 文件名称: HisBusiness.cs
  3. * 文件说明: HIS业务的封装
  4. * 当前版本: V1.0
  5. * 创建日期: 2022-04-14
  6. *
  7. * 2020-04-14: 增加 SingleDownload 方法
  8. * 2020-04-14: 增加 AutoDownload 方法
  9. ******************************************************************************/
  10. using Newtonsoft.Json.Linq;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. using DirectoryDownload.Helper;
  17. using System.Windows.Forms;
  18. namespace DirectoryDownload.Business
  19. {
  20. class HisBusiness
  21. {
  22. /// <summary>
  23. /// 医保目录单个版本号的下载
  24. /// </summary>
  25. /// <param name="ver"></param>
  26. /// <param name="directoryType"></param>
  27. /// <param name="uiProcessBar"></param>
  28. /// <param name="errorMessage"></param>
  29. /// <returns></returns>
  30. public int SingleDownload(string ver, int directoryType,Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage)
  31. {
  32. string txtPath = string.Empty;
  33. errorMessage = "";
  34. int iResult = -1;
  35. string funNo = "";
  36. switch (directoryType)
  37. {
  38. case 0://药品
  39. {
  40. funNo = "1301";
  41. break;
  42. }
  43. case 1://诊疗
  44. {
  45. funNo = "1305";
  46. break;
  47. }
  48. case 2://材料
  49. {
  50. funNo = "1306";
  51. break;
  52. }
  53. case 3://疾病诊断
  54. {
  55. funNo = "1307";
  56. break;
  57. }
  58. case 4://手术
  59. {
  60. funNo = "1308";
  61. break;
  62. }
  63. case 5://慢性病
  64. {
  65. funNo = "1309";
  66. break;
  67. }
  68. case 6://DRGs
  69. {
  70. funNo = "1310";
  71. break; ;
  72. }
  73. case 7://日间手术
  74. {
  75. funNo = "1311";
  76. break;
  77. }
  78. case 8://字典表
  79. {
  80. break;
  81. }
  82. }
  83. try
  84. {
  85. CenterBusiness centerBusiness = new CenterBusiness();
  86. JObject joRtn = centerBusiness.DownDirecotry(funNo, ver);
  87. if (JsonHelper.parseBusinessJson(joRtn, out errorMessage) == 0)
  88. {
  89. txtPath = joRtn["filePath"].ToString();
  90. DataImoport bus = new DataImoport();
  91. JObject joImportRtn = bus.importDataToIrisByTxt(txtPath, 50, directoryType + 1, uiProcessBar);
  92. if (JsonHelper.parseBusinessJson(joImportRtn, out errorMessage) == 0)
  93. {
  94. iResult = 0;
  95. }
  96. else
  97. {
  98. GlobalVariables.writeLog(joImportRtn.ToString());
  99. errorMessage = "导入数据出现错误,请查看日志!";//joImportRtn["errorMessage"].ToString();
  100. }
  101. }
  102. return iResult;
  103. }
  104. catch (Exception ex)
  105. {
  106. errorMessage = "SingleDownload提示:" + ex.Message;
  107. return -1;
  108. }
  109. }
  110. /// <summary>
  111. /// 医保目录单个版本号的下载
  112. /// </summary>
  113. /// <param name="ver"></param>
  114. /// <param name="directoryType"></param>
  115. /// <param name="uiProcessBar"></param>
  116. /// <param name="errorMessage"></param>
  117. /// <returns></returns>
  118. public int downloadDicionary(JObject joData, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage)
  119. {
  120. errorMessage = "";
  121. int iResult = -1;
  122. try
  123. {
  124. CenterBusiness centerBusiness = new CenterBusiness();
  125. JObject joRtn = centerBusiness.DownDictionay(joData);
  126. if (JsonHelper.parseCenterJson(joRtn, out errorMessage) == 0)
  127. {
  128. DataImoport bus = new DataImoport();
  129. JArray jaList = JArray.Parse(JsonHelper.getJsonValue(joRtn,"output.list"));
  130. //MessageBox.Show(jaList.ToString());
  131. JObject joImportRtn = bus.importDictinary(uiProcessBar,jaList);
  132. if (JsonHelper.parseBusinessJson(joImportRtn, out errorMessage) == 0)
  133. {
  134. iResult = 0;
  135. }
  136. else
  137. {
  138. GlobalVariables.writeLog(joImportRtn.ToString());
  139. errorMessage = "导入数据出现错误,请查看日志!";
  140. }
  141. }
  142. return iResult;
  143. }
  144. catch (Exception ex)
  145. {
  146. errorMessage = "downloadDicionary提示:" + ex.Message;
  147. return -1;
  148. }
  149. }
  150. /// <summary>
  151. /// 自动下载医保目录,直到最新版本(返回报错)
  152. /// </summary>
  153. /// <param name="directoryType"></param>
  154. /// <param name="uiProcessBar"></param>
  155. /// <param name="errorMessage"></param>
  156. /// <returns></returns>
  157. public int AutoDownload(int directoryType, Sunny.UI.UIProcessBar uiProcessBar, out string errorMessage)
  158. {
  159. int iResult = 0;
  160. errorMessage = "";
  161. try
  162. {
  163. while (iResult == 0)
  164. {
  165. IrisInterfaceService irisBus = new IrisInterfaceService();
  166. JObject joMaxVerNO = irisBus.getDirectoryMaxVersionNO(directoryType);
  167. string ver = joMaxVerNO["result"]["MaxVersionNO"].ToString();
  168. iResult = JsonHelper.parseBusinessJson(joMaxVerNO, out errorMessage);
  169. iResult = SingleDownload(ver, directoryType,uiProcessBar, out errorMessage);
  170. }
  171. return iResult;
  172. }
  173. catch (Exception ex)
  174. {
  175. errorMessage = ex.Message;
  176. return -1;
  177. }
  178. }
  179. }
  180. }