Просмотр исходного кода

导入数据预匹配标准词校验

zhaops 4 лет назад
Родитель
Сommit
44370ab40a

+ 28 - 2
cdssman-service/src/main/java/com/diagbot/facade/DeptConfigFacade.java

@@ -429,12 +429,38 @@ public class DeptConfigFacade {
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<DeptConfig> retList = Lists.newLinkedList();
         List<DeptConfig> originList = ExcelUtils.importExcel(file, 0, 1, DeptConfig.class);
-
         Map<String, List<DeptConfig>> allMap = getAll();
+
+        //获取标准术语
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, List<DeptConfig>> entry : allMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.Dept.getKey());
+        RespDTO<List<String>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+        List<String> uniqueNames = respDTO.data;
         if (ListUtil.isNotEmpty(originList)) {
             for (DeptConfig originItem : originList) {
                 if (allMap.containsKey(originItem.getHisName())) {
-                    retList.addAll(allMap.get(originItem.getHisName()));
+                    List<DeptConfig> items = allMap.get(originItem.getHisName());
+                    boolean flag = false;
+                    for (DeptConfig item : items) {
+                        if (uniqueNames.contains(item.getUniqueName())) {
+                            retList.add(item);
+                            flag = true;
+                        }
+                    }
+                    if (!flag) {
+                        retList.add(originItem);
+                    }
                 } else {
                     retList.add(originItem);
                 }

+ 28 - 2
cdssman-service/src/main/java/com/diagbot/facade/DiseaseConfigFacade.java

@@ -416,12 +416,38 @@ public class DiseaseConfigFacade {
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<DiseaseConfig> retList = Lists.newLinkedList();
         List<DiseaseConfig> originList = ExcelUtils.importExcel(file, 0, 1, DiseaseConfig.class);
-
         Map<String, List<DiseaseConfig>> allMap = getAll();
+
+        //获取标准术语
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, List<DiseaseConfig>> entry : allMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.Disease.getKey());
+        RespDTO<List<String>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+        List<String> uniqueNames = respDTO.data;
         if (ListUtil.isNotEmpty(originList)) {
             for (DiseaseConfig originItem : originList) {
                 if (allMap.containsKey(originItem.getHisName())) {
-                    retList.addAll(allMap.get(originItem.getHisName()));
+                    List<DiseaseConfig> items = allMap.get(originItem.getHisName());
+                    boolean flag = false;
+                    for (DiseaseConfig item : items) {
+                        if (uniqueNames.contains(item.getUniqueName())) {
+                            retList.add(item);
+                            flag = true;
+                        }
+                    }
+                    if (!flag) {
+                        retList.add(originItem);
+                    }
                 } else {
                     retList.add(originItem);
                 }

+ 29 - 3
cdssman-service/src/main/java/com/diagbot/facade/DrugConfigFacade.java

@@ -644,12 +644,38 @@ public class DrugConfigFacade {
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<DrugConfig> retList = Lists.newLinkedList();
         List<DrugConfig> originList = ExcelUtils.importExcel(file, 1, 1, DrugConfig.class);
-
         Map<String, List<DrugConfig>> allMap = getAll();
+
+        //获取标准术语
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, List<DrugConfig>> entry : allMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.Drug.getKey());
+        RespDTO<List<String>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+        List<String> uniqueNames = respDTO.data;
         if (ListUtil.isNotEmpty(originList)) {
             for (DrugConfig originItem : originList) {
                 if (allMap.containsKey(originItem.getHisName())) {
-                    retList.addAll(allMap.get(originItem.getHisName()));
+                    List<DrugConfig> items = allMap.get(originItem.getHisName());
+                    boolean flag = false;
+                    for (DrugConfig item : items) {
+                        if (uniqueNames.contains(item.getUniqueName())) {
+                            retList.add(item);
+                            flag = true;
+                        }
+                    }
+                    if (!flag) {
+                        retList.add(originItem);
+                    }
                 } else {
                     retList.add(originItem);
                 }
@@ -657,7 +683,7 @@ public class DrugConfigFacade {
         }
 
         String fileName = "药品关联数据(预匹配).xls";
-        ExcelUtils.exportExcel(retList, null, "sheet1", DrugConfig.class, fileName, response, 12.8f);
+        ExcelUtils.exportExcel(retList, getFrom(), "sheet1", DrugConfig.class, fileName, response, 12.8f);
     }
 
     /**

+ 37 - 2
cdssman-service/src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.HosRelationNumDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.DrugConfig;
 import com.diagbot.entity.LisConfig;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
@@ -493,8 +494,31 @@ public class LisConfigFacade{
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<LisConfig> retList = Lists.newLinkedList();
         List<LisConfig> originList = ExcelUtils.importExcel(file, 0, 1, LisConfig.class);
-
         Map<String,Map<String, List<LisConfig>>> allMap = getAll();
+
+        //标准术语校验
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, Map<String, List<LisConfig>>> entry : allMap.entrySet()) {
+                for (Map.Entry<String, List<LisConfig>> subEntry : entry.getValue().entrySet()) {
+                    if (ListUtil.isNotEmpty(subEntry.getValue())) {
+                        precUniqueName.addAll(subEntry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                    }
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.LisPack.getKey());
+        RespDTO<List<String>> respLisPackDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respLisPackDTO, "标准术语校验失败");
+        List<String> lisPackNames = respLisPackDTO.data;
+        conceptVO.setType(ConceptTypeEnum.Lis.getKey());
+        RespDTO<List<String>> respLisDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respLisDTO, "标准术语校验失败");
+        List<String> lisNames = respLisDTO.data;
+
         if (ListUtil.isNotEmpty(originList)) {
             for (LisConfig originItem : originList) {
                 if (StringUtils.isBlank(originItem.getHisDetailName())) {
@@ -502,7 +526,18 @@ public class LisConfigFacade{
                 }
                 if (allMap.containsKey(originItem.getHisName())
                         && allMap.get(originItem.getHisName()).containsKey(originItem.getHisDetailName())) {
-                    retList.addAll(allMap.get(originItem.getHisName()).get(originItem.getHisDetailName()));
+                    List<LisConfig> items=allMap.get(originItem.getHisName()).get(originItem.getHisDetailName());
+                    boolean flag = false;
+                    for (LisConfig item : items) {
+                        if (lisPackNames.contains(item.getUniqueName())
+                                || lisNames.contains(item.getUniqueName())) {
+                            retList.add(item);
+                            flag = true;
+                        }
+                    }
+                    if (!flag) {
+                        retList.add(originItem);
+                    }
                 } else {
                     retList.add(originItem);
                 }

+ 29 - 2
cdssman-service/src/main/java/com/diagbot/facade/OperationConfigFacade.java

@@ -425,18 +425,45 @@ public class OperationConfigFacade {
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<OperationConfig> retList = Lists.newLinkedList();
         List<OperationConfig> originList = ExcelUtils.importExcel(file, 0, 1, OperationConfig.class);
-
         Map<String, List<OperationConfig>> allMap = getAll();
+
+        //获取标准术语
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, List<OperationConfig>> entry : allMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.Opeartion.getKey());
+        RespDTO<List<String>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+        List<String> uniqueNames = respDTO.data;
         if (ListUtil.isNotEmpty(originList)) {
             for (OperationConfig originItem : originList) {
                 if (allMap.containsKey(originItem.getHisName())) {
-                    retList.addAll(allMap.get(originItem.getHisName()));
+                    List<OperationConfig> items = allMap.get(originItem.getHisName());
+                    boolean flag = false;
+                    for (OperationConfig item : items) {
+                        if (uniqueNames.contains(item.getUniqueName())) {
+                            retList.add(item);
+                            flag = true;
+                        }
+                    }
+                    if (!flag) {
+                        retList.add(originItem);
+                    }
                 } else {
                     retList.add(originItem);
                 }
             }
         }
 
+
         String fileName = "手术和操作关联数据(预匹配).xls";
         ExcelUtils.exportExcel(retList, null, "sheet1", OperationConfig.class, fileName, response, 12.8f);
     }

+ 28 - 2
cdssman-service/src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -423,12 +423,38 @@ public class PacsConfigFacade {
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<PacsConfig> retList = Lists.newLinkedList();
         List<PacsConfig> originList = ExcelUtils.importExcel(file, 0, 1, PacsConfig.class);
-
         Map<String, List<PacsConfig>> allMap = getAll();
+
+        //获取标准术语
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, List<PacsConfig>> entry : allMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.Pacs.getKey());
+        RespDTO<List<String>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+        List<String> uniqueNames = respDTO.data;
         if (ListUtil.isNotEmpty(originList)) {
             for (PacsConfig originItem : originList) {
                 if (allMap.containsKey(originItem.getHisName())) {
-                    retList.addAll(allMap.get(originItem.getHisName()));
+                    List<PacsConfig> items = allMap.get(originItem.getHisName());
+                    boolean flag = false;
+                    for (PacsConfig item : items) {
+                        if (uniqueNames.contains(item.getUniqueName())) {
+                            retList.add(item);
+                            flag = true;
+                        }
+                    }
+                    if (!flag) {
+                        retList.add(originItem);
+                    }
                 } else {
                     retList.add(originItem);
                 }

+ 19 - 2
cdssman-service/src/main/java/com/diagbot/facade/TransfusionConfigFacade.java

@@ -423,11 +423,28 @@ public class TransfusionConfigFacade {
     public void precDataMatch(MultipartFile file,HttpServletResponse response) {
         List<TransfusionConfig> retList = Lists.newLinkedList();
         List<TransfusionConfig> originList = ExcelUtils.importExcel(file, 0, 1, TransfusionConfig.class);
-
         Map<String, List<TransfusionConfig>> allMap = getAll();
+
+        //获取标准术语
+        List<String> precUniqueName = Lists.newArrayList();
+        if (allMap != null) {
+            for (Map.Entry<String, List<TransfusionConfig>> entry : allMap.entrySet()) {
+                if (ListUtil.isNotEmpty(entry.getValue())) {
+                    precUniqueName.addAll(entry.getValue().stream().map(i -> i.getUniqueName()).collect(Collectors.toList()));
+
+                }
+            }
+        }
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setNames(precUniqueName);
+        conceptVO.setType(ConceptTypeEnum.Transfusion.getKey());
+        RespDTO<List<String>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
+        RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
+        List<String> uniqueNames = respDTO.data;
         if (ListUtil.isNotEmpty(originList)) {
             for (TransfusionConfig originItem : originList) {
-                if (allMap.containsKey(originItem.getHisName())) {
+                if (allMap.containsKey(originItem.getHisName())
+                        && uniqueNames.contains(allMap.containsKey(originItem.getHisName()))) {
                     retList.addAll(allMap.get(originItem.getHisName()));
                 } else {
                     retList.add(originItem);