|
|
|
@ -10,6 +10,7 @@ import com.supervision.pojo.vo.*;
|
|
|
|
|
import com.supervision.vo.ask.*;
|
|
|
|
|
import com.supervision.service.*;
|
|
|
|
|
import com.supervision.util.UserUtil;
|
|
|
|
|
import io.swagger.models.auth.In;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
@ -48,9 +49,9 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
if (CollUtil.isNotEmpty(relationList)) {
|
|
|
|
|
Map<Integer, List<String>> relationIdMap = relationList.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType, Collectors.mapping(DiagnosisPrimaryRelation::getRelationId, Collectors.toList())));
|
|
|
|
|
diagnosisPrimaryVO.setAskIdList(relationIdMap.get(1));
|
|
|
|
|
diagnosisPrimaryVO.setPhysicalIdList(relationIdMap.get(2));
|
|
|
|
|
diagnosisPrimaryVO.setAncillaryIdList(relationIdMap.get(3));
|
|
|
|
|
diagnosisPrimaryVO.setAskIdList(Optional.ofNullable(relationIdMap.get(1)).orElseGet(ArrayList::new));
|
|
|
|
|
diagnosisPrimaryVO.setPhysicalIdList(Optional.ofNullable(relationIdMap.get(2)).orElseGet(ArrayList::new));
|
|
|
|
|
diagnosisPrimaryVO.setAncillaryIdList(Optional.ofNullable(relationIdMap.get(3)).orElseGet(ArrayList::new));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -63,9 +64,37 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO) {
|
|
|
|
|
DiagnosisPrimary diagnosisPrimary = diagnosisPrimaryService.getById(reqVO.getId());
|
|
|
|
|
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getPatientDiseaseInfo, reqVO.getPatientDiseaseInfo())
|
|
|
|
|
.eq(DiagnosisPrimary::getId, reqVO.getId()).update();
|
|
|
|
|
// 然后这里保存初步诊断依据的修改
|
|
|
|
|
// 首先查到已经存在的列表
|
|
|
|
|
List<DiagnosisPrimaryRelation> list = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getPrimaryId, reqVO.getId()).list();
|
|
|
|
|
Map<Integer, List<DiagnosisPrimaryRelation>> groupByTypeMap = list.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType));
|
|
|
|
|
// 保存问诊
|
|
|
|
|
List<DiagnosisPrimaryRelation> askExistList = groupByTypeMap.get(1);
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAskIdList())) {
|
|
|
|
|
List<String> existIdList = askExistList.stream().map(DiagnosisPrimaryRelation::getRelationId).collect(Collectors.toList());
|
|
|
|
|
List<String> newIdList = reqVO.getAskIdList().stream().filter(id ->!existIdList.contains(id)).collect(Collectors.toList());
|
|
|
|
|
saveDiagnosisPrimaryRelation(newIdList, diagnosisPrimary.getProcessId(), diagnosisPrimary.getId(), 1);
|
|
|
|
|
}
|
|
|
|
|
// 保存体格检查
|
|
|
|
|
List<DiagnosisPrimaryRelation> physicalIdExistList = groupByTypeMap.get(2);
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getPhysicalIdList())) {
|
|
|
|
|
List<String> existIdList = physicalIdExistList.stream().map(DiagnosisPrimaryRelation::getRelationId).collect(Collectors.toList());
|
|
|
|
|
List<String> newIdList = reqVO.getPhysicalIdList().stream().filter(id ->!existIdList.contains(id)).collect(Collectors.toList());
|
|
|
|
|
saveDiagnosisPrimaryRelation(newIdList, diagnosisPrimary.getProcessId(), diagnosisPrimary.getId(), 2);
|
|
|
|
|
}
|
|
|
|
|
// 保存辅助检查
|
|
|
|
|
List<DiagnosisPrimaryRelation> ancillaryExistList = groupByTypeMap.get(3);
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAncillaryIdList())) {
|
|
|
|
|
List<String> existIdList = ancillaryExistList.stream().map(DiagnosisPrimaryRelation::getRelationId).collect(Collectors.toList());
|
|
|
|
|
List<String> newIdList = reqVO.getAncillaryIdList().stream().filter(id ->!existIdList.contains(id)).collect(Collectors.toList());
|
|
|
|
|
saveDiagnosisPrimaryRelation(newIdList, diagnosisPrimary.getProcessId(), diagnosisPrimary.getId(), 3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -76,46 +105,24 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
diagnosisPrimaryService.save(diagnosisPrimary);
|
|
|
|
|
// 然后开始保存初步诊断关键的诊断
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAskIdList())) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> askRelationList = reqVO.getAskIdList().stream().map(e -> {
|
|
|
|
|
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
|
|
|
|
|
relation.setProcessId(diagnosisPrimary.getProcessId());
|
|
|
|
|
relation.setPrimaryId(diagnosisPrimary.getId());
|
|
|
|
|
relation.setType(1);
|
|
|
|
|
relation.setRelationId(e);
|
|
|
|
|
relation.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
return relation;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
diagnosisPrimaryRelationService.saveBatch(askRelationList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getPhysicalIdList())) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> physicalRelationList = reqVO.getPhysicalIdList().stream().map(e -> {
|
|
|
|
|
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
|
|
|
|
|
relation.setProcessId(diagnosisPrimary.getProcessId());
|
|
|
|
|
relation.setPrimaryId(diagnosisPrimary.getId());
|
|
|
|
|
relation.setType(2);
|
|
|
|
|
relation.setRelationId(e);
|
|
|
|
|
relation.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
return relation;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
diagnosisPrimaryRelationService.saveBatch(physicalRelationList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
saveDiagnosisPrimaryRelation(reqVO.getAskIdList(), diagnosisPrimary.getProcessId(), diagnosisPrimary.getId(), 1);
|
|
|
|
|
saveDiagnosisPrimaryRelation(reqVO.getPhysicalIdList(), diagnosisPrimary.getProcessId(), diagnosisPrimary.getId(), 2);
|
|
|
|
|
saveDiagnosisPrimaryRelation(reqVO.getAncillaryIdList(), diagnosisPrimary.getProcessId(), diagnosisPrimary.getId(), 3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(reqVO.getAncillaryIdList())) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> ancillaryRelationList = reqVO.getAncillaryIdList().stream().map(e -> {
|
|
|
|
|
private void saveDiagnosisPrimaryRelation(List<String> itemList, String processId, String primaryId, Integer type) {
|
|
|
|
|
if (CollUtil.isNotEmpty(itemList)) {
|
|
|
|
|
List<DiagnosisPrimaryRelation> ancillaryRelationList = itemList.stream().map(e -> {
|
|
|
|
|
DiagnosisPrimaryRelation relation = new DiagnosisPrimaryRelation();
|
|
|
|
|
relation.setProcessId(diagnosisPrimary.getProcessId());
|
|
|
|
|
relation.setPrimaryId(diagnosisPrimary.getId());
|
|
|
|
|
relation.setType(3);
|
|
|
|
|
relation.setProcessId(processId);
|
|
|
|
|
relation.setPrimaryId(primaryId);
|
|
|
|
|
relation.setType(type);
|
|
|
|
|
relation.setRelationId(e);
|
|
|
|
|
relation.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
return relation;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
diagnosisPrimaryRelationService.saveBatch(ancillaryRelationList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|