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

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

Zhaops 6 лет назад
Родитель
Сommit
7988df0d92

+ 10 - 0
common/src/main/java/com/diagbot/util/FastJsonUtils.java

@@ -84,4 +84,14 @@ public class FastJsonUtils {
         }
         return list;
     }
+
+    /**
+     * 把json转成map
+     * @param jsonString
+     * @return
+     */
+    public static Map<String,Object> getJsonToMap(String jsonString) {
+        JSONObject object = JSONObject.parseObject(jsonString);
+        return object.getInnerMap();
+    }
 }

+ 9 - 0
icss-service/src/main/java/com/diagbot/client/bean/FeatureRate.java

@@ -6,6 +6,7 @@ package com.diagbot.client.bean;
 public class FeatureRate {
     private String featureName;
     private String extraProperty;
+    private String desc;
     private String rate;
 
     public String getFeatureName() {
@@ -24,6 +25,14 @@ public class FeatureRate {
         this.rate = rate;
     }
 
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
     public String getExtraProperty() {
         return extraProperty;
     }

+ 22 - 4
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -20,6 +20,7 @@ import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.LisKYJVO;
 import com.diagbot.vo.PushKYJVO;
@@ -114,7 +115,6 @@ public class PushFacade {
         Map<String, String> treat = data.getTreat();
 
         Map<String, Object> symptomMap = list2Map(symptom);
-        Map<String, Object> disMap = list2Map(dis);
         Map<String, Object> labMap = list2Map(labs);
         Map<String, Object> pacsMap = list2Map(pacs);
 
@@ -128,10 +128,28 @@ public class PushFacade {
         }
         //诊断 返回tagName+标签
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
-            List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
             Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
-            //当前返回诊断都按疑似诊断处理,待大数据提供诊断分类
-            disMapDTO.put("疑似诊断:", disDTO);
+            Map<String, List<FeatureRate>> disFeatureMap=new LinkedHashMap<>();
+            //诊断分类
+            for(FeatureRate featureRate:dis) {
+                if (StringUtil.isBlank(featureRate.getDesc())) {
+                    featureRate.setDesc("{\"可能诊断\":\"\"}");
+                }
+                Map<String, Object> descMap = FastJsonUtils.getJsonToMap(featureRate.getDesc());
+                for(String disClass:descMap.keySet()) {
+                    List<FeatureRate> featureRateList = Lists.newLinkedList();
+                    if (disFeatureMap.get(disClass) != null) {
+                        featureRateList = disFeatureMap.get(disClass);
+                    }
+                    featureRateList.add(featureRate);
+                    disFeatureMap.put(disClass, featureRateList);
+                }
+            }
+            for (Map.Entry<String, List<FeatureRate>> entry : disFeatureMap.entrySet()) {
+                Map<String, Object> disMap = list2Map(entry.getValue());
+                List<QuestionDTO> disDTO = getTagListByMap(disMap, pushVO, QuestionTypeEnum.Disease.getKey());
+                disMapDTO.put(entry.getKey(), disDTO);
+            }
             pushDTO.setDis(disMapDTO);
         }
         //症状(主诉 type=1;现病史 type=2) 返回 tagName+填写单

+ 24 - 1
icssman-service/src/main/java/com/diagbot/dto/QuestionPageDTO.java

@@ -2,6 +2,8 @@ package com.diagbot.dto;
 
 import com.diagbot.entity.QuestionDetail;
 import com.diagbot.entity.QuestionMapping;
+import com.diagbot.enums.QuestionTypeEnum;
+import com.diagbot.enums.TagTypeEnum;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -86,16 +88,26 @@ public class QuestionPageDTO implements Serializable {
      */
     private String tagType;
 
+    /**
+     * 标签标识(中文)
+     */
+    private String tagTypeStr;
+
     /**
      * 控件类型(0:无类型,默认值 1:下拉单选 2:下拉多选 3:纯文本 4:待定 5:待定 6:文本框 7:数字键盘文本框 99:联合推送)
      */
     private Integer controlType;
 
     /**
-     * 类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断)
+     * 类型
      */
     private Integer type;
 
+    /**
+     * 类型(中文名称)
+     */
+    private String typeStr;
+
     /**
      * 子类型,(0:项目,1:描述)
      */
@@ -155,4 +167,15 @@ public class QuestionPageDTO implements Serializable {
      * 映射表
      */
     private List<QuestionMapping> questionMappings = new ArrayList<>();
+
+
+
+    /*****************************将类型转换成中文返回*****************************************/
+    public String getTypeStr() {
+        return QuestionTypeEnum.getName(this.type);
+    }
+    public String getTagTypeStr() {
+        return this.tagType == null ? "" : TagTypeEnum.getName(Integer.valueOf(this.tagType));
+    }
+    /**********************************************************************/
 }

+ 1 - 1
icssman-service/src/main/java/com/diagbot/facade/QuestionInfoFacade.java

@@ -280,7 +280,7 @@ public class QuestionInfoFacade extends QuestionInfoServiceImpl {
                 .eq("type", questionInfo.getType())
                 .ne("id", questionInfo.getId() == null ? -1 : questionInfo.getId()));
         if (questionInfoList.size() > 0) { //标签type、tagName唯一
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签名已存在");
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签名称已重复,无法建立");
         }
         if ("save".equals(param.getSaveOrUpdate())) {
             questionInfo.setCreator(param.getPerson()); //创建人