package com.diagbot.web; import com.baomidou.mybatisplus.core.metadata.IPage; import com.diagbot.annotation.SysLogger; import com.diagbot.dto.AverageStatisticsDTO; import com.diagbot.dto.DeptNumDTO; import com.diagbot.dto.EntryNumDTO; import com.diagbot.dto.HomePageNumDTO; import com.diagbot.dto.LevelStatisticsDTO; import com.diagbot.dto.NumDTO; import com.diagbot.dto.QcResultShortDTO; import com.diagbot.dto.RespDTO; import com.diagbot.facade.ConsoleFacade; import com.diagbot.vo.FilterOrderVO; import com.diagbot.vo.FilterPageByAverageVO; import com.diagbot.vo.FilterPageVO; import com.diagbot.vo.FilterVO; import com.diagbot.vo.QcResultShortPageVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import javax.validation.Valid; import java.util.List; import java.util.Map; /** * @Description: * @Author:zhaops * @time: 2020/4/13 16:45 */ @RequestMapping("/console") @RestController @Api(value = "控制台统计相关API", tags = { "控制台统计相关API" }) @SuppressWarnings("unchecked") public class ConsoleController { @Autowired private ConsoleFacade consoleFacade; //region-----------------------聚合接口开始------------------------------- @ApiOperation(value = "病历相关统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/mrStatistics") @SysLogger("mrStatistics") @ApiIgnore public RespDTO> mrStatistics(@RequestBody @Valid FilterVO filterVO) { Map data = consoleFacade.mrStatistics(filterVO); return RespDTO.onSuc(data); } @ApiOperation(value = "缺陷相关统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/resultStatistics") @SysLogger("resultStatistics") @ApiIgnore public RespDTO> resultStatistics(@RequestBody @Valid FilterVO filterVO) { Map data = consoleFacade.resultStatistics(filterVO); return RespDTO.onSuc(data); } @ApiOperation(value = "平均值相关统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/averageStatistics") @SysLogger("averageStatistics") @ApiIgnore public RespDTO> averageStatistics(@RequestBody @Valid FilterVO filterVO) { Map data = consoleFacade.averageStatistics(filterVO); return RespDTO.onSuc(data); } //endregion-----------------------聚合接口结束------------------------------- //region-----------------------单独接口开始------------------------------- /** * 平均住院天数 * * @param filterVO * @return */ @ApiOperation(value = "平均住院天数[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/getAverageDayNum") @SysLogger("getAverageDayNum") public RespDTO> getAverageDayNum(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.getAverageDayNum(filterVO)); } /** * 平均住院费用 * * @param filterVO * @return */ @ApiOperation(value = "平均住院费用[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/getAverageFee") @SysLogger("getAverageFee") public RespDTO> getAverageFee(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.getAverageFee(filterVO)); } /** * 质控平均分按科室统计 * * @param filterVO * @return */ @ApiOperation(value = "质控平均分按科室统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/getAverageScore") @SysLogger("getAverageScore") public RespDTO> getAverageScore(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.getAverageScore(filterVO)); } /** * 各科室质控平均分(首页)-根据内外科系统统计 * * @param filterVO * @return */ @ApiOperation(value = "各科室质控平均分(首页)-根据内外科系统统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "deptClass: 科室分类:内科/外科,全部不传
") @PostMapping("/getAverageScoreByDeptClass") @SysLogger("getAverageScoreByDeptClass") public RespDTO> getAverageScoreByDeptClass(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.getAverageScoreByDeptClass(filterVO)); } /** * 各科室甲级病历占比 * * @param filterVO * @return */ @ApiOperation(value = "各科室甲级病历占比[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/getLevelResultDept") @SysLogger("getLevelResultDept") public RespDTO> getLevelResultDept(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.getLevelResultDept(filterVO)); } /** * 出院人数统计 * * @param filterVO * @return */ @ApiOperation(value = "出院人数统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/leaveHosCount") @SysLogger("leaveHosCount") public RespDTO> leaveHosCount(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.leaveHosCount(filterVO)); } /** * 质控病历统计 * * @param filterVO * @return */ @ApiOperation(value = "质控病历统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/mrCount") @SysLogger("mrCount") public RespDTO> mrCount(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.mrCount(filterVO)); } /** * 各模块缺陷占比排行 * * @param filterVO * @return */ @ApiOperation(value = "各模块缺陷占比排行(首页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/entryCountGroupByCase") @SysLogger("entryCountGroupByCase") public RespDTO> entryCountGroupByCase(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.entryCountGroupByCase(filterVO)); } /** * 条目缺陷占比 * * @param filterVO * @return */ @ApiOperation(value = "条目缺陷占比(首页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "isReject: 单项否决 1-否决,0-非
" + "casesName: 模块名称
") @PostMapping("/entryCountGroupByEntry") @SysLogger("entryCountGroupByEntry") public RespDTO> entryCountGroupByEntry(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.entryCountGroupByEntry(filterVO)); } /** * 单项否决缺陷占比 * * @param filterVO * @return */ @ApiOperation(value = "单项否决缺陷占比(首页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/entryRejectPercent") @SysLogger("entryRejectPercent") public RespDTO> entryRejectPercent(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.entryRejectPercent(filterVO)); } /** * 单项否决缺陷占比 * * @param filterVO * @return */ @ApiOperation(value = "各科室甲/乙/丙级病历占比(首页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "level: 病历等级 甲、乙、丙(必填)
") @PostMapping("/qcResultLevelPercent") @SysLogger("qcResultLevelPercent") public RespDTO> qcResultLevelPercent(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.qcResultLevelPercent(filterVO)); } /** * 各科室缺陷占比 * * @param filterVO * @return */ @ApiOperation(value = "各科室缺陷占比[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/entryByDept") @SysLogger("entryByDept") public RespDTO> entryByDept(@RequestBody @Valid FilterVO filterVO) { return RespDTO.onSuc(consoleFacade.entryByDept(filterVO)); } //endregion-----------------------单独接口结束------------------------------- //region-----------------------分页接口开始------------------------------- /** * 各模块缺陷占比(分页) * * @param filterPageVO * @return */ @ApiOperation(value = "各模块缺陷占比(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/entryCountGroupByCasePage") @SysLogger("entryCountGroupByCasePage") public RespDTO> entryCountGroupByCasePage(@RequestBody @Valid FilterPageVO filterPageVO) { return RespDTO.onSuc(consoleFacade.entryCountGroupByCasePage(filterPageVO)); } /** * 条目缺陷占比(分页) * * @param filterPageVO * @return */ @ApiOperation(value = "缺陷详情(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "deptName: 科室名称
" + "casesId: 模块id:243=病案首页
" + "casesName: 模块名称
" + "isReject: 单项否决 1-否决,0-非
" + "ruleType: 规则类型 0:无,1:空项,2:错误
") @PostMapping("/entryCountGroupByEntryPage") @SysLogger("entryCountGroupByEntryPage") public RespDTO> entryCountGroupByEntryPage(@RequestBody @Valid FilterPageVO filterPageVO) { return RespDTO.onSuc(consoleFacade.entryCountGroupByEntryPage(filterPageVO)); } /** * 按科室统计平均住院天数(分页) * * @param filterPageByAverageVO * @return */ @ApiOperation(value = "按科室统计平均住院天数(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年
" + "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年
") @PostMapping("/getAverageDayNumPage") @SysLogger("getAverageDayNumPage") public RespDTO> getAverageDayNumPage(@RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) { return RespDTO.onSuc(consoleFacade.getAverageDayNumPage(filterPageByAverageVO)); } /** * 按科室统计平均住院费用(分页) * * @param filterPageByAverageVO * @return */ @ApiOperation(value = "按科室统计平均住院费用(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年
" + "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年
") @PostMapping("/getAverageFeePage") @SysLogger("getAverageFeePage") public RespDTO> getAverageFeePage(@RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) { return RespDTO.onSuc(consoleFacade.getAverageFeePage(filterPageByAverageVO)); } /** * 各科室质控平均分(分页) * * @param filterPageVO * @return */ @ApiOperation(value = "各科室质控平均分(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/getAverageScoreByDeptPage") @SysLogger("getAverageScoreByDeptPage") public RespDTO> getAverageScoreByDeptPage(@RequestBody @Valid FilterPageVO filterPageVO) { return RespDTO.onSuc(consoleFacade.getAverageScoreByDeptPage(filterPageVO)); } /** * 各科室缺陷占比排行(分页) * * @param filterPageVO * @return */ @ApiOperation(value = "各科室缺陷占比排行(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/resultStatisticsByDeptPage") @SysLogger("resultStatisticsByDeptPage") public RespDTO> resultStatisticsByDeptPage(@RequestBody @Valid FilterPageVO filterPageVO) { return RespDTO.onSuc(consoleFacade.resultStatisticsByDeptPage(filterPageVO)); } /** * 各科室甲级病历占比排行(分页) * * @param filterPageVO * @return */ @ApiOperation(value = "各科室甲级病历占比排行(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/levelPercentGroupByDeptPage") @SysLogger("levelPercentGroupByDeptPage") public RespDTO> levelPercentGroupByDeptPage(@RequestBody @Valid FilterPageVO filterPageVO) { return RespDTO.onSuc(consoleFacade.levelPercentGroupByDeptPage(filterPageVO)); } /** * 条目缺陷占比(内页) * * @param filterPageVO * @return */ @ApiOperation(value = "条目缺陷占比(分页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
") @PostMapping("/entryGroupByEntryInnerPage") @SysLogger("entryGroupByEntryInnerPage") public RespDTO> entryGroupByEntryInnerPage(@RequestBody @Valid FilterPageVO filterPageVO) { return RespDTO.onSuc(consoleFacade.entryGroupByEntryInnerPage(filterPageVO)); } //endregion-----------------------分页接口结束------------------------------- /** * 各科室缺陷占比(组合) * * @param filterOrderVO * @return */ @ApiOperation(value = "各科室缺陷占比(组合)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "level: 病历等级
" + "name: 科室名称
" + "asc: 排序(升序)
" + "desc: 排序(降序)
") @PostMapping("/levelStatistics") @SysLogger("levelStatistics") public RespDTO> levelStatistics(@RequestBody @Valid FilterOrderVO filterOrderVO) { return RespDTO.onSuc(consoleFacade.levelStatistics(filterOrderVO)); } /** * 各科室缺陷占比(组合)-全院-根据内外科系统统计 * * @param filterOrderVO * @return */ @ApiOperation(value = "各科室缺陷占比(组合)-全院-根据内外科系统统计[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "level: 病历等级
" + "name: 科室名称
" + "deptClass: 科室分类:内科/外科,全部不传
" + "asc: 排序(升序)
" + "desc: 排序(降序)
") @PostMapping("/levelStatisticsByDeptClass") @SysLogger("levelStatisticsByDeptClass") public RespDTO> levelStatisticsByDeptClass(@RequestBody @Valid FilterOrderVO filterOrderVO) { return RespDTO.onSuc(consoleFacade.levelStatisticsByDeptClass(filterOrderVO)); } /** * 病案首页合格率占比 * * @param filterOrderVO * @return */ @ApiOperation(value = "病案首页合格率占比[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "level: 病历等级
" + "name: 科室名称
" + "asc: 排序(升序)
" + "desc: 排序(降序)
") @PostMapping("/homePageLevelStatistics") @SysLogger("homePageLevelStatistics") public RespDTO> homePageLevelStatistics(@RequestBody @Valid FilterOrderVO filterOrderVO) { return RespDTO.onSuc(consoleFacade.homePageLevelStatistics(filterOrderVO)); } /** * 病案首页合格率占比(首页) * * @param filterOrderVO * @return */ @ApiOperation(value = "病案首页合格率占比(首页)[by:zhaops]", notes = "type: 统计维度 1-本月,2-本年(必填)
" + "level: 病历等级
" + "name: 科室名称
" + "asc: 排序(升序)
" + "desc: 排序(降序)
") @PostMapping("/homePageLevelLimit") @SysLogger("homePageLevelLimit") public RespDTO> homePageLevelLimit(@RequestBody @Valid FilterOrderVO filterOrderVO) { return RespDTO.onSuc(consoleFacade.homePageLevelLimit(filterOrderVO)); } /** * 条目缺陷质控评分页(内页) * * @param qcResultShortPageVO * @return */ @ApiOperation(value = "条目缺陷质控评分页(内页)[by:zhaops]", notes = "behospitalCode: 病历号)
" + "patName: 病人姓名
" + "casesEntryName: 条目名称
" + "behDeptName:科室名称
" + "level: 病历等级
" + "startDate: 起始时间
" + "endDate: 截止时间
") @PostMapping("/qcResultShortPage") @SysLogger("qcResultShortPage") public RespDTO> qcResultShortPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) { return RespDTO.onSuc(consoleFacade.qcResultShortPage(qcResultShortPageVO)); } }