|
|
|
@ -1,13 +1,11 @@
|
|
|
|
|
package com.supervision.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
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.model.*;
|
|
|
|
|
import com.supervision.service.*;
|
|
|
|
|
import com.supervision.vo.ask.DiagnosisPrimaryVO;
|
|
|
|
|
import com.supervision.vo.manage.MedicalRecPageResVO;
|
|
|
|
|
import com.supervision.vo.result.DiagnoseProcessReqVo;
|
|
|
|
@ -16,9 +14,7 @@ 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.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -34,6 +30,12 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
|
|
|
|
|
|
|
|
|
|
private final DiagnosisPrimaryService diagnosisPrimaryService;
|
|
|
|
|
|
|
|
|
|
private final AskPatientAnswerService askPatientAnswerService;
|
|
|
|
|
|
|
|
|
|
private final CommonDicService commonDicService;
|
|
|
|
|
|
|
|
|
|
private final AskTemplateQuestionLibraryService askTemplateQuestionLibraryService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<DiagnoseProcessResVo> queryDiagnoseProcessPageList(Integer pageNum, Integer pageSize,
|
|
|
|
@ -54,20 +56,59 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
|
|
|
|
|
Map<String, List<DiagnosisPrimaryVO>> diagnosisPrimaryVOsMap = diagnosisPrimaryVOS.stream().collect(Collectors.groupingBy(DiagnosisPrimary::getProcessId));
|
|
|
|
|
|
|
|
|
|
// 3.把疾病名填充到诊断列表中
|
|
|
|
|
List<String> medicalRecIds = records.stream().map(DiagnoseProcessResVo::getMedicalRecId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
|
|
Map<String, AskPatientAnswer> askPatientAnswerMap = queryAskPatientSilentVideoAnswer(medicalRecIds);
|
|
|
|
|
diagnoseProcessResVoPage.getRecords().forEach(vo->{
|
|
|
|
|
List<DiagnosisPrimaryVO> list = diagnosisPrimaryVOsMap.getOrDefault(vo.getProcessId(),new ArrayList<>());
|
|
|
|
|
vo.setPrimaryDiseaseNameList(list.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));
|
|
|
|
|
|
|
|
|
|
vo.setPatientSilentVideo(askPatientAnswerMap.getOrDefault(vo.getMedicalRecId(),new AskPatientAnswer()).getAnswerResourceId());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return diagnoseProcessResVoPage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<MedicalRecPageResVO> queryMedicalRecPageList(Integer pageNum, Integer pageSize) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return medicalRecService.queryMedicalRecManagePage(null, null, null, pageNum, pageSize);
|
|
|
|
|
IPage<MedicalRecPageResVO> medicalRecPageResVOIPage = medicalRecService.queryMedicalRecManagePage(null, null, null, pageNum, pageSize);
|
|
|
|
|
if (CollUtil.isEmpty(medicalRecPageResVOIPage.getRecords())){
|
|
|
|
|
return medicalRecPageResVOIPage;
|
|
|
|
|
}
|
|
|
|
|
List<String> medicalRecIds = medicalRecPageResVOIPage.getRecords().stream().map(MedicalRecPageResVO::getMedicalId).collect(Collectors.toList());
|
|
|
|
|
Map<String, AskPatientAnswer> askPatientAnswerMap = queryAskPatientSilentVideoAnswer(medicalRecIds);
|
|
|
|
|
medicalRecPageResVOIPage.getRecords().forEach(vo->{
|
|
|
|
|
vo.setPatientSilentVideo(askPatientAnswerMap.getOrDefault(vo.getMedicalId(),new AskPatientAnswer()).getAnswerResourceId());
|
|
|
|
|
});
|
|
|
|
|
return medicalRecPageResVOIPage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 疾病静默视频信息
|
|
|
|
|
* @param medicalRecIds
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
Map<String,AskPatientAnswer> queryAskPatientSilentVideoAnswer(List<String> medicalRecIds){
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(medicalRecIds)){
|
|
|
|
|
return new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, "system").one();
|
|
|
|
|
Assert.notNull(one,"字典项目未配置");
|
|
|
|
|
|
|
|
|
|
AskTemplateQuestionLibrary silentInfo = askTemplateQuestionLibraryService.lambdaQuery()
|
|
|
|
|
.eq(AskTemplateQuestionLibrary::getDictId, one.getId()).eq(AskTemplateQuestionLibrary::getDescription, "静默视频").one();
|
|
|
|
|
Assert.notNull(silentInfo,"静默视频未配置");
|
|
|
|
|
|
|
|
|
|
List<AskPatientAnswer> askPatientAnswerList = askPatientAnswerService.lambdaQuery()
|
|
|
|
|
.in(AskPatientAnswer::getMedicalId, medicalRecIds)
|
|
|
|
|
.eq(AskPatientAnswer::getLibraryQuestionId, silentInfo.getId()).list();
|
|
|
|
|
if (CollUtil.isEmpty(askPatientAnswerList)){
|
|
|
|
|
return new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
return askPatientAnswerList.stream().collect(Collectors.toMap(AskPatientAnswer::getMedicalId, o -> o));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|