Merge remote-tracking branch 'origin/dev_3.0.0' into dev_3.0.0

pull/1/head
liu 11 months ago
commit 54d377e0bd

@ -1,5 +1,6 @@
package com.supervision.vo.manage;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@ -21,6 +22,9 @@ public class MedicalRecPageResVO {
//患者静默视频
private String patientSilentVideo;
@Schema(description = "哑语视频")
private String patientDummyVideo;
/**
* ->
*/

@ -327,7 +327,6 @@ public class AskServiceImpl implements AskService {
talkVideoTtsResultResVO.setAnswerMessage(resText);
// 保存记录
saveQaRecord(talkReqVO.getProcessId(), "patient", askPatientAnswer.getId(), talkReqVO.getText(), library, resText);
return talkVideoTtsResultResVO;
} else {
// 如果问题的答案没有配置,还是走大模型的回答
log.info("{}:病历配置,从AskPatientAnswer中未找到回答结果,走大模型", qaSimilarityQuestionAnswer.getMatchQuestionCode());

@ -58,8 +58,8 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
// 3.把疾病名填充到诊断列表中
List<String> medicalRecIds = records.stream().map(DiagnoseProcessResVo::getMedicalRecId).filter(Objects::nonNull).collect(Collectors.toList());
Map<String, AskPatientAnswer> askPatientAnswerMap = queryAskPatientSilentVideoAnswer(medicalRecIds);
Map<String, AskPatientAnswer> dynamicAskPatientAnswerMap = queryAskPatientDynamicVideoAnswer(medicalRecIds);
Map<String, AskPatientAnswer> askPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_silent");
Map<String, AskPatientAnswer> dynamicAskPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_dynamic");
diagnoseProcessResVoPage.getRecords().forEach(vo->{
List<DiagnosisPrimaryVO> list = diagnosisPrimaryVOsMap.getOrDefault(vo.getProcessId(),new ArrayList<>());
vo.setPrimaryDiseaseNameList(list.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));
@ -80,57 +80,31 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
return medicalRecPageResVOIPage;
}
List<String> medicalRecIds = medicalRecPageResVOIPage.getRecords().stream().map(MedicalRecPageResVO::getMedicalId).collect(Collectors.toList());
Map<String, AskPatientAnswer> askPatientAnswerMap = queryAskPatientSilentVideoAnswer(medicalRecIds);
Map<String, AskPatientAnswer> askPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_silent");
Map<String, AskPatientAnswer> dynamicAskPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_dynamic");
medicalRecPageResVOIPage.getRecords().forEach(vo->{
vo.setPatientSilentVideo(askPatientAnswerMap.getOrDefault(vo.getMedicalId(),new AskPatientAnswer()).getAnswerResourceId());
vo.setPatientDummyVideo(dynamicAskPatientAnswerMap.getOrDefault(vo.getMedicalId(),new AskPatientAnswer()).getAnswerResourceId());
});
return medicalRecPageResVOIPage;
}
private Map<String,AskPatientAnswer> queryAskPatientSystemVideoAnswer(List<String> medicalRecIds,String code){
/**
*
* @param medicalRecIds
* @return
*/
private 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_silent").one();
Assert.notNull(one,"字典项目未配置");
AskTemplateQuestionLibrary silentInfo = askTemplateQuestionLibraryService.lambdaQuery()
.eq(AskTemplateQuestionLibrary::getDictId, one.getId()).eq(AskTemplateQuestionLibrary::getDictId, one.getId()).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));
}
private Map<String,AskPatientAnswer> queryAskPatientDynamicVideoAnswer(List<String> medicalRecIds){
Assert.notEmpty(code,"code不允许为空");
if (CollUtil.isEmpty(medicalRecIds)){
return new HashMap<>();
}
CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, "system_dynamic").one();
CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, code).one();
Assert.notNull(one,"字典项目未配置");
AskTemplateQuestionLibrary silentInfo = askTemplateQuestionLibraryService.lambdaQuery()
AskTemplateQuestionLibrary questionLibrary = askTemplateQuestionLibraryService.lambdaQuery()
.eq(AskTemplateQuestionLibrary::getDictId, one.getId()).eq(AskTemplateQuestionLibrary::getDictId, one.getId()).one();
Assert.notNull(silentInfo,"静默视频未配置");
Assert.notNull(questionLibrary,code+"对应的问题库未配置");
List<AskPatientAnswer> askPatientAnswerList = askPatientAnswerService.lambdaQuery()
.in(AskPatientAnswer::getMedicalId, medicalRecIds)
.eq(AskPatientAnswer::getLibraryQuestionId, silentInfo.getId()).list();
.eq(AskPatientAnswer::getLibraryQuestionId, questionLibrary.getId()).list();
if (CollUtil.isEmpty(askPatientAnswerList)){
return new HashMap<>();
}

Loading…
Cancel
Save