浏览代码

推理接口入参整理

zhaops 5 年之前
父节点
当前提交
c4f98c4ed4
共有 20 个文件被更改,包括 102 次插入182 次删除
  1. 2 2
      aipt-service/src/main/java/com/diagbot/aggregate/PushItemAggregate.java
  2. 2 2
      aipt-service/src/main/java/com/diagbot/client/AIServiceClient.java
  3. 2 2
      aipt-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  4. 2 2
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  5. 1 1
      aipt-service/src/main/java/com/diagbot/facade/PushFacade.java
  6. 1 1
      aipt-service/src/main/java/com/diagbot/web/ClinicalController.java
  7. 2 2
      aipt-service/src/main/java/com/diagbot/client/bean/FeatureRate.java
  8. 1 3
      aipt-service/src/main/java/com/diagbot/client/bean/ResponseData.java
  9. 23 13
      common/src/main/java/com/diagbot/biz/push/entity/SearchBaseData.java
  10. 1 1
      knowledgeman-service/src/main/java/com/diagbot/client/AIServiceClient.java
  11. 0 29
      knowledgeman-service/src/main/java/com/diagbot/client/bean/ResponseData.java
  12. 1 1
      knowledgeman-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  13. 1 1
      knowledgeman-service/src/main/java/com/diagbot/facade/ReloadFacade.java
  14. 1 1
      triage-service/src/main/java/com/diagbot/client/AiptServiceClient.java
  15. 0 20
      triage-service/src/main/java/com/diagbot/client/bean/FeatureRate.java
  16. 0 66
      triage-service/src/main/java/com/diagbot/client/bean/ResponseData.java
  17. 1 1
      triage-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java
  18. 1 2
      triage-service/src/main/java/com/diagbot/dto/AIDTO.java
  19. 18 0
      triage-service/src/main/java/com/diagbot/dto/FeatureRateDTO.java
  20. 42 32
      triage-service/src/main/java/com/diagbot/facade/AIFacade.java

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

@@ -2,14 +2,14 @@ package com.diagbot.aggregate;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.diagbot.biz.push.entity.FeatureRate;
 import com.diagbot.biz.push.entity.MedicalIndication;
 import com.diagbot.biz.push.entity.MedicalIndicationDetail;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.CalculateData;
-import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.HosCodeVO;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.ConceptPushDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;

+ 2 - 2
aipt-service/src/main/java/com/diagbot/client/AIServiceClient.java

@@ -1,9 +1,9 @@
 package com.diagbot.client;
 
-import com.diagbot.client.bean.ResponseData;
-import com.diagbot.client.bean.SearchData;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.SearchData;
 import com.diagbot.client.hystrix.AIServiceHystrix;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;

+ 2 - 2
aipt-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java

@@ -1,10 +1,10 @@
 package com.diagbot.client.hystrix;
 
-import com.diagbot.client.bean.ResponseData;
-import com.diagbot.client.bean.SearchData;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.SearchData;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;

+ 2 - 2
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -1,12 +1,12 @@
 package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSON;
-import com.diagbot.client.bean.ResponseData;
-import com.diagbot.client.bean.SearchData;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.SearchVO;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.Response;
+import com.diagbot.client.bean.SearchData;
 import com.diagbot.entity.ScaleContent;
 import com.diagbot.enums.ScaleTypeEnum;
 import com.diagbot.exception.CommonErrorCode;

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

@@ -2,10 +2,10 @@ package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
 import com.diagbot.biz.push.entity.Item;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.SearchVO;
 import com.diagbot.biz.push.entity.Treat;
 import com.diagbot.biz.push.enums.FeatureTypeEnum;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.exception.CommonErrorCode;

+ 1 - 1
aipt-service/src/main/java/com/diagbot/web/ClinicalController.java

@@ -2,7 +2,7 @@ package com.diagbot.web;
 
 
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.client.bean.ResponseData;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.SearchVO;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.dto.RespDTO;

+ 2 - 2
aipt-service/src/main/java/com/diagbot/client/bean/FeatureRate.java

@@ -1,4 +1,4 @@
-package com.diagbot.client.bean;
+package com.diagbot.biz.push.entity;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -13,4 +13,4 @@ public class FeatureRate {
     private String extraProperty;
     private String desc;
     private String rate;
-}
+}

+ 1 - 3
aipt-service/src/main/java/com/diagbot/client/bean/ResponseData.java

@@ -1,8 +1,6 @@
-package com.diagbot.client.bean;
+package com.diagbot.biz.push.entity;
 
 import com.alibaba.fastjson.JSONObject;
-import com.diagbot.biz.push.entity.MedicalIndication;
-import com.diagbot.biz.push.entity.Treat;
 import lombok.Getter;
 import lombok.Setter;
 

+ 23 - 13
common/src/main/java/com/diagbot/biz/push/entity/SearchBaseData.java

@@ -3,6 +3,7 @@ package com.diagbot.biz.push.entity;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -113,43 +114,52 @@ public class SearchBaseData {
     /**
      * 化验项目和结果
      */
-    private List<Lis> lis;
+    private List<Lis> lis = new ArrayList<>();
     /**
      * 辅检项目和结果
      */
-    private List<Pacs> pacs;
+    private List<Pacs> pacs = new ArrayList<>();
+    ;
     /**
      * 诊断
      */
-    private List<Item> diag;
+    private List<Item> diag = new ArrayList<>();
+    ;
     /**
      * 药品
      */
-    private List<Item> drug;
+    private List<Item> drug = new ArrayList<>();
+    ;
     /**
      * 当前化验开单项
      */
-    private List<Lis> lisOrder;
+    private List<Lis> lisOrder = new ArrayList<>();
+    ;
     /**
      * 当前辅检开单项
      */
-    private List<Pacs> pacsOrder;
+    private List<Pacs> pacsOrder = new ArrayList<>();
+    ;
     /**
      * 当前诊断开单项
      */
-    private List<Item> diagOrder;
+    private List<Item> diagOrder = new ArrayList<>();
+    ;
     /**
      * 当前药品开单项
      */
-    private List<Item> drugOrder;
+    private List<Item> drugOrder = new ArrayList<>();
+    ;
     /**
      * 当前手术开单项
      */
-    private List<Item> operationOrder;
+    private List<Item> operationOrder = new ArrayList<>();
+    ;
     /**
      * 其他开单项
      */
-    private List<Item> otherOrder;
+    private List<Item> otherOrder = new ArrayList<>();
+    ;
     /**
      * 选中诊断
      */
@@ -157,11 +167,11 @@ public class SearchBaseData {
     /**
      * 诊断类型(0-普通病(默认不填),1-慢病,2-急诊)
      */
-    private Integer disType;
+    private Integer disType = 0;
     /**
      * 量表名称
      */
-    private String scaleName;
+    private String scaleName = "";
     /**
      * 是否映射(0:否,1:是)
      */
@@ -170,4 +180,4 @@ public class SearchBaseData {
      * 系统类型
      */
     private Integer sysType;
-}
+}

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/client/AIServiceClient.java

@@ -1,7 +1,7 @@
 package com.diagbot.client;
 
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.client.bean.Response;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.hystrix.AIServiceHystrix;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;

+ 0 - 29
knowledgeman-service/src/main/java/com/diagbot/client/bean/ResponseData.java

@@ -1,29 +0,0 @@
-package com.diagbot.client.bean;
-
-import com.alibaba.fastjson.JSONObject;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by fyeman on 2018/2/2.
- */
-@Getter
-@Setter
-public class ResponseData {
-    private String participleSymptom = "";
-    private List<FeatureRate> symptom = new ArrayList<>(10);
-    private List<FeatureRate> vitals = new ArrayList<>(10);
-    private List<FeatureRate> dis = new ArrayList<>(10);
-    private List<FeatureRate> labs = new ArrayList<>(10);
-    private List<FeatureRate> pacs = new ArrayList<>(10);
-    private List<FeatureRate> history = new ArrayList<>(10);
-    private Map<String, JSONObject> treat;   //治疗方案
-    private Map<String, JSONObject> scale;   //量表内容
-    private Map<String, JSONObject> managementEvaluation;   //管理评估
-    private Map<String, Map<String, String>> inputs = new HashMap<>(10, 0.5f);
-}

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java

@@ -1,8 +1,8 @@
 package com.diagbot.client.hystrix;
 
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.bean.Response;
-import com.diagbot.client.bean.ResponseData;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/facade/ReloadFacade.java

@@ -1,8 +1,8 @@
 package com.diagbot.facade;
 
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.bean.Response;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
triage-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -1,7 +1,7 @@
 package com.diagbot.client;
 
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.SearchVO;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.hystrix.AiptServiceHystrix;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;

+ 0 - 20
triage-service/src/main/java/com/diagbot/client/bean/FeatureRate.java

@@ -1,20 +0,0 @@
-package com.diagbot.client.bean;
-
-import com.diagbot.dto.HospitalDeptDTO;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * Created by fyeman on 2018/1/17.
- */
-@Getter
-@Setter
-public class FeatureRate {
-    private String featureName;
-    private String extraProperty;
-    private String desc;
-    private String rate;
-    private List<HospitalDeptDTO> hospitalDepts;
-}

+ 0 - 66
triage-service/src/main/java/com/diagbot/client/bean/ResponseData.java

@@ -1,66 +0,0 @@
-package com.diagbot.client.bean;
-
-import com.alibaba.fastjson.JSONObject;
-import com.diagbot.biz.push.entity.MedicalIndication;
-import com.diagbot.biz.push.entity.Treat;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by fyeman on 2018/2/2.
- */
-@Getter
-@Setter
-public class ResponseData {
-    /**
-     * 症状
-     */
-    private List<FeatureRate> symptom = new ArrayList<>(10);
-    /**
-     * 病史
-     */
-    private List<FeatureRate> history = new ArrayList<>(10);
-    /**
-     * 查体(体征)
-     */
-    private List<FeatureRate> vitals = new ArrayList<>(10);
-    /**
-     * 化验
-     */
-    private List<FeatureRate> labs = new ArrayList<>(10);
-    /**
-     * 辅检
-     */
-    private List<FeatureRate> pacs = new ArrayList<>(10);
-    /**
-     * 诊断
-     */
-    private List<FeatureRate> dis = new ArrayList<>(10);
-    /**
-     * 治疗方案
-     */
-    private Treat treat;
-    /**
-     * 量表动态内容
-     */
-    private Map<String, JSONObject> scale;
-    /**
-     * 管理评估动态内容
-     */
-    private Map<String, JSONObject> managementEvaluation;
-    /**
-     * 病情提示(1:量表,2:计算公式,3:可能结果,4:危机值、开单合理项、异常值等规则推送内容)
-     */
-    private List<MedicalIndication> medicalIndications;
-    /**
-     * 有无病情提示标志(0:无,1:有)
-     */
-    private String hasIndications;
-
-    private Map<String, Map<String, String>> inputs = new HashMap<>(10, 0.5f);
-}

+ 1 - 1
triage-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -1,8 +1,8 @@
 package com.diagbot.client.hystrix;
 
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.SearchVO;
 import com.diagbot.client.AiptServiceClient;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.PartSymptomDTO;

+ 1 - 2
triage-service/src/main/java/com/diagbot/dto/AIDTO.java

@@ -1,6 +1,5 @@
 package com.diagbot.dto;
 
-import com.diagbot.client.bean.FeatureRate;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -15,5 +14,5 @@ import java.util.List;
 @Getter
 @Setter
 public class AIDTO {
-    private List<FeatureRate> items = new ArrayList<>();
+    private List<FeatureRateDTO> items = new ArrayList<>();
 }

+ 18 - 0
triage-service/src/main/java/com/diagbot/dto/FeatureRateDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import com.diagbot.biz.push.entity.FeatureRate;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/12/13 10:27
+ */
+@Getter
+@Setter
+public class FeatureRateDTO extends FeatureRate {
+    private List<HospitalDeptDTO> hospitalDepts;
+}

+ 42 - 32
triage-service/src/main/java/com/diagbot/facade/AIFacade.java

@@ -1,15 +1,17 @@
 package com.diagbot.facade;
 
+import com.diagbot.biz.push.entity.FeatureRate;
+import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.entity.SearchVO;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.client.TranServiceClient;
-import com.diagbot.client.bean.FeatureRate;
-import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.AIDTO;
+import com.diagbot.dto.FeatureRateDTO;
 import com.diagbot.dto.HospitalDeptDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.ListUtil;
@@ -50,8 +52,8 @@ public class AIFacade {
      */
     public AIDTO push(AIVO aivo, String type) {
         SearchVO searchVO = new SearchVO();
-
         searchVO.setAge(aivo.getAge());
+        searchVO.setHosCode(aivo.getHospitalCode());
         searchVO.setSymptom(aivo.getSymptom());
         switch (aivo.getSex()) {
             case 1:
@@ -76,29 +78,38 @@ public class AIFacade {
         AIDTO aidto = new AIDTO();
         switch (type) {
             case "1":
-                aidto.setItems(res.data.getSymptom());
+                List<FeatureRate> symptom = res.data.getSymptom();
+                if (ListUtil.isNotEmpty(symptom)) {
+                    List<FeatureRateDTO> symptomDTO = BeanUtil.listCopyTo(symptom, FeatureRateDTO.class);
+                    aidto.setItems(symptomDTO);
+                }
                 break;
             case "7":
-                List<FeatureRate> items = new ArrayList<>();
+                List<FeatureRateDTO> items = new ArrayList<>();
                 if (ListUtil.isNotEmpty(res.data.getDis())) {
-                    Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
+                    Map<String, List<FeatureRateDTO>> disFeatureMap = new LinkedHashMap<>();
+                    List<FeatureRate> dis = res.data.getDis();
+                    if (ListUtil.isEmpty(dis)) {
+                        break;
+                    }
+                    List<FeatureRateDTO> disDTO = BeanUtil.listCopyTo(dis, FeatureRateDTO.class);
                     //诊断分类
-                    for (FeatureRate featureRate : res.data.getDis()) {
-                        if (StringUtil.isBlank(featureRate.getDesc())) {
-                            featureRate.setDesc("{\"可能诊断\":\"\"}");
+                    for (FeatureRateDTO featureRateDTO : disDTO) {
+                        if (StringUtil.isBlank(featureRateDTO.getDesc())) {
+                            featureRateDTO.setDesc("{\"可能诊断\":\"\"}");
                         }
-                        Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
+                        Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRateDTO.getDesc());
                         for (String disClass : descMap.keySet()) {
-                            List<FeatureRate> featureRateList = Lists.newLinkedList();
+                            List<FeatureRateDTO> featureRateDTOList = Lists.newLinkedList();
                             if (disFeatureMap.get(disClass) != null) {
-                                featureRateList = disFeatureMap.get(disClass);
+                                featureRateDTOList = disFeatureMap.get(disClass);
                             }
-                            featureRateList.add(featureRate);
-                            disFeatureMap.put(disClass, featureRateList);
+                            featureRateDTOList.add(featureRateDTO);
+                            disFeatureMap.put(disClass, featureRateDTOList);
                         }
                     }
 
-                    FeatureRate item;
+                    FeatureRateDTO item;
                     if (disFeatureMap.get("确诊") != null) {
                         items = getItems(disFeatureMap, "确诊", 1);
                     }
@@ -108,7 +119,7 @@ public class AIFacade {
                     if (disFeatureMap.get("可能诊断") != null && ListUtil.isEmpty(items)) {
                         Double rate;
                         Map<String, Double> map = new HashMap<>();
-                        List<FeatureRate> featureRateList = disFeatureMap.get("可能诊断");
+                        List<FeatureRateDTO> featureRateList = disFeatureMap.get("可能诊断");
                         featureRateList = featureRateList
                                 .stream()
                                 .filter(i -> i.getExtraProperty() != null)
@@ -137,7 +148,7 @@ public class AIFacade {
                         });
                         for (Map.Entry<String, Double> entry : list) {
                             if (items.size() < 2) {
-                                item = new FeatureRate();
+                                item = new FeatureRateDTO();
                                 item.setExtraProperty(entry.getKey());
                                 items.add(item);
                             } else {
@@ -145,7 +156,7 @@ public class AIFacade {
                             }
                         }
                         if (ListUtil.isEmpty(items)) {
-                            item = new FeatureRate();
+                            item = new FeatureRateDTO();
                             item.setExtraProperty(res.data.getDis().get(0).getExtraProperty());
                             items.add(item);
                         }
@@ -164,7 +175,7 @@ public class AIFacade {
                                 = tranServiceClient.hospitalDeptByConceptNames(hospitalDeptVO);
                         if (RespDTOUtil.respIsOK(retDeptMap)) {
                             Map<String, List<HospitalDeptDTO>> deptMap = retDeptMap.data;
-                            for (FeatureRate item : items) {
+                            for (FeatureRateDTO item : items) {
                                 item.setHospitalDepts(deptMap.get(item.getExtraProperty()));
                             }
                         }
@@ -176,30 +187,30 @@ public class AIFacade {
         return aidto;
     }
 
-    private List<FeatureRate> getItems(Map<String, List<FeatureRate>> disFeatureMap,
-                                       String type, int size) {
-        List<FeatureRate> items = new ArrayList<>();
+    private List<FeatureRateDTO> getItems(Map<String, List<FeatureRateDTO>> disFeatureMap,
+                                          String type, int size) {
+        List<FeatureRateDTO> items = new ArrayList<>();
 
-        List<FeatureRate> featureRateList = disFeatureMap.get(type);
+        List<FeatureRateDTO> featureRateList = disFeatureMap.get(type);
         featureRateList = featureRateList
                 .stream()
                 .filter(i -> i.getExtraProperty() != null)
                 .collect(Collectors.toList());
         if (ListUtil.isNotEmpty(featureRateList)) {
-            Map<String, List<FeatureRate>> disMap
+            Map<String, List<FeatureRateDTO>> disMap
                     = EntityUtil.makeEntityListMap(featureRateList, "extraProperty");
-            List<Map.Entry<String, List<FeatureRate>>> list = new ArrayList<Map.Entry<String, List<FeatureRate>>>(disMap.entrySet());
-            Collections.sort(list, new Comparator<Map.Entry<String, List<FeatureRate>>>() {
+            List<Map.Entry<String, List<FeatureRateDTO>>> list = new ArrayList<Map.Entry<String, List<FeatureRateDTO>>>(disMap.entrySet());
+            Collections.sort(list, new Comparator<Map.Entry<String, List<FeatureRateDTO>>>() {
                 //降序排序
-                public int compare(Map.Entry<String, List<FeatureRate>> o1,
-                                   Map.Entry<String, List<FeatureRate>> o2) {
+                public int compare(Map.Entry<String, List<FeatureRateDTO>> o1,
+                                   Map.Entry<String, List<FeatureRateDTO>> o2) {
                     return Integer.compare(o2.getValue().size(), o1.getValue().size());
                 }
             });
-            FeatureRate item;
-            for (Map.Entry<String, List<FeatureRate>> entry : list) {
+            FeatureRateDTO item;
+            for (Map.Entry<String, List<FeatureRateDTO>> entry : list) {
                 if (items.size() < size) {
-                    item = new FeatureRate();
+                    item = new FeatureRateDTO();
                     item.setExtraProperty(entry.getKey());
                     items.add(item);
                 } else {
@@ -207,7 +218,6 @@ public class AIFacade {
                 }
             }
         }
-
         return items;
     }
 }