diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java index 02ee159a..abbbb73b 100644 --- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java +++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java @@ -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; /** * 初步诊断-> 就是对应的疾病名称 */ diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java index cc7427b2..bc7d4f01 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java @@ -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()); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java index 8c78f8a3..7b46f283 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java @@ -58,8 +58,8 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService { // 3.把疾病名填充到诊断列表中 List medicalRecIds = records.stream().map(DiagnoseProcessResVo::getMedicalRecId).filter(Objects::nonNull).collect(Collectors.toList()); - Map askPatientAnswerMap = queryAskPatientSilentVideoAnswer(medicalRecIds); - Map dynamicAskPatientAnswerMap = queryAskPatientDynamicVideoAnswer(medicalRecIds); + Map askPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_silent"); + Map dynamicAskPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_dynamic"); diagnoseProcessResVoPage.getRecords().forEach(vo->{ List 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 medicalRecIds = medicalRecPageResVOIPage.getRecords().stream().map(MedicalRecPageResVO::getMedicalId).collect(Collectors.toList()); - Map askPatientAnswerMap = queryAskPatientSilentVideoAnswer(medicalRecIds); + Map askPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_silent"); + Map 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 queryAskPatientSystemVideoAnswer(List medicalRecIds,String code){ - /** - * 疾病静默视频信息 - * @param medicalRecIds - * @return - */ - private Map queryAskPatientSilentVideoAnswer(List 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 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 queryAskPatientDynamicVideoAnswer(List 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 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<>(); }