ConsoleByDeptController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. package com.diagbot.web;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.diagbot.annotation.SysLogger;
  4. import com.diagbot.dto.*;
  5. import com.diagbot.facade.ConsoleByDeptFacade;
  6. import com.diagbot.vo.*;
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiOperation;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestBody;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import springfox.documentation.annotations.ApiIgnore;
  15. import javax.validation.Valid;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * @author zhaops
  20. * @Description:
  21. * @date 2020/5/9 13:20
  22. **/
  23. @RequestMapping("/consoleByDept")
  24. @RestController
  25. @Api(value = "控制台(科室)统计相关API", tags = { "控制台(科室)统计相关API" })
  26. @SuppressWarnings("unchecked")
  27. public class ConsoleByDeptController {
  28. @Autowired
  29. private ConsoleByDeptFacade consoleByDeptFacade;
  30. //region --------------------------首页接口开始------------------------------
  31. @ApiOperation(value = "出院病人统计(科室)-首页[by:zhaops]",
  32. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  33. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  34. @PostMapping("/leaveHosCountByDept")
  35. @SysLogger("leaveHosCountByDept")
  36. public RespDTO<Map<String, Object>> leaveHosCountByDept(@RequestBody @Valid FilterVO filterVO) {
  37. Map<String, Object> data = consoleByDeptFacade.leaveHosCountByDept(filterVO);
  38. return RespDTO.onSuc(data);
  39. }
  40. @ApiOperation(value = "入院病人统计(科室)-首页[by:zhaops]",
  41. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  42. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  43. @PostMapping("/beHosCountByDept")
  44. @SysLogger("beHosCountByDept")
  45. public RespDTO<Map<String, List<AdmissionCountDTO>>> beHosCountByDept(@RequestBody @Valid FilterVO filterVO) {
  46. Map<String, List<AdmissionCountDTO>> data = consoleByDeptFacade.admissionHosCountByDept(filterVO);
  47. return RespDTO.onSuc(data);
  48. }
  49. @ApiOperation(value = "病历数统计(科室)-首页[by:zhaops]",
  50. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  51. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  52. @PostMapping("/mrCountByDept")
  53. @SysLogger("mrCountByDept")
  54. public RespDTO<Map<String, Object>> mrCountByDept(@RequestBody @Valid FilterVO filterVO) {
  55. Map<String, Object> data = consoleByDeptFacade.mrCountByDept(filterVO);
  56. return RespDTO.onSuc(data);
  57. }
  58. @ApiOperation(value = "各模块缺陷占比排名(科室)-首页[by:zhaops]",
  59. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  60. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  61. @PostMapping("/entryCountGroupByCaseAndDept")
  62. @SysLogger("entryCountGroupByCaseAndDept")
  63. public RespDTO<Map<String, Object>> entryCountGroupByCaseAndDept(@RequestBody @Valid FilterVO filterVO) {
  64. Map<String, Object> data = consoleByDeptFacade.entryCountGroupByCaseAndDept(filterVO);
  65. return RespDTO.onSuc(data);
  66. }
  67. @ApiOperation(value = "条目缺陷占比(科室)-首页[by:zhaops]",
  68. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  69. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  70. @PostMapping("/entryCountGroupByEntryAndDept")
  71. @SysLogger("entryCountGroupByEntryAndDept")
  72. public RespDTO<Map<String, Object>> entryCountGroupByEntryAndDept(@RequestBody @Valid FilterVO filterVO) {
  73. Map<String, Object> data = consoleByDeptFacade.entryCountGroupByEntryAndDept(filterVO);
  74. return RespDTO.onSuc(data);
  75. }
  76. /**
  77. * 病案首页合格率占比(首页)
  78. *
  79. * @param filterOrderByDeptVO
  80. * @return
  81. */
  82. @ApiOperation(value = "病案首页合格率占比-首页[by:zhaops]",
  83. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  84. "level: 病历等级 <br>" +
  85. "name: 主治医生名称 <br>" +
  86. "deptName: 科室名称 <br>" +
  87. "asc: 排序(升序) <br>" +
  88. "desc: 排序(降序) <br>" +
  89. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  90. @PostMapping("/homePageLevelByDeptLimit")
  91. @SysLogger("homePageLevelByDeptLimit")
  92. public RespDTO<List<HomePageByDeptDTO>> homePageLevelByDeptLimit(@RequestBody @Valid FilterOrderByDeptVO filterOrderByDeptVO) {
  93. return RespDTO.onSuc(consoleByDeptFacade.homePageLevelByDeptLimit(filterOrderByDeptVO));
  94. }
  95. /**
  96. * 单条条目缺陷统计(首页)
  97. *
  98. * @param filterVO
  99. * @return
  100. */
  101. @ApiOperation(value = "单条条目缺陷统计(科室)(首页)[by:cy]",
  102. notes = "startDate: 起始时间 <br>" +
  103. "endDate: 截止时间 <br>" +
  104. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  105. @PostMapping("/casesEntryStatisticsByDept")
  106. @SysLogger("casesEntryStatisticsByDept")
  107. public RespDTO<List<NumDTO>> casesEntryStatisticsByDept(@RequestBody @Valid FilterVO filterVO) {
  108. return RespDTO.onSuc(consoleByDeptFacade.casesEntryStatisticsByDept(filterVO));
  109. }
  110. //endregion -----------------------首页接口结束------------------------------
  111. @ApiOperation(value = "用户关联科室[by:zhaops]",
  112. notes = "")
  113. @PostMapping("/getDept")
  114. @SysLogger("getDept")
  115. public RespDTO<List<DeptBaseDTO>> getDept() {
  116. List<DeptBaseDTO> data = consoleByDeptFacade.getDept();
  117. return RespDTO.onSuc(data);
  118. }
  119. //region --------------------------内页接口开始------------------------------
  120. @ApiOperation(value = "各模块缺陷占比排名-科室(分页)-内页[by:zhaops]",
  121. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  122. "name: 模块名称<br>" +
  123. "deptName: 科室名称(必填)<br>" +
  124. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  125. @PostMapping("/entryCountGroupByCaseAndDeptPage")
  126. @SysLogger("entryCountGroupByCaseAndDeptPage")
  127. public RespDTO<IPage<NumDTO>> entryCountGroupByCaseAndDeptPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
  128. IPage<NumDTO> data = consoleByDeptFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
  129. return RespDTO.onSuc(data);
  130. }
  131. @ApiOperation(value = "缺陷详情-科室(分页)-内页[by:zhaops]",
  132. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  133. "name: 缺陷名称<br>" +
  134. "deptName: 科室名称(必填)<br>" +
  135. "casesId: 模块id:243=病案首页 <br>" +
  136. "casesName: 模块名称<br>" +
  137. "isReject: 单项否决 1-否决,0-非<br>" +
  138. "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
  139. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  140. @PostMapping("/entryCountGroupByEntryAndDeptPage")
  141. @SysLogger("entryCountGroupByEntryAndDeptPage")
  142. public RespDTO<IPage<DeptEntryNumDTO>> entryCountGroupByEntryAndDeptPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
  143. IPage<DeptEntryNumDTO> data = consoleByDeptFacade.entryCountGroupByEntryAndDeptPage(filterPageByDeptVO);
  144. return RespDTO.onSuc(data);
  145. }
  146. @ApiOperation(value = "缺陷明细-科室(分页)-内页[by:zhaops]",
  147. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  148. "name: 缺陷名称<br>" +
  149. "deptName: 科室名称(必填)<br>" +
  150. "doctorName: 医生名称(必填)<br>" +
  151. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  152. @PostMapping("/resultStatisticsByDeptAndDoctorPage")
  153. @SysLogger("resultStatisticsByDeptAndDoctorPage")
  154. @ApiIgnore
  155. public RespDTO<IPage<DeptNumDTO>> resultStatisticsByDeptAndDoctorPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
  156. IPage<DeptNumDTO> data = consoleByDeptFacade.resultStatisticsByDeptAndDoctorPage(filterPageByDeptVO);
  157. return RespDTO.onSuc(data);
  158. }
  159. /**
  160. * 条目缺陷占比-内页
  161. *
  162. * @param filterPageByDeptVO
  163. * @return
  164. */
  165. @ApiOperation(value = "条目缺陷占比-内页(分页)-内页[by:zhaops]",
  166. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  167. "name: 缺陷名称<br>" +
  168. "deptName: 科室名称(必填)<br>" +
  169. "isReject: 单项否决 1-否决,0-非<br>" +
  170. "casesName: 模块名称<br>" +
  171. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  172. @PostMapping("/entryGroupByEntryAndDeptInnerPage")
  173. @SysLogger("entryGroupByEntryAndDeptInnerPage")
  174. public RespDTO<IPage<DeptEntryNumDTO>> entryGroupByEntryAndDeptInnerPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
  175. IPage<DeptEntryNumDTO> data = consoleByDeptFacade.entryGroupByEntryAndDeptInnerPage(filterPageByDeptVO);
  176. return RespDTO.onSuc(data);
  177. }
  178. /**
  179. * 各科室缺陷占比(组合)
  180. *
  181. * @param filterOrderByDeptVO
  182. * @return
  183. */
  184. @ApiOperation(value = "各科室缺陷占比(组合)-内页[by:zhaops]",
  185. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  186. "level: 病历等级 <br>" +
  187. "name: 主治医生名称 <br>" +
  188. "deptName: 科室名称 <br>" +
  189. "asc: 排序(升序) <br>" +
  190. "desc: 排序(降序) <br>" +
  191. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  192. @PostMapping("/levelStatisticsByDept")
  193. @SysLogger("levelStatisticsByDept")
  194. public RespDTO<List<LevelStatisticsDTO>> levelStatisticsByDept(@RequestBody @Valid FilterOrderByDeptVO filterOrderByDeptVO) {
  195. return RespDTO.onSuc(consoleByDeptFacade.levelStatisticsByDept(filterOrderByDeptVO));
  196. }
  197. /**
  198. * 病案首页合格率占比
  199. *
  200. * @param filterOrderByDeptVO
  201. * @return
  202. */
  203. @ApiOperation(value = "病案首页合格率占比(科室)-内页[by:zhaops]",
  204. notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
  205. "level: 病历等级 <br>" +
  206. "name: 主治医生名称 <br>" +
  207. "deptName: 科室名称 <br>" +
  208. "asc: 排序(升序) <br>" +
  209. "desc: 排序(降序) <br>" +
  210. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  211. @PostMapping("/homePageLevelStatisticsByDept")
  212. @SysLogger("homePageLevelStatisticsByDept")
  213. public RespDTO<List<HomePageByDeptDTO>> homePageLevelStatisticsByDept(@RequestBody @Valid FilterOrderByDeptVO filterOrderByDeptVO) {
  214. return RespDTO.onSuc(consoleByDeptFacade.homePageLevelStatisticsByDept(filterOrderByDeptVO));
  215. }
  216. /**
  217. * 病案首页合格/不合格数
  218. *
  219. * @param qcResultPageVO
  220. * @return
  221. */
  222. @ApiOperation(value = "病案首页合格/不合格数(科室)-内页[by:cy]",
  223. notes = "behospitalCode: 病历号<br>" +
  224. "patName: 病人姓名 <br>" +
  225. "casesEntryName: 条目名称 <br>" +
  226. "titleName: 标题名称 <br>" +
  227. "casesEntryId: 条目id <br>" +
  228. "behDeptName:科室名称 <br>" +
  229. "doctorId:医生工号 <br>" +
  230. "doctorName:医生姓名 <br>" +
  231. "level: 病历等级 <br>" +
  232. "startDate: 起始时间 <br>" +
  233. "endDate: 截止时间 <br>" +
  234. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  235. @PostMapping("/homePageOrGoodLevelByDept")
  236. @SysLogger("homePageOrGoodLevelByDept")
  237. public RespDTO<IPage<QcResultShortDTO>> homePageOrGoodLevelByDept(@RequestBody @Valid QcResultPageVO qcResultPageVO) {
  238. return RespDTO.onSuc(consoleByDeptFacade.homePageOrGoodLevelByDept(qcResultPageVO));
  239. }
  240. /**
  241. * 条目缺陷质控评分页-科室(内页)
  242. *
  243. * @param qcResultShortPageVO
  244. * @return
  245. */
  246. @ApiOperation(value = "条目缺陷质控评分页-科室(内页)[by:zhaops]",
  247. notes = "behospitalCode: 病历号)<br>" +
  248. "patName: 病人姓名 <br>" +
  249. "casesEntryName: 条目名称 <br>" +
  250. "casesEntryId: 条目id <br>" +
  251. "behDeptName:科室名称 <br>" +
  252. "doctorName:主治医生名称 <br>" +
  253. "level: 病历等级 <br>" +
  254. "diagnose: 主诊断 <br>" +
  255. "isReject: 单项否决 1-否决,0-非<br>" +
  256. "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
  257. "startDate: 起始时间 <br>" +
  258. "endDate: 截止时间 <br>" +
  259. "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
  260. @PostMapping("/qcResultShortByDeptPage")
  261. @SysLogger("qcResultShortByDeptPage")
  262. public RespDTO<IPage<QcResultShortDTO>> qcResultShortByDeptPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
  263. return RespDTO.onSuc(consoleByDeptFacade.qcResultShortByDeptPage(qcResultShortPageVO));
  264. }
  265. //endregion -----------------------内页接口结束------------------------------
  266. }