Przeglądaj źródła

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

Zhaops 6 lat temu
rodzic
commit
7fd1173fff

+ 18 - 8
icss-service/src/main/java/com/diagbot/client/bean/ResponseData.java

@@ -16,18 +16,12 @@ public class ResponseData {
     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,String> treat;
 
-    public Map<String, String> getTreat() {
-        return treat;
-    }
-
-    public void setTreat(Map<String, String> treat) {
-        this.treat = treat;
-    }
-
     private Map<String, Map<String, String>> inputs = new HashMap<>(10, 0.5f);
 
+
     public String getParticipleSymptom() {
         return participleSymptom;
     }
@@ -76,6 +70,22 @@ public class ResponseData {
         this.pacs = pacs;
     }
 
+    public List<FeatureRate> getHistory() {
+        return history;
+    }
+
+    public void setHistory(List<FeatureRate> history) {
+        this.history = history;
+    }
+
+    public Map<String, String> getTreat() {
+        return treat;
+    }
+
+    public void setTreat(Map<String, String> treat) {
+        this.treat = treat;
+    }
+
     public Map<String, Map<String, String>> getInputs() {
         return inputs;
     }

+ 1 - 0
icss-service/src/main/java/com/diagbot/dto/PushDTO.java

@@ -15,6 +15,7 @@ import java.util.Map;
 @Setter
 public class PushDTO {
     private List<QuestionDTO> symptom;
+    private List<QuestionDTO> other;
     private List<QuestionDTO> vital;
     private List<QuestionDTO> lab;
     private List<QuestionDTO> pacs;

+ 29 - 20
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -121,21 +121,49 @@ public class PushFacade {
         List<FeatureRate> dis = data.getDis();
         List<FeatureRate> pacs = data.getPacs();
         List<FeatureRate> labs = data.getLabs();
+        List<FeatureRate> other = data.getHistory();
         Map<String, String> treat = data.getTreat();
 
         Map<String, Object> symptomMap = list2Map(symptom);
         Map<String, Object> labMap = list2Map(labs);
         Map<String, Object> pacsMap = list2Map(pacs);
+        Map<String, Object> otherMap = list2Map(other);
 
+        //症状 标签列表
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Symptom.getKey()))) {
+            //文本模式不推症状,仅结构化模式推症状
+            //if (mode.equals(InputModeEnum.Structured.getKey())) {
+            List<QuestionDTO> symptomDTO = getTagListByMap(symptomMap, pushVO, QuestionTypeEnum.Symptom.getKey());
+            pushDTO.setSymptom(symptomDTO);
+            //}
+        }
+        //其他史 标签列表
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Other.getKey()))) {
+            List<QuestionDTO> otherDTO = getTagListByMap(otherMap, pushVO, QuestionTypeEnum.Other.getKey());
+            pushDTO.setOther(otherDTO);
+        }
+        //查体 返回模板(标签列表)
+        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Vital.getKey()))) {
+            //没有推送信息时,默认取全科模板
+            String deptName = "全科";
+            if (dis != null && dis.size() > 0) {
+                deptName = dis.get(0).getExtraProperty();
+            }
+            List<QuestionDTO> vitalDTO = getVitalModule(deptName, pushVO);
+            pushDTO.setVital(vitalDTO);
+
+        }
+        //化验  标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Lis.getKey()))) {
             List<QuestionDTO> labDTO = getTagListByMap(labMap, pushVO, QuestionTypeEnum.Lis.getKey());
             pushDTO.setLab(labDTO);
         }
+        //辅检  标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Pacs.getKey()))) {
             List<QuestionDTO> pacsDTO = getTagListByMap(pacsMap, pushVO, QuestionTypeEnum.Pacs.getKey());
             pushDTO.setPacs(pacsDTO);
         }
-        //诊断 返回tagName+标签
+        //诊断 返回分类+标签列表
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
             Map<String, List<QuestionDTO>> disMapDTO = new LinkedHashMap<>();
             Map<String, List<FeatureRate>> disFeatureMap = new LinkedHashMap<>();
@@ -180,25 +208,6 @@ public class PushFacade {
             }
             pushDTO.setDis(disMapDTO);
         }
-        //症状(主诉 type=1;现病史 type=2) 返回 tagName+填写单
-        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Symptom.getKey()))) {
-            //文本模式不推症状,仅结构化模式推症状
-            if (mode.equals(InputModeEnum.Structured.getKey())) {
-                List<QuestionDTO> symptomDTO = getTagListByMap(symptomMap, pushVO, QuestionTypeEnum.Symptom.getKey());
-                pushDTO.setSymptom(symptomDTO);
-            }
-        }
-        //查体 返回模板
-        if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Vital.getKey()))) {
-            //没有推送信息时,默认取全科模板
-            String deptName = "全科";
-            if (dis != null && dis.size() > 0) {
-                deptName = dis.get(0).getExtraProperty();
-            }
-            List<QuestionDTO> vitalDTO = getVitalModule(deptName, pushVO);
-            pushDTO.setVital(vitalDTO);
-
-        }
         //治疗方案
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Drug.getKey()))) {
             if (pushVO.getDiseaseId() == null) {

+ 1 - 0
icss-service/src/main/java/com/diagbot/vo/LisResult.java

@@ -13,6 +13,7 @@ import lombok.Setter;
 public class LisResult {
     private String name;//套餐名称
     private String detailName;//化验项名称
+    private String uniqueName;//公表名称
     private Double value;//值
     private Double maxValue;//最大值
     private Double minValue;//最小值

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

@@ -42,7 +42,7 @@ public class PushController {
                     "lis:化验,Array<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型,1:症状,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案(必填),String<br>"+
+                    "featureType:类型,1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案(必填),String<br>"+
                     "diseaeId:取治疗方案的诊断,Long<br>" )
     @PostMapping("/pushInner")
     @SysLogger("pushInner")
@@ -59,7 +59,7 @@ public class PushController {
                     "lis:化验,Array<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型,1:症状,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案(必填),String<br>"+
+                    "featureType:类型,1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案(必填),String<br>"+
                     "diseaeId:取治疗方案的诊断,Long<br>" )
     @PostMapping("/pushText")
     @SysLogger("pushText")
@@ -76,7 +76,7 @@ public class PushController {
                     "lis:化验,Array<br>" +
                     "pacs:辅检,String<br>" +
                     "dis:诊断<br>" +
-                    "featureType:类型,1:症状,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案(必填)<br>")
+                    "featureType:类型,1:症状,3:其他史,4:查体,5:化验,6:辅检,7:诊断,8:治疗方案(必填)<br>")
     @PostMapping("/pushAI")
     @SysLogger("pushAI")
     public RespDTO<ResponseData> pushAI(@RequestBody @Valid PushVO pushVO) {

+ 60 - 0
icssman-service/src/main/java/com/diagbot/facade/ModuleDetailFacade.java

@@ -1,8 +1,21 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.ModuleDetail;
+import com.diagbot.entity.ModuleInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.ModuleDetailService;
 import com.diagbot.service.impl.ModuleDetailServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.AddModuleInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -13,6 +26,11 @@ import java.util.Map;
 @Component
 public class ModuleDetailFacade extends ModuleDetailServiceImpl {
 
+    @Autowired
+    private ModuleInfoFacade moduleInfoFacade;
+    @Autowired
+    @Qualifier("moduleDetailServiceImpl")
+    private ModuleDetailService moduleDetailService;
     /**
      * 根据questionId删除明细
      *
@@ -33,4 +51,46 @@ public class ModuleDetailFacade extends ModuleDetailServiceImpl {
     public void deleteByModuleIdFac(Map map) {
         this.deleteByModuleIds(map);
     }
+
+    /**
+     * 添加模板明细
+     *
+     * @param addModuleInfoVO
+     * @return
+     */
+    public Boolean saveOrUpdateInfos(AddModuleInfoVO addModuleInfoVO){
+        /*String userId = UserUtils.getCurrentPrincipleID();*/
+        Date now = DateUtil.now();
+        //获取添加的模板信息
+        QueryWrapper<ModuleInfo> moduleInfoQueryWrapper = new QueryWrapper<>();
+        moduleInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+            .eq("name",addModuleInfoVO.getName())
+            .eq("type",addModuleInfoVO.getType());
+        ModuleInfo moduleInfo = moduleInfoFacade.getOne(moduleInfoQueryWrapper);
+        //如果该模板添加过明细,先删除
+        UpdateWrapper<ModuleDetail> moduleDetailUpdateWrapper = new UpdateWrapper<>();
+        moduleDetailUpdateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("module_id",moduleInfo.getId())
+                .set("is_deleted",IsDeleteEnum.Y.getKey())
+                .set("modifier","1"/*userId*/)
+                .set("gmt_modified",now);
+        this.update(new ModuleDetail(),moduleDetailUpdateWrapper);
+        //重新添加明细
+        List<ModuleDetail> moduleDetailList = new ArrayList<>();
+        ModuleDetail moduleDetail = null;
+        for(int i = 0; i < addModuleInfoVO.getModelDetils().size(); i++){
+            moduleDetail = new ModuleDetail();
+            moduleDetail.setModuleId(moduleInfo.getId());
+            moduleDetail.setCreator("1"/*userId*/);
+            moduleDetail.setModifier("1"/*userId*/);
+            moduleDetail.setGmtCreate(now);
+            moduleDetail.setGmtModified(now);
+            moduleDetail.setQuestionId(addModuleInfoVO.getModelDetils().get(i).getQuestionId());
+            moduleDetail.setModuleId(moduleInfo.getId());
+            moduleDetail.setOrderNo(i+1);
+            moduleDetailList.add(moduleDetail);
+        }
+        moduleDetailService.saveBatch(moduleDetailList);
+        return true;
+    }
 }

+ 57 - 0
icssman-service/src/main/java/com/diagbot/facade/ModuleInfoFacade.java

@@ -1,14 +1,23 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.ModuleInfo;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ModuleInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.AddModuleInfoVO;
+import com.diagbot.vo.UpdateModuleInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -47,4 +56,52 @@ public class ModuleInfoFacade extends ModuleInfoServiceImpl {
         moduleDetailFacade.deleteByModuleIdFac(paramMap);
         return true;
     }
+
+    /**
+     * 添加模板
+     *
+     * @param addModulInfoVO
+     * @return
+     */
+    public Boolean saveModuleInfo(AddModuleInfoVO addModulInfoVO){
+/*        String userId = UserUtils.getCurrentPrincipleID();*/
+        Date now = DateUtil.now();
+        //查询该模板是否添加过
+        QueryWrapper<ModuleInfo> moduleInfoQueryWrapper = new QueryWrapper<>();
+        moduleInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("name",addModulInfoVO.getName());
+        ModuleInfo moduleInfos = this.getOne(moduleInfoQueryWrapper);
+        if(null != moduleInfos){
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED,
+                    "模板名重复,请勿重复添加");
+        }
+        ModuleInfo moduleInfo = new ModuleInfo();
+        BeanUtil.copyProperties(addModulInfoVO,moduleInfo);
+        moduleInfo.setCreator("1"/*userId*/);
+        moduleInfo.setModifier("1"/*userId*/);
+        moduleInfo.setGmtCreate(now);
+        moduleInfo.setGmtModified(now);
+        this.save(moduleInfo);
+        return moduleDetailFacade.saveOrUpdateInfos(addModulInfoVO);
+    }
+    /**
+     * 修改模板
+     *
+     * @param updateModuleInfoVO
+     * @return
+     */
+    public Boolean updateModuleInfo(UpdateModuleInfoVO updateModuleInfoVO){
+        /*        String userId = UserUtils.getCurrentPrincipleID();*/
+        UpdateWrapper<ModuleInfo> moduleInfoUpdateWrapper = new UpdateWrapper<>();
+        moduleInfoUpdateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id",updateModuleInfoVO.getId())
+                .set("name",updateModuleInfoVO.getName())
+                .set("type",updateModuleInfoVO.getType())
+                .set("modifier","1")
+                .set("gmt_modified",DateUtil.now());
+        this.update(new ModuleInfo(),moduleInfoUpdateWrapper);
+        AddModuleInfoVO addModuleInfoVO = new AddModuleInfoVO();
+        BeanUtil.copyProperties(updateModuleInfoVO,addModuleInfoVO);
+        return moduleDetailFacade.saveOrUpdateInfos(addModuleInfoVO);
+    }
 }

+ 18 - 0
icssman-service/src/main/java/com/diagbot/vo/AddModuleDetailVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2018/12/24 11:46
+ */
+@Getter
+@Setter
+public class AddModuleDetailVO {
+    //标签id
+    private Long questionId;
+    //特殊标识
+    private int flag;
+}

+ 23 - 0
icssman-service/src/main/java/com/diagbot/vo/AddModuleInfoVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2018/12/24 11:35
+ */
+@Getter
+@Setter
+public class AddModuleInfoVO {
+    @NotNull(message="模板名称")
+    private String name;
+    @NotNull(message="模板类型")
+    private int type;
+    @NotNull(message="标签id必传")
+    private List<AddModuleDetailVO> modelDetils;
+}

+ 25 - 0
icssman-service/src/main/java/com/diagbot/vo/UpdateModuleInfoVO.java

@@ -0,0 +1,25 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2018/12/24 11:35
+ */
+@Getter
+@Setter
+public class UpdateModuleInfoVO {
+    @NotNull(message="模板id")
+    private Long id;
+    @NotNull(message="模板名称")
+    private String name;
+    @NotNull(message="模板类型")
+    private int type;
+    @NotNull(message="标签id")
+    private List<AddModuleDetailVO> modelDetils;
+}

+ 28 - 7
icssman-service/src/main/java/com/diagbot/web/ModuleInfoController.java

@@ -4,14 +4,19 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ModuleInfoFacade;
+import com.diagbot.vo.AddModuleInfoVO;
+import com.diagbot.vo.UpdateModuleInfoVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 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 javax.validation.Valid;
+
 /**
  * <p>
  * 模型表 前端控制器
@@ -30,16 +35,32 @@ public class ModuleInfoController {
     @Autowired
     ModuleInfoFacade moduleInfoFacade;
 
-    @ApiOperation(value = "模板新增或更新[by:zhoutg]",
-            notes = "")
-    @PostMapping("/saveOrUpdate")
-    @SysLogger("saveOrUpdate")
+    @ApiOperation(value = "模板新增[by:wangyu]",
+            notes = "name: 模板名称,必填<br>" +
+                    "type: 模板类型,必填<br>" +
+                    "questionId: 标签id,必填<br>" +
+                    "flag: 特殊标示类型")
+    @PostMapping("/saveModuleInfo")
+    @SysLogger("saveModuleInfo")
     @Transactional
-    public RespDTO<Boolean> saveOrUpdate() {
-
-        return RespDTO.onSuc(true);
+    public RespDTO<Boolean> saveModuleInfo(@Valid @RequestBody AddModuleInfoVO addModuleInfoVO) {
+        Boolean data = moduleInfoFacade.saveModuleInfo(addModuleInfoVO);
+        return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "模板修改[by:wangyu]",
+            notes = "id: 模板id,必填<br>" +
+                    "name: 模板名称,必填<br>" +
+                    "type: 模板类型,必填<br>" +
+                    "questionId: 标签id,必填<br>" +
+                    "flag: 特殊标示类型")
+    @PostMapping("/updateModuleInfo")
+    @SysLogger("updateModuleInfo")
+    @Transactional
+    public RespDTO<Boolean> updateModuleInfo(@Valid @RequestBody UpdateModuleInfoVO updateModuleInfoVO) {
+        Boolean data = moduleInfoFacade.updateModuleInfo(updateModuleInfoVO);
+        return RespDTO.onSuc(data);
+    }
 
     @ApiOperation(value = "模板删除[by:zhoutg]",
             notes = "")