From 3efeaf06a3642f6645302a9b5e2bba76f6a59f96 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 29 May 2024 16:25:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/com/supervision/VecTest.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/virtual-patient-web/src/test/java/com/supervision/VecTest.java b/virtual-patient-web/src/test/java/com/supervision/VecTest.java index b6725a61..4ef2361b 100644 --- a/virtual-patient-web/src/test/java/com/supervision/VecTest.java +++ b/virtual-patient-web/src/test/java/com/supervision/VecTest.java @@ -436,6 +436,24 @@ public class VecTest { saveVec(vecData); } + @Test + public void initQuestionJoinVecData(){ + List questionLibraries = askTemplateQuestionLibraryService.list(); + // load vec data + List> vecData = questionLibraries.stream().map(library -> { + Map map = new HashMap<>(); + map.put("questionCode", library.getId()); + if (StrUtil.isEmpty(library.getDefaultAnswer())){ + log.warn("defaultAnswer is empty . libraryId is :{}",library.getId()); + } + List joinList= library.getQuestion().stream() + .map(question -> question + " " + library.getDefaultAnswer()).collect(Collectors.toList()); + map.put("questionList",joinList); + return map; + }).collect(Collectors.toList()); + saveVec(vecData); + } + @Test public void initMedicalVecData(){ String medicalId = "1"; @@ -637,4 +655,49 @@ public class VecTest { } } + + @Test + public void questionJoinAnswerTest(){ + List questionLibraries = askTemplateQuestionLibraryService.list(); + List commonDics = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").list(); + Map dicMap = commonDics.stream().collect(Collectors.toMap(CommonDic::getId, v -> v)); + Map libraryMap = questionLibraries.stream().collect(Collectors.toMap(AskTemplateQuestionLibrary::getId, library -> library)); + + String path = "F:\\tmp\\1\\门诊收集0524.xlsx"; + + ExcelReader reader = ExcelUtil.getReader(path); + List> maps = reader.readAll(); + + for (Map map : maps) { + String question = MapUtil.getStr(map, "日常问诊"); + List> matchMapList = questionMatch(question); + if (CollUtil.isEmpty(matchMapList)) { + log.warn("questionMatch:问题:{}没有匹配到结果", question); + continue; + } + Map first = CollUtil.getFirst(matchMapList); + String matchQuestion = MapUtil.getStr(first, "matchQuestion"); + String score = MapUtil.getStr(first, "matchScore"); + String targetId = MapUtil.getStr(first, "matchQuestionCode"); + map.put("targetId", targetId); + map.put("targetQuestion", matchQuestion); + AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); + map.put("targetDesc", targetLibrary.getDescription()); + Long dictId = targetLibrary.getDictId(); + map.put("targetDicPath", dicMap.get(dictId).getNameZhPath()); + map.put("matchScore", score); + } + + ExcelWriter writer = ExcelUtil.getWriter(path, "问询结果-问答拼接"); + writer.addHeaderAlias("病例", "病例"); + writer.addHeaderAlias("日常问诊", "日常问诊"); + writer.addHeaderAlias("targetId", "目标问题"); + writer.addHeaderAlias("targetDesc", "目标问题描述"); + writer.addHeaderAlias("targetQuestion", "目标问题"); + writer.addHeaderAlias("matchScore", "相似度"); + writer.addHeaderAlias("targetDicPath", "目标分类"); + writer.write(maps,true); + writer.close(); + } + }