From fa99f949c1be0dd94945c1ec8616e98b8f3a60af Mon Sep 17 00:00:00 2001 From: xueqingkun <xueqingkun@126.com> Date: Mon, 3 Jun 2024 09:40:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1:=20talkByVideoAndTts=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/supervision/service/impl/AskServiceImpl.java | 1 - 1 file changed, 1 deletion(-) 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()); From 7bb23651c3b4fc554986f9caab6fb333ce1d16cb Mon Sep 17 00:00:00 2001 From: xueqingkun <xueqingkun@126.com> Date: Mon, 3 Jun 2024 09:53:07 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DiagnoseHallServiceImpl.java | 46 ++++--------------- 1 file changed, 9 insertions(+), 37 deletions(-) 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..34d26f31 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<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,29 @@ 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"); medicalRecPageResVOIPage.getRecords().forEach(vo->{ vo.setPatientSilentVideo(askPatientAnswerMap.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<>(); } From 8fa0b48b27a1f9fc1ff729751dfe905ea4eae987 Mon Sep 17 00:00:00 2001 From: xueqingkun <xueqingkun@126.com> Date: Mon, 3 Jun 2024 09:56:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1:=20queryMedicalRecPageList=20=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=BB=93=E6=9E=9C=E6=B7=BB=E5=8A=A0PatientDummyVideo?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/supervision/vo/manage/MedicalRecPageResVO.java | 4 ++++ .../com/supervision/service/impl/DiagnoseHallServiceImpl.java | 2 ++ 2 files changed, 6 insertions(+) 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/DiagnoseHallServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java index 34d26f31..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 @@ -81,8 +81,10 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService { } List<String> medicalRecIds = medicalRecPageResVOIPage.getRecords().stream().map(MedicalRecPageResVO::getMedicalId).collect(Collectors.toList()); 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; }