Quellcode durchsuchen

量表规则匹配

wangfeng vor 4 Jahren
Ursprung
Commit
730a1e6d39

+ 2 - 0
src/main/java/com/diagbot/dto/ConceptScaleDetailDTO.java

@@ -97,4 +97,6 @@ public class ConceptScaleDetailDTO {
      * 推送信息
      */
     private String pushInfo;
+
+    private Integer match;
 }

+ 45 - 4
src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -11,6 +11,7 @@ import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.KlConceptDetailDTO;
 import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.KlScaleByIdDTO;
+import com.diagbot.dto.ScaleDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeDetailDTO;
 import com.diagbot.dto.StaticKnowledgeIndexPageDTO;
@@ -37,6 +38,7 @@ import com.diagbot.vo.IdVO;
 import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.KlConceptStaticVO;
 import com.diagbot.vo.KlScaleByIdVO;
+import com.diagbot.vo.ScaleVO;
 import com.diagbot.vo.StaticKnowledgeIndexPageVO;
 import com.diagbot.vo.StaticKnowledgeVO;
 import com.google.common.collect.Lists;
@@ -79,6 +81,8 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
     private DictionaryFacade dictionaryFacade;
     @Autowired
     private MedRetrievalFacade medRetrievalFacade;
+    @Autowired
+    KlRegulationBaseFacade klRegulationBaseFacade;
 
     /**
      * 获取静态知识
@@ -267,7 +271,9 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         }
         if (type.equals(LexiconEnum.Scale.getKey())) {
             //量表详情
-            staticKnowledgeDTO.setScale(getScaleStructure(concept.getId()));
+            ScaleVO scaleVO = new ScaleVO();
+            BeanUtil.copyProperties(staticKnowledgeVO, scaleVO);
+            staticKnowledgeDTO.setScale(getScaleStructure(scaleVO, concept.getId()));
         }
 
         staticKnowledgeDTO.setClinicalPathwayName(staticInfo.getClinicalPathwayName());
@@ -781,6 +787,7 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
 
     /**
      * 获取量表结构map Map<name_type,List<KlConceptScale>>
+     *
      * @param getDetailVO
      * @return
      */
@@ -802,7 +809,7 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         if (ListUtil.isNotEmpty(conceptList)) {
             for (KlConcept concept : conceptList) {
                 retMap.put(concept.getLibName() + "_" + dicTypeNameMap.get(LexiconEnum.Scale.getName()),
-                        getScaleStructure(concept.getId()));
+                        getScaleStructure(new ScaleVO(), concept.getId()));
             }
         }
         return retMap;
@@ -813,7 +820,7 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
      * @param conceptId
      * @return
      */
-    public ConceptScaleDTO getScaleStructure(Long conceptId) {
+    public ConceptScaleDTO getScaleStructure(ScaleVO scaleVO, Long conceptId) {
         ConceptScaleDTO retDTO = new ConceptScaleDTO();
         List<KlConceptScale> scaleList = klConceptScaleFacade.list(new QueryWrapper<KlConceptScale>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -823,6 +830,40 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
             return null;
         }
         List<ConceptScaleDetailDTO> scaleDetailList = BeanUtil.listCopyTo(scaleList, ConceptScaleDetailDTO.class);
+        if (null != scaleVO) {
+            List<String> codeList = new ArrayList<>();
+            codeList = scaleDetailList.stream().map(ac -> ac.getRuleCode()).collect(Collectors.toList());
+            scaleVO.setCodeList(codeList);
+            ScaleDTO scaleDTO = klRegulationBaseFacade.process(scaleVO);
+            List<String> codeListNew = scaleDTO.getCodeList(); //Arrays.asList("100001", "100013");
+            if (ListUtil.isNotEmpty(codeListNew)) {
+                for (String str : codeListNew) {
+                    for (ConceptScaleDetailDTO data2 : scaleDetailList) {
+                        if (null!=data2.getRuleCode()&&data2.getRuleCode().equals(str)) {
+                            data2.setMatch(1);
+                        }
+                    }
+                }
+            }
+        }
+
+        if (null != scaleVO) {
+            List<String> codeList = new ArrayList<>();
+            codeList = scaleDetailList.stream().map(ac -> ac.getRuleCode()).collect(Collectors.toList());
+            scaleVO.setCodeList(codeList);
+            ScaleDTO scaleDTO = klRegulationBaseFacade.process(scaleVO);
+            List<String> codeListNew = scaleDTO.getCodeList(); //Arrays.asList("100001", "100013");
+            if (ListUtil.isNotEmpty(codeListNew)) {
+                for (String str : codeListNew) {
+                    for (ConceptScaleDetailDTO data2 : scaleDetailList) {
+                        if (null!=data2.getRuleCode()&&data2.getRuleCode().equals(str)) {
+                            data2.setMatch(1);
+                        }
+                    }
+                }
+            }
+        }
+
         Map<Long, List<ConceptScaleDetailDTO>> parentMap
                 = scaleDetailList.stream().collect(Collectors.groupingBy(ConceptScaleDetailDTO::getParentId));
         List<ConceptScaleDetailDTO> retScacleDetailList = parentMap.get(-1L);
@@ -852,7 +893,7 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
      * @param treeMap
      */
     public ConceptScaleSubDTO scaleRecursion(ConceptScaleSubDTO item,
-                                                   Map<Long, List<ConceptScaleDetailDTO>> treeMap) {
+                                             Map<Long, List<ConceptScaleDetailDTO>> treeMap) {
         List<ConceptScaleDetailDTO> list = item.getDetailList();
         if (ListUtil.isNotEmpty(list)) {
             for (ConceptScaleDetailDTO detail : list) {

+ 16 - 0
src/main/java/com/diagbot/vo/ScaleStaticAllVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-06-18 10:16
+ */
+@Setter
+@Getter
+public class ScaleStaticAllVO {
+    private StaticKnowledgeVO staticKnowledgeVO;
+    private ScaleVO scaleVO;
+}

+ 3 - 1
src/main/java/com/diagbot/vo/StaticKnowledgeVO.java

@@ -13,7 +13,7 @@ import java.util.List;
  */
 @Getter
 @Setter
-public class StaticKnowledgeVO {
+public class StaticKnowledgeVO extends ScaleVO{
     /**
      * 标准术语名称
      */
@@ -27,4 +27,6 @@ public class StaticKnowledgeVO {
      * 内容类型:1-化验、辅检、手术和操作、诊断、药品静态信息,2-注意事项,3-临床路径,4-治疗方案
      */
     private List<Integer> contentTypes;
+
+    private String mrId;
 }