Browse Source

医学知识量表检索逻辑修改

zhaops 4 years atrás
parent
commit
bb54dcc316

+ 24 - 9
src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.dto.StaticKnowledgeDetailDTO;
 import com.diagbot.dto.StaticKnowledgeIndexPageDTO;
 import com.diagbot.entity.KlConcept;
 import com.diagbot.entity.KlConceptDetail;
+import com.diagbot.entity.KlConceptScale;
 import com.diagbot.entity.KlConceptStatic;
 import com.diagbot.entity.KlRelation;
 import com.diagbot.enums.IsDeleteEnum;
@@ -60,6 +61,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
     @Autowired
     private KlConceptDetailFacade klConceptDetailFacade;
     @Autowired
+    private KlConceptScaleFacade klConceptScaleFacade;
+    @Autowired
     private KlDictionaryInfoFacade klDictionaryInfoFacade;
 
     @Autowired
@@ -376,21 +379,33 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         Map<Long, List<KlConceptDetail>> detailMap = details.stream()
                 .collect(Collectors.groupingBy(KlConceptDetail::getConceptId));
 
+        List<KlConceptScale> scaleDetails = klConceptScaleFacade.list(new QueryWrapper<KlConceptScale>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("concept_id", conceptIds)
+                .orderByAsc("concept_id", "parent_id", "order_no"));
+        Map<Long, List<KlConceptScale>> scaleDetailMap = scaleDetails.stream()
+                .collect(Collectors.groupingBy(KlConceptScale::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());
+            if (i.getType().equals(8)) {
+                //todo 量表内容处理
+
+            } else {
+                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);

+ 5 - 2
src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java

@@ -25,15 +25,18 @@ import java.util.List;
 @Service
 public class KlConceptServiceImpl extends ServiceImpl<KlConceptMapper, KlConcept> implements KlConceptService {
 
+    @Override
     public List<IndexDTO> index(MedRetrievalVO medRetrievalVO) {
         return baseMapper.index(medRetrievalVO);
     }
 
+    @Override
     public List<StaticKnowledgeIndexDTO> staticIndex(StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
         return baseMapper.staticIndex(staticKnowledgeIndexVO);
     }
 
-    public List<KllisDetailDTO> getLisDetaisByNames(KllisDetailVO kllisDetailVO){
+    @Override
+    public List<KllisDetailDTO> getLisDetaisByNames(KllisDetailVO kllisDetailVO) {
         return baseMapper.getLisDetaisByNames(kllisDetailVO);
     }
-}
+}

+ 4 - 2
src/main/resources/mapper/KlConceptMapper.xml

@@ -159,11 +159,11 @@
 		s.type,
 		s.typeName,
 		s.code,
-		s1.concept_id AS conceptId,
+		IF( s2.concept_id IS NOT NULL, s2.concept_id, s3.concept_id ) AS conceptId,
 		s1.clinical_pathway_name,
 		s1.notice_name,
 		s1.`status` AS status,
-		IF( count( s2.id )> 0, 1, 0 ) AS hasInfo ,
+		IF( count( s2.id )> 0, 1, IF( count( s3.id )>0 ,1 ,0 ) ) AS hasInfo ,
 		IF( sum( IF ( FIND_IN_SET( 1, s2.content_type )> 0, 1, 0 ))> 0, 1, 0 ) AS hasStaticKnowledge,
 		IF( sum( IF ( FIND_IN_SET( 2, s2.content_type )> 0, 1, 0 ))> 0, 1, 0 ) AS hasNotice,
 		IF( sum( IF ( FIND_IN_SET( 3, s2.content_type )> 0, 1, 0 ))> 0, 1, 0 ) AS hasClinicalPathway,
@@ -526,6 +526,8 @@
 		AND s1.is_deleted = 'N'
 		LEFT JOIN kl_concept_detail s2 ON s.id = s2.concept_id
 		AND s2.is_deleted = 'N'
+		LEFT JOIN kl_concept_scale s3 ON s.id = s3.concept_id
+		AND s3.is_deleted = 'N'
 		GROUP BY s.id
 		) f
 		WHERE