CaseFrontSheetController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. package thyyxxk.webserver.controller.inpatient.casefrontsheet;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.web.bind.annotation.*;
  4. import thyyxxk.webserver.config.auth.PassToken;
  5. import thyyxxk.webserver.config.exception.ExceptionEnum;
  6. import thyyxxk.webserver.entity.ResultVo;
  7. import thyyxxk.webserver.entity.casefrontsheet.*;
  8. import thyyxxk.webserver.entity.casefrontsheet.request.*;
  9. import thyyxxk.webserver.entity.casefrontsheet.request.casefrontsheet.request.OpCaseFrontsheet;
  10. import thyyxxk.webserver.entity.casefrontsheet.request.casefrontsheet.response.AuditCount;
  11. import thyyxxk.webserver.entity.casefrontsheet.response.DismissCount;
  12. import thyyxxk.webserver.entity.casefrontsheet.response.LendOutSheet;
  13. import thyyxxk.webserver.entity.casefrontsheet.state.State;
  14. import thyyxxk.webserver.entity.dictionary.CodeName;
  15. import thyyxxk.webserver.service.inpatient.casefrontsheet.CaseFrontSheetAnalyzeService;
  16. import thyyxxk.webserver.service.inpatient.casefrontsheet.CaseFrontSheetMainService;
  17. import thyyxxk.webserver.utils.ResultVoUtil;
  18. import thyyxxk.webserver.utils.TokenUtil;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * @author dj
  23. */
  24. @RestController
  25. @RequestMapping("/caseFrontSheet")
  26. public class CaseFrontSheetController {
  27. private final CaseFrontSheetMainService service;
  28. private final CaseFrontSheetAnalyzeService analyzeService;
  29. @Autowired
  30. public CaseFrontSheetController(CaseFrontSheetMainService service, CaseFrontSheetAnalyzeService analyzeService) {
  31. this.service = service;
  32. this.analyzeService = analyzeService;
  33. }
  34. @GetMapping("/getAllDictionary")
  35. @PassToken
  36. public ResultVo<Map<String, List<CodeName>>> getAllDictionary() {
  37. return service.getAllDictionary();
  38. }
  39. @GetMapping("/resetDictionary")
  40. @PassToken
  41. public ResultVo<String> resetDictionary() {
  42. return service.resetDictionary();
  43. }
  44. @GetMapping("/getUserWards")
  45. public ResultVo<List<CodeName>> getUserWards() {
  46. return service.getUserWards();
  47. }
  48. @GetMapping("/getAllWards")
  49. public ResultVo<List<CodeName>> getWards() {
  50. return service.getAllWards();
  51. }
  52. @GetMapping("/getPatientOverview")
  53. public ResultVo<List<SheetOverview>> getPatientOverview(String ward) {
  54. return service.getPatientOverview(ward);
  55. }
  56. @PostMapping("/outPatients")
  57. public ResultVo<List<SheetOverview>> getOutPatients(@RequestBody DismissedSheetInquiry param) {
  58. return service.getOutPatient(param);
  59. }
  60. @PostMapping("/basOutPatients")
  61. public ResultVo<List<SheetOverview>> getOutPatientsForBas(@RequestBody DismissedSheetInquiry param) {
  62. return service.basOutPatients(param);
  63. }
  64. @PostMapping("/getSheetInfo")
  65. public ResultVo<CaseFrontsheetMain> getPatientInfo(@RequestBody SheetOverview overview) {
  66. CaseFrontsheetMain response = service.getPatientInfo(overview);
  67. if (null == response) {
  68. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  69. }
  70. return ResultVoUtil.success(response);
  71. }
  72. @GetMapping("/getYbDiags")
  73. public ResultVo<List<YiBaoDisdiag>> getYbDiags(@RequestParam("bah") String bah,
  74. @RequestParam("times") Integer times) {
  75. return service.getYbDiags(bah, times);
  76. }
  77. @PostMapping("/saveYbDiags")
  78. public ResultVo<String> saveYbDiags(@RequestBody SaveYbDiag param) {
  79. return service.saveYbDiags(param);
  80. }
  81. @PostMapping("/unArchiveBa")
  82. public ResultVo<String> unArchiveBa(@RequestBody OpCaseFrontsheet param) {
  83. param.setStaffId(TokenUtil.getInstance().getTokenUserId());
  84. return service.unArchiveSheet(param);
  85. }
  86. @PostMapping("/printVerify")
  87. public ResultVo<Map<String, List<CodeName>>> printVerification(@RequestBody OpCaseFrontsheet param) {
  88. param.setStaffId(TokenUtil.getInstance().getTokenUserId());
  89. return service.printVerification(param);
  90. }
  91. @PostMapping("/saveVerify")
  92. public ResultVo<List<CodeName>> saveVerify(@RequestBody OpCaseFrontsheet param) {
  93. param.setStaffId(TokenUtil.getInstance().getTokenUserId());
  94. return service.saveVerify(param);
  95. }
  96. @PostMapping("/frontsheetQualityCheck")
  97. public ResultVo<String> frontsheetQualityCheck(@RequestBody CaseFrontsheetMain sheet) {
  98. return service.frontsheetQualityCheck(sheet);
  99. }
  100. @PostMapping("/advanceSearch")
  101. public ResultVo<List<SheetOverview>> advanceSearch(@RequestBody AdvanceSearch param) {
  102. return service.advanceSearch(param);
  103. }
  104. @GetMapping("/fetchSsfz")
  105. public ResultVo<String> fetchSsfz(@RequestParam("code") String code,
  106. @RequestParam("bah") String bah,
  107. @RequestParam("times") Integer times) {
  108. return service.fetchSsfz(code, bah, times);
  109. }
  110. @PostMapping("/analyzeDismissCount")
  111. public ResultVo<List<DismissCount>> analyzeDismissCount(@RequestBody SheetAnalyzeParams param) {
  112. return analyzeService.analyzeDismissCount(param);
  113. }
  114. @GetMapping("/increaseDiagWeight")
  115. public void increaseDiagWeight(@RequestParam("code") String code) {
  116. service.increaseDiagWeight(code);
  117. }
  118. @PostMapping("/analyzeQualityControl")
  119. public ResultVo<List<SheetQuality>> analyzeQualityControl(@RequestBody SheetAnalyzeParams params) {
  120. return analyzeService.analyzeQualityControl(params);
  121. }
  122. @GetMapping("/selectSiDiagByBaDiag")
  123. public ResultVo<CodeName> selectSiDiagByBaDiag(@RequestParam("code") String code) {
  124. return service.selectSiDiagByBaDiag(code);
  125. }
  126. @GetMapping("/isMedinsSetl")
  127. public ResultVo<String> isMedinsSetl(@RequestParam("patNo") String patNo, @RequestParam("times") Integer times) {
  128. return service.isMedinsSetl(patNo, times);
  129. }
  130. @PassToken
  131. @PostMapping("/sheetVerification")
  132. public ResultVo<Map<String, List<CodeName>>> sheetVerification(@RequestBody SheetOverview view) {
  133. return service.sheetVerification(view);
  134. }
  135. @PostMapping("/markDuplicate")
  136. public ResultVo<String> markDuplicate(@RequestBody MarkStateRequest request) {
  137. String response = service.markDuplicate(request);
  138. if (response.equals("OK")) {
  139. return ResultVoUtil.success(response);
  140. }
  141. return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, response);
  142. }
  143. @PostMapping("/markClosedown")
  144. public ResultVo<String> markClosedown(@RequestBody MarkStateRequest request) {
  145. String response = service.markClosedown(request);
  146. if (response.equals("OK")) {
  147. return ResultVoUtil.success(response);
  148. }
  149. return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, response);
  150. }
  151. @GetMapping("/getMarkStateDetail")
  152. public ResultVo<MarkStateRequest> getMarkStateDetail(@RequestParam("bah") String bah,
  153. @RequestParam("times") int times,
  154. @RequestParam("type") String type) {
  155. MarkStateRequest request = service.getMarkStateDetail(bah, times, type);
  156. if (null == request) {
  157. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  158. }
  159. return ResultVoUtil.success(request);
  160. }
  161. @GetMapping("/signedByDateCount")
  162. public ResultVo<Map<String, List<SheetOverview>>> signedByDateCount(@RequestParam("signDate") String signDate) {
  163. return ResultVoUtil.success(service.signedByDateCount(signDate));
  164. }
  165. @GetMapping("/autoSign")
  166. public void autoSign() {
  167. List<SheetOverview> list = service.getSheetsForAutoSign();
  168. for (SheetOverview o : list) {
  169. o.setInOutFlag(State.InHospital.NO);
  170. CaseFrontsheetMain mainSheet = service.getPatientInfo(o);
  171. if (null == mainSheet) {
  172. continue;
  173. }
  174. String prtres = service.printVerifyForAutoSign(mainSheet);
  175. if (!prtres.equals("OK")) {
  176. continue;
  177. }
  178. mainSheet.setSignDate(o.getSignDateOrigin());
  179. mainSheet.setLateFlag(o.getLateFlag());
  180. mainSheet.setSignStaff(o.getSignStaff());
  181. mainSheet.setFileStatus(State.FileStatus.SIGNED);
  182. mainSheet.setUnsignDate(null);
  183. service.autoSign(mainSheet);
  184. }
  185. }
  186. @GetMapping("/getSimpleSheetForLendOut")
  187. public ResultVo<List<SheetOverview>> getSimpleSheetForLendOut(@RequestParam("bah") String bah) {
  188. List<SheetOverview> list = service.getSimpleSheetForLendOut(bah);
  189. if (list.isEmpty()) {
  190. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  191. }
  192. return ResultVoUtil.success(list);
  193. }
  194. @PostMapping("/doLendOut")
  195. public ResultVo<String> doLendOut(@RequestBody LendOutRequest request) {
  196. String response = service.doLendOut(request);
  197. if (response.equals("OK")) {
  198. return ResultVoUtil.success();
  199. }
  200. return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, response);
  201. }
  202. @GetMapping("/getLendOutSheets")
  203. public ResultVo<List<LendOutSheet>> getLendOutSheets() {
  204. return ResultVoUtil.success(service.getLendOutSheets());
  205. }
  206. @GetMapping("/returnLendOutSheet")
  207. public ResultVo<String> returnLendOutSheet(@RequestParam("id") Integer id) {
  208. String response = service.returnLendOutSheet(id);
  209. if (response.equals("OK")) {
  210. return ResultVoUtil.success();
  211. }
  212. return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, response);
  213. }
  214. @GetMapping("/getLendOutDetail")
  215. public ResultVo<LendOutRequest> getLendOutDetail(@RequestParam("bah") String bah,
  216. @RequestParam("times") int times) {
  217. LendOutRequest request = service.getLendOutDetail(bah, times);
  218. if (null == request) {
  219. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  220. }
  221. return ResultVoUtil.success(request);
  222. }
  223. @PostMapping("/submitQualityVerification")
  224. public ResultVo<String> submitQualityVerification(@RequestBody FrontsheetQualityVerification request) {
  225. String response = service.submitQualityVerification(request);
  226. if (response.equals("OK")) {
  227. return ResultVoUtil.success();
  228. }
  229. return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, response);
  230. }
  231. @PostMapping("/fetchQualityVerifications")
  232. public ResultVo<List<FrontsheetQualityVerification>> fetchQualityVerifications(@RequestBody AuditInquiry inquiry) {
  233. return ResultVoUtil.success(service.fetchQualityVerifications(inquiry));
  234. }
  235. @PostMapping("/executeAudit")
  236. public ResultVo<String> executeAudit(@RequestBody FrontsheetQualityVerification request) {
  237. String result = service.executeAudit(request);
  238. if (result.equals("OK")) {
  239. return ResultVoUtil.success("操作成功。");
  240. }
  241. return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result);
  242. }
  243. @PostMapping("/revokeApprovedAudit")
  244. public ResultVo<String> revokeApprovedAudit(@RequestBody FrontsheetQualityVerification request) {
  245. return ResultVoUtil.success(service.revokeApprovedAudit(request));
  246. }
  247. @PostMapping("/fetchAuditHistories")
  248. public ResultVo<List<FrontsheetQualityVerification>> fetchAuditHistories(@RequestBody FrontsheetQualityVerification request) {
  249. return ResultVoUtil.success(service.fetchAuditHistories(request));
  250. }
  251. @PostMapping("/fetchAuditCount")
  252. public ResultVo<AuditCount> fetchAuditCount(@RequestBody FrontsheetQualityVerification request) {
  253. return ResultVoUtil.success(service.fetchAuditCount(request));
  254. }
  255. @GetMapping("/getAllSmallDept")
  256. public ResultVo<List<CodeName>> getAllSmallDept() {
  257. return ResultVoUtil.success(service.getAllSmallDept());
  258. }
  259. @PostMapping("/fetchExportData")
  260. public ResultVo<List<FrontsheetQualityVerification>> fetchExportData(@RequestBody AuditInquiry inquiry) {
  261. return ResultVoUtil.success(service.fetchExportData(inquiry));
  262. }
  263. }