From 8d96b962048552672144b37b90e622a7f8cf66b2 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Thu, 20 Jun 2024 16:33:21 +0800 Subject: [PATCH] =?UTF-8?q?1:=20vp=5Fprocess=20=E6=B7=BB=E5=8A=A0patient?= =?UTF-8?q?=5Fhead=5Fpic=5Fid=E3=80=81patient=5Fsilent=5Fvideo=5Fid?= =?UTF-8?q?=E3=80=81patient=5Fdynamic=5Fvideo=5Fid=20=E5=AD=97=E6=AE=B5=20?= =?UTF-8?q?2.=20=E9=97=AE=E8=AF=8A=E5=A4=A7=E5=8E=85=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=82=A3=E8=80=85=E5=8A=A8=E6=80=81=E8=A7=86=E9=A2=91=E6=9D=A5?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/v3.1.0/step1.sql | 7 ++- .../java/com/supervision/model/Process.java | 12 +++-- .../vo/manage/MedicalRecPageResVO.java | 10 +++- .../vo/result/DiagnoseProcessResVo.java | 12 ++--- .../vo/result/ProcessRecordVO.java | 9 ++++ .../resources/mapper/MedicalRecMapper.xml | 4 ++ .../main/resources/mapper/ProcessMapper.xml | 10 +++- .../service/impl/AskProcessServiceImpl.java | 20 +++++++- .../service/impl/DiagnoseHallServiceImpl.java | 47 +------------------ 9 files changed, 71 insertions(+), 60 deletions(-) diff --git a/docker/v3.1.0/step1.sql b/docker/v3.1.0/step1.sql index 45e28688..53f1bdf6 100644 --- a/docker/v3.1.0/step1.sql +++ b/docker/v3.1.0/step1.sql @@ -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; \ No newline at end of file + 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; + diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Process.java b/virtual-patient-model/src/main/java/com/supervision/model/Process.java index 5cf6705e..c08b34da 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/Process.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/Process.java @@ -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; + /** * 待问诊状态:新建成功后默认就是待问诊状态 * 待处置:诊毕后,进入待处置 diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java index eca9103b..267625d6 100644 --- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java +++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/MedicalRecPageResVO.java @@ -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; /** * 初步诊断-> 就是对应的疾病名称 */ diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/result/DiagnoseProcessResVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/result/DiagnoseProcessResVo.java index baa28f9c..fc4923e7 100644 --- a/virtual-patient-model/src/main/java/com/supervision/vo/result/DiagnoseProcessResVo.java +++ b/virtual-patient-model/src/main/java/com/supervision/vo/result/DiagnoseProcessResVo.java @@ -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; diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/result/ProcessRecordVO.java b/virtual-patient-model/src/main/java/com/supervision/vo/result/ProcessRecordVO.java index 05dd527e..45f2c075 100644 --- a/virtual-patient-model/src/main/java/com/supervision/vo/result/ProcessRecordVO.java +++ b/virtual-patient-model/src/main/java/com/supervision/vo/result/ProcessRecordVO.java @@ -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; diff --git a/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml b/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml index 09a7660d..081a19a2 100644 --- a/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml @@ -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 AND t1.patient_self_desc like concat("%",#{medicalRecPageReqVO.selfDescKeyword}, "%") diff --git a/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml b/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml index a86a0b76..cf722369 100644 --- a/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/ProcessMapper.xml @@ -11,6 +11,9 @@ + + + @@ -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, diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java index 4d96f001..40af7b8f 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskProcessServiceImpl.java @@ -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()); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java index 1403ce6d..9c056d9c 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/DiagnoseHallServiceImpl.java @@ -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 queryDiagnoseProcessPageList(Integer pageNum, Integer pageSize, @@ -58,15 +52,9 @@ public class DiagnoseHallServiceImpl implements DiagnoseHallService { Map> diagnosisPrimaryVOsMap = diagnosisPrimaryVOS.stream().collect(Collectors.groupingBy(DiagnosisPrimary::getProcessId)); // 3.把疾病名填充到诊断列表中 - List medicalRecIds = records.stream().map(DiagnoseProcessResVo::getMedicalRecId).filter(Objects::nonNull).collect(Collectors.toList()); - Map askPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_silent"); - Map dynamicAskPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_dynamic"); diagnoseProcessResVoPage.getRecords().forEach(vo->{ List 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 queryMedicalRecPageList(Integer pageNum, Integer pageSize) { MedicalRecPageReqVO medicalRecPageReqVO = new MedicalRecPageReqVO(); medicalRecPageReqVO.setStatus(1);// 设置为已发布的数据 - IPage medicalRecPageResVOIPage = medicalRecService.queryMedicalRecManagePage(medicalRecPageReqVO, pageNum, pageSize); - if (CollUtil.isEmpty(medicalRecPageResVOIPage.getRecords())){ - return medicalRecPageResVOIPage; - } - List medicalRecIds = medicalRecPageResVOIPage.getRecords().stream().map(MedicalRecPageResVO::getMedicalId).collect(Collectors.toList()); - Map askPatientAnswerMap = queryAskPatientSystemVideoAnswer(medicalRecIds,"system_silent"); - Map 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 queryAskPatientSystemVideoAnswer(List 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 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); } }