浏览代码

标准术语校验

zhaops 4 年之前
父节点
当前提交
a9579f3764

+ 120 - 0
src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -0,0 +1,120 @@
+package com.diagbot.facade;
+
+import com.diagbot.entity.node.LisName;
+import com.diagbot.entity.node.LisSet;
+import com.diagbot.entity.node.Medicine;
+import com.diagbot.entity.node.PacsName;
+import com.diagbot.entity.node.YiBaoDiseaseName;
+import com.diagbot.entity.node.YiBaoOperationName;
+import com.diagbot.repository.LisNameRepository;
+import com.diagbot.repository.LisSetRepository;
+import com.diagbot.repository.MedicineRepository;
+import com.diagbot.repository.PacsNameRepository;
+import com.diagbot.repository.YiBaoDiseaseRepository;
+import com.diagbot.repository.YiBaoOperationNameRepository;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.ConceptVO;
+import com.google.common.collect.Lists;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/9/10 14:51
+ */
+@Component
+public class ConceptFacade {
+    @Autowired
+    LisSetRepository lisSetRepository;
+
+    @Autowired
+    LisNameRepository lisNameRepository;
+
+    @Autowired
+    YiBaoDiseaseRepository yiBaoDiseaseRepository;
+
+    @Autowired
+    PacsNameRepository pacsNameRepository;
+
+    @Autowired
+    MedicineRepository medicineRepository;
+
+    @Autowired
+    YiBaoOperationNameRepository yiBaoOperationNameRepository;
+
+    public List<String> getConceptNames(ConceptVO conceptVO) {
+        if (ListUtil.isEmpty(conceptVO.getNames())) {
+            return new ArrayList<>();
+        }
+        List<String> retList = Lists.newLinkedList();
+        //type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血
+        switch (conceptVO.getType()) {
+            case 1:
+                List<LisSet> lisSetList = lisSetRepository.findByNameIn(conceptVO.getNames());
+                if (ListUtil.isNotEmpty(lisSetList)) {
+                    retList = lisSetList.stream()
+                            .map(i -> i.getName())
+                            .distinct()
+                            .collect(Collectors.toList());
+                }
+                break;
+            case 2:
+                List<LisName> lisNameList = lisNameRepository.findByNameIn(conceptVO.getNames());
+                if (ListUtil.isNotEmpty(lisNameList)) {
+                    retList = lisNameList.stream()
+                            .map(i -> i.getName())
+                            .distinct()
+                            .collect(Collectors.toList());
+                }
+                break;
+            case 3:
+                List<PacsName> pacsNameList = pacsNameRepository.findByNameIn(conceptVO.getNames());
+                if (ListUtil.isNotEmpty(pacsNameList)) {
+                    retList = pacsNameList.stream()
+                            .map(i -> i.getName())
+                            .distinct()
+                            .collect(Collectors.toList());
+                }
+                break;
+            case 4:
+                List<YiBaoDiseaseName> yiBaoDiseaseNameList = yiBaoDiseaseRepository.findByNameIn(conceptVO.getNames());
+                if (ListUtil.isNotEmpty(yiBaoDiseaseNameList)) {
+                    retList = yiBaoDiseaseNameList.stream()
+                            .map(i -> i.getName())
+                            .distinct()
+                            .collect(Collectors.toList());
+                }
+                break;
+            case 5:
+                List<Medicine> medicineList = medicineRepository.findByNameIn(conceptVO.getNames());
+                if (ListUtil.isNotEmpty(medicineList)) {
+                    retList = medicineList.stream()
+                            .map(i -> i.getName())
+                            .distinct()
+                            .collect(Collectors.toList());
+                }
+                break;
+            case 6:
+                List<YiBaoOperationName> yiBaoOperationNameList = yiBaoOperationNameRepository.findByNameIn(conceptVO.getNames());
+                if (ListUtil.isNotEmpty(yiBaoOperationNameList)) {
+                    retList = yiBaoOperationNameList.stream()
+                            .map(i -> i.getName())
+                            .distinct()
+                            .collect(Collectors.toList());
+                }
+                break;
+            case 7:
+                break;
+            case 8:
+                break;
+        }
+        return retList;
+    }
+}

+ 2 - 0
src/main/java/com/diagbot/repository/LisNameRepository.java

@@ -15,5 +15,7 @@ public interface LisNameRepository extends Neo4jRepository<LisName, Long> {
 
     @Query("MATCH (n:实验室检查) RETURN DISTINCT(KEYS(n))")
     List<List<String>> getKeys();
+
+    List<LisName> findByNameIn(List<String> names);
 }
 

+ 2 - 0
src/main/java/com/diagbot/repository/LisSetRepository.java

@@ -15,5 +15,7 @@ public interface LisSetRepository extends Neo4jRepository<LisSet, Long> {
 
     @Query("MATCH (n:实验室检查套餐) RETURN DISTINCT(KEYS(n))")
     List<List<String>> getKeys();
+
+    List<LisSet> findByNameIn(List<String> names);
 }
 

+ 2 - 1
src/main/java/com/diagbot/repository/MedicineRepository.java

@@ -1,6 +1,5 @@
 package com.diagbot.repository;
 
-import com.diagbot.entity.node.MedCodeName;
 import com.diagbot.entity.node.Medicine;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
@@ -12,5 +11,7 @@ public interface MedicineRepository extends Neo4jRepository<Medicine, Long> {
     List<Medicine> findByNameIs(String name);
 
     List<Medicine> findByNameContaining(String name);
+
+    List<Medicine> findByNameIn(List<String> names);
 }
 

+ 2 - 0
src/main/java/com/diagbot/repository/PacsNameRepository.java

@@ -12,5 +12,7 @@ public interface PacsNameRepository extends Neo4jRepository<PacsName, Long> {
     List<PacsName> findByNameIs(String name);
 
     List<PacsName> findByNameContaining(String name);
+
+    List<PacsName> findByNameIn(List<String> names);
 }
 

+ 2 - 0
src/main/java/com/diagbot/repository/YiBaoDiseaseRepository.java

@@ -11,5 +11,7 @@ public interface YiBaoDiseaseRepository extends Neo4jRepository<YiBaoDiseaseName
     List<YiBaoDiseaseName> findByNameIs(String name);
 
     List<YiBaoDiseaseName> findByNameContaining(String name);
+
+    List<YiBaoDiseaseName> findByNameIn(List<String> names);
 }
 

+ 2 - 0
src/main/java/com/diagbot/repository/YiBaoOperationNameRepository.java

@@ -11,5 +11,7 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
     List<YiBaoOperationName> findByNameIs(String name);
 
     List<YiBaoOperationName> findByNameContaining(String name);
+
+    List<YiBaoOperationName> findByNameIn(List<String> names);
 }
 

+ 20 - 0
src/main/java/com/diagbot/vo/ConceptVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/9/10 14:48
+ */
+@Getter
+@Setter
+public class ConceptVO {
+    List<String> names;
+    @NotNull(message = "请输入术语类型")
+    Integer type;
+}

+ 13 - 0
src/main/java/com/diagbot/web/RetrievalController.java

@@ -3,7 +3,9 @@ package com.diagbot.web;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.facade.ConceptFacade;
 import com.diagbot.facade.RetrievalFacade;
+import com.diagbot.vo.ConceptVO;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.StaticKnowledgeIndexVO;
 import io.swagger.annotations.Api;
@@ -29,6 +31,8 @@ import java.util.List;
 public class RetrievalController {
     @Autowired
     private RetrievalFacade retrievalFacade;
+    @Autowired
+    private ConceptFacade conceptFacade;
 
     @ApiOperation(value = "术语检索[zhaops]",
             notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血 <br>" +
@@ -49,4 +53,13 @@ public class RetrievalController {
         List<StaticKnowledgeIndexDTO> data = retrievalFacade.staticKnowledgeIndex(staticKnowledgeIndexVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "术语批量查询[zhaops]",
+            notes = "type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血 <br>" +
+                    "names: 术语列表<br>")
+    @PostMapping("/getConceptNames")
+    public RespDTO<List<String>> getConceptNames(@Valid @RequestBody ConceptVO conceptVO) {
+        List<String> data = conceptFacade.getConceptNames(conceptVO);
+        return RespDTO.onSuc(data);
+    }
 }