BehospitalInfoController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. package com.diagbot.web;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.diagbot.annotation.SysLogger;
  4. import com.diagbot.dto.AnalyzeDTO;
  5. import com.diagbot.dto.AnalyzeRunDTO;
  6. import com.diagbot.dto.BehospitalInfoDTO;
  7. import com.diagbot.dto.RespDTO;
  8. import com.diagbot.facade.BehospitalInfoFacade;
  9. import com.diagbot.facade.QcresultInfoFacade;
  10. import com.diagbot.vo.AnalyzeApiVO;
  11. import com.diagbot.vo.AnalyzeRunVO;
  12. import com.diagbot.vo.AnalyzeVO;
  13. import com.diagbot.vo.BehospitalPageVO;
  14. import com.diagbot.vo.ExportQcresultVO;
  15. import com.diagbot.vo.GetDetailVO;
  16. import com.diagbot.vo.QcresultVO;
  17. import com.diagbot.vo.TaskVO;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.transaction.annotation.Transactional;
  22. import org.springframework.web.bind.annotation.PostMapping;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import springfox.documentation.annotations.ApiIgnore;
  27. import javax.servlet.http.HttpServletResponse;
  28. import javax.validation.Valid;
  29. import java.util.Map;
  30. /**
  31. * <p>
  32. * 住院病历信息 前端控制器
  33. * </p>
  34. *
  35. * @author zhoutg
  36. * @since 2020-04-13
  37. */
  38. @RestController
  39. @RequestMapping("/qc/behospitalInfo")
  40. @Api(value = "病历API", tags = { "病历API" })
  41. @SuppressWarnings("unchecked")
  42. public class BehospitalInfoController {
  43. @Autowired
  44. BehospitalInfoFacade behospitalInfoFacade;
  45. @Autowired
  46. private QcresultInfoFacade qcresultInfoFacade;
  47. @ApiOperation(value = "病历分页列表[by:zhoutg]",
  48. notes = "behospitalCode:病人住院序号<br>" +
  49. "name:病人姓名<br>" +
  50. "fileCode:档案号<br>" +
  51. "statisticsType: 统计维度 1-本月,2-本年<br>" +
  52. "behosDateStart:入院时间开始时间<br>" +
  53. "behosDateEnd:入院时间结束时间<br>" +
  54. "leaveHosDateStart:出院时间开始时间<br>" +
  55. "leaveHosDateEnd:出院时间结束时间<br>" +
  56. "doctorName:医生姓名<br>" +
  57. "doctorCode:医生工号<br>" +
  58. "level:等级<br>" +
  59. "deptId:科室id<br>")
  60. @PostMapping("/page")
  61. @SysLogger("page")
  62. public RespDTO<IPage<BehospitalInfoDTO>> page(@RequestBody BehospitalPageVO behospitalPageVO) {
  63. IPage<BehospitalInfoDTO> data = behospitalInfoFacade.pageFac(behospitalPageVO);
  64. return RespDTO.onSuc(data);
  65. }
  66. @ApiOperation(value = "根据病历id获取详情[by:zhoutg]",
  67. notes = "")
  68. @PostMapping("/getByBehospitalCode")
  69. @SysLogger("getByBehospitalCode")
  70. public RespDTO<Map<String, Object>> getByBehospitalCode(@RequestBody GetDetailVO getDetailVO) {
  71. Map<String, Object> data = behospitalInfoFacade.getByBehospitalCode(getDetailVO);
  72. return RespDTO.onSuc(data);
  73. }
  74. @ApiOperation(value = "评分[by:zhoutg]",
  75. notes = "")
  76. @PostMapping("/analyze")
  77. @SysLogger("analyze")
  78. @Transactional
  79. public RespDTO<AnalyzeDTO> analyze(@RequestBody AnalyzeVO analyzeVO) {
  80. analyzeVO.setUseCrfCache(true);
  81. return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO));
  82. }
  83. @ApiOperation(value = "评分-运行质控[by:zhoutg]",
  84. notes = " // 病历id\n" +
  85. " String behospitalCode;\n" +
  86. " // 医院ID\n" +
  87. " Long hospitalId;\n" +
  88. " // 模块id\n" +
  89. " Long modeId;\n" +
  90. " // 归档字段\n" +
  91. " String isPlacefile;")
  92. @PostMapping("/analyze_run")
  93. @SysLogger("analyze_run")
  94. @Transactional
  95. public RespDTO<AnalyzeRunDTO> analyzeRun(@Valid @RequestBody AnalyzeRunVO analyzeRunVO) {
  96. return RespDTO.onSuc(behospitalInfoFacade.analyzeRun(analyzeRunVO));
  97. }
  98. @ApiOperation(value = "定时任务评分[by:zhoutg]",
  99. notes = "")
  100. @PostMapping("/analyze_rpc")
  101. @SysLogger("analyze_rpc")
  102. @Transactional
  103. @ApiIgnore
  104. public RespDTO<AnalyzeDTO> analyze_rpc(@RequestBody AnalyzeVO analyzeVO) {
  105. return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO));
  106. }
  107. @ApiOperation(value = "评分-对外api接口[by:zhoutg]",
  108. notes = "")
  109. @PostMapping("/analyze_api")
  110. @SysLogger("analyze_api")
  111. @Transactional
  112. // @ApiIgnore
  113. public RespDTO<Map<String, Object>> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) {
  114. return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO));
  115. }
  116. @ApiOperation(value = "新增质控条目[by:zhoutg]",
  117. notes = "")
  118. @PostMapping("/addCase")
  119. @SysLogger("addCase")
  120. @Transactional
  121. public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO) {
  122. qcresultVO.setType(1);
  123. return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
  124. }
  125. @ApiOperation(value = "删除质控条目[by:zhoutg]",
  126. notes = "behospitalCode:病历号,必填<br>" +
  127. "id:明细id,必填<br>")
  128. @PostMapping("/delCase")
  129. @SysLogger("delCase")
  130. @Transactional
  131. public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO) {
  132. qcresultVO.setType(2);
  133. return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
  134. }
  135. @ApiOperation(value = "修改质控条目[by:zhoutg]",
  136. notes = "")
  137. @PostMapping("/updCase")
  138. @SysLogger("updCase")
  139. @Transactional
  140. public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO) {
  141. qcresultVO.setType(3);
  142. return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
  143. }
  144. @ApiOperation(value = "对病历进行评分【****************批量评分*************】[by:zhoutg]",
  145. notes = "参数内容清空:【所有医院】【未评分】病历数据<br>" +
  146. "<br>" +
  147. "hosptialIdList:医院列表id,1:长兴,3:台州,2:邵逸夫<br>" +
  148. "useCrfCache: 是否使用crf缓存(true:使用crf缓存,false:不使用)<br>" +
  149. "【个性化需求】——默认即可<br>" +
  150. "filterFlag: 筛选病历数据:0:未评分的病历【推荐使用】;1:全部病历【谨慎使用】<br>" +
  151. "individuation:【1:近3天不含当天的病历强制评分更新】<br>" +
  152. "type:【1:出院时间比当前时间早3天前的病历(例如:长兴病历)】)<br>" +
  153. "behospitalCodeList:指定病历号<br>")
  154. @PostMapping("/execule")
  155. @SysLogger("execule")
  156. public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO) {
  157. behospitalInfoFacade.execute(taskVO, "");
  158. return RespDTO.onSuc(true);
  159. }
  160. @ApiOperation(value = "病历分页列表(科室)[by:zhoutg]",
  161. notes = "name:姓名<br>" +
  162. "fileCode:档案号<br>" +
  163. "statisticsType: 统计维度 1-本月,2-本年<br>" +
  164. "behosDateStart:入院时间开始时间<br>" +
  165. "behosDateEnd:入院时间结束时间<br>" +
  166. "leaveHosDateStart:出院时间开始时间<br>" +
  167. "leaveHosDateEnd:出院时间结束时间<br>")
  168. @PostMapping("/page_dept")
  169. @SysLogger("page_dept")
  170. public RespDTO<IPage<BehospitalInfoDTO>> pageDept(@RequestBody BehospitalPageVO behospitalPageVO) {
  171. IPage<BehospitalInfoDTO> data = behospitalInfoFacade.pageDept(behospitalPageVO);
  172. return RespDTO.onSuc(data);
  173. }
  174. @ApiOperation(value = "病历分页列表(个人)[by:zhoutg]",
  175. notes = "name:姓名<br>" +
  176. "fileCode:档案号<br>" +
  177. "statisticsType: 统计维度 1-本月,2-本年<br>" +
  178. "behosDateStart:入院时间开始时间<br>" +
  179. "behosDateEnd:入院时间结束时间<br>" +
  180. "leaveHosDateStart:出院时间开始时间<br>" +
  181. "leaveHosDateEnd:出院时间结束时间<br>")
  182. @PostMapping("/page_person")
  183. @SysLogger("page_person")
  184. public RespDTO<IPage<BehospitalInfoDTO>> pagePerson(@RequestBody BehospitalPageVO behospitalPageVO) {
  185. IPage<BehospitalInfoDTO> data = behospitalInfoFacade.pagePerson(behospitalPageVO);
  186. return RespDTO.onSuc(data);
  187. }
  188. @ApiOperation(value = "病历分页列表(个人)[by:zhoutg]",
  189. notes = "behospitalCode:病人住院序号<br>" +
  190. "name:病人姓名<br>" +
  191. "fileCode:档案号<br>" +
  192. "statisticsType: 统计维度 1-本月,2-本年<br>" +
  193. "behosDateStart:入院时间开始时间<br>" +
  194. "behosDateEnd:入院时间结束时间<br>" +
  195. "leaveHosDateStart:出院时间开始时间<br>" +
  196. "leaveHosDateEnd:出院时间结束时间<br>" +
  197. "doctorName:医生姓名<br>" +
  198. "doctorCode:医生工号<br>" +
  199. "level:等级<br>" +
  200. "deptId:科室id<br>")
  201. @PostMapping("/page_group")
  202. @SysLogger("page_group")
  203. public RespDTO<IPage<BehospitalInfoDTO>> pageGroup(@RequestBody BehospitalPageVO behospitalPageVO) {
  204. IPage<BehospitalInfoDTO> data = behospitalInfoFacade.pageGroup(behospitalPageVO);
  205. return RespDTO.onSuc(data);
  206. }
  207. @ApiOperation(value = "导出病历例子[by:gaodm]",
  208. notes = "")
  209. @PostMapping("/exportExcel")
  210. @SysLogger("exportExcel")
  211. public void exportExcel(HttpServletResponse response) {
  212. behospitalInfoFacade.exportExcelFac(response);
  213. }
  214. @ApiOperation(value = "质控结果导出[by:zhaops]",
  215. notes = "")
  216. @PostMapping("/exportQcresult")
  217. @SysLogger("exportQcresult")
  218. public void exportQcresult(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
  219. behospitalInfoFacade.exportQcresult(response, exportQcresultVO);
  220. }
  221. @ApiOperation(value = "【科室】质控结果导出[by:zhaops]",
  222. notes = "")
  223. @PostMapping("/exportQcresultByDept")
  224. @SysLogger("exportQcresultByDept")
  225. public void exportQcresultByDept(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
  226. behospitalInfoFacade.exportQcresultByDept(response, exportQcresultVO);
  227. }
  228. @ApiOperation(value = "【医疗组】质控结果导出[by:zhoutg]",
  229. notes = "")
  230. @PostMapping("/exportQcresultByGroup")
  231. @SysLogger("exportQcresultByGroup")
  232. public void exportQcresultByGroup(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
  233. behospitalInfoFacade.exportQcresultByGroup(response, exportQcresultVO);
  234. }
  235. }