|
|
|
@ -1,12 +1,17 @@
|
|
|
|
|
package com.supervision.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import cn.hutool.core.lang.Opt;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.lock.annotation.Lock4j;
|
|
|
|
|
import com.supervision.model.DiagnosisPrimary;
|
|
|
|
|
import com.supervision.service.DiagnoseHallService;
|
|
|
|
|
import com.supervision.service.DiagnosisPrimaryService;
|
|
|
|
|
import com.supervision.service.MedicalRecService;
|
|
|
|
|
import com.supervision.service.ProcessService;
|
|
|
|
|
import com.supervision.vo.ask.DiagnosisPrimaryVO;
|
|
|
|
|
import com.supervision.vo.manage.MedicalRecPageResVO;
|
|
|
|
|
import com.supervision.vo.result.DiagnoseProcessReqVo;
|
|
|
|
|
import com.supervision.vo.result.DiagnoseProcessResVo;
|
|
|
|
@ -15,6 +20,11 @@ import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@ -27,6 +37,8 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
|
|
|
|
|
|
|
|
|
|
private final MedicalRecService medicalRecService;
|
|
|
|
|
|
|
|
|
|
private final DiagnosisPrimaryService diagnosisPrimaryService;
|
|
|
|
|
|
|
|
|
|
@Lock4j(name = "achieveDiagnoseResource")
|
|
|
|
|
@Override
|
|
|
|
|
public boolean achieveDiagnoseResource() {
|
|
|
|
@ -39,7 +51,26 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
|
|
|
|
|
DiagnoseProcessReqVo diagnoseProcessReqVo) {
|
|
|
|
|
Assert.notEmpty(diagnoseProcessReqVo.getUserId(),"用户id不允许为空");
|
|
|
|
|
|
|
|
|
|
return processService.queryUserDiagnoseProcessPageList(new Page<>(pageNum,pageSize),diagnoseProcessReqVo);
|
|
|
|
|
// 1.查询诊断列表
|
|
|
|
|
Page<DiagnoseProcessResVo> diagnoseProcessResVoPage = processService.queryUserDiagnoseProcessPageList(new Page<>(pageNum, pageSize), diagnoseProcessReqVo);
|
|
|
|
|
if (diagnoseProcessResVoPage.getSize()==0){
|
|
|
|
|
return diagnoseProcessResVoPage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<DiagnoseProcessResVo> records = diagnoseProcessResVoPage.getRecords();
|
|
|
|
|
|
|
|
|
|
// 2.根据processIds查询诊断疾病名
|
|
|
|
|
List<String> processIds = records.stream().map(DiagnoseProcessResVo::getProcessId).distinct().collect(Collectors.toList());
|
|
|
|
|
List<DiagnosisPrimaryVO> diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessIds(processIds);
|
|
|
|
|
Map<String, List<DiagnosisPrimaryVO>> diagnosisPrimaryVOsMap = diagnosisPrimaryVOS.stream().collect(Collectors.groupingBy(DiagnosisPrimary::getProcessId));
|
|
|
|
|
|
|
|
|
|
// 3.把疾病名填充到诊断列表中
|
|
|
|
|
diagnoseProcessResVoPage.getRecords().forEach(vo->{
|
|
|
|
|
List<DiagnosisPrimaryVO> list = diagnosisPrimaryVOsMap.getOrDefault(vo.getProcessId(),new ArrayList<>());
|
|
|
|
|
vo.setPrimaryDiseaseNameList(list.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return diagnoseProcessResVoPage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|