提交问诊历史的相关代码

dev_2.0.0
liu
parent 4073d7f63d
commit 45900abc2f

@ -34,7 +34,7 @@ public class DiagnosisQaRecord extends Model<DiagnosisQaRecord> implements Seria
@ApiModelProperty("诊断进程ID")
private String processId;
@ApiModelProperty("问答类型:default,patient")
@ApiModelProperty("问答类型:default,patient,如果patient,说明是病历配置的回答,打勾")
private String answerType;
/**
@ -49,6 +49,12 @@ public class DiagnosisQaRecord extends Model<DiagnosisQaRecord> implements Seria
@ApiModelProperty("问题")
private String question;
/**
* ID
*/
@ApiModelProperty("问题ID")
private String questionLibraryId;
/**
* ID
*/

@ -2,6 +2,7 @@ package com.supervision.service;
import com.supervision.model.DiagnosisQaRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.vo.ask.DiagnosisQaRecordHistoryResVO;
import java.util.List;
@ -13,5 +14,5 @@ import java.util.List;
public interface DiagnosisQaRecordService extends IService<DiagnosisQaRecord> {
List<DiagnosisQaRecord> queryByProcessId(String processId);
List<DiagnosisQaRecordHistoryResVO> queryByProcessId(String processId);
}

@ -1,12 +1,26 @@
package com.supervision.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.model.AskTemplateQuestionLibrary;
import com.supervision.model.CommonDic;
import com.supervision.model.DiagnosisQaRecord;
import com.supervision.service.AskTemplateQuestionLibraryService;
import com.supervision.service.CommonDicService;
import com.supervision.service.DiagnosisQaRecordService;
import com.supervision.mapper.DiagnosisQaRecordMapper;
import com.supervision.vo.ask.DiagnosisQaRecordHistoryResVO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @author flevance
@ -14,13 +28,33 @@ import java.util.List;
* @createDate 2023-10-20 17:19:21
*/
@Service
@RequiredArgsConstructor
public class DiagnosisQaRecordServiceImpl extends ServiceImpl<DiagnosisQaRecordMapper, DiagnosisQaRecord>
implements DiagnosisQaRecordService{
@Override
public List<DiagnosisQaRecord> queryByProcessId(String processId) {
private final CommonDicService commonDicService;
return super.lambdaQuery().eq(DiagnosisQaRecord::getProcessId,processId).list();
private final AskTemplateQuestionLibraryService askTemplateQuestionLibraryService;
@Override
public List<DiagnosisQaRecordHistoryResVO> queryByProcessId(String processId) {
List<DiagnosisQaRecord> list = this.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).list();
// 根据questionLibraryId找到对应的字典
Set<String> questionIdList = list.stream().map(DiagnosisQaRecord::getQuestionLibraryId).filter(StrUtil::isNotBlank).collect(Collectors.toSet());
List<AskTemplateQuestionLibrary> askTemplateQuestionLibraryList = askTemplateQuestionLibraryService.listByIds(questionIdList);
Map<String, Long> questionLibraryMap = askTemplateQuestionLibraryList.stream().collect(Collectors.toMap(AskTemplateQuestionLibrary::getId, AskTemplateQuestionLibrary::getDictId));
List<CommonDic> commonDicList = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").list();
Map<Long, CommonDic> dicMap = commonDicList.stream().collect(Collectors.toMap(CommonDic::getId, Function.identity()));
List<DiagnosisQaRecordHistoryResVO> resVOS = BeanUtil.copyToList(list, DiagnosisQaRecordHistoryResVO.class);
for (DiagnosisQaRecordHistoryResVO resVO : resVOS) {
Long dictId = questionLibraryMap.get(resVO.getQuestionLibraryId());
if (ObjectUtil.isNotEmpty(dictId)){
CommonDic commonDic = dicMap.get(dictId);
resVO.setCommonDic(commonDic);
}
}
return resVOS;
}
}

@ -0,0 +1,14 @@
package com.supervision.vo.ask;
import com.supervision.model.CommonDic;
import com.supervision.model.DiagnosisQaRecord;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class DiagnosisQaRecordHistoryResVO extends DiagnosisQaRecord {
private CommonDic commonDic;
}

@ -10,6 +10,7 @@
<result property="answerId" column="answer_id" jdbcType="VARCHAR"/>
<result property="answerType" column="answer_type" jdbcType="VARCHAR"/>
<result property="question" column="question" jdbcType="VARCHAR"/>
<result property="questionLibraryId" column="question_library_id" jdbcType="VARCHAR"/>
<result property="questionWavId" column="question_wav_id" jdbcType="VARCHAR"/>
<result property="answer" column="answer" jdbcType="VARCHAR"/>
<result property="answerWavId" column="answer_wav_id" jdbcType="VARCHAR"/>
@ -22,7 +23,7 @@
<sql id="Base_Column_List">
id
,question_answer_type
,process_id,question,question_answer_id
,process_id,question,question_answer_id,questionLibraryId,
question_wav_id,answer,answer_wav_id,
create_user_id,create_time,update_user_id,
update_time

@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.supervision.exception.BusinessException;
import com.supervision.model.DiagnosisQaRecord;
import com.supervision.service.DiagnosisQaRecordService;
import com.supervision.vo.ask.DiagnosisQaRecordHistoryResVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -23,7 +24,7 @@ public class DiagnosisQaRecordController {
private final DiagnosisQaRecordService diagnosisQaRecordService;
@ApiOperation("查询问诊历史记录")
@GetMapping("queryHistoryList")
public List<DiagnosisQaRecord> queryDiagnosisHistoryQaList(String processId){
public List<DiagnosisQaRecordHistoryResVO> queryDiagnosisHistoryQaList(String processId){
if (StrUtil.isEmpty(processId)){
throw new BusinessException("processId is empty");
}

@ -66,7 +66,7 @@ public class AskServiceImpl implements AskService {
// 这里调用京东数字人接口首先根据token获取房间号
String roomId = HumanUtil.queryRoomId(talkReqVO.getRoomKey(), talkReqVO.getRoomToken());
HumanUtil.textDriven("您好,我没有听懂您说什么", roomId);
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), "您好,我没有听懂您说什么");
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), null, "您好,我没有听懂您说什么");
}
TalkResultResVO talkResultResVO = new TalkResultResVO();
// 这里校验,rasa回复的结果是不是action
@ -88,7 +88,7 @@ public class AskServiceImpl implements AskService {
if (ObjectUtil.isEmpty(library)) {
log.info("{}:未从问题库中找到,回答未识别语句", rasaResult);
HumanUtil.textDriven("您好,我没有听懂您说什么", roomId);
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), "您好,我没有听懂您说什么");
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), null, "您好,我没有听懂您说什么");
} else {
AskPatientAnswer askPatientAnswer = askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getPatientId, process.getPatientId())
.eq(AskPatientAnswer::getLibraryQuestionId, library.getId()).last("limit 1").one();
@ -100,12 +100,12 @@ public class AskServiceImpl implements AskService {
String resText = library.getDefaultAnswer();
HumanUtil.textDriven(resText, roomId);
// 保存记录
saveQaRecord(talkReqVO.getProcessId(), "default", library.getId(), talkReqVO.getText(), resText);
saveQaRecord(talkReqVO.getProcessId(), "default", library.getId(), talkReqVO.getText(), library, resText);
log.info("{}:找到了默认答案:{}", rasaResult, talkReqVO.getText());
} else {
log.info("{}:没有从默认答案中找到找到默认内容,回复未识别语句", rasaResult);
HumanUtil.textDriven("您好,我没有听懂您说什么", roomId);
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), "您好,我没有听懂您说什么");
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), library, "您好,我没有听懂您说什么");
}
} else {
if (CollUtil.isEmpty(askPatientAnswer.getAnswer())) {
@ -115,7 +115,7 @@ public class AskServiceImpl implements AskService {
log.info("{}:病历配置的回答:{}:为空不为空不为空,但在获取的时候,答案为空,开始回复默认语句,默认语句内容:{}", rasaResult, askPatientAnswer.getId(), resText);
HumanUtil.textDriven(resText, roomId);
// 保存记录
saveQaRecord(talkReqVO.getProcessId(), "default", library.getId(), talkReqVO.getText(), resText);
saveQaRecord(talkReqVO.getProcessId(), "default", library.getId(), talkReqVO.getText(), library, resText);
} else {
log.info("{}:病历配置的回答:{}:为空不为空,但在获取的时候,答案为空,但是获取默认语句也为空,那么回复未识别语句", rasaResult, askPatientAnswer.getId());
HumanUtil.textDriven("您好,我没有听懂您说什么", roomId);
@ -126,7 +126,7 @@ public class AskServiceImpl implements AskService {
log.info("{}:找到了病历配置的回答语句:{},回答内容:{}", rasaResult, askPatientAnswer.getId(), resText);
HumanUtil.textDriven(resText, roomId);
// 保存记录
saveQaRecord(talkReqVO.getProcessId(), "patient", askPatientAnswer.getId(), talkReqVO.getText(), resText);
saveQaRecord(talkReqVO.getProcessId(), "patient", askPatientAnswer.getId(), talkReqVO.getText(), library, resText);
}
}
@ -136,11 +136,14 @@ public class AskServiceImpl implements AskService {
return talkResultResVO;
}
private void saveQaRecord(String processId, String answerType, String answerId, String question, String resText) {
private void saveQaRecord(String processId, String answerType, String answerId, String question, AskTemplateQuestionLibrary library, String resText) {
DiagnosisQaRecord record = new DiagnosisQaRecord();
record.setProcessId(processId);
record.setAnswerType(answerType);
record.setAnswerId(answerId);
if (ObjectUtil.isNotEmpty(library)) {
record.setQuestionLibraryId(library.getId());
}
record.setQuestion(question);
record.setAnswer(resText);
record.setCreateUserId(UserUtil.getUser().getId());

Loading…
Cancel
Save