zhoutg 6 lat temu
rodzic
commit
96523e9e72

+ 36 - 0
aipt-service/src/main/java/com/diagbot/entity/ScaleContent.java

@@ -0,0 +1,36 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 量表内容表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-03-11
+ */
+@Getter
+@Setter
+public class ScaleContent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 量表概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 0:文本,1:大数据接口填充
+     */
+    private Integer type;
+}

+ 51 - 0
aipt-service/src/main/java/com/diagbot/enums/ScaleTypeEnum.java

@@ -0,0 +1,51 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * 
+ * @author zhoutg
+ * @Description: 诊断类型
+ * @date 2018年11月21日 下午2:31:42
+ */
+public enum ScaleTypeEnum implements KeyedNamed {
+    TEXT(0, "文本"),
+    PUSH(1, "推理");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    ScaleTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ScaleTypeEnum getEnum(Integer key) {
+        for (ScaleTypeEnum item : ScaleTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        ScaleTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

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

@@ -1,13 +1,17 @@
 package com.diagbot.facade;
 
+import com.alibaba.fastjson.JSON;
 import com.diagbot.client.AIServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.LisResult;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.enums.ScaleTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.ScaleContentService;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.SearchVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +34,8 @@ public class ClinicalFacade {
 
     @Autowired
     private AIServiceClient aiServiceClient;
+    @Autowired
+    private ScaleContentService scaleContentService;
 
     private static String up = "增高";
     private static String down = "降低";
@@ -102,6 +108,34 @@ public class ClinicalFacade {
         return response;
     }
 
+
+    /**
+     * 获取量表内容
+     *
+     * @param searchVo
+     * @return
+     */
+    public List<ScaleContent> getScale(SearchVo searchVo) {
+        Map<String, Object> response = aiServiceClient.scale(searchVo);
+        if (null == response) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "量表没有返回结果");
+        }
+        List<ScaleContent> list = getContent(searchVo.getScaleName(), JSON.toJSONString(response));
+        return list;
+    }
+
+
+    public List<ScaleContent> getContent(String scaleName, String pushContent) {
+        List<ScaleContent> list = scaleContentService.getContentByName(scaleName);
+        for (ScaleContent scaleContent : list) {
+            if (ScaleTypeEnum.PUSH.getKey() == scaleContent.getType()) {
+                scaleContent.setContent(pushContent);
+                break;
+            }
+        }
+        return list;
+    }
+
     /**
      * 高危诊断
      *

+ 19 - 0
aipt-service/src/main/java/com/diagbot/mapper/ScaleContentMapper.java

@@ -0,0 +1,19 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.ScaleContent;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 量表内容表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-03-11
+ */
+public interface ScaleContentMapper extends BaseMapper<ScaleContent> {
+
+    public List<ScaleContent> getContentByName(String name);
+}

+ 19 - 0
aipt-service/src/main/java/com/diagbot/service/ScaleContentService.java

@@ -0,0 +1,19 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.ScaleContent;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 量表内容表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-03-11
+ */
+public interface ScaleContentService extends IService<ScaleContent> {
+
+    public List<ScaleContent> getContentByName(String name);
+}

+ 26 - 0
aipt-service/src/main/java/com/diagbot/service/impl/ScaleContentServiceImpl.java

@@ -0,0 +1,26 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.ScaleContent;
+import com.diagbot.mapper.ScaleContentMapper;
+import com.diagbot.service.ScaleContentService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 量表内容表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2019-03-11
+ */
+@Service
+public class ScaleContentServiceImpl extends ServiceImpl<ScaleContentMapper, ScaleContent> implements ScaleContentService {
+
+    @Override
+    public List<ScaleContent> getContentByName(String name) {
+        return baseMapper.getContentByName(name);
+    }
+}

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

@@ -6,6 +6,7 @@ import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ScaleContent;
 import com.diagbot.facade.ClinicalFacade;
 import com.diagbot.vo.SearchVo;
 import io.swagger.annotations.Api;
@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -53,6 +55,14 @@ public class ClinicalController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "知识库标准化-获取量表内容", notes = "")
+    @PostMapping("/getScale")
+    @SysLogger("getScale")
+    public RespDTO<List<ScaleContent>> getScale(@RequestBody SearchVo searchVo) {
+        List<ScaleContent> data = clinicalFacade.getScale(searchVo);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "高危诊断", notes = "")
     @PostMapping("/highRisk")
     @SysLogger("highRisk")

+ 19 - 0
aipt-service/src/main/resources/mapper/ScaleContentMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.ScaleContentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.ScaleContent">
+        <result column="concept_id" property="conceptId" />
+        <result column="content" property="content" />
+        <result column="type" property="type" />
+    </resultMap>
+
+
+    <select id="getContentByName" resultMap="BaseResultMap">
+        SELECT * FROM `kl_scale` a, kl_concept b
+        where a.is_deleted = 'N' and b.is_deleted = 'N' and a.concept_id = b.id
+        and b.lib_name = #{scaleName}
+        ORDER BY a.order_no
+    </select>
+</mapper>

+ 4 - 0
icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -9,6 +9,7 @@ import com.diagbot.client.hystrix.AiptServiceHystrix;
 import com.diagbot.dto.DisScaleDTO;
 import com.diagbot.dto.DisTypeDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ScaleContent;
 import com.diagbot.vo.DisScaleVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -45,4 +46,7 @@ public interface AiptServiceClient {
 
     @PostMapping(value = "/disType/getDisType")
     RespDTO<DisTypeDTO> getDisType();
+
+    @PostMapping(value = "/clinicaldata/getScale")
+    RespDTO<List<ScaleContent>> getScale(@RequestBody SearchData searchData);
 }

+ 7 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -9,6 +9,7 @@ import com.diagbot.client.bean.SearchData;
 import com.diagbot.dto.DisScaleDTO;
 import com.diagbot.dto.DisTypeDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ScaleContent;
 import com.diagbot.vo.DisScaleVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -67,4 +68,10 @@ public class AiptServiceHystrix implements AiptServiceClient {
         log.error("【hystrix】调用{}异常", "getDisType");
         return null;
     }
+
+    @Override
+    public RespDTO<List<ScaleContent>> getScale(SearchData searchData) {
+        log.error("【hystrix】调用{}异常", "getScale");
+        return null;
+    }
 }

+ 2 - 20
icss-service/src/main/java/com/diagbot/entity/ScaleContent.java

@@ -1,7 +1,5 @@
 package com.diagbot.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Getter;
 import lombok.Setter;
@@ -24,15 +22,9 @@ public class ScaleContent implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 主键
+     * 量表概念id
      */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
-
-    /**
-     * 量表标签id
-     */
-    private Long scaleId;
+    private Long conceptId;
 
     /**
      * 内容
@@ -44,14 +36,4 @@ public class ScaleContent implements Serializable {
      */
     private Integer type;
 
-    /**
-     * 排序号
-     */
-    private Integer orderNo;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
 }

+ 17 - 13
icss-service/src/main/java/com/diagbot/facade/ScaleContentFacade.java

@@ -1,10 +1,16 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.AiptServiceClient;
+import com.diagbot.client.bean.SearchData;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ScaleContent;
 import com.diagbot.enums.ScaleTypeEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ScaleContentServiceImpl;
 import com.diagbot.vo.PushVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -17,25 +23,23 @@ import java.util.List;
 @Component
 public class ScaleContentFacade extends ScaleContentServiceImpl {
 
+    @Autowired
+    PushFacade pushFacade;
+    @Autowired
+    AiptServiceClient aiptServiceClient;
+
     /**
-     * 返回诊断量表列表
+     * 返回量表内容
      *
      * @return
      */
     public List<ScaleContent> getContent(PushVO pushVO) {
-        //获取内容列表
-        List<ScaleContent> data = this.list(new QueryWrapper<ScaleContent>()
-                .eq("scale_id", pushVO.getScaleId())
-                .orderByAsc("order_no"));
-
-        //看需是否要调用大数据
-        for (ScaleContent scaleContent : data) {
-            if (ScaleTypeEnum.PUSH.getKey() == scaleContent.getType()) {
-                scaleContent.setContent("大数据json字符串");
-                break;
-            }
+        SearchData searchData = pushFacade.assembleData(pushVO);
+        RespDTO<List<ScaleContent>> res = aiptServiceClient.getScale(searchData);
+        if (res == null || !CommonErrorCode.OK.getCode().equals(res.code)) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR, "远程调用量表内容失败");
         }
-        return data;
+        return res.data;
     }
 
 

+ 3 - 5
icss-service/src/main/java/com/diagbot/web/DisScaleController.java

@@ -15,13 +15,12 @@ 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;
-import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
 
 /**
  * <p>
- * 诊断量表映射表 前端控制器
+ * 量表映射表 前端控制器
  * </p>
  *
  * @author zhoutg
@@ -29,9 +28,9 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/scale")
-@Api(value = "诊断量表API", tags = { "知识库标准化-诊断量表API" })
+@Api(value = "量表API", tags = { "知识库标准化-量表API" })
 @SuppressWarnings("unchecked")
-public class DisScaleController {
+public class ScaleController {
 
     @Autowired
     DisScaleFacade disScaleFacade;
@@ -49,7 +48,6 @@ public class DisScaleController {
 
     @ApiOperation(value = "知识库标准化-获取量表内容[by:zhoutg]",notes = "")
     @PostMapping("/getContent")
-    @ApiIgnore
     public RespDTO<List<ScaleContent>> getContent(@RequestBody PushVO pushVO) {
         List<ScaleContent> data = scaleContentFacade.getContent(pushVO);
         return RespDTO.onSuc(data);