浏览代码

别名、对接接口修改

rgb 6 年之前
父节点
当前提交
096448264e

+ 58 - 0
icss-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjDTO{
+	
+	private Long id;
+	
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+    private Long patientId;
+
+    /**
+     * 就诊序列号
+     */
+    private String inquiryCode;
+
+    /**
+     * 分类(1:门诊,2:住院)
+     */
+    private Integer type;
+
+	
+	private List<String> contentList;
+	
+}

+ 60 - 0
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -14,9 +14,11 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
 import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.dto.PatientInfoDTO;
 import com.diagbot.dto.ReadInquiryDTO;
@@ -31,8 +33,11 @@ import com.diagbot.enums.SexTypeEnum;
 import com.diagbot.service.impl.InquiryInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.PatientInfoVO;
 import com.diagbot.vo.ReadInquiryVO;
@@ -271,6 +276,61 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
         return hisInquiryDTOList;
     }
+    
+    /**
+     * 对接-历史病历列表
+     *
+     * @param hisInquirysForDjVO
+     * @return
+     */
+    public List<HisInquirysForDjDTO> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
+    	QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", hisInquirysForDjVO.getHospitalId());
+        if(hisInquirysForDjVO.getHospitalDeptId()!=null){
+        	queryWrapper.eq("hospital_dept_id", hisInquirysForDjVO.getHospitalDeptId());
+        }
+        if(hisInquirysForDjVO.getDoctorId()!=null){
+        	queryWrapper.eq("doctor_id", hisInquirysForDjVO.getDoctorId());
+        }
+        if (hisInquirysForDjVO.getPatientId() != null) {
+            queryWrapper.eq("patient_id", hisInquirysForDjVO.getPatientId());
+        }
+        if(StringUtil.isNotBlank(hisInquirysForDjVO.getInquiryCode())){
+        	queryWrapper.eq("inquiry_code", hisInquirysForDjVO.getInquiryCode());
+        }
+        if (hisInquirysForDjVO.getType() != null) {
+            queryWrapper.eq("type", hisInquirysForDjVO.getType());
+        }
+        if (hisInquirysForDjVO.getSign() != null) {
+            queryWrapper.eq("sign", hisInquirysForDjVO.getSign());
+        }
+        if (hisInquirysForDjVO.getStartDate() != null) {
+            queryWrapper.ge("gmt_create", hisInquirysForDjVO.getStartDate());
+        }
+        if (hisInquirysForDjVO.getEndDate() != null) {
+            queryWrapper.le("gmt_create", hisInquirysForDjVO.getEndDate());
+        }
+        if (hisInquirysForDjVO.getOrderType() == 1) {
+            queryWrapper.orderByDesc("gmt_modified");
+        } else if (hisInquirysForDjVO.getOrderType() == 2) {
+            queryWrapper.orderByAsc("gmt_modified");
+        }
+        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        if (ListUtil.isEmpty(inquiryInfoList)) {
+            return null;
+        }
+        
+        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList()));
+        List<HisInquirysForDjDTO> hisInquirysForDjDTOList = BeanUtil.listCopyTo(inquiryInfoList, HisInquirysForDjDTO.class);
+        
+        hisInquirysForDjDTOList.forEach(i->{
+        	i.setContentList(inquiryDetailMap.get(i.getId()).stream().map(k->k.getContentValue()).collect(Collectors.toList()));
+        });
+        
+        return hisInquirysForDjDTOList;
+    }
+    
 
     /**
      * 病历详情

+ 88 - 0
icss-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java

@@ -0,0 +1,88 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjVO {
+	
+	/**
+     * 医院id
+     */
+	@ApiModelProperty(value="医院id",required=true)
+	@NotNull(message="医院id必传")
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+	@ApiModelProperty(value="科室id")
+	//@NotNull(message="科室id必传")
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+	@ApiModelProperty(value="医生id")
+	//@NotNull(message="医生id必传")
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+	@ApiModelProperty(value="患者id",required=true)
+	@NotNull(message="患者id必传")
+    private Long patientId;
+	
+	/**
+     * 就诊序列号
+     */
+	@ApiModelProperty(value="就诊序列号")
+    private String inquiryCode;
+    
+    /**
+     * 病历分类(1:门诊,2:住院)
+     */
+	@ApiModelProperty(value="病历分类(1:门诊,2:住院)")
+    private Integer type;
+    
+    /**
+     * 内容输入类型:0:结构化 1:文本模式
+     */
+	@ApiModelProperty(value="内容输入类型:0:结构化 1:文本模式")
+    private Integer sign;
+    
+	/**
+	 * 开始时间
+	 */
+	@ApiModelProperty(value="开始时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date startDate;
+	
+	/**
+	 * 结束时间
+	 */
+	@ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date endDate;
+	
+	/**
+	 * 排序类型:1、时间降序;2、时间升序; 
+	 */
+	@ApiModelProperty(value="排序类型:1、时间降序;2、时间升序;")
+	private Integer orderType=1;
+	   
+}

+ 11 - 0
icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -16,18 +16,21 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
 import com.diagbot.dto.ReadInquiryDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SaveInquiryDTO;
 import com.diagbot.facade.InquiryInfoFacade;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.ReadInquiryVO;
 import com.diagbot.vo.SaveInquiryVO;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * @author rengb
@@ -70,6 +73,14 @@ public class InquiryInfoController {
     public RespDTO<List<HisInquiryDTO>> hisInquirys(@Valid @RequestBody HisInquirysVO hisInquirysVO) {
         return RespDTO.onSuc(inquiryInfoFacade.hisInquirys(hisInquirysVO));
     }
+    
+    @ApiOperation(value = "对接-历史病历列表[by:rengb]")
+    @PostMapping("/hisInquirysForDj")
+    @SysLogger("hisInquirysForDj")
+    @ApiIgnore
+    public RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(@Valid @RequestBody HisInquirysForDjVO hisInquirysForDjVO) {
+        return RespDTO.onSuc(inquiryInfoFacade.hisInquirysForDj(hisInquirysForDjVO));
+    }
 
     @ApiOperation(value = "病历详情[by:rengb]")
     @PostMapping("/getInquiryDetail")

+ 30 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -492,6 +492,36 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         paramMap.put("notTagType", questionIndexVO.getNotTagType());
         return this.index(paramMap);
     }
+    
+    /**
+     * 别名新增标签检索
+     *
+     * @param questionIndexVO
+     * @return
+     */
+    public List<QuestionInfo> indexRev(QuestionIndexVO questionIndexVO) {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("age", questionIndexVO.getAge());
+        paramMap.put("sexType", questionIndexVO.getSexType());
+        paramMap.put("tagName", questionIndexVO.getTagName());
+        paramMap.put("type", questionIndexVO.getType());
+        paramMap.put("controlType", questionIndexVO.getControlType());
+        paramMap.put("notIds", questionIndexVO.getNotIds());
+        paramMap.put("tagType", questionIndexVO.getTagType());
+        paramMap.put("existName", questionIndexVO.getExistName());
+        paramMap.put("notTagType", questionIndexVO.getNotTagType());
+        List<QuestionInfo> list = this.index(paramMap);
+        if(ListUtil.isEmpty(list)){
+        	return list;
+        }
+        Map<Long,Integer> couMap = retrievalMappingFacade.getMapCouByQuesIds(list.stream().map(i->i.getId()).collect(Collectors.toList()));
+        return list.stream().filter(i->{
+        	if(couMap.get(i.getId())!=null){
+        		return false;
+        	}
+        	return true;
+        }).collect(Collectors.toList());
+    }
 
 
     /**

+ 17 - 0
icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java

@@ -3,9 +3,14 @@
  */
 package com.diagbot.facade;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.stereotype.Component;
 
 import com.diagbot.service.impl.RetrievalMappingServiceImpl;
+import com.diagbot.util.ListUtil;
 
 /**
  * @author rgb
@@ -14,6 +19,18 @@ import com.diagbot.service.impl.RetrievalMappingServiceImpl;
  */
 @Component
 public class RetrievalMappingFacade extends RetrievalMappingServiceImpl {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return questionId-标签id,cou-别名个数
+	 */
+	public Map<Long,Integer> getMapCouByQuesIds(List<Long> ids){
+		if(ListUtil.isEmpty(ids)){
+			return new HashMap<Long,Integer>();
+		}
+		return this.baseMapper.getMapCouByQuesIds(ids);
+	}
 
 
 }

+ 11 - 1
icssman-service/src/main/java/com/diagbot/mapper/RetrievalMappingMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.RetrievalMapping;
+import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.RetrievalMapping;
 
 /**
  * <p>
@@ -12,5 +15,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-12-03
  */
 public interface RetrievalMappingMapper extends BaseMapper<RetrievalMapping> {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return questionId-标签id,cou-别名个数
+	 */
+	Map<Long,Integer> getMapCouByQuesIds(List<Long> ids);
 
 }

+ 9 - 1
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -73,7 +73,15 @@ public class QuestionInfoController {
         List<QuestionInfo> data = questionFacade.indexFac(questionIndexVO);
         return RespDTO.onSuc(data);
     }
-
+    
+    @ApiOperation(value = "别名新增标签检索[by:rengb]",
+            notes = "")
+    @PostMapping("/indexRev")
+    @SysLogger("indexRev")
+    public RespDTO<List<QuestionInfo>> indexRev(@RequestBody QuestionIndexVO questionIndexVO) {
+        List<QuestionInfo> data = questionFacade.indexRev(questionIndexVO);
+        return RespDTO.onSuc(data);
+    }
 
     @ApiOperation(value = "获取特殊标签(同伴|无)[by:zhoutg]",
             notes = "")

+ 14 - 0
icssman-service/src/main/resources/mapper/RetrievalMappingMapper.xml

@@ -15,5 +15,19 @@
         <result column="show_type" property="showType" />
         <result column="remark" property="remark" />
     </resultMap>
+    
+    <select id="getMapCouByQuesIds" parameterType="list" resultType="map">
+    	select 
+    	a.question_id as questionId,
+    	count(1) as cou
+		from icss_retrieval_mapping a
+		join icss_retrieval b on a.retrieval_id=b.id
+		where a.is_deleted = 'N' and b.is_deleted = 'N'
+		and a.question_id in
+		<foreach collection="list" open="(" close=")" separator="," item="quid">
+			#{quid}
+		</foreach>
+		group by a.question_id
+    </select>
 
 </mapper>

+ 36 - 0
tran-service/src/main/java/com/diagbot/client/InquiryInfoServiceClient.java

@@ -0,0 +1,36 @@
+package com.diagbot.client;
+
+import java.util.List;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import com.diagbot.client.hystrix.InquiryInfoServiceHystrix;
+import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.HisInquirysForDjVO;
+
+
+/**
+ * @Description: 调用问诊服务
+ * @author: rengb
+ * @time: 2019/3/19 9:52
+ */
+@FeignClient(value = "icss-service", fallback = InquiryInfoServiceHystrix.class)
+public interface InquiryInfoServiceClient {
+
+	
+	/**
+     * 对接-历史病历列表
+     *
+     * @param hisInquirysForDjVO
+     * @return
+     */
+    @PostMapping("/inquiryInfo/hisInquirysForDj")
+    RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(@RequestBody HisInquirysForDjVO hisInquirysForDjVO);
+
+}
+
+
+

+ 33 - 0
tran-service/src/main/java/com/diagbot/client/hystrix/InquiryInfoServiceHystrix.java

@@ -0,0 +1,33 @@
+package com.diagbot.client.hystrix;
+
+import java.util.List;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.client.InquiryInfoServiceClient;
+import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.HisInquirysForDjVO;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * @Description: 调用问诊服务
+ * @author: rengb
+ * @time: 2019/3/19 9:52
+ */
+@Component
+@Slf4j
+public class InquiryInfoServiceHystrix implements InquiryInfoServiceClient {
+
+	@Override
+	public RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
+		log.error("【hystrix】调用{}异常", "hisInquirysForDj");
+		return null;
+	}
+	
+	
+
+
+}

+ 58 - 0
tran-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjDTO{
+	
+	private Long id;
+	
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+    private Long patientId;
+
+    /**
+     * 就诊序列号
+     */
+    private String inquiryCode;
+
+    /**
+     * 分类(1:门诊,2:住院)
+     */
+    private Integer type;
+
+	
+	private List<String> contentList;
+	
+}

+ 13 - 0
tran-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -1,7 +1,11 @@
 package com.diagbot.facade;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.diagbot.client.InquiryInfoServiceClient;
+import com.diagbot.vo.HisInquirysForDjVO;
+
 /**
  * @Description: 对接问诊信息业务逻辑
  * @author: rengb
@@ -9,5 +13,14 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class InquiryInfoFacade {
+	
+	@Autowired
+	private InquiryInfoServiceClient inquiryInfoServiceClient;
+	
+	public Object hisInquirysForDj(){
+		HisInquirysForDjVO hisInquirysForDjVO = null;
+		inquiryInfoServiceClient.hisInquirysForDj(hisInquirysForDjVO);
+		return null;
+	}
 
 }

+ 88 - 0
tran-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java

@@ -0,0 +1,88 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjVO {
+	
+	/**
+     * 医院id
+     */
+	@ApiModelProperty(value="医院id",required=true)
+	@NotNull(message="医院id必传")
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+	@ApiModelProperty(value="科室id")
+	//@NotNull(message="科室id必传")
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+	@ApiModelProperty(value="医生id")
+	//@NotNull(message="医生id必传")
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+	@ApiModelProperty(value="患者id",required=true)
+	@NotNull(message="患者id必传")
+    private Long patientId;
+	
+	/**
+     * 就诊序列号
+     */
+	@ApiModelProperty(value="就诊序列号")
+    private String inquiryCode;
+    
+    /**
+     * 病历分类(1:门诊,2:住院)
+     */
+	@ApiModelProperty(value="病历分类(1:门诊,2:住院)")
+    private Integer type;
+    
+    /**
+     * 内容输入类型:0:结构化 1:文本模式
+     */
+	@ApiModelProperty(value="内容输入类型:0:结构化 1:文本模式")
+    private Integer sign;
+    
+	/**
+	 * 开始时间
+	 */
+	@ApiModelProperty(value="开始时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date startDate;
+	
+	/**
+	 * 结束时间
+	 */
+	@ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date endDate;
+	
+	/**
+	 * 排序类型:1、时间降序;2、时间升序; 
+	 */
+	@ApiModelProperty(value="排序类型:1、时间降序;2、时间升序;")
+	private Integer orderType=1;
+	   
+}

+ 9 - 1
tran-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -34,11 +34,19 @@ public class InquiryInfoController {
 	 
 	 @PostMapping("/saveInquiryToHis")
 	 @SysLogger("saveInquiryToHis")
-
 	 public RespDTO<Boolean> saveInquiryToHis(@Valid @RequestBody SaveInquiryToHisVO saveInquiryToHisVO) {
 		 
 		 
 		
+	     return RespDTO.onSuc(true);
+	 }
+	 
+	 @PostMapping("/hisInquirysForDj")
+	 @SysLogger("hisInquirysForDj")
+	 public RespDTO<Object> hisInquirysForDj() {
+		 
+		 
+		
 	     return RespDTO.onSuc(true);
 	 }