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;
     }