陈昶聿
8 小时以前 7ca6d7d7da579f9a32c7d253eccb0f4e1ba6b6ef
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -66,6 +66,8 @@
    @Autowired
    private RedisCache redisCache;
    @Autowired
    private PatArchivetagServiceImpl patArchivetagServiceImpl;
    /**
@@ -103,6 +105,16 @@
        patArchive.setCreateTime(DateUtils.getNowDate());
        patArchiveMapper.insertPatArchiveSingle(patArchive);
        return patArchive.getId().intValue();
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Boolean updateArchive(PatArchive patArchive) {
        int i = patArchiveMapper.updatePatArchive(patArchive);
        if (i != 1) {
            return false;
        }
        return true;
    }
    @Transactional(rollbackFor = Exception.class)
@@ -162,7 +174,7 @@
                //去redis中,查询是否有subid,有的话移除cache-exist
                if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                    for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                        log.error("需要移除的subId为:{}", serviceSubtask.getId().toString());
                        log.info("需要移除的subId为:{}", serviceSubtask.getId().toString());
                        serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
                        redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
@@ -269,6 +281,13 @@
            List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives3)) {
                patArchiveList.addAll(patArchives3);
            }
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
            //  查看住院  1  查看门诊  2   查看体检  3   查看出院 4
            patArchiveReq.setCry(1);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
        }
@@ -548,7 +567,12 @@
    @Override
    public List<PatArchive> patInfoByContion(PatArchiveReq patArchive) {
        List<PatArchive> patArchives = new ArrayList<>();
        if (ObjectUtils.isNotEmpty(patArchive.getPageNum()) && ObjectUtils.isNotEmpty(patArchive.getPageSize())) {
            patArchive.setPn((patArchive.getPageNum() - 1) * patArchive.getPageSize());
            patArchive.setPs(patArchive.getPageSize());
            patArchive.setPageNum(null);
            patArchive.setPageSize(null);
        }
        //根据条件获取患者信息
//        List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive);
        List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
@@ -578,6 +602,13 @@
            if (CollectionUtils.isNotEmpty(patArchives3)) {
                patArchiveList.addAll(patArchives3);
            }
        } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 4) {
            //  查看住院  1  查看门诊  2   查看体检  3   查看出院 4
            patArchive.setCry(1);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchive);
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
        }
        //根据患者ID进行分组
@@ -595,9 +626,11 @@
                }
                //将查出的tag,放到patArchive1里的TagList中
                PatArchivetag patArchivetag = new PatArchivetag();
                patArchivetag.setTagname(list.get(i).getTag());
                patArchivetag.setTagid(list.get(i).getTagid());
                stringList.add(patArchivetag);
                if (StringUtils.isNotEmpty(list.get(i).getTag()) && ObjectUtils.isNotEmpty(list.get(i).getTagid())) {
                    patArchivetag.setTagname(list.get(i).getTag());
                    patArchivetag.setTagid(list.get(i).getTagid());
                    stringList.add(patArchivetag);
                }
            }
            patArchive1.setTagList(stringList.stream().collect(Collectors.toList()));
            patArchives.add(patArchive1);
@@ -739,26 +772,91 @@
        List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
        if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
            //  查看住院  1  查看门诊  2   查看体检  3
            //  查看住院  1  查看门诊  2   查看体检  3    查看出院 4
            patArchiveReq.setCry(0);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
            // 查看住院  1  查看门诊  2   查看体检  3
            // 查看住院  1  查看门诊  2   查看体检  3 查看出院 4
            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthospQC(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives2)) {
                patArchiveList.addAll(patArchives2);
            }
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
            //  查看住院  1  查看门诊  2   查看体检  3
            //  查看住院  1  查看门诊  2   查看体检  3 查看出院 4
            List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysicalQC(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives3)) {
                patArchiveList.addAll(patArchives3);
            }
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
            //  查看住院  1  查看门诊  2   查看体检  3   查看出院 4
            patArchiveReq.setCry(1);
            log.info("--------查看出院的入参值为:{}", patArchiveReq);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhospQC(patArchiveReq);
            log.info("--------查看出院的返参值为:{}", patArchives1.size());
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
        }
//        //查询tagName
//        List<Long> patIds = patArchiveList.stream().map(PatArchiveOthreInfo::getId).distinct().collect(Collectors.toList());
//        Map<Long, String> patTagMap= patArchivetagMapper.getTagsByPatIds(patArchiveReq.getOrgid(),patIds);
//        //装配tagName
//        if(ObjectUtils.isNotEmpty(patTagMap)){
//            patArchiveList.forEach(patArchiveOthreInfo -> {
//                String tagName = patTagMap.get(patArchiveOthreInfo.getId());
//                if(StringUtils.isNotEmpty(tagName)){
//                    patArchiveOthreInfo.setTag(tagName);
//                }
//            });
//        }
        return patArchiveList;
    }
    /**
     * 获取患者信息(去重)
     *
     * @param patArchiveReq
     * @return
     */
//    @Override
    /**
     * 获取患者信息总数(去重)
     *
     * @param patArchiveReq
     * @return
     */
    @Override
    public Long getPatientInfoQCCount(PatArchiveReq patArchiveReq) {
        if (CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) || patArchiveReq.getLeavehospitaldistrictcodes().size() == 0) {
            patArchiveReq.setLeavehospitaldistrictcodes(null);
        }
        if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) {
            patArchiveReq.setLeaveldeptcodes(null);
        }
        Long count = 0L;
        if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
            //  查看住院  1  查看门诊  2   查看体检  3    查看出院 4
            patArchiveReq.setCry(0);
            count = patArchiveMapper.countPatArchiveInfoByInhospQC(patArchiveReq);
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
            // 查看住院  1  查看门诊  2   查看体检  3 查看出院 4
            count = patArchiveMapper.countPatArchiveInfoByOuthospQC(patArchiveReq);
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
            //  查看住院  1  查看门诊  2   查看体检  3 查看出院 4
            count = patArchiveMapper.countPatArchiveInfoByPhysicalQC(patArchiveReq);
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 4) {
            //  查看住院  1  查看门诊  2   查看体检  3   查看出院 4
            patArchiveReq.setCry(1);
            count = patArchiveMapper.countPatArchiveInfoByInhospQC(patArchiveReq);
        }
        return count;
    }
}