瀏覽代碼

开单合理性维护

zhaops 4 年之前
父節點
當前提交
ecb923d7da

+ 48 - 0
src/main/java/com/diagbot/dto/DictionaryInfoDTO.java

@@ -0,0 +1,48 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * icss字典表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+@Getter
+@Setter
+public class DictionaryInfoDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分组(值自定义)
+     */
+    private Long groupType;
+
+    /**
+     * 内容
+     */
+    private String name;
+
+    /**
+     * 值
+     */
+    private String val;
+
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 88 - 0
src/main/java/com/diagbot/entity/DictionaryInfo.java

@@ -0,0 +1,88 @@
+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;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * CDSS字典表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+@TableName("sys_dictionary_info")
+@Getter
+@Setter
+public class DictionaryInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 分组(值自定义)
+     */
+    private Long groupType;
+
+    /**
+     * 内容
+     */
+    private String name;
+
+    /**
+     * 值
+     */
+    private String val;
+
+    /**
+     * 返回类型(0: 都返回,1:后台维护返回 2:icss界面返回)
+     */
+    private Integer returnType;
+
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 67 - 0
src/main/java/com/diagbot/facade/DictionaryFacade.java

@@ -0,0 +1,67 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.DictionaryInfoDTO;
+import com.diagbot.entity.DictionaryInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.DictionaryInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhoutg
+ * @time: 2018/11/23 11:37
+ */
+@Component
+public class DictionaryFacade extends DictionaryInfoServiceImpl {
+
+    /**
+     * 返回字典信息
+     *
+     * @return
+     */
+    public Map<Long, List<DictionaryInfoDTO>> getList() {
+        List<DictionaryInfo> list = this.list(new QueryWrapper<DictionaryInfo>()
+                .in("return_type", ListUtil.arrayToList(new Long[] { 0L, 2L }))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("group_type", "order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return EntityUtil.makeEntityListMap(listRes, "groupType");
+    }
+
+    /**
+     * 返回字典信息
+     *
+     * @return
+     */
+    public Map<Long, List<DictionaryInfoDTO>> getListBack() {
+        List<DictionaryInfo> list = this.list(new QueryWrapper<DictionaryInfo>()
+                .in("return_type", ListUtil.arrayToList(new Long[] { 0L, 1L }))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("group_type", "order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return EntityUtil.makeEntityListMap(listRes, "groupType");
+    }
+
+
+    /**
+     * 返回指定字典信息
+     *
+     * @param groupType
+     * @return
+     */
+    public List<DictionaryInfoDTO> getListByGroupType(Integer groupType) {
+        List<DictionaryInfo> list = this.list(new QueryWrapper<DictionaryInfo>()
+                .eq("group_type", groupType)
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return listRes;
+    }
+}

+ 34 - 0
src/main/java/com/diagbot/facade/IndicationManFacade.java

@@ -1,8 +1,10 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.entity.node.Indication;
 import com.diagbot.entity.node.IndicationCondition;
 import com.diagbot.repository.IndicationRepository;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.ConditionIndexVO;
 import com.diagbot.vo.IndicationPageVO;
@@ -14,6 +16,7 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -25,6 +28,8 @@ import java.util.stream.Collectors;
 public class IndicationManFacade {
     @Autowired
     IndicationRepository indicationRepository;
+    @Autowired
+    DictionaryFacade dictionaryFacade;
 
     /**
      * 获取开单合理项列表
@@ -33,6 +38,22 @@ public class IndicationManFacade {
      * @return
      */
     public Page<Indication> getPage(IndicationPageVO indicationPageVO) {
+        List<DictionaryInfoDTO> dicTypeConvert = dictionaryFacade.getListByGroupType(8);
+        List<DictionaryInfoDTO> dicIndicationManType = dictionaryFacade.getListByGroupType(11);
+        Map<String, String> dicTypeConvertMap
+                = EntityUtil.makeMapWithKeyValue(dicTypeConvert, "name", "val");
+        Map<String, String> dicIndicationManTypeMap
+                = EntityUtil.makeMapWithKeyValue(dicIndicationManType, "val", "name");
+        List<String> labels = Lists.newArrayList();
+        if (ListUtil.isNotEmpty(indicationPageVO.getTypes())) {
+            for (Integer type : indicationPageVO.getTypes()) {
+                if (dicIndicationManTypeMap.containsKey(type.toString())
+                        && dicTypeConvertMap.containsKey(dicIndicationManTypeMap.containsKey(type.toString()))) {
+                    labels.add(dicTypeConvertMap.get(dicIndicationManTypeMap.get(type.toString())));
+                }
+            }
+        }
+
         Pageable pageable = PageRequest.of(indicationPageVO.getNumber(), indicationPageVO.getSize());
         Page<Indication> page = indicationRepository.getPage(indicationPageVO.getLabels(),
                 indicationPageVO.getConceptName(),
@@ -49,6 +70,19 @@ public class IndicationManFacade {
      * @return
      */
     public List<IndicationCondition> conditionIndex(ConditionIndexVO conditionIndexVO) {
+        //TODO 输血单独处理
+
+
+        List<DictionaryInfoDTO> dicTypeConvert = dictionaryFacade.getListByGroupType(8);
+        List<DictionaryInfoDTO> dicIndicationManType = dictionaryFacade.getListByGroupType(11);
+        Map<String, String> dicTypeConvertMap
+                = EntityUtil.makeMapWithKeyValue(dicTypeConvert, "name", "val");
+        Map<String, String> dicIndicationManTypeMap
+                = EntityUtil.makeMapWithKeyValue(dicIndicationManType, "val", "name");
+        if (dicIndicationManTypeMap.containsKey(conditionIndexVO.getType().toString())
+                && dicTypeConvertMap.containsKey(dicIndicationManTypeMap.containsKey(conditionIndexVO.getType().toString()))) {
+            conditionIndexVO.setConceptLabel(dicTypeConvertMap.get(dicIndicationManTypeMap.get(conditionIndexVO.getType().toString())));
+        }
         List<String> relationTypes = indicationRepository.getRelationTypes(conditionIndexVO.getConceptLabel());
         List<String> conditionLabels = Lists.newArrayList();
         //条件明细筛选范围

+ 16 - 0
src/main/java/com/diagbot/mapper/DictionaryInfoMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.DictionaryInfo;
+
+/**
+ * <p>
+ * CDSS字典表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+public interface DictionaryInfoMapper extends BaseMapper<DictionaryInfo> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/DictionaryInfoService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.DictionaryInfo;
+
+/**
+ * <p>
+ * CDSS字典表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+public interface DictionaryInfoService extends IService<DictionaryInfo> {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/DictionaryInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.DictionaryInfo;
+import com.diagbot.mapper.DictionaryInfoMapper;
+import com.diagbot.service.DictionaryInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * CDSS字典表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2018-12-25
+ */
+@Service
+public class DictionaryInfoServiceImpl extends ServiceImpl<DictionaryInfoMapper, DictionaryInfo> implements DictionaryInfoService {
+
+}

+ 3 - 0
src/main/java/com/diagbot/vo/ConditionIndexVO.java

@@ -1,5 +1,6 @@
 package com.diagbot.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -14,6 +15,8 @@ import javax.validation.constraints.NotBlank;
 @Setter
 public class ConditionIndexVO {
     @NotBlank(message = "请选择开单项类型")
+    private Integer type;
+    @ApiModelProperty(hidden = true)
     private String conceptLabel;
     @NotBlank(message = "请选择开单项")
     private String conceptName;

+ 1 - 0
src/main/java/com/diagbot/vo/IndicationPageVO.java

@@ -13,6 +13,7 @@ import java.util.List;
 @Getter
 @Setter
 public class IndicationPageVO {
+    private List<Integer> types;
     private int number = 0;
     private int size = 10;
     private List<String> labels;

+ 2 - 2
src/main/java/com/diagbot/web/IndicationManController.java

@@ -33,7 +33,7 @@ public class IndicationManController {
     @ApiOperation(value = "获取开单合理项列表[zhaops]",
             notes = "number:页码<br>" +
                     "size:每页条目数<br>" +
-                    "labels:术语类型(多选)<br>" +
+                    "types:术语类型(多选)1-检验、2-检查、3-检查子项、4-手术和操作、5-药品、6-输血<br>" +
                     "conceptName:术语名称(模糊匹配)<br>" +
                     "conditionName:条件明细(模糊匹配)<br>" +
                     "relationStatus:启用禁用标志(0-禁用,1-启用)<br>")
@@ -44,7 +44,7 @@ public class IndicationManController {
     }
 
     @ApiOperation(value = "条件明细检索[zhaops]",
-            notes = "conceptLabel:开单类型<br>" +
+            notes = "type:开单类型(1-检验、2-检查、3-检查子项、4-手术和操作、5-药品、6-输血)<br>" +
                     "conceptName:开单项<br>" +
                     "ruleType:规则类型:文本类型、数值类型<br>" +
                     "conditionName:条件明细(模糊匹配)<br>")