Browse Source

核心推理改成并行模式

gaodm 5 years ago
parent
commit
4f8bb75651

+ 43 - 0
aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java

@@ -53,12 +53,16 @@ public class PushItemAggregate {
     @DataProvider("setAll")
     public PushDTO setAll(
             @InvokeParameter("pushDTO") PushDTO pushDTO,
+            @DataConsumer("getDept") ConceptPushDTO dept,
             @DataConsumer("setSymptom") List<ConceptPushDTO> symptom,
             @DataConsumer("setVital") List<ConceptPushDTO> vital,
             @DataConsumer("setLab") List<ConceptPushDTO> lab,
             @DataConsumer("setPacs") List<ConceptPushDTO> pacs,
             @DataConsumer("setDis") Map<String, List<ConceptPushDTO>> dis,
             @DataConsumer("setMedicalIndications") List<MedicalIndication> medicalIndications) {
+        if (null != dept) {
+            pushDTO.setDept(dept);
+        }
         if (ListUtil.isNotEmpty(symptom)) {
             pushDTO.setSymptom(symptom);
         }
@@ -80,6 +84,45 @@ public class PushItemAggregate {
         return pushDTO;
     }
 
+    /**
+     * 根据诊断推送确定科室
+     *
+     * @param dis
+     * @return
+     */
+    @DataProvider("getDept")
+    public ConceptPushDTO getDept(@InvokeParameter("dis") List<FeatureRate> dis) {
+        String deptName = "";
+        if (ListUtil.isNotEmpty(dis)) {
+            for (FeatureRate featureRate : dis) {
+                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+                    deptName = featureRate.getExtraProperty();
+                    break;
+                }
+            }
+        }
+        //没有推送信息时,默认取全科模板
+        if (StringUtil.isBlank(deptName)) {
+            deptName = "全科";
+        }
+        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+        conceptBaseVO.setName(deptName);
+        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
+        ConceptPushDTO deptDTO = new ConceptPushDTO();
+        Concept dept = conceptFacade.getConcept(conceptBaseVO);
+        if (dept == null && deptName.equals("全科") == false) {
+            deptName = "全科";
+            conceptBaseVO.setName(deptName);
+            dept = conceptFacade.getConcept(conceptBaseVO);
+        }
+        if (dept != null) {
+            deptDTO.setName(deptName);
+            deptDTO.setConceptId(dept.getId());
+            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
+        }
+        return deptDTO;
+    }
+
     @DataProvider("setSymptom")
     public List<ConceptPushDTO> setSymptom(@InvokeParameter("featureTypeSet") Set<String> featureTypeSet,
                                            @InvokeParameter("data") ResponseData data) {

+ 40 - 40
aipt-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -53,8 +53,8 @@ import java.util.stream.Collectors;
 public class PushFacade {
     @Autowired
     private ClinicalFacade clinicalFacade;
-    @Autowired
-    private ConceptFacade conceptFacade;
+//    @Autowired
+//    private ConceptFacade conceptFacade;
     @Autowired
     private TreatmentFacade treatmentFacade;
     @Autowired
@@ -113,7 +113,7 @@ public class PushFacade {
 
         //确定推送科室
         List<FeatureRate> dis = data.getDis();
-        pushDTO.setDept(getDept(dis));
+//        pushDTO.setDept(getDept(dis));
 
         try {
             Map<String, Object> invokeParams = new HashMap<>();
@@ -356,43 +356,43 @@ public class PushFacade {
 //        return conceptDTOS;
 //    }
 
-    /**
-     * 根据诊断推送确定科室
-     *
-     * @param dis
-     * @return
-     */
-    public ConceptPushDTO getDept(List<FeatureRate> dis) {
-        String deptName = "";
-        if (ListUtil.isNotEmpty(dis)) {
-            for (FeatureRate featureRate : dis) {
-                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
-                    deptName = featureRate.getExtraProperty();
-                    break;
-                }
-            }
-        }
-        //没有推送信息时,默认取全科模板
-        if (StringUtil.isBlank(deptName)) {
-            deptName = "全科";
-        }
-        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
-        conceptBaseVO.setName(deptName);
-        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
-        ConceptPushDTO deptDTO = new ConceptPushDTO();
-        Concept dept = conceptFacade.getConcept(conceptBaseVO);
-        if (dept == null && deptName.equals("全科") == false) {
-            deptName = "全科";
-            conceptBaseVO.setName(deptName);
-            dept = conceptFacade.getConcept(conceptBaseVO);
-        }
-        if (dept != null) {
-            deptDTO.setName(deptName);
-            deptDTO.setConceptId(dept.getId());
-            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
-        }
-        return deptDTO;
-    }
+//    /**
+//     * 根据诊断推送确定科室
+//     *
+//     * @param dis
+//     * @return
+//     */
+//    public ConceptPushDTO getDept(List<FeatureRate> dis) {
+//        String deptName = "";
+//        if (ListUtil.isNotEmpty(dis)) {
+//            for (FeatureRate featureRate : dis) {
+//                if (StringUtil.isNotBlank(featureRate.getExtraProperty())) {
+//                    deptName = featureRate.getExtraProperty();
+//                    break;
+//                }
+//            }
+//        }
+//        //没有推送信息时,默认取全科模板
+//        if (StringUtil.isBlank(deptName)) {
+//            deptName = "全科";
+//        }
+//        ConceptBaseVO conceptBaseVO = new ConceptBaseVO();
+//        conceptBaseVO.setName(deptName);
+//        conceptBaseVO.setLibType(LexiconTypeEnum.DEPARTMENT.getKey());
+//        ConceptPushDTO deptDTO = new ConceptPushDTO();
+//        Concept dept = conceptFacade.getConcept(conceptBaseVO);
+//        if (dept == null && deptName.equals("全科") == false) {
+//            deptName = "全科";
+//            conceptBaseVO.setName(deptName);
+//            dept = conceptFacade.getConcept(conceptBaseVO);
+//        }
+//        if (dept != null) {
+//            deptDTO.setName(deptName);
+//            deptDTO.setConceptId(dept.getId());
+//            deptDTO.setLibType(ConceptTypeEnum.DEPARTMENT.getKey());
+//        }
+//        return deptDTO;
+//    }
 
     /**
      * 增加化验公表项