【流程自动化】

1、完善生成数字人时上传素材创建文件夹
2、修改病例导入时上传视频素材
3、修改生成动静数字人问题
jinan_master_by_release_3.0.0
longbao 5 months ago
parent a805c6110a
commit a1f43c606b

@ -10,16 +10,14 @@ import cn.hutool.json.JSONUtil;
import com.supervision.enums.EnumMedicalRec;
import com.supervision.exception.BusinessException;
import com.supervision.manage.dto.HumanGenerateDTO;
import com.supervision.manage.service.DirectoryInfoManageService;
import com.supervision.manage.service.FileManageService;
import com.supervision.manage.service.HumanManageService;
import com.supervision.model.AskPatientAnswer;
import com.supervision.model.FileResource;
import com.supervision.model.Human;
import com.supervision.model.MedicalRec;
import com.supervision.manage.service.MaterialLibraryManageService;
import com.supervision.model.*;
import com.supervision.service.AskPatientAnswerService;
import com.supervision.service.HumanService;
import com.supervision.service.MedicalRecService;
import com.supervision.util.OkHttpUtils;
import com.supervision.util.UserUtil;
import com.supervision.vo.manage.HumanReqVo;
import jakarta.servlet.http.HttpServletResponse;
@ -49,6 +47,9 @@ public class HumanManageServiceImpl implements HumanManageService {
private final FileManageService fileManageService;
private final MedicalRecService medicalRecService;
private final AskPatientAnswerService askPatientAnswerService;
private final MaterialLibraryManageService mediaLibraryManageService;
private final DirectoryInfoManageService directoryInfoManageService;
/**
* 线使
* 线2
@ -76,9 +77,22 @@ public class HumanManageServiceImpl implements HumanManageService {
File imageFile = fileManageService.downloadFile(human.getImageFileId());
// 创建一个图片临时文件
log.info("提交文件生成,文件名:{}", FileUtil.getName(imageFile));
generateSilent(human, imageFile, medicalId);
generateDynamic(human, imageFile, medicalId);
// 查询疾病信息
Map<String, String> dissesInfoByMedicalRecId = medicalRecService.queryDissesInfoByMedicalRecId(medicalId);
// 保存视频到素材中心
// 1.创建病例文件夹
DirectoryInfo directoryInfo = new DirectoryInfo();
directoryInfo.setDirectoryDesc(dissesInfoByMedicalRecId.get("diseaseNameAlias"));
directoryInfo.setDirectoryName(dissesInfoByMedicalRecId.get("diseaseName"));
String directoryId = directoryInfoManageService.addDirectory(directoryInfo);
// 2.上传视频素材到文件夹
// 静态
generateSilent(human, imageFile, medicalId, directoryId);
// 动态
generateDynamic(human, imageFile, medicalId, directoryId);
humanService.updateById(human);
}
@ -156,7 +170,20 @@ public class HumanManageServiceImpl implements HumanManageService {
return humanService.removeById(id);
}
private void generateSilent(Human human, File imageFile, String medicalId) throws Exception {
/**
*
*
* @param human
* @param imageFile
* @param medicalId id
* @param directoryId id
* @throws Exception
*/
private void generateSilent(Human human, File imageFile, String medicalId, String directoryId) throws Exception {
log.info("提交文件生成静态视频,文件名:{}", FileUtil.getName(imageFile));
if (StrUtil.isAllBlank(human.getSilentVideoFileId(), human.getSilentTaskUid())) {
HumanGenerateDTO silentDTO;
try {
@ -203,13 +230,33 @@ public class HumanManageServiceImpl implements HumanManageService {
medicalRecService.updateById(medicalRec1);
human.setSilentTaskUid(silentDTO.getUid());
// 上传视频素材
List<MaterialLibrary> materialLibraryList = new ArrayList<>();
MaterialLibrary mediaLibrarySilent = new MaterialLibrary();
mediaLibrarySilent.setDirectoryId(directoryId);
mediaLibrarySilent.setFileResourceId(fileResource.getId());
mediaLibrarySilent.setMaterialType(1);
materialLibraryList.add(mediaLibrarySilent);
mediaLibraryManageService.uploadMaterial(materialLibraryList);
}
}
}
}
/**
*
*
* @param human
* @param imageFile
* @param medicalId id
* @param directoryId
* @return
* @throws Exception
*/
private void generateDynamic(Human human, File imageFile, String medicalId, String directoryId) throws Exception {
log.info("提交文件生成动态视频,文件名:{}", imageFile.getPath());
private void generateDynamic(Human human, File imageFile, String medicalId) throws Exception {
if (StrUtil.isAllBlank(human.getDynamicVideoFileId(), human.getDynamicTaskUid())) {
HumanGenerateDTO dynamicDTO;
try {
@ -264,9 +311,17 @@ public class HumanManageServiceImpl implements HumanManageService {
medicalRec1.setId(medicalId);
medicalRecService.updateById(medicalRec1);
human.setDynamicTaskUid(dynamicDTO.getUid());
// 视频上传素材
List<MaterialLibrary> materialLibraryList = new ArrayList<>();
MaterialLibrary mediaLibraryDynamic = new MaterialLibrary();
mediaLibraryDynamic.setDirectoryId(directoryId);
mediaLibraryDynamic.setFileResourceId(fileResource.getId());
mediaLibraryDynamic.setMaterialType(1);
materialLibraryList.add(mediaLibraryDynamic);
mediaLibraryManageService.uploadMaterial(materialLibraryList);
}
}
}
private FileResource convertBase64ToFile(String prefixName, String imageFileName, String base64) throws Exception {
@ -297,6 +352,14 @@ public class HumanManageServiceImpl implements HumanManageService {
// 上传图片
FileResource fileResource = fileManageService.uploadFile(imageFile, imageFile.getContentType());
// 上传照片素材(目前导入中上传素材有且仅有一个图片)
List<MaterialLibrary> materialLibraryList = new ArrayList<>();
MaterialLibrary mediaLibrary = new MaterialLibrary();
mediaLibrary.setFileResourceId(fileResource.getId());
mediaLibrary.setMaterialType(0);
materialLibraryList.add(mediaLibrary);
mediaLibraryManageService.uploadMaterial(materialLibraryList);
// 生成数字人
Human human = new Human();
human.setImageFileId(fileResource.getId());

@ -122,4 +122,36 @@ public class MedicalAiAnswerSetter {
}
askPatientAnswerService.saveOrUpdate(askPatientAnswer);
}
public void test(){
// 静态视频
String staticFilePath = "C:\\Users\\19234\\Desktop\\测试\\nidshdish.png";
File file = new File(staticFilePath);
String name = file.getName();
File newFile = new File("hallo"+name); // 新文件名
// 修改文件名
boolean renamed = file.renameTo(newFile);
if (renamed) {
System.out.println("文件重命名成功。");
} else {
System.out.println("文件重命名失败。");
}
// 检查文件是否存在,如果存在则删除
if (newFile.exists()) {
boolean deleted = newFile.delete();
if (deleted) {
System.out.println("文件删除成功。");
} else {
System.out.println("文件删除失败。");
}
} else {
System.out.println("文件不存在,无法删除。");
}
}
}

@ -8,6 +8,8 @@ import com.supervision.vo.manage.MedicalRecPageReqVO;
import com.supervision.vo.manage.MedicalRecPageResVO;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* @author flevance
* @description vp_medical_rec()Mapper
@ -33,6 +35,15 @@ public interface MedicalRecMapper extends BaseMapper<MedicalRec> {
*/
void updateMedicalRecNo(@Param("code") String code, @Param("gender") String gender, @Param("id") String id);
/**
* id
* @param medicalRecId id
* @return diseaseNamediseaseNameAlias
*/
Map<String, String> queryDissesInfoByMedicalRecId(String medicalRecId);
}

@ -8,6 +8,7 @@ import com.supervision.vo.manage.MedicalRecPageResVO;
import com.supervision.vo.manage.MedicalRecQaVO;
import java.util.List;
import java.util.Map;
/**
* @author flevance
@ -44,4 +45,12 @@ public interface MedicalRecService extends IService<MedicalRec> {
*/
void saveAskPatientAnswerListByMedicalRec(List<MedicalRecQaVO> qaList, String medicalRecId);
/**
* id
* @param medicalRecId id
* @return diseaseNamediseaseNameAlias
*/
Map<String,String> queryDissesInfoByMedicalRecId(String medicalRecId);
}

@ -166,6 +166,16 @@ public class MedicalRecServiceImpl extends ServiceImpl<MedicalRecMapper, Medical
}).collect(Collectors.toList());
}
/**
* id
* @param medicalRecId id
* @return diseaseNamediseaseNameAlias
*/
@Override
public Map<String, String> queryDissesInfoByMedicalRecId(String medicalRecId) {
return this.baseMapper.queryDissesInfoByMedicalRecId(medicalRecId);
}
}

@ -37,7 +37,8 @@
</resultMap>
<sql id="Base_Column_List">
id,no,patient_id,patient_head_pic,digital_human_type,
id
,no,patient_id,patient_head_pic,digital_human_type,
patient_name,patient_gender,patient_age,
patient_marriage,patient_profession,patient_phone,
native_place,patient_nation,patient_postcode,
@ -93,4 +94,13 @@
</where>
order by time desc
</select>
<select id="queryDissesInfoByMedicalRecId" resultType="java.util.Map" parameterType="java.lang.String">
select d.disease_name as "diseaseName", d.disease_name_alias as "diseaseNameAlias"
from vp_disease d
where d.id = (select r.disease_id
from vp_medical_rec r
where r.id = #{medicalRecId});
</select>
</mapper>

Loading…
Cancel
Save