diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/MedicalRecManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/MedicalRecManageController.java index 63adb529..b5e114bb 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/MedicalRecManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/MedicalRecManageController.java @@ -5,6 +5,7 @@ import com.supervision.dto.CommonDictTreeDTO; import com.supervision.manage.pojo.vo.MedicalRecCheckResVO; import com.supervision.manage.pojo.vo.MedicalRecInfoVO; import com.supervision.manage.pojo.vo.MedicalRecManageVO; +import com.supervision.manage.pojo.vo.MedicalRecQaVO; import com.supervision.service.CommonDicService; import com.supervision.vo.manage.MedicalRecPageResVO; import com.supervision.manage.service.MedicalRecManageService; @@ -26,8 +27,6 @@ public class MedicalRecManageController { private final MedicalRecManageService medicalRecManageService; - private final CommonDicService commonDicService; - @ApiOperation("初步诊断下拉列表联想") @GetMapping("queryDiseaseListByKeyWord") public List queryDiseaseListByKeyWord(@NotBlank(message = "关键字不能为空") String keyword) { @@ -49,6 +48,12 @@ public class MedicalRecManageController { medicalRecManageService.createMedicalRec(reqVO); } + @ApiOperation("创建病历时,应答策略查询问题(目前只支持单一疾病)") + @GetMapping("queryQuestionListByCreat") + public List queryQuestionListByCreat(String diseaseId) { + return medicalRecManageService.queryQuestionListByCreat(diseaseId); + } + @ApiOperation("修改病历") @PostMapping("modifyMedicalRec") public void modifyMedicalRec(@RequestBody MedicalRecManageVO reqVO) { @@ -63,14 +68,10 @@ public class MedicalRecManageController { @ApiOperation("删除病历") @GetMapping("deleteMedicalRec") - public void deleteMedicalRec(String id){ + public void deleteMedicalRec(String id) { medicalRecManageService.deleteMedicalRec(id); } - @GetMapping("test") - public List test(){ - return commonDicService.queryCommonDictTree("AQT"); - } } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecQaVO.java b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecQaVO.java index 1d858473..6bf4dcf1 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecQaVO.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/pojo/vo/MedicalRecQaVO.java @@ -24,7 +24,7 @@ public class MedicalRecQaVO { private Long dictId; @ApiModelProperty("问题类目,新增更新时不需要") - private String dictName; + private String dictNamePath; @ApiModelProperty("默认回答,新增更新时不需要") private String defaultAnswer; diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java index efa34c37..f3c867ae 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecManageService.java @@ -3,6 +3,7 @@ package com.supervision.manage.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.supervision.manage.pojo.vo.MedicalRecInfoVO; import com.supervision.manage.pojo.vo.MedicalRecManageVO; +import com.supervision.manage.pojo.vo.MedicalRecQaVO; import com.supervision.vo.manage.MedicalRecPageResVO; import com.supervision.model.Disease; import org.springframework.web.bind.annotation.RequestBody; @@ -17,6 +18,8 @@ public interface MedicalRecManageService { void createMedicalRec(MedicalRecManageVO reqVO); + List queryQuestionListByCreat(String diseaseId); + void modifyMedicalRec(MedicalRecManageVO reqVO); MedicalRecInfoVO queryMedicalRecInfo(String id); diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java index eb440f10..2fec183e 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java @@ -40,6 +40,8 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService { private final CommonDicService commonDicService; + private final DiseaseQuestionService diseaseQuestionService; + public List queryDiseaseListByKeyWord(String keyword) { // 注意,这里不支持查询复杂疾病,如果需要支持复杂疾病,这里需要单独进行改造 return diseaseService.lambdaQuery().eq(Disease::getDiseaseType, 0).like(Disease::getDiseaseName, keyword).list(); @@ -80,6 +82,40 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService { } } + @Override + public List queryQuestionListByCreat(String diseaseId) { + // 去vp_disease_question获取 + List list = diseaseQuestionService.lambdaQuery().eq(DiseaseQuestion::getDiseaseId, diseaseId).list(); + if (CollUtil.isEmpty(list)){ + return new ArrayList<>(); + } + // 获取问题 + Set libraryQuestionIdSet = list.stream().map(DiseaseQuestion::getQuestionId).collect(Collectors.toSet()); + List askTemplateQuestionLibraryList = askTemplateQuestionLibraryService.listByIds(libraryQuestionIdSet); + Map askQuestionMap = askTemplateQuestionLibraryList.stream().collect(Collectors.toMap(AskTemplateQuestionLibrary::getId, Function.identity())); + // 获取字典 + Set dictIdSet = askTemplateQuestionLibraryList.stream().map(AskTemplateQuestionLibrary::getDictId).collect(Collectors.toSet()); + Map dictMap = commonDicService.listByIds(dictIdSet).stream().collect(Collectors.toMap(CommonDic::getId, Function.identity())); + List result = new ArrayList<>(); + for (DiseaseQuestion diseaseQuestion : list) { + AskTemplateQuestionLibrary questionLibrary = askQuestionMap.get(diseaseQuestion.getQuestionId()); + if (ObjectUtil.isNotEmpty(questionLibrary)) { + MedicalRecQaVO medicalRecQaVO = new MedicalRecQaVO(); + medicalRecQaVO.setLibraryQuestionId(diseaseQuestion.getQuestionId()); + // 问题 + medicalRecQaVO.setQuestionList(questionLibrary.getQuestion()); + // 类目 + medicalRecQaVO.setDictId(questionLibrary.getDictId()); + // 类目名称 + medicalRecQaVO.setDictNamePath(dictMap.getOrDefault(questionLibrary.getDictId(), new CommonDic()).getNameZhPath()); + // 默认回答 + medicalRecQaVO.setDefaultAnswer(CollUtil.getFirst(questionLibrary.getDefaultAnswer())); + result.add(medicalRecQaVO); + } + } + return result; + } + @Override public void modifyMedicalRec(MedicalRecManageVO reqVO) { // 首先修改病人 @@ -168,7 +204,7 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService { // 类目 medicalRecQaVO.setDictId(questionLibrary.getDictId()); // 类目名称 - medicalRecQaVO.setDictName(dictMap.getOrDefault(questionLibrary.getDictId(), new CommonDic()).getNameZhPath()); + medicalRecQaVO.setDictNamePath(dictMap.getOrDefault(questionLibrary.getDictId(), new CommonDic()).getNameZhPath()); // 默认回答 medicalRecQaVO.setDefaultAnswer(CollUtil.getFirst(questionLibrary.getDefaultAnswer())); }