You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
12 KiB

1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
1 year ago
11 months ago
11 months ago
  1. using SqlSugar;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.Data;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Text;
  10. using System.Web;
  11. namespace QZWebApi.Models
  12. {
  13. public class SqlSugarHelper
  14. {
  15. public static string Sqlconn = ConfigurationManager.AppSettings["ConnectionString"].ToString();
  16. public DataTable GetPeisInfo(string planUserId)
  17. {
  18. SqlSugarClient WebDb = new SqlSugarClient(new ConnectionConfig()
  19. {
  20. ConnectionString = Sqlconn,
  21. DbType = SqlSugar.DbType.PostgreSQL,
  22. IsAutoCloseConnection = true
  23. });
  24. var dt = WebDb.Ado.GetDataTable($"select a.patient_register_id,b.id_no,a.summary_date from patient_register as a left join patient as b on a.patient_id=b.patient_id where a.third_register_id='{planUserId}' and complete_flag='3'");
  25. return dt;
  26. }
  27. /// <summary>
  28. /// 获取总检综述
  29. /// </summary>
  30. /// <param name="planUserId"></param>
  31. /// <returns></returns>
  32. public string GetSumSummary(string planUserId)
  33. {
  34. StringBuilder sb = new StringBuilder();
  35. SqlSugarClient WebDb = new SqlSugarClient(new ConnectionConfig()
  36. {
  37. ConnectionString = Sqlconn,
  38. DbType = SqlSugar.DbType.PostgreSQL,
  39. IsAutoCloseConnection = true
  40. });
  41. var dt = WebDb.Ado.GetDataTable($"select b.sum_summary_header_id,b.summary_title from patient_register as a inner join sum_summary_header as b " +
  42. $"on a.patient_register_id=b.patient_register_id where a.third_register_id='{planUserId}' and complete_flag='3' order by b.display_order");
  43. if (dt.Rows.Count > 0)
  44. {
  45. foreach (DataRow row in dt.Rows)
  46. {
  47. sb.Append($" * {row["summary_title"].ToString()}:");
  48. var dt2 = WebDb.Ado.GetDataTable($"select b.summary_content from sum_summary_header as a " +
  49. $"left join sum_summary_content as b on a.sum_summary_header_id=b.sum_summary_header_id where a.sum_summary_header_id='{row["sum_summary_header_id"].ToString()}' order by b.display_order");
  50. if (dt2.Rows.Count > 0)
  51. {
  52. foreach (DataRow row2 in dt2.Rows)
  53. {
  54. sb.Append($"{row2["summary_content"].ToString()}");
  55. //if (dt2.Rows.IndexOf(row2) == dt2.Rows.Count - 1)
  56. //{
  57. // sb.Append($"{row2["summary_content"].ToString()}");
  58. //}
  59. //else
  60. //{
  61. // sb.Append($"{row2["summary_content"].ToString()}");
  62. //}
  63. }
  64. }
  65. }
  66. }
  67. return sb.ToString();
  68. }
  69. /// <summary>
  70. /// 获取总检建议
  71. /// </summary>
  72. /// <param name="planUserId"></param>
  73. /// <returns></returns>
  74. public string GetSumSuggestion(string planUserId)
  75. {
  76. StringBuilder sb = new StringBuilder();
  77. SqlSugarClient WebDb = new SqlSugarClient(new ConnectionConfig()
  78. {
  79. ConnectionString = Sqlconn,
  80. DbType = SqlSugar.DbType.PostgreSQL,
  81. IsAutoCloseConnection = true
  82. });
  83. var dt = WebDb.Ado.GetDataTable($"select b.sum_suggestion_header_id,b.suggestion_title from patient_register as a inner join sum_suggestion_header as b " +
  84. $"on a.patient_register_id=b.patient_register_id where a.third_register_id='{planUserId}' and complete_flag='3' order by b.display_order");
  85. if (dt.Rows.Count > 0)
  86. {
  87. foreach (DataRow row in dt.Rows)
  88. {
  89. sb.Append($" * {row["suggestion_title"].ToString()}:");
  90. var dt2 = WebDb.Ado.GetDataTable($"select b.suggestion_content from sum_suggestion_header as a " +
  91. $"inner join sum_suggestion_content as b on a.sum_suggestion_header_id=b.sum_suggestion_header_id where a.sum_suggestion_header_id='{row["sum_suggestion_header_id"].ToString()}' order by b.display_order");
  92. if (dt2.Rows.Count > 0)
  93. {
  94. foreach (DataRow row2 in dt2.Rows)
  95. {
  96. sb.Append($"{row2["suggestion_content"].ToString()}");
  97. //if (dt2.Rows.IndexOf(row2) == dt2.Rows.Count - 1)
  98. //{
  99. // sb.Append($"{row2["suggestion_content"].ToString()}");
  100. //}
  101. //else
  102. //{
  103. // sb.Append($"{row2["suggestion_content"].ToString()}");
  104. //}
  105. }
  106. }
  107. }
  108. }
  109. return sb.ToString();
  110. }
  111. /// <summary>
  112. /// 获取项目、结果、以及明细
  113. /// </summary>
  114. /// <param name="planUserId"></param>
  115. /// <returns></returns>
  116. public List<TjjlPackages> GetRegisterCheck(string planUserId)
  117. {
  118. List<TjjlPackages> tjjlPackagesList = new List<TjjlPackages>();
  119. SqlSugarClient WebDb = new SqlSugarClient(new ConnectionConfig()
  120. {
  121. ConnectionString = Sqlconn,
  122. DbType = SqlSugar.DbType.PostgreSQL,
  123. IsAutoCloseConnection = true
  124. });
  125. var dt = WebDb.Ado.GetDataTable($"select b.register_check_id from patient_register as a left join register_check as b on a.patient_register_id=b.patient_register_id " +
  126. $" where a.third_register_id='{planUserId}' and a.complete_flag='3' ");
  127. if (dt.Rows.Count > 0)
  128. {
  129. foreach (DataRow row in dt.Rows)
  130. {
  131. TjjlPackages tjjlPackages = new TjjlPackages();
  132. var dt2 = WebDb.Ado.GetDataTable($"select sum(a.charge_price) as charge_price,STRING_AGG(b.asbitem_name, ',' ORDER BY b.asbitem_name) AS asbitem_name from register_check_asbitem as a " +
  133. $"left join asbitem as b on a.asbitem_id = b.asbitem_id where a.register_check_id='{row["register_check_id"].ToString()}' group by register_check_id ");
  134. if (dt2.Rows.Count > 0)
  135. {
  136. tjjlPackages.packageName = dt2.Rows[0]["asbitem_name"].ToString();
  137. tjjlPackages.fee = Convert.ToDouble(Convert.ToDecimal(dt2.Rows[0]["charge_price"].ToString()) * 100);
  138. }
  139. var dt3 = WebDb.Ado.GetDataTable($"select summary from register_check_summary where register_check_id='{row["register_check_id"].ToString()}' ");
  140. if (dt3.Rows.Count > 0)
  141. {
  142. string summary = "";
  143. foreach (DataRow row3 in dt3.Rows)
  144. {
  145. if (dt3.Rows.IndexOf(row3) == dt3.Rows.Count - 1)
  146. {
  147. summary += $"{row3["summary"].ToString()},";
  148. }
  149. else
  150. {
  151. summary += $"{row3["summary"].ToString()}";
  152. }
  153. }
  154. tjjlPackages.summary = summary;
  155. }
  156. else
  157. {
  158. tjjlPackages.summary = "";
  159. }
  160. //明细结果
  161. var dt4 = WebDb.Ado.GetDataTable($"select b.price,b.item_name,a.result,a.reference_range_value,a.unit,c.data_input_prompt from register_check_item as a " +
  162. $"left join item as b on a.item_id=b.item_id left join result_status as c on a.result_status_id=c.result_status_id " +
  163. $"where a.register_check_id='{row["register_check_id"].ToString()}'");
  164. if (dt4.Rows.Count > 0)
  165. {
  166. List<JkTjxxBean> jkTjxxBeanList = new List<JkTjxxBean>();
  167. foreach (DataRow row4 in dt4.Rows)
  168. {
  169. JkTjxxBean jkTjxxBean = new JkTjxxBean();
  170. jkTjxxBean.price = Convert.ToDouble(Convert.ToDecimal(row4["price"].ToString()) * 100);
  171. jkTjxxBean.ysValue = row4["result"].ToString();
  172. jkTjxxBean.tjxmMc = row4["item_name"].ToString();
  173. jkTjxxBean.tjUnit = row4["unit"].ToString();
  174. jkTjxxBean.reference = row4["reference_range_value"].ToString();
  175. string remark = "-1";
  176. if (row4["data_input_prompt"] != DBNull.Value)
  177. {
  178. if (row4["data_input_prompt"].ToString() == "")
  179. {
  180. remark = "0";
  181. }
  182. else if (row4["data_input_prompt"].ToString() == "+" || row4["data_input_prompt"].ToString() == "↑" || row4["data_input_prompt"].ToString() == "±")
  183. {
  184. remark = "2";
  185. }
  186. else
  187. {
  188. remark = "1";
  189. }
  190. }
  191. jkTjxxBean.remark = remark;
  192. jkTjxxBeanList.Add(jkTjxxBean);
  193. }
  194. tjjlPackages.items = jkTjxxBeanList;
  195. }
  196. else
  197. {
  198. tjjlPackages.items = new List<JkTjxxBean>();
  199. }
  200. if (tjjlPackages.items != null && tjjlPackages.items.Any() && string.IsNullOrWhiteSpace(tjjlPackages.summary))
  201. {
  202. tjjlPackagesList.Add(tjjlPackages);
  203. }
  204. }
  205. }
  206. return tjjlPackagesList;
  207. }
  208. public DataTable GetPeisReport(string planUserId)
  209. {
  210. SqlSugarClient WebDb = new SqlSugarClient(new ConnectionConfig()
  211. {
  212. ConnectionString = Sqlconn,
  213. DbType = SqlSugar.DbType.PostgreSQL,
  214. IsAutoCloseConnection = true
  215. });
  216. var dt = WebDb.Ado.GetDataTable($"select report_file from patient_register where third_register_id='{planUserId}' and complete_flag='3'");
  217. return dt;
  218. }
  219. public string GetImageBase64StringAsync(string pdfUrl)
  220. {
  221. string result = "";
  222. try
  223. {
  224. pdfUrl = pdfUrl.Replace(@"\", "/");
  225. WebClient webClient = new WebClient();
  226. byte[] byteArray = webClient.DownloadData(pdfUrl);
  227. result = Convert.ToBase64String(byteArray);
  228. }
  229. catch
  230. {
  231. result = "";
  232. }
  233. //if (!string.IsNullOrEmpty(result))
  234. // result = "data:image/jpeg;base64," + result;
  235. return result;
  236. }
  237. }
  238. }