BehospitalInfoController.java 11 KB

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