Browse Source

知识库标准化-医学数据统计

rengb 5 years ago
parent
commit
c27b945c67

+ 47 - 0
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.ICSSManServiceClient;
 import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.BIItemDTO;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.GetAllConceptDTO;
@@ -21,6 +22,7 @@ import com.diagbot.entity.Lexicon;
 import com.diagbot.entity.LibraryInfo;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.Relation;
+import com.diagbot.entity.ScaleContent;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.DiseaseClassifyEnum;
 import com.diagbot.enums.IsDeleteEnum;
@@ -119,6 +121,8 @@ public class ConceptFacade extends ConceptServiceImpl {
     private LisMappingFacade lisMappingFacade;
     @Autowired
     private ICSSManServiceClient icssManServiceClient;
+    @Autowired
+    private ScaleContentFacade scaleContentFacade;
 
     /**
      * 获取所有化验公表项
@@ -1211,6 +1215,49 @@ public class ConceptFacade extends ConceptServiceImpl {
         }
     }
 
+    /**
+     * 知识库标准化-获取医学数据统计
+     * @return
+     */
+    public List<BIItemDTO> queryLibTypeCou(){
+        List<BIItemDTO> retBIItemDTOList = this.baseMapper.queryLibTypeCou();
+
+        QueryWrapper<ScaleContent> scaleContentQe = new QueryWrapper<>();
+        scaleContentQe.eq("is_deleted","N");
+        List<Long> scaleConceptIds = scaleContentFacade.list(scaleContentQe)
+                .stream().map(i->i.getConceptId()).distinct().collect(Collectors.toList());
+
+        QueryWrapper<Concept> scaleConceptQe = new QueryWrapper<>();
+        scaleConceptQe.eq("is_deleted","N");
+        scaleConceptQe.in("id",scaleConceptIds);
+        Integer scaleCount = this.count(scaleConceptQe);
+
+        BIItemDTO scaleBIItemDTO = new BIItemDTO();
+        scaleBIItemDTO.setModuleName("量表");
+        scaleBIItemDTO.setItemName("量表总数");
+        scaleBIItemDTO.setCount(scaleCount);
+        retBIItemDTOList.add(scaleBIItemDTO);
+
+        QueryWrapper<Disease> diseaseQe = new QueryWrapper<>();
+        diseaseQe.eq("is_deleted","N");
+        List<Long> diseaseConceptIds = diseaseFacade.list(diseaseQe)
+                .stream().map(i->i.getConceptId()).distinct().collect(Collectors.toList());
+
+        QueryWrapper<Concept> diseaseConceptQe = new QueryWrapper<>();
+        diseaseConceptQe.eq("is_deleted","N");
+        diseaseConceptQe.in("id",diseaseConceptIds);
+        Integer diseaseCount = this.count(diseaseConceptQe);
+
+        BIItemDTO diseaseBIItemDTO = new BIItemDTO();
+        diseaseBIItemDTO.setModuleName("疾病");
+        diseaseBIItemDTO.setItemName("疾病总数");
+        diseaseBIItemDTO.setCount(diseaseCount);
+        retBIItemDTOList.add(diseaseBIItemDTO);
+
+        return retBIItemDTOList;
+    }
+
+
     /**
      * 根据概念Id列表获取概念列表Map
      *

+ 8 - 0
knowledgeman-service/src/main/java/com/diagbot/mapper/ConceptMapper.java

@@ -2,6 +2,7 @@ package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.BIItemDTO;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptWithOrderRes;
@@ -15,6 +16,7 @@ import com.diagbot.vo.IndexLexiconVO;
 import com.diagbot.vo.IndexVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -69,5 +71,11 @@ public interface ConceptMapper extends BaseMapper<Concept> {
      * @return
      */
     List<ConceptBaseDTO> indexByLexicon(IndexLexiconVO indexLexiconVO);
+
+    /**
+     * 知识库标准化-获取医学数据统计
+     * @return
+     */
+    List<BIItemDTO> queryLibTypeCou();
     
 }

+ 8 - 0
knowledgeman-service/src/main/java/com/diagbot/web/ConceptController.java

@@ -2,6 +2,7 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.BIItemDTO;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.GetAllConceptDTO;
 import com.diagbot.dto.GetAllForRelationDTO;
@@ -112,6 +113,13 @@ public class ConceptController {
         return RespDTO.onSuc(conceptFacade.conceptInfoExcelIm(file));
     }
 
+    @ApiOperation(value = "知识库标准化-获取医学数据统计[by:rengb]")
+    @PostMapping("/queryLibTypeCou")
+    @SysLogger("queryLibTypeCou")
+    public RespDTO<List<BIItemDTO>> queryLibTypeCou() {
+        return RespDTO.onSuc(conceptFacade.queryLibTypeCou());
+    }
+
     /**
      * 根据概念Id列表获取概念列表Map
      *

+ 34 - 0
knowledgeman-service/src/main/resources/mapper/ConceptMapper.xml

@@ -291,5 +291,39 @@
 		and (a.name like concat('%',#{name},'%')
 		or a.spell like concat('%',#{name},'%'))
 	</select>
+
+	<select id="queryLibTypeCou" parameterType="list" resultType="com.diagbot.dto.BIItemDTO">
+		SELECT
+		a.moduleName,
+		a.itemName,
+		CASE WHEN b.lib_type IS NULL THEN 0 else b.count END AS count
+		FROM
+		(SELECT
+		id,
+		CASE WHEN id=18 then '疾病'
+		WHEN id=1 THEN '症状'
+		WHEN id=35 OR id=33 THEN '体征'
+		WHEN id=12 OR id=13 THEN '化验'
+		WHEN id=16 THEN '辅检'
+		WHEN id=10 THEN '药品'
+		WHEN id=25 THEN '手术'
+		WHEN id=11 THEN '治疗'
+		ELSE '' END AS moduleName,
+		CASE WHEN id=18 THEN '疾病总数'
+		WHEN id=1 THEN '症状标准词'
+		WHEN id=25 THEN '手术项目'
+		WHEN id=11 THEN '治疗数目'
+		ELSE `name` END AS itemName
+		FROM kl_lexicon
+		WHERE id in (18,1,35,33,12,13,16,10,25,11)
+		) a
+		LEFT JOIN
+		(SELECT
+		lib_type,COUNT(1) AS count
+		FROM kl_concept
+		WHERE lib_type in (18,1,35,33,12,13,16,10,25,11)
+		GROUP BY lib_type) b
+		ON a.id=b.lib_type
+	</select>
     
 </mapper>