You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
virtual-patient/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java

68 lines
2.8 KiB
Java

package com.supervision.service.impl;
import com.supervision.exception.BusinessException;
2 years ago
import com.supervision.model.*;
import com.supervision.model.Process;
2 years ago
import com.supervision.vo.ask.AskAncillaryHistoryResVO;
import com.supervision.pojo.vo.AskAncillaryResultReqVO;
2 years ago
import com.supervision.pojo.vo.ConfigAncillaryItemResVO;
import com.supervision.service.*;
import com.supervision.util.UserUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
2 years ago
import java.util.*;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class AskAncillaryServiceImpl implements AskAncillaryService {
private final ProcessService processService;
private final DiseaseAncillaryService diseaseAncillaryService;
private final ConfigAncillaryItemService ancillaryItemService;
2 years ago
private final DiagnosisAncillaryRecordService diagnosisAncillaryRecordService;
2 years ago
@Override
2 years ago
public List<ConfigAncillaryItemResVO> queryAncillaryItemList() {
2 years ago
List<ConfigAncillaryItem> list = ancillaryItemService.lambdaQuery().list();
2 years ago
return list.stream().collect(Collectors.groupingBy(ConfigAncillaryItem::getType)).entrySet().stream().map(e -> {
ConfigAncillaryItemResVO item = new ConfigAncillaryItemResVO();
item.setItemName(e.getKey());
item.setItemList(e.getValue());
return item;
}).collect(Collectors.toList());
2 years ago
}
@Override
public DiagnosisAncillaryRecord execAskAncillaryResult(AskAncillaryResultReqVO reqVO) {
// 首先根据process_id查新到流程ID
Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID"));
2 years ago
// 找到对应的项目的检查结果
DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getPatientId, process.getPatientId()).eq(DiseaseAncillary::getItemId, reqVO.getItemId())
.oneOpt().orElseGet(() -> {
DiseaseAncillary get = new DiseaseAncillary();
get.setResult("无相关资讯");
return get;
});
DiagnosisAncillaryRecord record = new DiagnosisAncillaryRecord();
record.setProcessId(process.getId());
2 years ago
record.setAncillaryId(diseaseAncillary.getId());
2 years ago
record.setItemId(reqVO.getItemId());
record.setPrimaryId(reqVO.getPrimaryId());
record.setResult(diseaseAncillary.getResult());
record.setCreateUserId(UserUtil.getUser().getId());
record.setUpdateUserId(UserUtil.getUser().getId());
return record;
}
2 years ago
@Override
public List<AskAncillaryHistoryResVO> queryAskAncillaryHistory(String processId) {
return diagnosisAncillaryRecordService.queryAncillaryRecord(processId);
}
}