From 85871a798ae24b99103c97294a462ebc75b6cb76 Mon Sep 17 00:00:00 2001
From: liu <liujiatong112@163.com>
Date: Thu, 6 Jun 2024 19:04:05 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E7=AD=94=E6=B5=81?=
 =?UTF-8?q?=E7=A8=8B,=E5=88=87=E6=8D=A2=E4=B8=BA=E5=9C=A8=E7=BA=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/supervision/controller/TestController.java | 11 +++++------
 .../supervision/service/impl/AskServiceImpl.java   | 14 ++++++++------
 2 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java
index 1ad4abc3..c23a5f96 100644
--- a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java
+++ b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java
@@ -54,6 +54,7 @@ public class TestController {
     private final AskTemplateQuestionSimilarityService askTemplateQuestionSimilarityService;
 
 
+
     @GetMapping("testMatchQuestion")
     public String test(String question) {
         String template = """
@@ -84,25 +85,23 @@ public class TestController {
     @GetMapping("testRedisVectorStore")
     public void testRedisVectorStore() {
         List<AskTemplateQuestionLibrary> list = askTemplateQuestionLibraryService.list();
-
         if (CollUtil.isEmpty(list)){
             return;
         }
-
         Map<String, List<String>> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list);
         for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) {
             String description = askTemplateQuestionLibrary.getDescription();
             redisVectorStore.add(List.of(new Document(description,
                     Map.of("type", "1",
-                            "standardQuestionId", askTemplateQuestionLibrary.getId(),
-                            "questionId", askTemplateQuestionLibrary.getId(),
+                            "libraryQuestionId", askTemplateQuestionLibrary.getId(),
+                            "matchQuestionId", askTemplateQuestionLibrary.getId(),
                             "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
             List<String> question = similarityQuestionMap.get(askTemplateQuestionLibrary.getId());
             for (String s : question) {
                 redisVectorStore.add(List.of(new Document(s,
                         Map.of("type", "2",
-                                "standardQuestionId", askTemplateQuestionLibrary.getId(),
-                                "questionId", askTemplateQuestionLibrary.getId(),
+                                "libraryQuestionId", askTemplateQuestionLibrary.getId(),
+                                "matchQuestionId", askTemplateQuestionLibrary.getId(),
                                 "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
             }
         }
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 422a1c69..de902739 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
@@ -99,7 +99,7 @@ public class AskServiceImpl implements AskService {
             // 记录大模型的流转记录
             buildAiCirculationDetail(circulationList, answer, medicalRec);
             // 保存消息到记录表
-            saveQaRecord(process.getId(), 2, question, null, answer, circulationList);
+            saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
             return answer;
         }
         QaSimilarityQuestionAnswer similarityResult = first.get();
@@ -115,7 +115,7 @@ public class AskServiceImpl implements AskService {
             String answer = aiService.talk(question, medicalRec.getMedicalRecordAi());
             // 记录流转记录
             buildAiCirculationDetail(circulationList, answer, medicalRec);
-            saveQaRecord(process.getId(), 2, question, null, answer, circulationList);
+            saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
             return answer;
         }
         // 根据对应的标准问题,从标准问题表中找到标准问题
@@ -130,7 +130,7 @@ public class AskServiceImpl implements AskService {
             String answer = aiService.talk(question, medicalRec.getMedicalRecordAi());
             // 记录流转记录
             buildAiCirculationDetail(circulationList, answer, medicalRec);
-            saveQaRecord(process.getId(), 2, question, null, answer, circulationList);
+            saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
             return answer;
         }
         // 根据问题找这个病历配置的答案
@@ -146,7 +146,7 @@ public class AskServiceImpl implements AskService {
             String answer = aiService.talk(question, medicalRec.getMedicalRecordAi());
             // 记录流转记录
             buildAiCirculationDetail(circulationList, answer, medicalRec);
-            saveQaRecord(process.getId(), 2, question, null, answer, circulationList);
+            saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
             return answer;
         }
         // 如果找到了,就走病历配置的内容回答
@@ -165,7 +165,7 @@ public class AskServiceImpl implements AskService {
                 .matchQuestion(similarityResult.getMatchQuestion())
                 .successType(1)
                 .build());
-        saveQaRecord(process.getId(), 1, question, similarityResult.getLibraryQuestionId(), patientAnswer, circulationList);
+        saveQaRecord(process.getId(), medicalRec, 1, question, similarityResult.getLibraryQuestionId(), patientAnswer, circulationList);
         return patientAnswer;
     }
 
@@ -178,7 +178,7 @@ public class AskServiceImpl implements AskService {
     }
 
 
-    private void saveQaRecord(String processId, Integer matchType, String question, String libraryId, String answer, List<AskCirculationDetail> circulationList) {
+    private void saveQaRecord(String processId, MedicalRec medicalRec, Integer matchType, String question, String libraryId, String answer, List<AskCirculationDetail> circulationList) {
         DiagnosisQaRecord record = new DiagnosisQaRecord();
         record.setProcessId(processId);
         record.setMatchType(matchType);
@@ -189,6 +189,8 @@ public class AskServiceImpl implements AskService {
         record.insert();
         AtomicInteger atomicInteger = new AtomicInteger(0);
         circulationList.forEach(e -> {
+                    e.setProcessId(processId);
+                    e.setMedicalId(medicalRec.getId());
                     e.setRecordId(record.getId());
                     e.setCirculationNo(atomicInteger.incrementAndGet());
                     e.setQuestion(question);