diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java index c65d3914..c0c023eb 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java @@ -96,7 +96,7 @@ public class AskTemplateQuestionLibraryServiceImpl extends ServiceImpl<AskTempla continue; } // 把呼出的问题全部加进去 - String toolIntent = "tool_" + tool.getCode(); + String toolIntent = "tool_" + tool.getId(); QaKnowledgeDTO qaKnowledgeDTO = new QaKnowledgeDTO(); qaKnowledgeDTO.setQuestionCode(toolIntent); qaKnowledgeDTO.setQuestionList(tool.getCallOutQuestion()); @@ -114,7 +114,7 @@ public class AskTemplateQuestionLibraryServiceImpl extends ServiceImpl<AskTempla continue; } // 把辅助问诊的问题全部加进去 - String ancillaryIntent = "ancillary_" + ancillary.getCode(); + String ancillaryIntent = "ancillary_" + ancillary.getId(); QaKnowledgeDTO qaKnowledgeDTO = new QaKnowledgeDTO(); qaKnowledgeDTO.setQuestionCode(ancillaryIntent); qaKnowledgeDTO.setQuestionList(ancillary.getCallOutQuestion()); 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 3b2694a2..06fda067 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 @@ -173,11 +173,12 @@ public class AskServiceImpl implements AskService { // 保存记录 saveQaRecord(talkReqVO.getProcessId(), "patient", askPatientAnswer.getId(), talkReqVO.getText(), library, resText); } else { - log.info("{}:病历配置,从AskPatientAnswer中未找到回答结果,回复未识别到语句", talkResult); - AskPatientAnswer medicalRecErrorAnswer = getMedicalRecErrorAnswer(process.getMedicalRecId()); - talkResultResVO.setVideoBase64(getAnswerVideoBase64OrDefault(medicalRecErrorAnswer.getAnswerResourceId())); - talkResultResVO.setAnswerMessage(medicalRecErrorAnswer.getAnswer()); - saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), library, medicalRecErrorAnswer.getAnswer()); + // 临时解决方案,回答没有,在问题库中内置这个回答 + log.info("{}:病历配置,从AskPatientAnswer中未找到回答结果,回复 默认回复", talkResult); + AskPatientAnswer medicalRecDefaultAnswer = getMedicalRecDefaultAnswer(process.getMedicalRecId()); + talkResultResVO.setVideoBase64(getAnswerVideoBase64OrDefault(medicalRecDefaultAnswer.getAnswerResourceId())); + talkResultResVO.setAnswerMessage(medicalRecDefaultAnswer.getAnswer()); + saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), library, medicalRecDefaultAnswer.getAnswer()); } } } @@ -214,7 +215,7 @@ public class AskServiceImpl implements AskService { GlobalResult<List<QaSimilarityQuestionAnswer>> result = askQaSimilarityFeignClient.askQuestionSimilarityAnswer(new QaSimilarityQuestion(question)); log.info("调用talkQaSimilarity结束,问题:{},返回结果:{}", question, JSONUtil.toJsonStr(result)); return CollUtil.getFirst(result.getData()).getMatchQuestionCode(); - }catch (Exception e){ + } catch (Exception e) { log.error("调用talkQaSimilarity error ", e); return null; } @@ -232,6 +233,18 @@ public class AskServiceImpl implements AskService { return askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getMedicalId, medicalRecId).eq(AskPatientAnswer::getLibraryQuestionId, askTemplateQuestionLibrary.getId()).one(); } + private AskPatientAnswer getMedicalRecDefaultAnswer(String medicalRecId) { + //Optional.ofNullable(medicalRecErrorAnswer).orElseGet(() ->new AskPatientAnswer()).getAnswer() + Assert.notEmpty(medicalRecId, "病历id不能为空"); + CommonDic commonDic = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, "system_default").one(); + Assert.notNull(commonDic, "字典未配置默认回答场景"); + + AskTemplateQuestionLibrary askTemplateQuestionLibrary = askTemplateQuestionLibraryService.lambdaQuery().eq(AskTemplateQuestionLibrary::getDictId, commonDic.getId()).one(); + Assert.notNull(askTemplateQuestionLibrary, "知识库未配置系统内置异常识别场景"); + + return askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getMedicalId, medicalRecId).eq(AskPatientAnswer::getLibraryQuestionId, askTemplateQuestionLibrary.getId()).one(); + } + /** * 获取应答视频的base64位编码