陈昶聿
7 小时以前 6e3d0a2097a4d841e941a84ec54780a67eb60ba1
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -98,14 +98,18 @@
     */
    @Override
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
        if (patMedInhosp.getCry() == 0) {
        if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 0) {
            patMedInhosp.setDeptcodeList(patMedInhosp.getLeaveldeptcodes());
            patMedInhosp.setHospitaldistrictcodeList(patMedInhosp.getLeavehospitaldistrictcodes());
            patMedInhosp.setLeaveldeptcodes(null);
            patMedInhosp.setLeavehospitaldistrictcodes(null);
            patMedInhosp.setInhospstate("0");
        } else if (patMedInhosp.getCry() == 1) {
        } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 1) {
            patMedInhosp.setInhospstate("1");
        } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 2) {
            patMedInhosp.setInhospstate("2");
        } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 3) {
            patMedInhosp.setInhospstate("3");
        }
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
@@ -349,7 +353,7 @@
        serviceTaskVo.setAppltype("5");
        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(serviceTaskVo);
        if (CollectionUtils.isEmpty(serviceTasks)) {
        if (CollectionUtils.isNotEmpty(serviceTasks)) {
            for (ServiceTask serviceTask : serviceTasks) {
                if(!ObjectUtils.isEmpty(serviceTask.getTaskid())){
                    ServiceTaskSchedule serviceTaskSchedule = new ServiceTaskSchedule();
@@ -394,7 +398,8 @@
                            patMedInhospVo.setScheduleCheckFlag("0");
                            patMedInhospVo.setInhospstate("1");
                            patMedInhospVo.setFuflag("1");
                            patMedInhospVo.setDeptcodeList(deptCodeList);
//                            patMedInhospVo.setDeptcodeList(deptCodeList);
                            patMedInhospVo.setLeaveldeptcodes(deptCodeList);
                            patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
                            patMedInhospVo.setIcd10codeList(icd10CodeList);
                            List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
@@ -408,9 +413,10 @@
                                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
                                if (Objects.isNull(patArchive)) {
                                    break;
                                    continue;
                                }
                                //封装serviceSubtask
                                ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
                                List<Map<String, Object>> preachformList = new ArrayList<>();
                                if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
@@ -418,28 +424,31 @@
                                        ObjectMapper objectMapper = new ObjectMapper();
                                        preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
                                    }catch (Exception e){
                                        break;
                                        log.error("任务组preachformDesc解析失败,taskid={},inhospid={}", serviceTask.getTaskid(), patMedInhosp.getInhospid());
                                    }
                                }
                                scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
                                //置首轮纳入标记,避免下次扫描重复生成(后续轮次由 rollTaskGroupCycle 负责)
                                PatMedInhosp flagUpd = new PatMedInhosp();
                                flagUpd.setInhospid(patMedInhosp.getInhospid());
                                flagUpd.setScheduleCheckFlag("1");
                                patMedInhospMapper.updatePatMedInhosp(flagUpd);
                            }
                        }else {
                            //任务组 - 手术随访
                            if(CollectionUtils.isNotEmpty(opLevelCodeList)){
                                //目前仅限单一手术等级
                                String opLevelCode = opLevelCodeList.get(0);
                                PatMedOperationItem pmoi = new PatMedOperationItem();
                                //获取需要出院疾病随访,未处理的数据
                                pmoi.setOpercheckFlag("0");
                                pmoi.setMainFlag("1");
                                pmoi.setOplevelcode(opLevelCode);
                                pmoi.setDeptCodes(deptCodeList);
                                pmoi.setWardCodes(wardCodeList);
                                pmoi.setOpLevelCodes(opLevelCodeList);
                                List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
                                for(PatMedOperationItem patMedOperationItem : patMedOperationItems){
                                    PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
                                    if (Objects.isNull(patArchive)) {
                                        break;
                                        continue;
                                    }
                                    PatMedInhosp patMedInhospVo = new PatMedInhosp();
                                    patMedInhospVo.setPatid((patMedOperationItem.getPatid()));
@@ -460,10 +469,15 @@
                                                ObjectMapper objectMapper = new ObjectMapper();
                                                preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
                                            }catch (Exception e){
                                                break;
                                                log.error("任务组(手术)preachformDesc解析失败,taskid={}", serviceTask.getTaskid());
                                            }
                                        }
                                        scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
                                        //置首轮纳入标记,避免重复生成
                                        PatMedInhosp flagUpd = new PatMedInhosp();
                                        flagUpd.setInhospid(patMedInhospList.get(0).getInhospid());
                                        flagUpd.setScheduleCheckFlag("1");
                                        patMedInhospMapper.updatePatMedInhosp(flagUpd);
                                    }
                                }
                            }