package com.diagbot.web; import com.baomidou.mybatisplus.core.metadata.IPage; import com.diagbot.annotation.SysLogger; import com.diagbot.dto.AnalyzeDTO; import com.diagbot.dto.AnalyzeRunDTO; import com.diagbot.dto.BehospitalInfoDTO; import com.diagbot.dto.RespDTO; import com.diagbot.facade.BehospitalInfoFacade; import com.diagbot.facade.QcresultInfoFacade; import com.diagbot.vo.AnalyzeApiVO; import com.diagbot.vo.AnalyzeRunVO; import com.diagbot.vo.AnalyzeVO; import com.diagbot.vo.BehospitalPageVO; import com.diagbot.vo.ExportQcresultVO; import com.diagbot.vo.GetDetailVO; import com.diagbot.vo.QcresultVO; import com.diagbot.vo.TaskVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; 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.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Map; /** *

* 住院病历信息 前端控制器 *

* * @author zhoutg * @since 2020-04-13 */ @RestController @RequestMapping("/qc/behospitalInfo") @Api(value = "病历API", tags = { "病历API" }) @SuppressWarnings("unchecked") public class BehospitalInfoController { @Autowired BehospitalInfoFacade behospitalInfoFacade; @Autowired private QcresultInfoFacade qcresultInfoFacade; @ApiOperation(value = "病历分页列表[by:zhoutg]", notes = "behospitalCode:病人住院序号
" + "name:病人姓名
" + "fileCode:档案号
" + "statisticsType: 统计维度 1-本月,2-本年
" + "behosDateStart:入院时间开始时间
" + "behosDateEnd:入院时间结束时间
" + "leaveHosDateStart:出院时间开始时间
" + "leaveHosDateEnd:出院时间结束时间
" + "doctorName:医生姓名
" + "doctorCode:医生工号
" + "level:等级
" + "deptId:科室id
") @PostMapping("/page") @SysLogger("page") public RespDTO> page(@RequestBody BehospitalPageVO behospitalPageVO) { IPage data = behospitalInfoFacade.pageFac(behospitalPageVO); return RespDTO.onSuc(data); } @ApiOperation(value = "根据病历id获取详情[by:zhoutg]", notes = "") @PostMapping("/getByBehospitalCode") @SysLogger("getByBehospitalCode") public RespDTO> getByBehospitalCode(@RequestBody GetDetailVO getDetailVO) { Map data = behospitalInfoFacade.getByBehospitalCode(getDetailVO); return RespDTO.onSuc(data); } @ApiOperation(value = "评分[by:zhoutg]", notes = "") @PostMapping("/analyze") @SysLogger("analyze") @Transactional public RespDTO analyze(@RequestBody AnalyzeVO analyzeVO) { analyzeVO.setUseCrfCache(true); return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO)); } @ApiOperation(value = "评分-运行质控[by:zhoutg]", notes = " // 病历id\n" + " String behospitalCode;\n" + " // 医院ID\n" + " Long hospitalId;\n" + " // 模块id\n" + " Long modeId;\n" + " // 归档字段\n" + " String isPlacefile;") @PostMapping("/analyze_run") @SysLogger("analyze_run") @Transactional public RespDTO analyzeRun(@Valid @RequestBody AnalyzeRunVO analyzeRunVO) { return RespDTO.onSuc(behospitalInfoFacade.analyzeRun(analyzeRunVO)); } @ApiOperation(value = "定时任务评分[by:zhoutg]", notes = "") @PostMapping("/analyze_rpc") @SysLogger("analyze_rpc") @Transactional @ApiIgnore public RespDTO analyze_rpc(@RequestBody AnalyzeVO analyzeVO) { return RespDTO.onSuc(behospitalInfoFacade.analyze(analyzeVO)); } @ApiOperation(value = "评分-对外api接口[by:zhoutg]", notes = "") @PostMapping("/analyze_api") @SysLogger("analyze_api") @Transactional // @ApiIgnore public RespDTO> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) { return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO)); } @ApiOperation(value = "新增质控条目[by:zhoutg]", notes = "") @PostMapping("/addCase") @SysLogger("addCase") @Transactional public RespDTO addCase(@RequestBody QcresultVO qcresultVO) { qcresultVO.setType(1); return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO)); } @ApiOperation(value = "删除质控条目[by:zhoutg]", notes = "behospitalCode:病历号,必填
" + "id:明细id,必填
") @PostMapping("/delCase") @SysLogger("delCase") @Transactional public RespDTO delCase(@RequestBody QcresultVO qcresultVO) { qcresultVO.setType(2); return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO)); } @ApiOperation(value = "修改质控条目[by:zhoutg]", notes = "") @PostMapping("/updCase") @SysLogger("updCase") @Transactional public RespDTO updCase(@RequestBody QcresultVO qcresultVO) { qcresultVO.setType(3); return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO)); } @ApiOperation(value = "对病历进行评分【****************批量评分*************】[by:zhoutg]", notes = "参数内容清空:【所有医院】【未评分】病历数据
" + "
" + "hosptialIdList:医院列表id,1:长兴,3:台州,2:邵逸夫
" + "useCrfCache: 是否使用crf缓存(true:使用crf缓存,false:不使用)
" + "【个性化需求】——默认即可
" + "filterFlag: 筛选病历数据:0:未评分的病历【推荐使用】;1:全部病历【谨慎使用】
" + "individuation:【1:近3天不含当天的病历强制评分更新】
" + "type:【1:出院时间比当前时间早3天前的病历(例如:长兴病历)】)
" + "behospitalCodeList:指定病历号
") @PostMapping("/execule") @SysLogger("execule") public RespDTO execule(@RequestBody TaskVO taskVO) { behospitalInfoFacade.execute(taskVO, ""); return RespDTO.onSuc(true); } @ApiOperation(value = "病历分页列表(科室)[by:zhoutg]", notes = "name:姓名
" + "fileCode:档案号
" + "statisticsType: 统计维度 1-本月,2-本年
" + "behosDateStart:入院时间开始时间
" + "behosDateEnd:入院时间结束时间
" + "leaveHosDateStart:出院时间开始时间
" + "leaveHosDateEnd:出院时间结束时间
") @PostMapping("/page_dept") @SysLogger("page_dept") public RespDTO> pageDept(@RequestBody BehospitalPageVO behospitalPageVO) { IPage data = behospitalInfoFacade.pageDept(behospitalPageVO); return RespDTO.onSuc(data); } @ApiOperation(value = "病历分页列表(个人)[by:zhoutg]", notes = "name:姓名
" + "fileCode:档案号
" + "statisticsType: 统计维度 1-本月,2-本年
" + "behosDateStart:入院时间开始时间
" + "behosDateEnd:入院时间结束时间
" + "leaveHosDateStart:出院时间开始时间
" + "leaveHosDateEnd:出院时间结束时间
") @PostMapping("/page_person") @SysLogger("page_person") public RespDTO> pagePerson(@RequestBody BehospitalPageVO behospitalPageVO) { IPage data = behospitalInfoFacade.pagePerson(behospitalPageVO); return RespDTO.onSuc(data); } @ApiOperation(value = "病历分页列表(个人)[by:zhoutg]", notes = "behospitalCode:病人住院序号
" + "name:病人姓名
" + "fileCode:档案号
" + "statisticsType: 统计维度 1-本月,2-本年
" + "behosDateStart:入院时间开始时间
" + "behosDateEnd:入院时间结束时间
" + "leaveHosDateStart:出院时间开始时间
" + "leaveHosDateEnd:出院时间结束时间
" + "doctorName:医生姓名
" + "doctorCode:医生工号
" + "level:等级
" + "deptId:科室id
") @PostMapping("/page_group") @SysLogger("page_group") public RespDTO> pageGroup(@RequestBody BehospitalPageVO behospitalPageVO) { IPage data = behospitalInfoFacade.pageGroup(behospitalPageVO); return RespDTO.onSuc(data); } @ApiOperation(value = "导出病历例子[by:gaodm]", notes = "") @PostMapping("/exportExcel") @SysLogger("exportExcel") public void exportExcel(HttpServletResponse response) { behospitalInfoFacade.exportExcelFac(response); } @ApiOperation(value = "质控结果导出[by:zhaops]", notes = "") @PostMapping("/exportQcresult") @SysLogger("exportQcresult") public void exportQcresult(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) { behospitalInfoFacade.exportQcresult(response, exportQcresultVO); } @ApiOperation(value = "【科室】质控结果导出[by:zhaops]", notes = "") @PostMapping("/exportQcresultByDept") @SysLogger("exportQcresultByDept") public void exportQcresultByDept(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) { behospitalInfoFacade.exportQcresultByDept(response, exportQcresultVO); } @ApiOperation(value = "【医疗组】质控结果导出[by:zhoutg]", notes = "") @PostMapping("/exportQcresultByGroup") @SysLogger("exportQcresultByGroup") public void exportQcresultByGroup(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) { behospitalInfoFacade.exportQcresultByGroup(response, exportQcresultVO); } }