|
@@ -88,8 +88,29 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
.eq("lib_name", staticKnowledgeVO.getName())
|
|
|
.eq("lib_type", type), false);
|
|
|
+ Integer sameType = null;
|
|
|
if (concept == null) {
|
|
|
- throw new CommonException(CommonErrorCode.NOT_EXISTS, "标准词不存在");
|
|
|
+ //同名静态知识互取
|
|
|
+ if (type.equals(LexiconEnum.LisName.getKey())) {
|
|
|
+ sameType = LexiconEnum.LisSubName.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.LisSubName.getKey())) {
|
|
|
+ sameType = LexiconEnum.LisName.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.PacsName.getKey())) {
|
|
|
+ sameType = LexiconEnum.PacsSubName.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.PacsSubName.getKey())) {
|
|
|
+ sameType = LexiconEnum.PacsName.getKey();
|
|
|
+ }
|
|
|
+ if (sameType != null) {
|
|
|
+ concept = klConceptFacade.getOne(new QueryWrapper<KlConcept>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("lib_name", staticKnowledgeVO.getName())
|
|
|
+ .eq("lib_type", sameType), false);
|
|
|
+ if (concept == null) {
|
|
|
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "标准词不存在");
|
|
|
+ } else {
|
|
|
+ staticKnowledgeVO.setType(sameType);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
KlConceptStatic staticInfo = this.getOne(new QueryWrapper<KlConceptStatic>()
|
|
@@ -97,6 +118,35 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
|
|
|
.eq("concept_id", concept.getId())
|
|
|
.eq("status", StatusEnum.Enable.getKey()), false);
|
|
|
|
|
|
+ //未取到静态知识
|
|
|
+ if (staticInfo == null && sameType == null) {
|
|
|
+ //同名静态知识互取
|
|
|
+ if (type.equals(LexiconEnum.LisName.getKey())) {
|
|
|
+ sameType = LexiconEnum.LisSubName.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.LisSubName.getKey())) {
|
|
|
+ sameType = LexiconEnum.LisName.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.PacsName.getKey())) {
|
|
|
+ sameType = LexiconEnum.PacsSubName.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.PacsSubName.getKey())) {
|
|
|
+ sameType = LexiconEnum.PacsName.getKey();
|
|
|
+ }
|
|
|
+ if (sameType != null) {
|
|
|
+ KlConcept sameConcept = klConceptFacade.getOne(new QueryWrapper<KlConcept>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("lib_name", staticKnowledgeVO.getName())
|
|
|
+ .eq("lib_type", sameType), false);
|
|
|
+ if (sameConcept != null) {
|
|
|
+ staticKnowledgeVO.setType(sameType);
|
|
|
+ //存在同名的项,替换原来的项
|
|
|
+ BeanUtil.copyProperties(sameConcept, concept);
|
|
|
+ staticInfo = this.getOne(new QueryWrapper<KlConceptStatic>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("concept_id", sameConcept.getId())
|
|
|
+ .eq("status", StatusEnum.Enable.getKey()), false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (staticInfo == null) {
|
|
|
//检验子项或检查子项向上级取静态知识
|
|
|
if (type.equals(LexiconEnum.LisSubName.getKey())
|
|
@@ -255,6 +305,10 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
|
|
|
*/
|
|
|
@Override
|
|
|
public IPage<StaticKnowledgeIndexPageDTO> staticIndexPage(StaticKnowledgeIndexPageVO staticKnowledgeIndexPageVO) {
|
|
|
+ //默认查找全部
|
|
|
+ if (ListUtil.isEmpty(staticKnowledgeIndexPageVO.getTypes())) {
|
|
|
+ staticKnowledgeIndexPageVO.setTypeIds(Arrays.asList(new Integer[] { 0 }));
|
|
|
+ }
|
|
|
staticKnowledgeIndexPageVO.setTypeIds(new ArrayList<>());
|
|
|
|
|
|
List<Integer> types = staticKnowledgeIndexPageVO.getTypes();
|
|
@@ -296,15 +350,39 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
|
|
|
staticKnowledgeIndexPageVO.getTypeIds().add(LexiconEnum.Scale.getKey());
|
|
|
}
|
|
|
}
|
|
|
+ if (ListUtil.isEmpty(staticKnowledgeIndexPageVO.getTypeIds())) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "请输入正确的检索类型(多选):0-全部、1-诊断、2-药品、3-检验、4-检查、5-手术和操作");
|
|
|
+ }
|
|
|
IPage<StaticKnowledgeIndexPageDTO> page = super.staticIndexPage(staticKnowledgeIndexPageVO);
|
|
|
|
|
|
List<StaticKnowledgeIndexPageDTO> records = page.getRecords();
|
|
|
|
|
|
+ if (ListUtil.isEmpty(records)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ List<Long> conceptIds = records.stream().map(StaticKnowledgeIndexPageDTO::getId).collect(Collectors.toList());
|
|
|
+ List<KlConceptDetail> details = klConceptDetailFacade.list(new QueryWrapper<KlConceptDetail>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("concept_id", conceptIds)
|
|
|
+ .orderByAsc("concept_id", "order_no"));
|
|
|
+ Map<Long, List<KlConceptDetail>> detailMap = details.stream()
|
|
|
+ .collect(Collectors.groupingBy(KlConceptDetail::getConceptId));
|
|
|
+
|
|
|
records.forEach(i -> {
|
|
|
i.setTypeName(medRetrievalFacade.convertTypeName(i.getTypeName(), 2, dicTypeName));
|
|
|
if (dicTypeMap.containsKey(i.getTypeName())) {
|
|
|
i.setType(Integer.valueOf(dicTypeMap.get(i.getTypeName())));
|
|
|
}
|
|
|
+ i.setHasInfo(1);
|
|
|
+ i.setHasStaticKnowledge(detailMap.get(i.getId()).stream()
|
|
|
+ .filter(x -> x.getContentType().contains("1")).count() > 0 ? 1 : 0);
|
|
|
+ i.setHasNotice(detailMap.get(i.getId()).stream()
|
|
|
+ .filter(x -> x.getContentType().contains("2")).count() > 0 ? 1 : 0);
|
|
|
+ i.setHasClinicalPathway(detailMap.get(i.getId()).stream()
|
|
|
+ .filter(x -> x.getContentType().contains("3")).count() > 0 ? 1 : 0);
|
|
|
+ i.setHasTreatInfo(detailMap.get(i.getId()).stream()
|
|
|
+ .filter(x -> x.getContentType().contains("4")).count() > 0 ? 1 : 0);
|
|
|
+ i.setAbstractContent(detailMap.get(i.getId()).get(0).getContent());
|
|
|
});
|
|
|
|
|
|
page.setRecords(records);
|