Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

MarkHuang 4 yıl önce
ebeveyn
işleme
5616a0630b

+ 1 - 1
src/main/java/com/diagbot/aggregate/IndicationTestAggregate.java

@@ -95,7 +95,7 @@ public class IndicationTestAggregate {
         TestLineVO testLineVO = new TestLineVO();
         testLineVO.setGetOne(true);
         Map<String, Object> billMap = testFacade.importExcel(file, testLineVO);
-        map.putAll(billMap);
+        map.put("【开单合理性】",billMap);
 
         file = testFacade.getMulFileByPath(mapPath.get("【其他值提醒_化验】"));
         Map<String, Object> otherLisMap = testFacade.testOtherTipLis(file, new TestLineVO());

+ 31 - 10
src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -13,9 +13,25 @@ import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.node.YiBaoDiseaseName;
 import com.diagbot.entity.node.YiBaoOperationName;
 import com.diagbot.enums.StaticTypeEnum;
-import com.diagbot.repository.*;
+import com.diagbot.repository.BaseNodeRepository;
+import com.diagbot.repository.DeptNode;
+import com.diagbot.repository.DeptRepository;
+import com.diagbot.repository.LisNameNode;
+import com.diagbot.repository.LisNameRepository;
+import com.diagbot.repository.LisSetNode;
+import com.diagbot.repository.LisSetRepository;
+import com.diagbot.repository.MedicineNode;
+import com.diagbot.repository.MedicineRepository;
+import com.diagbot.repository.PacsNameNode;
+import com.diagbot.repository.PacsNameRepository;
+import com.diagbot.repository.TransfusionRemindRepository;
+import com.diagbot.repository.YiBaoDiseaseNode;
+import com.diagbot.repository.YiBaoDiseaseRepository;
+import com.diagbot.repository.YiBaoOperationNameNode;
+import com.diagbot.repository.YiBaoOperationNameRepository;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.StaticKnowledgeIndexVO;
 import com.google.common.collect.Lists;
@@ -68,7 +84,9 @@ public class RetrievalFacade {
      */
     public RetrievalDTO index(RetrievalVO retrievalVO) {
         RetrievalDTO retrievalDTO = new RetrievalDTO();
-        retrievalVO.setInputStr(retrievalVO.getInputStr().trim().toUpperCase());
+        if (StringUtil.isWord(retrievalVO.getInputStr())) {
+            retrievalVO.setInputStr(retrievalVO.getInputStr().trim().toUpperCase());
+        }
         switch (retrievalVO.getType()) {
             case 1:
                 retrievalDTO.setLisNames(getLisPacks(retrievalVO.getInputStr()));
@@ -202,11 +220,14 @@ public class RetrievalFacade {
      */
     public List<StaticKnowledgeIndexDTO> staticKnowledgeIndex(StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
         List<StaticKnowledgeIndexDTO> retList = Lists.newLinkedList();
-        String inputStr = staticKnowledgeIndexVO.getInputStr().trim().toUpperCase();
+        String inputStr = staticKnowledgeIndexVO.getInputStr();
+        if (StringUtil.isWord(staticKnowledgeIndexVO.getInputStr())) {
+            inputStr = staticKnowledgeIndexVO.getInputStr().trim().toUpperCase();
+        }
         List<Integer> types = staticKnowledgeIndexVO.getTypes();
 
         //TODO 诊断
-        List<YiBaoDiseaseName> icdDiseaseList = icdDiseaseRepository.findByNameContaining(inputStr);
+        List<YiBaoDiseaseName> icdDiseaseList = icdDiseaseRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
         List<StaticKnowledgeIndexDTO> disRetList = Lists.newLinkedList();
         for (YiBaoDiseaseName icdDisease : icdDiseaseList) {
             StaticKnowledgeIndexDTO staticDTO = new StaticKnowledgeIndexDTO();
@@ -216,7 +237,7 @@ public class RetrievalFacade {
             disRetList.add(staticDTO);
         }
         //TODO 药品
-        List<Medicine> medicineList = medicineRepository.findByNameContaining(inputStr);
+        List<Medicine> medicineList = medicineRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> drugRetList = Lists.newLinkedList();
         for (Medicine medicine : medicineList) {
@@ -227,7 +248,7 @@ public class RetrievalFacade {
             drugRetList.add(staticDTO);
         }
         //TODO 检验套餐
-        List<LisSet> lisSetList = lisSetRepository.findByNameContaining(inputStr);
+        List<LisSet> lisSetList = lisSetRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisSetRetList = Lists.newLinkedList();
         for (LisSet lisSet : lisSetList) {
@@ -238,7 +259,7 @@ public class RetrievalFacade {
             lisSetRetList.add(staticDTO);
         }
         //TODO 检验明细关联出检验套餐
-        List<LisName> lisList = lisRepository.findByNameContaining(inputStr);
+        List<LisName> lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisSetRelatecLisRetList = Lists.newLinkedList();
         for (LisName lis : lisList) {
@@ -266,7 +287,7 @@ public class RetrievalFacade {
             }
         }
         //TODO 检验明细
-        lisList = lisRepository.findByNameContaining(inputStr);
+        lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisRetList = Lists.newLinkedList();
         for (LisName lis : lisList) {
@@ -277,7 +298,7 @@ public class RetrievalFacade {
             lisRetList.add(staticDTO);
         }
         //TODO 检查
-        List<PacsName> pacsList = pacsRepository.findByNameContaining(inputStr);
+        List<PacsName> pacsList = pacsRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> pacsRetList = Lists.newLinkedList();
         for (PacsName pacs : pacsList) {
@@ -290,7 +311,7 @@ public class RetrievalFacade {
 
 
         //TODO 手术和操作
-        List<YiBaoOperationName> operationList = operationRepository.findByNameContaining(inputStr);
+        List<YiBaoOperationName> operationList = operationRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> operationRetList = Lists.newLinkedList();
 

+ 11 - 5
src/main/java/com/diagbot/facade/TestFacade.java

@@ -341,7 +341,7 @@ public class TestFacade {
             indicationPushVOList.add(indicationPushVO);
         }
 
-        Map<String, Object> map = getDebugMap(indicationPushVOList, "3", start);
+        Map<String, Object> map = getDebugMapMulti(indicationPushVOList, "3", start);
         return map;
     }
 
@@ -540,7 +540,7 @@ public class TestFacade {
             indicationPushVOList.add(indicationPushVO);
         }
 
-        Map<String, Object> map = getDebugMap(indicationPushVOList, "3", start);
+        Map<String, Object> map = getDebugMapMulti(indicationPushVOList, "3", start);
         return map;
     }
 
@@ -957,8 +957,12 @@ public class TestFacade {
         }
         map.put("总条数", indicationPushVOList.size() + "条");
         map.put("出错条数", msg.size() + "条");
-        map.put("出错信息", msg);
-        map.put("程序报错", errMsg);
+        if (ListUtil.isNotEmpty(msg)) {
+            map.put("出错信息", msg);
+        }
+        if (ListUtil.isNotEmpty(errMsg)) {
+            map.put("程序报错", errMsg);
+        }
         map.put("执行时间", (System.currentTimeMillis() - start) / 1000.0 + "秒");
         return map;
     }
@@ -1001,7 +1005,9 @@ public class TestFacade {
                 }
             }
             map.put("总条数", indicationPushVOList.size() + "条");
-            map.put("出错信息", errMsg);
+            if (ListUtil.isNotEmpty(errMsg)) {
+                map.put("出错信息", errMsg);
+            }
             map.put("出错条数", errMsg.size() + "条");
             Long t2 = System.currentTimeMillis();
             map.put("执行时间", (t2 - start) / 1000.0 + "秒");

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

@@ -11,5 +11,7 @@ public interface DeptRepository extends Neo4jRepository<Dept, Long> {
     List<Dept> findByNameContaining(String name);
 
     List<Dept> findByNameIs(String name);
+
+    List<Dept> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 3 - 3
src/main/java/com/diagbot/repository/LisNameNode.java

@@ -180,12 +180,12 @@ public class LisNameNode {
 		List<LisDetailDTO> lislist = new ArrayList<>();
 		LisDetailDTO lisDetailDTO;
 
-		List<LisName> lislt = lisRepository.findByNameOrPycodeContaininglimit100(name);
-		/*lislt.addAll(baseNodeRepository.getLisbyPinYin(name));
+		List<LisName> lislt = lisRepository.findByNameContainingOrPycodeContaining(name,name);
+		//lislt.addAll(baseNodeRepository.getLisbyPinYin(name));
 
 		if (ListUtil.isNotEmpty(lislt) && lislt.size() > 100) {
 			lislt = lislt.subList(0, 100);
-		}*/
+		}
 
 		for (LisName lis : lislt) {
 			lisDetailDTO = new LisDetailDTO();

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

@@ -16,6 +16,8 @@ public interface LisNameRepository extends Neo4jRepository<LisName, Long> {
 
     List<LisName> findByNameIn(List<String> names);
 
+    List<LisName> findByNameContainingOrPycodeContaining(String name, String pycode);
+
     @Query("MATCH (n:实验室检查名称)-[r]->(b) where n.name contains {name} or (EXISTS(n.拼音编码) AND n.拼音编码 CONTAINS {name}) return n.name, n.拼音编码,collect(r), collect(b) limit 100")
     List<LisName> findByNameOrPycodeContaininglimit100(@Param("name") String name);
 }

+ 2 - 2
src/main/java/com/diagbot/repository/LisSetNode.java

@@ -148,8 +148,8 @@ public class LisSetNode {
 
 		List<String> lispacklist = new ArrayList<>();
 
-		List<LisSet> lisSetlist = lisPackRepository.findByNameContaining(name);
-		lisSetlist.addAll(baseNodeRepository.getLisSetbyPinYin(name));
+		List<LisSet> lisSetlist = lisPackRepository.findByNameContainingOrPycodeContaining(name, name);
+		//lisSetlist.addAll(baseNodeRepository.getLisSetbyPinYin(name));
 
 		if (ListUtil.isNotEmpty(lisSetlist) && lisSetlist.size() > 100) {
 			lisSetlist = lisSetlist.subList(0, 100);

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

@@ -1,7 +1,6 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.LisSet;
-import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
 import java.util.List;
@@ -14,5 +13,7 @@ public interface LisSetRepository extends Neo4jRepository<LisSet, Long> {
     List<LisSet> findByNameContaining(String name);
 
     List<LisSet> findByNameIn(List<String> names);
+
+    List<LisSet> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 15 - 6
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -1,12 +1,21 @@
 package com.diagbot.repository;
 
-import com.diagbot.dto.*;
-import com.diagbot.entity.node.*;
+import com.diagbot.dto.BillNeoDTO;
+import com.diagbot.dto.DrugBillNeoDTO;
+import com.diagbot.dto.DrugInfoDTO;
+import com.diagbot.dto.NodeNeoDTO;
+import com.diagbot.entity.node.Age;
+import com.diagbot.entity.node.Disease;
+import com.diagbot.entity.node.Group;
+import com.diagbot.entity.node.MedAllergen;
+import com.diagbot.entity.node.Medicine;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.NeoUtil;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public class MedicineNode {
 
@@ -119,8 +128,8 @@ public class MedicineNode {
         List<DrugInfoDTO> medslist = new ArrayList<>();
         DrugInfoDTO drugInfoDTO;
 
-        List<Medicine> medicines = medicineRepository.findByNameContaining(name);
-        medicines.addAll(baseNodeRepository.getMedicinebyPinYin(name));
+        List<Medicine> medicines = medicineRepository.findByNameContainingOrPycodeContaining(name, name);
+        //medicines.addAll(baseNodeRepository.getMedicinebyPinYin(name));
 
         if (ListUtil.isNotEmpty(medicines) && medicines.size() > 100) {
             medicines = medicines.subList(0, 100);

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

@@ -13,5 +13,7 @@ public interface MedicineRepository extends Neo4jRepository<Medicine, Long> {
     List<Medicine> findByNameContaining(String name);
 
     List<Medicine> findByNameIn(List<String> names);
+
+    List<Medicine> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 2 - 3
src/main/java/com/diagbot/repository/PacsNameNode.java

@@ -14,7 +14,6 @@ import com.diagbot.entity.node.OralMedicine;
 import com.diagbot.entity.node.PacsDescribe;
 import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.node.Vital;
-import com.diagbot.entity.node.base.BaseNode;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 
@@ -189,8 +188,8 @@ public class PacsNameNode {
 
         List<String> pacslist = new ArrayList<>();
 
-        List<PacsName> pacslt = pacsRepository.findByNameContaining(name);
-        pacslt.addAll(baseNodeRepository.getPacsbyPinYin(name));
+        List<PacsName> pacslt = pacsRepository.findByNameContainingOrPycodeContaining(name, name);
+        //pacslt.addAll(baseNodeRepository.getPacsbyPinYin(name));
 
         if (ListUtil.isNotEmpty(pacslt) && pacslt.size() > 100) {
             pacslt = pacslt.subList(0, 100);

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

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

+ 2 - 2
src/main/java/com/diagbot/repository/YiBaoDiseaseNode.java

@@ -252,8 +252,8 @@ public class YiBaoDiseaseNode {
 		List<String> dislist = new ArrayList<>();
 		List<DiseaseInfoDTO> diseaseInfoDTOList = new ArrayList<>();
 
-		List<YiBaoDiseaseName> diseases = diseaseRepository.findByNameContaining(name);
-		diseases.addAll(baseNodeRepository.getYiBaoDiseasebyPinYin(name));
+		List<YiBaoDiseaseName> diseases = diseaseRepository.findByNameContainingOrPycodeContaining(name, name);
+		//diseases.addAll(baseNodeRepository.getYiBaoDiseasebyPinYin(name));
 
 		if (ListUtil.isNotEmpty(diseases) && diseases.size() > 100) {
 			diseases = diseases.subList(0, 100);

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

@@ -13,5 +13,9 @@ public interface YiBaoDiseaseRepository extends Neo4jRepository<YiBaoDiseaseName
     List<YiBaoDiseaseName> findByNameContaining(String name);
 
     List<YiBaoDiseaseName> findByNameIn(List<String> names);
+
+    List<YiBaoDiseaseName> findByNameContainingOrPycodeContaining(String name, String pycode);
+
+    List<YiBaoDiseaseName> findTop100ByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 2 - 2
src/main/java/com/diagbot/repository/YiBaoOperationNameNode.java

@@ -174,8 +174,8 @@ public class YiBaoOperationNameNode {
         List<OperationInfoDTO> opslist = new ArrayList<>();
         OperationInfoDTO opInfoDTO;
 
-        List<YiBaoOperationName> operations = operationRepository.findByNameContaining(name);
-        operations.addAll(baseNodeRepository.getYiBaoOperationbyPinYin(name));
+        List<YiBaoOperationName> operations = operationRepository.findByNameContainingOrPycodeContaining(name, name);
+        //operations.addAll(baseNodeRepository.getYiBaoOperationbyPinYin(name));
 
         if (ListUtil.isNotEmpty(operations) && operations.size() > 100) {
             operations = operations.subList(0, 100);

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

@@ -13,4 +13,6 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
     List<YiBaoOperationName> findByNameContaining(String name);
 
     List<YiBaoOperationName> findByNameIn(List<String> names);
+
+    List<YiBaoOperationName> findByNameContainingOrPycodeContaining(String name, String pycode);
 }

+ 32 - 7
src/main/java/com/diagbot/util/StringUtil.java

@@ -65,7 +65,7 @@ public class StringUtil {
      */
     public static String remove_ctl(String str) {
         String trim = "";
-        if(StringUtils.isNotEmpty(str)){
+        if (StringUtils.isNotEmpty(str)) {
             trim = str.replaceAll("\r|\n|\r\n", "").trim();
         }
         return trim;
@@ -195,11 +195,11 @@ public class StringUtil {
      * @param target
      * @return
      */
-//    public static boolean isSameContent(List<String> source, List<String> target) {
-//        Set<String> sourceSet = Sets.newHashSet(source);
-//        Set<String> targetSet = Sets.newHashSet(target);
-//        return Sets.difference(sourceSet, targetSet).isEmpty() && Sets.difference(targetSet, sourceSet).isEmpty();
-//    }
+    //    public static boolean isSameContent(List<String> source, List<String> target) {
+    //        Set<String> sourceSet = Sets.newHashSet(source);
+    //        Set<String> targetSet = Sets.newHashSet(target);
+    //        return Sets.difference(sourceSet, targetSet).isEmpty() && Sets.difference(targetSet, sourceSet).isEmpty();
+    //    }
 
     /**
      * 解析时间
@@ -231,7 +231,7 @@ public class StringUtil {
      * @param datetime
      * @return
      */
-    public static Date parseDateTime(String datetime,String[] dateFormats) {
+    public static Date parseDateTime(String datetime, String[] dateFormats) {
         Date date = null;
         try {
             datetime = remove_ctl(datetime);
@@ -249,4 +249,29 @@ public class StringUtil {
         }
     }
 
+    /**
+     * 是否是纯字母
+     *
+     * @param word
+     * @return
+     */
+    public static Boolean isWord(String word) {
+        Boolean isWord = false;
+        if (word.trim().matches("[a-zA-Z]+")) {
+            isWord = true;
+        }
+        return isWord;
+    }
+
+    // 测试主函数
+    public static void main(String args[]) {
+        System.out.println(StringUtil.isWord("  "));
+        System.out.println(StringUtil.isWord(""));
+        System.out.println(StringUtil.isWord("高e"));
+        System.out.println(StringUtil.isWord("e e"));
+        System.out.println(StringUtil.isWord("ee"));
+        System.out.println(StringUtil.isWord("   ee   "));
+        System.out.println(StringUtil.isWord("Gao"));
+    }
+
 }

+ 1 - 1
src/main/java/com/diagbot/web/StaticKnowledgeController.java

@@ -30,7 +30,7 @@ public class StaticKnowledgeController {
     @ApiOperation(value = "更新是否有静态信息状态[zhaops]",
             notes = "type: 术语类型<br>" +
                     "name: 标准术语名称<br>" +
-                    "是否有静态知识:0-无,1-有<br>")
+                    "hasInfo:是否有静态知识:0-无,1-有<br>")
     @PostMapping("/updateHasInfoStatus")
     public RespDTO<Boolean> updateHasInfoStatus(@Valid @RequestBody HasStaticKnowledgeVO hasStaticKnowledgeVO) {
         Boolean data = staticKnowledgeFacade.updateHasInfoStatus(hasStaticKnowledgeVO);