package thyyxxk.webserver.controller.inpatient.casefrontsheet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import thyyxxk.webserver.config.auth.PassToken; import thyyxxk.webserver.config.exception.ExceptionEnum; import thyyxxk.webserver.entity.ResultVo; import thyyxxk.webserver.entity.casefrontsheet.*; import thyyxxk.webserver.entity.casefrontsheet.request.*; import thyyxxk.webserver.entity.casefrontsheet.request.casefrontsheet.request.OpCaseFrontsheet; import thyyxxk.webserver.entity.casefrontsheet.request.casefrontsheet.response.AuditCount; import thyyxxk.webserver.entity.casefrontsheet.response.DismissCount; import thyyxxk.webserver.entity.casefrontsheet.response.LendOutSheet; import thyyxxk.webserver.entity.casefrontsheet.state.State; import thyyxxk.webserver.entity.dictionary.CodeName; import thyyxxk.webserver.service.inpatient.casefrontsheet.CaseFrontSheetAnalyzeService; import thyyxxk.webserver.service.inpatient.casefrontsheet.CaseFrontSheetMainService; import thyyxxk.webserver.utils.ResultVoUtil; import thyyxxk.webserver.utils.TokenUtil; import java.util.List; import java.util.Map; /** * @author dj */ @RestController @RequestMapping("/caseFrontSheet") public class CaseFrontSheetController { private final CaseFrontSheetMainService service; private final CaseFrontSheetAnalyzeService analyzeService; @Autowired public CaseFrontSheetController(CaseFrontSheetMainService service, CaseFrontSheetAnalyzeService analyzeService) { this.service = service; this.analyzeService = analyzeService; } @GetMapping("/getAllDictionary") @PassToken public ResultVo>> getAllDictionary() { return service.getAllDictionary(); } @GetMapping("/resetDictionary") @PassToken public ResultVo resetDictionary() { return service.resetDictionary(); } @GetMapping("/getUserWards") public ResultVo> getUserWards() { return service.getUserWards(); } @GetMapping("/getAllWards") public ResultVo> getWards() { return service.getAllWards(); } @GetMapping("/getPatientOverview") public ResultVo> getPatientOverview(String ward) { return service.getPatientOverview(ward); } @PostMapping("/outPatients") public ResultVo> getOutPatients(@RequestBody DismissedSheetInquiry param) { return service.getOutPatient(param); } @PostMapping("/basOutPatients") public ResultVo> getOutPatientsForBas(@RequestBody DismissedSheetInquiry param) { return service.basOutPatients(param); } @PostMapping("/getSheetInfo") public ResultVo getPatientInfo(@RequestBody SheetOverview overview) { CaseFrontsheetMain response = service.getPatientInfo(overview); if (null == response) { return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST); } return ResultVoUtil.success(response); } @GetMapping("/getYbDiags") public ResultVo> getYbDiags(@RequestParam("bah") String bah, @RequestParam("times") Integer times) { return service.getYbDiags(bah, times); } @PostMapping("/saveYbDiags") public ResultVo saveYbDiags(@RequestBody SaveYbDiag param) { return service.saveYbDiags(param); } @PostMapping("/unArchiveBa") public ResultVo unArchiveBa(@RequestBody OpCaseFrontsheet param) { param.setStaffId(TokenUtil.getInstance().getTokenUserId()); return service.unArchiveSheet(param); } @PostMapping("/printVerify") public ResultVo>> printVerification(@RequestBody OpCaseFrontsheet param) { param.setStaffId(TokenUtil.getInstance().getTokenUserId()); return service.printVerification(param); } @PostMapping("/saveVerify") public ResultVo> saveVerify(@RequestBody OpCaseFrontsheet param) { param.setStaffId(TokenUtil.getInstance().getTokenUserId()); return service.saveVerify(param); } @PostMapping("/frontsheetQualityCheck") public ResultVo frontsheetQualityCheck(@RequestBody CaseFrontsheetMain sheet) { return service.frontsheetQualityCheck(sheet); } @PostMapping("/advanceSearch") public ResultVo> advanceSearch(@RequestBody AdvanceSearch param) { return service.advanceSearch(param); } @GetMapping("/fetchSsfz") public ResultVo fetchSsfz(@RequestParam("code") String code, @RequestParam("bah") String bah, @RequestParam("times") Integer times) { return service.fetchSsfz(code, bah, times); } @PostMapping("/analyzeDismissCount") public ResultVo> analyzeDismissCount(@RequestBody SheetAnalyzeParams param) { return analyzeService.analyzeDismissCount(param); } @GetMapping("/increaseDiagWeight") public void increaseDiagWeight(@RequestParam("code") String code) { service.increaseDiagWeight(code); } @PostMapping("/analyzeQualityControl") public ResultVo> analyzeQualityControl(@RequestBody SheetAnalyzeParams params) { return analyzeService.analyzeQualityControl(params); } @GetMapping("/selectSiDiagByBaDiag") public ResultVo selectSiDiagByBaDiag(@RequestParam("code") String code) { return service.selectSiDiagByBaDiag(code); } @GetMapping("/isMedinsSetl") public ResultVo isMedinsSetl(@RequestParam("patNo") String patNo, @RequestParam("times") Integer times) { return service.isMedinsSetl(patNo, times); } @PassToken @PostMapping("/sheetVerification") public ResultVo>> sheetVerification(@RequestBody SheetOverview view) { return service.sheetVerification(view); } @PostMapping("/markDuplicate") public ResultVo markDuplicate(@RequestBody MarkStateRequest request) { String response = service.markDuplicate(request); if (response.equals("OK")) { return ResultVoUtil.success(response); } return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, response); } @PostMapping("/markClosedown") public ResultVo markClosedown(@RequestBody MarkStateRequest request) { String response = service.markClosedown(request); if (response.equals("OK")) { return ResultVoUtil.success(response); } return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, response); } @GetMapping("/getMarkStateDetail") public ResultVo getMarkStateDetail(@RequestParam("bah") String bah, @RequestParam("times") int times, @RequestParam("type") String type) { MarkStateRequest request = service.getMarkStateDetail(bah, times, type); if (null == request) { return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST); } return ResultVoUtil.success(request); } @GetMapping("/signedByDateCount") public ResultVo>> signedByDateCount(@RequestParam("signDate") String signDate) { return ResultVoUtil.success(service.signedByDateCount(signDate)); } @GetMapping("/autoSign") public void autoSign() { List list = service.getSheetsForAutoSign(); for (SheetOverview o : list) { o.setInOutFlag(State.InHospital.NO); CaseFrontsheetMain mainSheet = service.getPatientInfo(o); if (null == mainSheet) { continue; } String prtres = service.printVerifyForAutoSign(mainSheet); if (!prtres.equals("OK")) { continue; } mainSheet.setSignDate(o.getSignDateOrigin()); mainSheet.setLateFlag(o.getLateFlag()); mainSheet.setSignStaff(o.getSignStaff()); mainSheet.setFileStatus(State.FileStatus.SIGNED); mainSheet.setUnsignDate(null); service.autoSign(mainSheet); } } @GetMapping("/getSimpleSheetForLendOut") public ResultVo> getSimpleSheetForLendOut(@RequestParam("bah") String bah) { List list = service.getSimpleSheetForLendOut(bah); if (list.isEmpty()) { return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST); } return ResultVoUtil.success(list); } @PostMapping("/doLendOut") public ResultVo doLendOut(@RequestBody LendOutRequest request) { String response = service.doLendOut(request); if (response.equals("OK")) { return ResultVoUtil.success(); } return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, response); } @GetMapping("/getLendOutSheets") public ResultVo> getLendOutSheets() { return ResultVoUtil.success(service.getLendOutSheets()); } @GetMapping("/returnLendOutSheet") public ResultVo returnLendOutSheet(@RequestParam("id") Integer id) { String response = service.returnLendOutSheet(id); if (response.equals("OK")) { return ResultVoUtil.success(); } return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, response); } @GetMapping("/getLendOutDetail") public ResultVo getLendOutDetail(@RequestParam("bah") String bah, @RequestParam("times") int times) { LendOutRequest request = service.getLendOutDetail(bah, times); if (null == request) { return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST); } return ResultVoUtil.success(request); } @PostMapping("/submitQualityVerification") public ResultVo submitQualityVerification(@RequestBody FrontsheetQualityVerification request) { String response = service.submitQualityVerification(request); if (response.equals("OK")) { return ResultVoUtil.success(); } return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, response); } @PostMapping("/fetchQualityVerifications") public ResultVo> fetchQualityVerifications(@RequestBody AuditInquiry inquiry) { return ResultVoUtil.success(service.fetchQualityVerifications(inquiry)); } @PostMapping("/executeAudit") public ResultVo executeAudit(@RequestBody FrontsheetQualityVerification request) { String result = service.executeAudit(request); if (result.equals("OK")) { return ResultVoUtil.success("操作成功。"); } return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, result); } @PostMapping("/revokeApprovedAudit") public ResultVo revokeApprovedAudit(@RequestBody FrontsheetQualityVerification request) { return ResultVoUtil.success(service.revokeApprovedAudit(request)); } @PostMapping("/fetchAuditHistories") public ResultVo> fetchAuditHistories(@RequestBody FrontsheetQualityVerification request) { return ResultVoUtil.success(service.fetchAuditHistories(request)); } @PostMapping("/fetchAuditCount") public ResultVo fetchAuditCount(@RequestBody FrontsheetQualityVerification request) { return ResultVoUtil.success(service.fetchAuditCount(request)); } @GetMapping("/getAllSmallDept") public ResultVo> getAllSmallDept() { return ResultVoUtil.success(service.getAllSmallDept()); } @PostMapping("/fetchExportData") public ResultVo> fetchExportData(@RequestBody AuditInquiry inquiry) { return ResultVoUtil.success(service.fetchExportData(inquiry)); } }