|
|
@ -1,9 +1,13 @@
|
|
|
|
package com.supervision.service.impl;
|
|
|
|
package com.supervision.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.supervision.exception.BusinessException;
|
|
|
|
import com.supervision.exception.BusinessException;
|
|
|
|
import com.supervision.model.*;
|
|
|
|
import com.supervision.model.*;
|
|
|
|
import com.supervision.model.Process;
|
|
|
|
import com.supervision.model.Process;
|
|
|
|
import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO;
|
|
|
|
import com.supervision.pojo.vo.DiagnosticBasisForPrimaryReqVO;
|
|
|
|
|
|
|
|
import com.supervision.pojo.vo.SaveDiagnosisPrimaryReqVO;
|
|
|
|
import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO;
|
|
|
|
import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO;
|
|
|
|
import com.supervision.service.*;
|
|
|
|
import com.supervision.service.*;
|
|
|
|
import com.supervision.util.UserUtil;
|
|
|
|
import com.supervision.util.UserUtil;
|
|
|
@ -13,7 +17,8 @@ import lombok.RequiredArgsConstructor;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@RequiredArgsConstructor
|
|
|
@ -31,6 +36,8 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
|
|
|
|
|
|
|
private final ProcessService processService;
|
|
|
|
private final ProcessService processService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final DiagnosisPrimaryRelationService diagnosisPrimaryRelationService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
|
|
|
|
public List<DiagnosisPrimaryVO> queryAskPrimaryList(String processId) {
|
|
|
|
return diagnosisPrimaryService.queryAskPrimaryList(processId);
|
|
|
|
return diagnosisPrimaryService.queryAskPrimaryList(processId);
|
|
|
@ -49,10 +56,15 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public void savePrimary(DiagnosisPrimary reqVO) {
|
|
|
|
public void savePrimary(SaveDiagnosisPrimaryReqVO reqVO) {
|
|
|
|
reqVO.setExcludeFlag(null);
|
|
|
|
DiagnosisPrimary diagnosisPrimary = BeanUtil.toBean(reqVO, DiagnosisPrimary.class);
|
|
|
|
reqVO.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
diagnosisPrimary.setExcludeFlag(null);
|
|
|
|
diagnosisPrimaryService.save(reqVO);
|
|
|
|
diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
|
|
|
diagnosisPrimaryService.save(diagnosisPrimary);
|
|
|
|
|
|
|
|
// 然后开始保存初步诊断关键的诊断
|
|
|
|
|
|
|
|
List<DiagnosisPrimaryRelation> primaryRecordList = reqVO.getPrimaryRecordList();
|
|
|
|
|
|
|
|
primaryRecordList.forEach(e -> e.setPrimaryId(diagnosisPrimary.getId()));
|
|
|
|
|
|
|
|
diagnosisPrimaryRelationService.saveBatch(primaryRecordList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -79,12 +91,37 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 确诊页面,初步诊断填写初步诊断依据
|
|
|
|
* 确诊页面,初步诊断填写初步诊断依据
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param processId 流程ID
|
|
|
|
* @param processId 流程ID
|
|
|
|
* @return 结果
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId) {
|
|
|
|
public List<DiagnosticBasisForPrimaryResVO> queryDiagnosticBasisListForPrimary(String processId) {
|
|
|
|
return diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId);
|
|
|
|
List<DiagnosticBasisForPrimaryResVO> resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId);
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(resList)) {
|
|
|
|
|
|
|
|
return resList;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 找到process对应的所有的初步诊断
|
|
|
|
|
|
|
|
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId);
|
|
|
|
|
|
|
|
Map<String, String> diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName));
|
|
|
|
|
|
|
|
// 首先根据诊断记录,找到对应的关联关系
|
|
|
|
|
|
|
|
Set<String> relationIdSet = resList.stream().map(DiagnosticBasisForPrimaryResVO::getId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
List<DiagnosisPrimaryRelation> relationList = diagnosisPrimaryRelationService.lambdaQuery().in(DiagnosisPrimaryRelation::getRelationId, relationIdSet).list();
|
|
|
|
|
|
|
|
// 根据relationId进行分组
|
|
|
|
|
|
|
|
Map<String, List<DiagnosisPrimaryRelation>> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId));
|
|
|
|
|
|
|
|
for (DiagnosticBasisForPrimaryResVO node : resList) {
|
|
|
|
|
|
|
|
List<DiagnosisPrimaryRelation> relationPrimaryList = relationMap.get(node.getId());
|
|
|
|
|
|
|
|
Set<String> primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(primarySet)) {
|
|
|
|
|
|
|
|
List<String> diseaseNameList = new ArrayList<>();
|
|
|
|
|
|
|
|
primarySet.forEach(e -> diseaseNameList.add(diseaseNameMap.get(e)));
|
|
|
|
|
|
|
|
node.setPrimaryIdList(new ArrayList<>(primarySet));
|
|
|
|
|
|
|
|
node.setPrimaryName(StrUtil.join(";", diseaseNameList));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return resList;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|