package thyyxxk.webserver.service.zhuyuanyisheng;
import cn.hutool.extra.spring.SpringUtil;
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.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import thyyxxk.webserver.config.exception.BizException;
import thyyxxk.webserver.config.exception.ExceptionEnum;
import thyyxxk.webserver.constants.Capacity;
import thyyxxk.webserver.dao.his.zhuyuanyisheng.JianYanJianChaDao;
import thyyxxk.webserver.dao.his.zhuyuanyisheng.YiZhuLuRuDao;
import thyyxxk.webserver.entity.ResultVo;
import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
import thyyxxk.webserver.entity.login.UserInfo;
import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.*;
import thyyxxk.webserver.entity.zhuyuanyisheng.query.ChaXunJianChaHeJianYan;
import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp;
import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.XinZhenYiZhu;
import thyyxxk.webserver.service.PublicServer;
import thyyxxk.webserver.service.redislike.RedisLikeService;
import thyyxxk.webserver.utils.*;
import java.lang.reflect.Field;
import java.nio.channels.NonWritableChannelException;
import java.util.*;
import java.util.stream.Collectors;
/**
*
* 描述: 住院医生,检查申请
*
*
* @author xc
* @date 2022-02-10 15:37
*/
@Service
@Slf4j
public class JianYanJianChaShenQingService {
private final JianYanJianChaDao dao;
private final PublicServer publicServer;
private final YiZhuLuRuDao yiZhuLuRuDao;
private final RedisLikeService realtimeService;
private JianYanJianChaShenQingService getThis() {
return SpringUtil.getBean(this.getClass());
}
public JianYanJianChaShenQingService(JianYanJianChaDao dao, PublicServer publicServer, YiZhuLuRuDao yiZhuLuRuDao, RedisLikeService realtimeService) {
this.dao = dao;
this.publicServer = publicServer;
this.yiZhuLuRuDao = yiZhuLuRuDao;
this.realtimeService = realtimeService;
}
/*-------------------------------------------------------------- 下面是检查的逻辑 -----------------------------------------------------------------------------------------------------*/
/**
* 获取检验检查的名字
*
* @param name 姓名
* @param patNo 住院号
* @param times 住院次数
* @param bedNo 床位
* @param reqType 2-检验 3-检查
* @return 返回数据
*/
public ResultVo>> huoQuJianYanJianChaMing(String name, String patNo, Integer times, String bedNo, String reqType) {
return ResultVoUtil.success(dao.huoQuJianJianChaMing(patNo, times, bedNo, StringUtil.isContainChinese(name), reqType));
}
/**
* 获取检查申请
*
* @param param 检查申请
* @return 返回数据
*/
public ResultVo> huoQuJianChaShenQing(ChaXunJianChaHeJianYan param) {
QueryWrapper> qw = new QueryWrapper<>();
qw.eq("inpatient_no", param.getPatNo());
qw.eq("admiss_times", param.getTimes());
qw.eq("req_type", "3");
if (StringUtil.notBlank(param.getOrderName())) {
qw.like("order_name", param.getOrderName());
}
if (StringUtil.notBlank(param.getStartTime())) {
qw.ge("start_time", param.getStartTime())
.le("start_time", param.getEndTime());
}
qw.orderByDesc("req_date");
List list = dao.huoQuJianChaShenQingV2(qw);
return ResultVoUtil.success(list);
}
public ResultVo