فهرست منبع

分诊标签内容

zhaops 5 سال پیش
والد
کامیت
beaf160958

+ 58 - 0
prec-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -12,6 +12,7 @@ import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.QuestionIds2VO;
 import com.diagbot.vo.QuestionNameVO;
+import com.diagbot.vo.QuestionNamesVO;
 import com.diagbot.vo.QuestionVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +20,9 @@ import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -123,6 +126,8 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
                 .in(ListUtil.isNotEmpty(sexTypeList), "sex_type", sexTypeList)
                 .apply("({0} between age_begin and age_end)", questionNameVO.getAge())
+                .eq("type", questionNameVO.getType())
+                .eq("tag_type", 4)
                 .eq("tag_name", questionNameVO.getName());
         QuestionInfo questionInfo = this.getOne(questionInfoQueryWrapper);
         if (questionInfo != null) {
@@ -137,6 +142,59 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         }
     }
 
+    /**
+     * 根据名称批量获取标签
+     *
+     * @param questionNamesVO
+     * @return
+     */
+    public Map<String, Object> getByNames(QuestionNamesVO questionNamesVO) {
+        Map<String, Object> retMap = new LinkedHashMap<>();
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        List<Integer> sexTypeList = Lists.newArrayList();
+        sexTypeList.add(questionNamesVO.getSexType());
+        if (!questionNamesVO.getSexType().equals(3)) {
+            sexTypeList.add(3);
+        }
+        questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in(ListUtil.isNotEmpty(sexTypeList), "sex_type", sexTypeList)
+                .apply("({0} between age_begin and age_end)", questionNamesVO.getAge())
+                .eq("type", questionNamesVO.getType())
+                .eq("tag_type", 4)
+                .in(ListUtil.isNotEmpty(questionNamesVO.getNames()), "tag_name", questionNamesVO.getNames());
+        List<QuestionInfo> questionInfoList = this.list(questionInfoQueryWrapper);
+
+        //同名的只保留第一个
+        Map<String, Long> nameMap = new LinkedHashMap<>();
+        Iterator<QuestionInfo> iterator = questionInfoList.iterator();
+        while (iterator.hasNext()) {
+            QuestionInfo next = iterator.next();
+            if (nameMap.containsKey(next.getTagName())) {
+                iterator.remove();
+            } else {
+                nameMap.put(next.getTagName(), next.getId());
+            }
+        }
+        if (null == nameMap) {
+            return null;
+        }
+        QuestionIds2VO questionIds2VO = new QuestionIds2VO();
+        questionIds2VO.setIds(new LinkedList<>(nameMap.values()));
+        questionIds2VO.setSexType(questionNamesVO.getSexType());
+        questionIds2VO.setAge(questionNamesVO.getAge());
+
+        Map<Long, Object> questionMap = this.getByIds(questionIds2VO);
+
+        if (questionMap != null) {
+            nameMap.entrySet().forEach(entry -> {
+                if (questionMap.containsKey(entry.getValue())) {
+                    retMap.put(entry.getKey(), questionMap.get(entry.getValue()));
+                }
+            });
+        }
+        return retMap;
+    }
+
 
     /**
      * 查询多个id返回标签内容

+ 1 - 0
prec-service/src/main/java/com/diagbot/vo/QuestionNameVO.java

@@ -14,4 +14,5 @@ public class QuestionNameVO {
     private String name;
     private Integer sexType;
     private Integer age;
+    private Integer type;
 }

+ 6 - 3
triage-service/src/main/java/com/diagbot/vo/QuestionNameVO.java

@@ -3,15 +3,18 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @Description:
  * @Author:zhaops
- * @time: 2020/4/9 15:57
+ * @time: 2020/4/10 13:50
  */
 @Getter
 @Setter
-public class QuestionNameVO {
-    private String name;
+public class QuestionNamesVO {
+    private List<String> names;
     private Integer sexType;
     private Integer age;
+    private Integer type;
 }

+ 13 - 0
prec-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.QuestionFacade;
 import com.diagbot.vo.QuestionIds2VO;
 import com.diagbot.vo.QuestionNameVO;
+import com.diagbot.vo.QuestionNamesVO;
 import com.diagbot.vo.QuestionVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -46,6 +47,7 @@ public class QuestionInfoController {
     @ApiOperation(value = "智能预问诊-根据参数返回标签内容[by:zhaops]",
             notes = "name: 标签名称<br>" +
                     "sexType:性别,1:男,2:女<br>" +
+                    "type:标签类型,1:症状 3:其他史 51:诊疗情况 52:补充 <br>" +
                     "age:年龄")
     @PostMapping("/getByName")
     public RespDTO<QuestionDTO> getByName(@RequestBody QuestionNameVO questionNameVO) {
@@ -53,6 +55,17 @@ public class QuestionInfoController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "智能预问诊-根据参数返回标签内容[by:zhaops]",
+            notes = "name: 标签名称<br>" +
+                    "sexType:性别,1:男,2:女<br>" +
+                    "type:标签类型,1:症状 3:其他史 51:诊疗情况 52:补充 <br>" +
+                    "age:年龄")
+    @PostMapping("/getByNames")
+    public RespDTO<Map<String, Object>> getByNames(@RequestBody QuestionNamesVO questionNamesVO) {
+        Map<String, Object> data = questionFacade.getByNames(questionNamesVO);
+        return RespDTO.onSuc(data);
+    }
+
 
     @ApiOperation(value = "智能预问诊-查询多个id优化[by:zhoutg]",
             notes = "ids: 多个questionId<br>" +

+ 0 - 39
triage-service/src/main/java/com/diagbot/dto/QuestionDTO.java

@@ -1,39 +0,0 @@
-package com.diagbot.dto;
-
-import com.diagbot.entity.QuestionDetail;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @Description: 返回标签内容
- * @Author: ztg
- * @Date: 2018/10/24 16:11
- */
-@Getter
-@Setter
-public class QuestionDTO {
-
-    private Long id;// id
-    private String name;//内容
-    private String tagName;//标签名称
-    private Integer type;//类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断)
-    private Integer controlType; //控件类型
-    private Integer itemType; //元素类型
-    private Integer tagType; //标签标识
-    private String labelPrefix = ""; //前置内容
-    private String labelSuffix = ""; //后置内容
-    private String url;    //图片url地址
-    private String description; // 客户端界面描述
-    private Integer specFlag;//特殊标记(0:没有标记,1:拼接到主诉)
-    private Integer required;//必填(0:不必填,1:必填)
-    private String exclusionDetail; //互斥选项(如1,2|3,4(1,2互斥,3,4互斥))
-    private String explains;//详细阐述
-    private Integer exclusionType; //互斥类型
-    private List<QuestionDetail> questionDetailList = new ArrayList<>(); //标签明细表
-    private List<QuestionDTO> questionMapping = new ArrayList<>();     //下级标签
-    private String flag; // 类型标记
-    private String remark;//备注
-}

+ 0 - 65
triage-service/src/main/java/com/diagbot/entity/QuestionDetail.java

@@ -1,65 +0,0 @@
-package com.diagbot.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * <p>
- * 标签明细表
- * </p>
- *
- * @author zhoutg
- * @since 2018-11-15
- */
-@Getter
-@Setter
-@TableName("prec_question_detail")
-public class QuestionDetail implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主键
-     */
-    private Long id;
-
-    /**
-     * 名称
-     */
-    private String name;
-
-    /**
-     * 客户端界面描述
-     */
-    private String description;
-
-    /**
-     * question_id
-     */
-    private Long questionId;
-
-
-    /**
-     * 排序号
-     */
-    private Integer orderNo;
-
-    /**
-     * 特殊类型
-     */
-    private Integer exclusion;
-
-    /**
-     * 关联子问题(questionId多个逗号隔开)
-     */
-    private String subQuestion;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-}

+ 0 - 32
triage-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -1,32 +0,0 @@
-package com.diagbot.facade;
-
-import com.diagbot.client.PrecServiceClient;
-import com.diagbot.dto.QuestionDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.util.RespDTOUtil;
-import com.diagbot.vo.QuestionNameVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/4/9 16:33
- */
-@Component
-public class QuestionFacade {
-    @Autowired
-    private PrecServiceClient precServiceClient;
-
-    /**
-     * 根据名称获取预问诊标签内容
-     *
-     * @param questionNameVO
-     * @return
-     */
-    public QuestionDTO getByName(QuestionNameVO questionNameVO) {
-        RespDTO<QuestionDTO> respDTO = precServiceClient.getByName(questionNameVO);
-        RespDTOUtil.respNGDeal(respDTO, "获取标签失败");
-        return respDTO.data;
-    }
-}

+ 0 - 36
triage-service/src/main/java/com/diagbot/web/QuestionController.java

@@ -1,36 +0,0 @@
-package com.diagbot.web;
-
-import com.diagbot.dto.QuestionDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.facade.QuestionFacade;
-import com.diagbot.vo.QuestionNameVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/4/9 16:31
- */
-@RestController
-@RequestMapping("/question")
-@Api(value = "标签相关API", tags = { "标签相关API" })
-public class QuestionController {
-    @Autowired
-    private QuestionFacade questionFacade;
-
-    @ApiOperation(value = "分诊-根据参数返回标签内容[by:zhaops]",
-            notes = "name: 标签名称<br>" +
-                    "sexType:性别,1:男,2:女<br>" +
-                    "age:年龄")
-    @PostMapping("/getByName")
-    public RespDTO<QuestionDTO> getByName(@RequestBody QuestionNameVO questionNameVO) {
-        QuestionDTO data = questionFacade.getByName(questionNameVO);
-        return RespDTO.onSuc(data);
-    }
-}