1: vp_process 添加patient_head_pic_id、patient_silent_video_id、patient_dynamic_video_id 字段

2. 问诊大厅修改患者动态视频来源
dev_3.1.0
xueqingkun 10 months ago
parent f1ff8582d0
commit 8d96b96204

@ -134,4 +134,9 @@ alter table vp_medical_rec
add human_id varchar(64) null comment '数字人id' after patient_id;
alter table vp_process
add human_id varchar(64) null comment '数字人id' after patient_id;
add patient_head_pic_id varchar(64) null comment '患者头像图片id' after process_no;
alter table vp_process
add patient_silent_video_id varchar(64) null comment '患者静默视频id' after patient_head_pic_id;
alter table vp_process
add patient_dynamic_video_id varchar(64) null comment '患者动态视频id' after patient_silent_video_id;

@ -30,9 +30,6 @@ public class Process implements Serializable {
@Schema(description = "病人ID")
private String patientId;
@Schema(description = "数字人id")
private String humanId;
@Schema(description = "病历ID")
private String medicalRecId;
@ -51,6 +48,15 @@ public class Process implements Serializable {
@Schema(description = "图谱关联的ID")
private String graphId;
@Schema(description = "患者头像图片id")
private String patientHeadPicId;
@Schema(description = "患者静默视频id")
private String patientSilentVideoId;
@Schema(description = "患者动态视频id")
private String patientDynamicVideoId;
/**
* :
*

@ -23,8 +23,14 @@ public class MedicalRecPageResVO {
//患者静默视频
private String patientSilentVideo;
@Schema(description = "哑语视频")
private String patientDummyVideo;
@Schema(description = "患者头像图片id")
private String patientHeadPicId;
@Schema(description = "患者静默视频id")
private String patientSilentVideoId;
@Schema(description = "患者动态视频id")
private String patientDynamicVideoId;
/**
* ->
*/

@ -29,14 +29,14 @@ public class DiagnoseProcessResVo {
@Schema(description = "主诉")
private String patientSelfDesc;
@Schema(description = "患者头像")
private String patientHeadPic;
@Schema(description = "患者头像图片id")
private String patientHeadPicId;
@Schema(description = "患者静默视频")
private String patientSilentVideo;
@Schema(description = "患者静默视频id")
private String patientSilentVideoId;
@Schema(description = "哑语视频")
private String patientDummyVideo;
@Schema(description = "患者动态视频id")
private String patientDynamicVideoId;
@Schema(description = "病人id")
private String patientId;

@ -16,6 +16,15 @@ public class ProcessRecordVO {
@Schema(description = "问诊编号")
private String processNo;
@Schema(description = "患者头像图片id")
private String patientHeadPicId;
@Schema(description = "患者静默视频id")
private String patientSilentVideoId;
@Schema(description = "患者动态视频id")
private String patientDummyVideoId;
@Schema(description = "病历编号")
private String medicalRecNo;

@ -72,9 +72,13 @@
t1.patient_head_pic as patientHeadPic,
t1.patient_self_desc as patientSelfDesc,
t1.status as medicalStatus,
t4.image_file_id as patientHeadPicId,
t4.silent_video_file_id as patientSilentVideoId,
t4.dynamic_video_file_id as patientDynamicVideoId,
if(t1.update_time is null, t1.create_time, t1.update_time) as time
from vp_medical_rec t1
left join vp_disease t3 on t1.disease_id = t3.id
left join vp_human t4 on t1.human_id = t4.id
<where>
<if test="medicalRecPageReqVO.selfDescKeyword != null and medicalRecPageReqVO.selfDescKeyword != ''">
AND t1.patient_self_desc like concat("%",#{medicalRecPageReqVO.selfDescKeyword}, "%")

@ -11,6 +11,9 @@
<result property="medicalRecId" column="medical_rec_id" jdbcType="VARCHAR"/>
<result property="userId" column="user_id" jdbcType="VARCHAR"/>
<result property="graphId" column="graph_id" jdbcType="VARCHAR"/>
<result property="patientHeadPicId" column="patient_head_pic_id" jdbcType="VARCHAR"/>
<result property="patientSilentVideoId" column="patient_silent_video_id" jdbcType="VARCHAR"/>
<result property="patientDynamicVideoId" column="patient_dynamic_video_id" jdbcType="VARCHAR"/>
<result property="processNo" column="process_no" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="INTEGER"/>
<result property="processType" column="process_type" jdbcType="INTEGER"/>
@ -40,7 +43,9 @@
mre.patient_self_desc as patientSelfDesc,
mre.patient_id as patientId,
mre.patient_name as name,
mre.patient_head_pic as patientHeadPic,
pro.patient_head_pic_id as patientHeadPicId,
pro.patient_silent_video_id as patientSilentVideoId,
pro.patient_dynamic_video_id as patientDynamicVideoId,
mre.patient_age as age,
mre.patient_gender as gender,
pat.resource_id as resourceId
@ -66,6 +71,9 @@
select t1.id as processId,
t2.id as medicalId,
t1.process_no as processNo,
t1.patient_head_pic_id as patientHeadPicId,
t1.patient_silent_video_id as patientSilentVideoId,
t1.patient_dynamic_video_id as patientDynamicVideoId,
t2.no as medicalRecNo,
t1.user_id as userId,
t3.name as studentName,

@ -1,21 +1,27 @@
package com.supervision.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.supervision.exception.BusinessException;
import com.supervision.model.Human;
import com.supervision.model.MedicalRec;
import com.supervision.model.Process;
import com.supervision.model.User;
import com.supervision.service.AskProcessService;
import com.supervision.service.HumanService;
import com.supervision.service.MedicalRecService;
import com.supervision.service.ProcessService;
import com.supervision.util.RedisSequenceUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@Slf4j
@Service
@RequiredArgsConstructor
public class AskProcessServiceImpl implements AskProcessService {
@ -24,6 +30,8 @@ public class AskProcessServiceImpl implements AskProcessService {
private final MedicalRecService medicalRecService;
private final HumanService humanService;
@Override
@Transactional(rollbackFor = Exception.class)
public Process creatDiagnosisProcess(String patientId,String medicalId, User user) {
@ -32,7 +40,17 @@ public class AskProcessServiceImpl implements AskProcessService {
process.setPatientId(patientId);
process.setMedicalRecId(medicalId);
process.setDiseaseId(medicalRec.getDiseaseId());
process.setHumanId(medicalRec.getHumanId());// 设置病人的形象
if (StrUtil.isNotEmpty(medicalRec.getHumanId())){
Human human = humanService.getById(medicalRec.getHumanId());
if (Objects.nonNull(human)){
process.setPatientHeadPicId(human.getImageFileId());
process.setPatientSilentVideoId(human.getSilentVideoFileId());
process.setPatientDynamicVideoId(human.getDynamicVideoFileId());
}else {
log.info("根据数字人id:{},未找到数字人相关信息", medicalRec.getHumanId());
}
}
process.setUserId(user.getId());
process.setStatus(0);
process.setCreateUserId(user.getId());

@ -31,12 +31,6 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
private final DiagnosisPrimaryService diagnosisPrimaryService;
private final AskPatientAnswerService askPatientAnswerService;
private final CommonDicService commonDicService;
private final AskTemplateQuestionLibraryService askTemplateQuestionLibraryService;
@Override
public IPage<DiagnoseProcessResVo> queryDiagnoseProcessPageList(Integer pageNum, Integer pageSize,
@ -58,15 +52,9 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
Map<String, List<DiagnosisPrimaryVO>> diagnosisPrimaryVOsMap = diagnosisPrimaryVOS.stream().collect(Collectors.groupingBy(DiagnosisPrimary::getProcessId));
// 3.把疾病名填充到诊断列表中
List<String> medicalRecIds = records.stream().map(DiagnoseProcessResVo::getMedicalRecId).filter(Objects::nonNull).collect(Collectors.toList());
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()));
vo.setPatientSilentVideo(askPatientAnswerMap.getOrDefault(vo.getMedicalRecId(),new AskPatientAnswer()).getAnswerResourceId());
vo.setPatientDummyVideo(dynamicAskPatientAnswerMap.getOrDefault(vo.getMedicalRecId(),new AskPatientAnswer()).getAnswerResourceId());
});
@ -77,40 +65,7 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService {
public IPage<MedicalRecPageResVO> queryMedicalRecPageList(Integer pageNum, Integer pageSize) {
MedicalRecPageReqVO medicalRecPageReqVO = new MedicalRecPageReqVO();
medicalRecPageReqVO.setStatus(1);// 设置为已发布的数据
IPage<MedicalRecPageResVO> medicalRecPageResVOIPage = medicalRecService.queryMedicalRecManagePage(medicalRecPageReqVO, pageNum, pageSize);
if (CollUtil.isEmpty(medicalRecPageResVOIPage.getRecords())){
return medicalRecPageResVOIPage;
}
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;
}
private Map<String,AskPatientAnswer> queryAskPatientSystemVideoAnswer(List<String> medicalRecIds,String code){
Assert.notEmpty(code,"code不允许为空");
if (CollUtil.isEmpty(medicalRecIds)){
return new HashMap<>();
}
CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, code).one();
Assert.notNull(one,"字典项目未配置");
AskTemplateQuestionLibrary questionLibrary = askTemplateQuestionLibraryService.lambdaQuery()
.eq(AskTemplateQuestionLibrary::getDictId, one.getId()).eq(AskTemplateQuestionLibrary::getDictId, one.getId()).one();
Assert.notNull(questionLibrary,code+"对应的问题库未配置");
List<AskPatientAnswer> askPatientAnswerList = askPatientAnswerService.lambdaQuery()
.in(AskPatientAnswer::getMedicalId, medicalRecIds)
.eq(AskPatientAnswer::getLibraryQuestionId, questionLibrary.getId()).list();
if (CollUtil.isEmpty(askPatientAnswerList)){
return new HashMap<>();
}
return askPatientAnswerList.stream().collect(Collectors.toMap(AskPatientAnswer::getMedicalId, o -> o));
return medicalRecService.queryMedicalRecManagePage(medicalRecPageReqVO, pageNum, pageSize);
}
}

Loading…
Cancel
Save