123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package thyyxxk.webserver.service.zhuyuanyisheng.emr;
- import com.alibaba.fastjson.JSON;
- import com.baomidou.dynamic.datasource.annotation.DS;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import lombok.extern.slf4j.Slf4j;
- import org.jetbrains.annotations.NotNull;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import thyyxxk.webserver.config.auth.PassToken;
- import thyyxxk.webserver.config.exception.BizException;
- import thyyxxk.webserver.config.exception.ExceptionEnum;
- import thyyxxk.webserver.dao.his.zhuyuanyisheng.emr.EmrControlDao;
- import thyyxxk.webserver.entity.ResultVo;
- import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrLimitUnlock;
- import thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule.*;
- import thyyxxk.webserver.utils.*;
- import javax.servlet.http.HttpServletResponse;
- import java.util.*;
- /**
- * @author Administrator
- */
- @Service
- @Slf4j
- public class EmrControlRuleSever {
- private final EmrControlDao dao;
- public EmrControlRuleSever(EmrControlDao dao) {
- this.dao = dao;
- }
- @Transactional(rollbackFor = Exception.class)
- public ResultVo<String> requestToUnlockMedicalRecords(EmrLimitUnlock param) {
- param.setApplicant(TokenUtil.getInstance().getTokenUserId());
- param.setApplicationTime(new Date());
- log.info("数据:{}", JSON.toJSONString(param));
- // 把原来地申请取消
- int count = dao.updateUnlockOld(param);
- String str = "申请成功,等待医务部审核。";
- if (count > 0) {
- str = "原申请已顶替,申请成功,等待医务部审核。";
- }
- int insert = dao.applicationUnlock(param);
- if (insert == 0) {
- throw new BizException(ExceptionEnum.ERROR_MESSAGE, "申请错误。");
- }
- return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, str);
- }
- public ResultVo<IPage<EmrLimitUnlock>> getApplicationData(SelectUnlockParam param) {
- IPage<EmrLimitUnlock> iPage = new Page<>(param.getCurrentPage(), param.getPageSize(), param.getTotal() == 0);
- QueryWrapper<EmrLimitUnlock> qw = getEmrLimitUnlockQueryWrapper(param);
- iPage.setTotal(param.getTotal());
- return ResultVoUtil.success(dao.selectUnlock(iPage, qw));
- }
- @NotNull
- private static QueryWrapper<EmrLimitUnlock> getEmrLimitUnlockQueryWrapper(SelectUnlockParam param) {
- QueryWrapper<EmrLimitUnlock> qw = new QueryWrapper<>();
- if (ListUtil.notBlank(param.getDateRange())) {
- qw.ge("application_time", param.getDateRange().get(0));
- qw.lt("application_time", param.getDateRange().get(1));
- }
- if (param.getFlag() > -1) {
- qw.eq("state", param.getFlag());
- }
- return qw;
- }
- public void exportExcelUnlock(HttpServletResponse response, SelectUnlockParam param) {
- IPage<EmrLimitUnlock> iPage = new Page<>(param.getCurrentPage(), -1, false);
- QueryWrapper<EmrLimitUnlock> qw = getEmrLimitUnlockQueryWrapper(param);
- iPage = dao.selectUnlock(iPage, qw);
- if (ListUtil.isBlank(iPage.getRecords())) {
- return;
- }
- String[] title = {"住院号", "住院次数", "申请人", "申请时间", "申请权限", "申请编辑时间", "申请备注", "状态", "审核人", "审核时间", "审核备注"};
- String[][] content = new String[iPage.getRecords().size()][];
- for (int i = 0; i < iPage.getRecords().size(); i++) {
- content[i] = new String[title.length];
- EmrLimitUnlock index = iPage.getRecords().get(i);
- content[i][0] = index.getPatNo();
- content[i][1] = String.valueOf(index.getTimes());
- content[i][2] = index.getApplicantName();
- content[i][3] = DateUtil.formatDatetime(index.getApplicationTime());
- content[i][4] = index.getUnlockJson();
- content[i][5] = DateUtil.formatDatetime(index.getEffectiveTime());
- content[i][6] = index.getRequestRemarks();
- content[i][7] = index.getStateName();
- content[i][8] = index.getApproveName();
- content[i][9] = DateUtil.formatDatetime(index.getReviewTime());
- content[i][10] = index.getReviewNotes();
- }
- ExcelUtil.exportExcel(response, title, content);
- log.info("数据:{}", JSON.toJSONString(iPage));
- }
- public ResultVo<String> reviewMedicalRecordsToUnlock(EmrLimitUnlock param) {
- EmrLimitUnlock emrLimitUnlock = dao.selectUnlockById(param.getId());
- if (emrLimitUnlock.getState().equals(3)) {
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该数据已经被申请人删除了,无法审核。");
- }
- if (emrLimitUnlock.getState().equals(param.getState())) {
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请勿重复操作。");
- }
- param.setApprove(TokenUtil.getInstance().getTokenUserId());
- dao.updateUnlockByIdNew(param);
- log.info("电子病历质控审核:{}", JSON.toJSONString(param));
- return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
- }
- public ResultVo<EmrLimitUnlock> getMyUnlockByPatNo(String patNo, Integer times) {
- return ResultVoUtil.success(dao.selectMyUnlockReqByPatNo(patNo, times, TokenUtil.getInstance().getTokenUserId()));
- }
- }
|