|
|
|
@ -1,17 +1,18 @@
|
|
|
|
|
package com.supervision.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import com.supervision.exception.BusinessException;
|
|
|
|
|
import com.supervision.model.ConfigAncillaryItem;
|
|
|
|
|
import com.supervision.model.DiagnosisAncillaryRecord;
|
|
|
|
|
import com.supervision.model.DiseaseAncillary;
|
|
|
|
|
import com.supervision.model.*;
|
|
|
|
|
import com.supervision.model.Process;
|
|
|
|
|
import com.supervision.pojo.vo.AskAncillaryResultReqVO;
|
|
|
|
|
import com.supervision.service.*;
|
|
|
|
|
import com.supervision.util.UserUtil;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.apache.commons.collections4.SetUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@ -23,15 +24,21 @@ public class AskAncillaryServiceImpl implements AskAncillaryService {
|
|
|
|
|
|
|
|
|
|
private final ConfigAncillaryItemService ancillaryItemService;
|
|
|
|
|
|
|
|
|
|
private final ConfigPhysicalLocationService configPhysicalLocationService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, List<ConfigAncillaryItem>> queryAncillaryItemList() {
|
|
|
|
|
List<ConfigAncillaryItem> list = ancillaryItemService.lambdaQuery().list();
|
|
|
|
|
return list.stream().collect(Collectors.groupingBy(ConfigAncillaryItem::getType));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public DiagnosisAncillaryRecord queryAskAncillaryResult(AskAncillaryResultReqVO reqVO) {
|
|
|
|
|
// 首先根据process_id查新到流程ID
|
|
|
|
|
Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID"));
|
|
|
|
|
// 找到对应的项目
|
|
|
|
|
ConfigAncillaryItem ancillaryItem = ancillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getItemName, reqVO.getItemName()).last("limit 1")
|
|
|
|
|
.oneOpt().orElseThrow(() -> new BusinessException("未找到对应的辅助工具"));
|
|
|
|
|
// 找到对应的项目的检查结果
|
|
|
|
|
|
|
|
|
|
DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getPatientId, process.getPatientId()).eq(DiseaseAncillary::getItemId, ancillaryItem.getId())
|
|
|
|
|
DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getPatientId, process.getPatientId()).eq(DiseaseAncillary::getItemId, reqVO.getItemId())
|
|
|
|
|
.oneOpt().orElseGet(() -> {
|
|
|
|
|
DiseaseAncillary get = new DiseaseAncillary();
|
|
|
|
|
get.setResult("无相关资讯");
|
|
|
|
@ -39,7 +46,7 @@ public class AskAncillaryServiceImpl implements AskAncillaryService {
|
|
|
|
|
});
|
|
|
|
|
DiagnosisAncillaryRecord record = new DiagnosisAncillaryRecord();
|
|
|
|
|
record.setProcessId(process.getId());
|
|
|
|
|
record.setItemId(ancillaryItem.getId());
|
|
|
|
|
record.setItemId(reqVO.getItemId());
|
|
|
|
|
record.setValue(diseaseAncillary.getResult());
|
|
|
|
|
record.setCreateUserId(UserUtil.getUser().getId());
|
|
|
|
|
record.setUpdateUserId(UserUtil.getUser().getId());
|
|
|
|
|