浏览代码

Merge remote-tracking branch 'origin/dev/mapping20210603' into debug

# Conflicts:
#	cdssman-service/src/main/java/com/diagbot/client/CdssCoreClient.java
#	cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java
zhaops 4 年之前
父节点
当前提交
58330c0165

+ 6 - 1
cdssman-service/src/main/java/com/diagbot/aggregate/CallIndicationAggregate.java

@@ -116,7 +116,12 @@ public class CallIndicationAggregate {
 
             RespDTO<IndicationDTO> respDTO = cdssCoreClient.indication(indicationPushVO);
             Integer callCount = 0;
-            while (callCount <= 3 && RespDTOUtil.respIsNG(respDTO)) {
+            while (callCount <= 3
+                    && (RespDTOUtil.respIsNG(respDTO)
+                    || (ListUtil.isEmpty(respDTO.data.getBillMsgList())
+                    && ListUtil.isEmpty(respDTO.data.getHighRiskList())
+                    && ListUtil.isEmpty(respDTO.data.getCriticalValList())
+                    && ListUtil.isEmpty(respDTO.data.getOtherList())))) {
                 respDTO = cdssCoreClient.indication(indicationPushVO);
                 callCount++;
             }

+ 1 - 2
cdssman-service/src/main/java/com/diagbot/client/CdssClient.java

@@ -77,8 +77,7 @@ public interface CdssClient {
      * @param type
      * @param userId
      */
-    @PostMapping("/tran/mappingConfig/importExcel")
-    @Transactional
+    @PostMapping(value ="/tran/mappingConfig/importExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
     void importExcel(@RequestPart("file") MultipartFile file,
                      @RequestParam("hospitalId") Long hospitalId,
                      @RequestParam("type") Integer type,

+ 3 - 2
cdssman-service/src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -218,9 +218,10 @@ public interface CdssCoreClient {
     @PostMapping("/klDiagnose/findDiaName")
     public RespDTO<List<DiagnosesFindDTO>> findDiaNameAll(@Valid @RequestBody DiagnosesFindVO diagnosesFindVO);
 
+    @PostMapping("/term/termMatching")
+    public RespDTO<List<TermConceptDTO>> getTermMatching(@Valid @RequestBody TermMatchingVO termMatchingVO);
+
     @PostMapping("/klRegulation/index")
     public RespDTO<List<RegulationIndexDTO>> index(@RequestBody RegulationIndexVO regulationIndexVO);
 
-    @PostMapping("/term/termMatching")
-    public RespDTO<List<TermConceptDTO>> getTermMatching(@Valid @RequestBody TermMatchingVO termMatchingVO);
 }

+ 4 - 4
cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -288,14 +288,14 @@ public class CdssCoreHystrix implements CdssCoreClient {
     }
 
     @Override
-    public RespDTO<List<RegulationIndexDTO>> index(RegulationIndexVO regulationIndexVO) {
-        log.error("【hystrix】调用{}异常", "index");
+    public RespDTO<List<TermConceptDTO>> getTermMatching(@Valid TermMatchingVO termMatchingVO) {
+        log.error("【hystrix】调用{}异常", "getTermMatching");
         return null;
     }
 
     @Override
-    public RespDTO<List<TermConceptDTO>> getTermMatching(@Valid TermMatchingVO termMatchingVO) {
-        log.error("【hystrix】调用{}异常", "getTermMatching");
+    public RespDTO<List<RegulationIndexDTO>> index(RegulationIndexVO regulationIndexVO) {
+        log.error("【hystrix】调用{}异常", "index");
         return null;
     }
 }

+ 4 - 1
cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssHystrix.java

@@ -54,7 +54,10 @@ public class CdssHystrix implements CdssClient {
     }
 
     @Override
-    public void importExcel(MultipartFile file, Long hospitalId, Integer type, String userId) {
+    public void importExcel(@RequestPart("file") MultipartFile file,
+                            @RequestParam("hospitalId") Long hospitalId,
+                            @RequestParam("type") Integer type,
+                            @RequestParam("uesrId") String userId) {
         log.error("【hystrix】调用{}异常", "importExcel");
     }
 

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -14,6 +14,8 @@ import com.diagbot.entity.KlConceptDetail;
 import com.diagbot.entity.KlConceptStatic;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.KlConceptStaticServiceImpl;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
@@ -61,6 +63,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<List<StaticKnowledgeIndexDTO>> respDTO = cdssCoreClient.staticKnowledgeIndex(staticKnowledgeIndexVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             retList = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
 
         if (staticKnowledgeIndexVO.getHasInfo() != null && staticKnowledgeIndexVO.getHasInfo().equals(1)) {
@@ -82,6 +86,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<StaticKnowledgeDTO> respDTO = cdssCoreClient.getStaticKnowledge(staticKnowledgeVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             staticKnowledgeDTO = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
         return staticKnowledgeDTO;
     }
@@ -97,6 +103,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<Page<KlConceptStaticDTO>> respDTO = cdssCoreClient.getPage(klConceptStaticPageVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             page = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
         List<KlConceptStaticDTO> records = page.getRecords();
         List<String> userIds = records.stream().map(KlConceptStaticDTO::getModifier)
@@ -132,6 +140,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<Boolean> respDTO = cdssCoreClient.saveOrUpdateRecord(klConceptStaticVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             success = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
         return success;
     }
@@ -150,6 +160,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<Boolean> respDTO = cdssCoreClient.changeStatus(changeStatusVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             success = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
         return success;
     }
@@ -165,6 +177,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<KlConceptStaticDTO> respDTO = cdssCoreClient.getRecordById(idVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             klConceptStaticDTO = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
         return klConceptStaticDTO;
     }
@@ -180,6 +194,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         RespDTO<Boolean> respDTO = cdssCoreClient.isExist(klConceptStaticVO);
         if (RespDTOUtil.respIsOK(respDTO)) {
             exist = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
         }
         return exist;
     }

+ 30 - 26
cdssman-service/src/main/java/com/diagbot/facade/MappingConfigFacade.java

@@ -377,16 +377,25 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
             if (StringUtil.isBlank(item.getHisDetailName())) {
                 item.setHisDetailName("");
             }
+            item.setId(null);
+            item.setHospitalId(null);
         }
 
-        Map<String, List<MappingConfig>> hisMap = list.stream().collect(Collectors.groupingBy(MappingConfig::getHisName));
+        list = list.stream().distinct().collect(Collectors.toList());
+
+        Map<String, List<MappingConfig>> hisMap = list.stream()
+                .filter(i -> StringUtil.isNotBlank(i.getHisName()))
+                .collect(Collectors.groupingBy(MappingConfig::getHisName));
         for (Map.Entry<String, List<MappingConfig>> entry : hisMap.entrySet()) {
             Map<String, Map<Long, List<Long>>> subMap = new HashMap<>();
             Map<String, List<MappingConfig>> detailMap = entry.getValue().stream()
                     .collect(Collectors.groupingBy(MappingConfig::getHisDetailName));
             for (Map.Entry<String, List<MappingConfig>> subEntry : detailMap.entrySet()) {
-                subMap.put(subEntry.getKey(), subEntry.getValue().stream().collect(Collectors.groupingBy(MappingConfig::getConceptId,
-                        Collectors.mapping(MappingConfig::getFormConceptId, Collectors.toList()))));
+                subMap.put(subEntry.getKey(),
+                        subEntry.getValue()
+                                .stream()
+                                .collect(Collectors.groupingBy(MappingConfig::getConceptId,
+                                        Collectors.mapping(MappingConfig::getFormConceptId, Collectors.toList()))));
             }
             retMap.put(entry.getKey(), subMap);
         }
@@ -433,37 +442,32 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
         RespDTOUtil.respNGDealCover(respDTO, "标准术语校验失败");
         List<IndexBatchDTO> indexList = respDTO.data;
         if (ListUtil.isNotEmpty(indexList)) {
-            Map<Long, List<IndexBatchDTO>> indexMap
-                    = indexList.stream().collect(Collectors.groupingBy(IndexBatchDTO::getId));
+            Map<Long, String> idNameMap
+                    = indexList.stream().collect(Collectors.toMap(IndexBatchDTO::getId, IndexBatchDTO::getName));
             for (Map.Entry<String, Map<String, Map<Long, List<Long>>>> entry : idMap.entrySet()) {
                 Map<String, Map<String, List<String>>> subMap = new HashMap<>();
                 for (Map.Entry<String, Map<Long, List<Long>>> subEntry : entry.getValue().entrySet()) {
                     Map<String, List<String>> thirdMap = new HashMap<>();
-                    List<String> uniqueNames = Lists.newArrayList();
-                    List<String> forms = Lists.newArrayList();
-                    for (Long conceptId : subEntry.getValue().keySet()) {
-                        uniqueNames.addAll(indexMap.get(conceptId).stream().map(IndexBatchDTO::getName).collect(Collectors.toList()));
-                    }
-                    List<Long> formConceptIds = subEntry.getValue().values()
-                            .stream()
-                            .flatMap(Collection::stream)
-                            .distinct()
-                            .collect(Collectors.toList());
-                    for (Long formConceptId : formConceptIds) {
-                        if (formConceptId == null) {
-                            forms.add("");
-                        } else {
-                            forms.addAll(indexMap.get(formConceptId).stream().map(IndexBatchDTO::getName).collect(Collectors.toList()));
+                    for (Map.Entry<Long, List<Long>> thirdEntry : subEntry.getValue().entrySet()) {
+                        List<Long> formConceptIds = thirdEntry.getValue();
+                        List<String> forms = Lists.newArrayList();
+                        if (ListUtil.isNotEmpty(formConceptIds)) {
+                            for (Long formConceptId : formConceptIds) {
+                                if (formConceptId == null) {
+                                    forms.add("");
+                                } else {
+                                    forms.add(idNameMap.get(formConceptId));
+                                }
+                            }
+                            forms = forms.stream().distinct().collect(Collectors.toList());
+                            thirdMap.put(idNameMap.get(thirdEntry.getKey()), forms);
                         }
                     }
-                    forms = forms.stream().distinct().collect(Collectors.toList());
-                    for (String uniqueName : uniqueNames) {
-                        thirdMap.put(uniqueName, forms);
-                    }
-
                     subMap.put(subEntry.getKey(), thirdMap);
                 }
-                retMap.put(entry.getKey(), subMap);
+                if (subMap != null && subMap.size() > 0) {
+                    retMap.put(entry.getKey(), subMap);
+                }
             }
         }
         return retMap;

+ 1 - 1
cdssman-service/src/main/java/com/diagbot/facade/MedSearchDataFacade.java

@@ -267,7 +267,7 @@ public class MedSearchDataFacade {
                         Lis lis = new Lis();
                         if (hospitalId < 0) {
                             lis.setName(result.getRuleBaseLibName());
-                            lis.setDetailName("");
+                            lis.setDetailName(result.getRuleBaseLibName());
                         } else {
                             lis.setName(result.getRuleBaseHisName());
                             lis.setDetailName(result.getRuleBaseHisDetailName());

+ 6 - 0
cdssman-service/src/main/java/com/diagbot/facade/ResultStaticKnowledgeFacade.java

@@ -23,6 +23,7 @@ import com.diagbot.entity.ResultStaticKnowledge;
 import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
+import com.diagbot.enums.MatchSourceEnum;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -189,6 +190,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                 .map(i -> i.getName())
                 .collect(Collectors.toList());
         ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
         conceptVO.setNames(uniqueNames);
         conceptVO.setType(ConceptTypeEnum.LisPack.getKey());
         RespDTO<List<IndexBatchDTO>> respLisPackDTO = cdssCoreClient.getConceptNames(conceptVO);
@@ -388,6 +390,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                 .distinct()
                 .collect(Collectors.toList());
         ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
         conceptVO.setNames(uniqueNames);
         conceptVO.setType(ConceptTypeEnum.Pacs.getKey());
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
@@ -580,6 +583,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                 .distinct()
                 .collect(Collectors.toList());
         ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
         conceptVO.setNames(uniqueNames);
         conceptVO.setType(ConceptTypeEnum.Drug.getKey());
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
@@ -738,6 +742,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                 .distinct()
                 .collect(Collectors.toList());
         ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
         conceptVO.setNames(uniqueNames);
         conceptVO.setType(ConceptTypeEnum.Disease.getKey());
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
@@ -896,6 +901,7 @@ public class ResultStaticKnowledgeFacade extends ResultStaticKnowledgeServiceImp
                 .distinct()
                 .collect(Collectors.toList());
         ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(MatchSourceEnum.StandWord.getKey());
         conceptVO.setNames(uniqueNames);
         conceptVO.setType(ConceptTypeEnum.Operation.getKey());
         RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);

+ 13 - 15
cdssman-service/src/main/resources/mapper/HospitalInfoMapper.xml

@@ -58,22 +58,20 @@
         LEFT JOIN (
         SELECT
         hospital_id,
-        sum( type = 1 ) AS lisNum,
-        sum( type = 3 ) AS pacsNum,
-        sum( type = 4 ) AS diseaseNum,
-        sum( type = 5 ) AS drugNum,
-        sum( type = 6 ) AS operationNum,
-        sum( type = 7 ) AS deptNum,
-        sum( type = 8 ) AS transfusionNum,
-        sum( type = 10 ) AS scaleNum,
-        sum( type = 11 ) AS nurseNum,
-        sum( type = 12 ) AS tcmdiseaseNum,
-        sum( type = 13 ) AS tcmsyndromeNum,
-        sum( type = 14 ) AS anesthesiaNum
+        sum( IF ( type = 1, num, 0 ) ) AS lisNum,
+        sum( IF ( type = 3, num, 0 ) ) AS pacsNum,
+        sum( IF ( type = 4, num, 0 ) ) AS diseaseNum,
+        sum( IF ( type = 5, num, 0 ) ) AS drugNum,
+        sum( IF ( type = 6, num, 0 ) ) AS operationNum,
+        sum( IF ( type = 7, num, 0 ) ) AS deptNum,
+        sum( IF ( type = 8, num, 0 ) ) AS transfusionNum,
+        sum( IF ( type = 10, num, 0 ) ) AS scaleNum,
+        sum( IF ( type = 11, num, 0 ) ) AS nurseNum,
+        sum( IF ( type = 12, num, 0 ) ) AS tcmdiseaseNum,
+        sum( IF ( type = 13, num, 0 ) ) AS tcmsyndromeNum,
+        sum( IF ( type = 14, num, 0 ) ) AS anesthesiaNum
         FROM
-        tran_mapping_config
-        WHERE
-        is_deleted = 'N'
+        ( SELECT hospital_id, type, count(*) AS num FROM tran_mapping_config WHERE is_deleted = 'N' GROUP BY hospital_id, type ) t1
         GROUP BY
         hospital_id
         ) b ON a.id = b.hospital_id