Bläddra i källkod

历史病历列表修改

rgb 6 år sedan
förälder
incheckning
672043c809

+ 142 - 0
icss-service/src/main/java/com/diagbot/dto/HisInquirysForJzDTO.java

@@ -0,0 +1,142 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import com.diagbot.entity.InquiryDetail;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2018/11/19 18:56
+ */
+@ApiModel(value="急诊-历史病历列表接口出参")
+@Getter
+@Setter
+public class HisInquirysForJzDTO{
+	
+    /**
+     * 问诊记录id
+     */
+	@ApiModelProperty(value="问诊记录id")
+    private Long inquiryId;
+	
+	/**
+     * 医生id
+     */
+	@ApiModelProperty(value="医生id")
+    private Long doctorId;
+	
+    /**
+     * 医生姓名
+     */
+	@ApiModelProperty(value="医生姓名")
+    private String doctorName;
+	
+	/**
+	 * 就诊日期
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+	@ApiModelProperty(value="就诊日期")
+	private Date inquiryDate;
+	
+	/**
+	 * 就诊时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@ApiModelProperty(value="就诊时间")
+	private Date inquiryTime;
+	
+    /**
+     * 诊断
+     */
+	@ApiModelProperty(value="诊断")
+    private String diagnose;
+	
+	/**
+     * 二次诊断的医生id
+     */
+	@ApiModelProperty(value="二次诊断的医生id")
+    private Long doctorIdSecond;
+	
+    /**
+     * 二次诊断的医生姓名
+     */
+	@ApiModelProperty(value="二次诊断的医生姓名")
+    private String doctorNameSecond;
+	
+	/**
+	 * 二次诊断的就诊时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+	@ApiModelProperty(value="二次诊断的就诊时间")
+	private Date inquiryTimeSecond;
+	
+    /**
+     * 二次诊断的诊断
+     */
+	@ApiModelProperty(value="二次诊断的诊断")
+    private String diagnoseSecond;
+	
+    /**
+     * 门诊号
+     */
+	@ApiModelProperty(value="门诊号")
+    private String inquiryCode;
+	
+    /**
+     * 医院科室id
+     */
+	@ApiModelProperty(value="医院科室id")
+    private Long hospitalDeptId;
+	
+    /**
+     * 医院科室名称
+     */
+	@ApiModelProperty(value="医院科室名称")
+    private String hospitalDeptName;
+	
+	/**
+     * 病人id
+     */
+	@ApiModelProperty(value="病人id")
+    private Long patientId;
+	
+	/**
+     * 病人姓名
+     */
+	@ApiModelProperty(value="病人姓名")
+    private String patientName;
+	
+    /**
+     * 病人性别
+     */
+	@ApiModelProperty(value="病人性别")
+    private String patientSex;
+	
+    /**
+     * 病人年龄
+     */
+	@ApiModelProperty(value="病人年龄")
+    private Integer patientAge;
+	
+    /**
+     * 病人证件号码
+     */
+	@ApiModelProperty(value="病人证件号码")
+    private String patientIdNo;
+    
+	/**
+     * 病历明细
+     */
+	@ApiModelProperty(value="病历明细")
+	private List<InquiryDetail> detailList;
+	
+	
+}

+ 8 - 12
icss-service/src/main/java/com/diagbot/facade/HospitalDeptFacade.java

@@ -1,15 +1,15 @@
 package com.diagbot.facade;
 
-import com.diagbot.client.TranServiceClient;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.HospitalDept;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-import java.util.Map;
+import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.HospitalDept;
+import com.diagbot.util.RespDTOUtil;
 
 /**
  * @author rgb
@@ -30,11 +30,7 @@ public class HospitalDeptFacade {
      */
     public Map<Long, HospitalDept> hospitalDeptInfoMapByIds(List<Long> ids) {
         RespDTO<Map<Long, HospitalDept>> retData = tranServiceClient.hospitalDeptInfoMapByIds(ids);
-        if (retData == null
-                || !CommonErrorCode.OK.getCode().equals(retData.code)) {
-            throw new CommonException(CommonErrorCode.RPC_ERROR,
-                    "获取科室信息失败");
-        }
+        RespDTOUtil.respNGDeal(retData,"获取科室信息失败");
         return retData.data;
     }
 

+ 67 - 9
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.dto.GetEvaluationScalesDTO;
 import com.diagbot.dto.GetEvaluationsDTO;
@@ -20,6 +21,7 @@ import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
 import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.HisInquirysForJzDTO;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.dto.PatientInfoDTO;
 import com.diagbot.dto.ReadInquiryDTO;
@@ -41,12 +43,14 @@ 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.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.GetEvaluationScalesVO;
 import com.diagbot.vo.GetEvaluationsVO;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
 import com.diagbot.vo.HisInquirysForDjVO;
+import com.diagbot.vo.HisInquirysForJzVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.IndexDataSaveVO;
 import com.diagbot.vo.PatientInfoVO;
@@ -143,6 +147,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             inquiryDetailList.forEach(i->{
             	i.setInquiryId(inquiryId_);
                 i.setGmtCreate(now);
+                i.setGmtModified(now);
             });
             inquiryDetailFacade.saveInquiryDetails(inquiryDetailList);
         }
@@ -152,6 +157,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             inquiryDrugList.stream().forEach(i -> {
                 i.setInquiryId(inquiryId_);
                 i.setGmtCreate(now);
+                i.setGmtModified(now);
             });
             inquiryDrugService.saveBatch(inquiryDrugList);
         }
@@ -160,6 +166,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             InquiryEvaluation inquiryEvaluation = new InquiryEvaluation();
             inquiryEvaluation.setInquiryId(inquiryId_);
             inquiryEvaluation.setGmtCreate(now);
+            inquiryEvaluation.setGmtModified(now);
             inquiryEvaluation.setHtmlContent(saveInquiryVO.getInquiryEvaluation().getHtmlContent());
             inquiryEvaluationFacade.save(inquiryEvaluation);
 
@@ -169,6 +176,7 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
                     i.setInquiryId(inquiryId_);
                     i.setInquiryEvaluationId(inquiryEvaluation.getId());
                     i.setGmtCreate(now);
+                    i.setGmtModified(now);
                 });
                 inquiryScaleService.saveBatch(inquiryScaleList);
             }
@@ -180,12 +188,12 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             indexDataFacade.saveIndexDatas(indexDataSaveVO);
         }
 
-        saveInquiryDTO.setInquiryId(inquiryId_);
-
         SaveInquiryToHisVO saveInquiryToHisVO = new SaveInquiryToHisVO();
         BeanUtil.copyProperties(saveInquiryVO, saveInquiryToHisVO);
-        tranServiceClient.saveInquiryToHis(saveInquiryToHisVO);
+        RespDTOUtil.respNGDeal(tranServiceClient.saveInquiryToHis(saveInquiryToHisVO), "问诊记录插入tran层失败");
 
+        saveInquiryDTO.setInquiryId(inquiryId_);
+        
         return saveInquiryDTO;
     }
 
@@ -318,10 +326,10 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             return null;
         }
 
-        List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i -> i.getHospitalDeptId()).collect(Collectors.toList());
-        List<Long> doctorIdList = inquiryInfoList.stream().map(i -> i.getDoctorId()).collect(Collectors.toList());
-        List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).collect(Collectors.toList());
-        List<Long> inquiryIdList = inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList());
+        List<Long> hospitalDeptIdList = inquiryInfoList.stream().map(i -> i.getHospitalDeptId()).distinct().collect(Collectors.toList());
+        List<Long> doctorIdList = inquiryInfoList.stream().map(i -> i.getDoctorId()).distinct().collect(Collectors.toList());
+        List<Long> patientIdList = inquiryInfoList.stream().map(i -> i.getPatientId()).distinct().collect(Collectors.toList());
+        List<Long> inquiryIdList = inquiryInfoList.stream().map(i -> i.getId()).distinct().collect(Collectors.toList());
 
         Map<Long, HospitalDept> hospitalDeptMap = hospitalDeptFacade.hospitalDeptInfoMapByIds(hospitalDeptIdList);
         Map<Long, DoctorInfo> doctorInfoMap = doctorInfoFacade.doctorInfoMapByIds(doctorIdList);
@@ -351,10 +359,60 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
         return hisInquiryDTOList;
     }
-
+    
+    /**
+     * 急诊-历史病历列表
+     * 
+     * @param hisInquirysForJzVO
+     * @return
+     */
+    public IPage<HisInquirysForJzDTO> hisInquirysForJz(HisInquirysForJzVO hisInquirysForJzVO){
+    	IPage<HisInquirysForJzDTO> ipage = this.baseMapper.hisInquirysForJz(hisInquirysForJzVO);
+    	
+    	if(ListUtil.isNotEmpty(ipage.getRecords())){
+    		
+    		List<Long> hospitalDeptIdList = ipage.getRecords().stream().map(i -> i.getHospitalDeptId()).distinct().collect(Collectors.toList());
+            List<Long> patientIdList = ipage.getRecords().stream().map(i -> i.getPatientId()).distinct().collect(Collectors.toList());
+            List<Long> inquiryIdList = ipage.getRecords().stream().map(i -> i.getInquiryId()).distinct().collect(Collectors.toList());
+
+            List<Long> doctorIdList = ipage.getRecords().stream().map(i -> i.getDoctorId()).collect(Collectors.toList());
+            doctorIdList.addAll(ipage.getRecords().stream().map(i -> i.getDoctorIdSecond()).collect(Collectors.toList()));
+            doctorIdList = doctorIdList.stream().distinct().collect(Collectors.toList());
+            
+            Map<Long, HospitalDept> hospitalDeptMap = hospitalDeptFacade.hospitalDeptInfoMapByIds(hospitalDeptIdList);
+            Map<Long, PatientInfo> patientInfoMap = patientInfoFacade.patientInfoMapByIds(patientIdList);
+            Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryIdList);
+            Map<Long, DoctorInfo> doctorInfoMap = doctorInfoFacade.doctorInfoMapByIds(doctorIdList);
+        	
+            ipage.getRecords().forEach(i -> {
+                i.setInquiryTime(i.getInquiryDate());
+                i.setHospitalDeptName(Optional.ofNullable(hospitalDeptMap.get(i.getHospitalDeptId())).map(t -> t.getName()).orElse(null));
+                i.setDoctorName(Optional.ofNullable(doctorInfoMap.get(i.getDoctorId())).map(t -> t.getName()).orElse(null));
+                i.setDoctorNameSecond(Optional.ofNullable(doctorInfoMap.get(i.getDoctorIdSecond())).map(t -> t.getName()).orElse(null));
+                PatientInfo patientInfo = patientInfoMap.get(i.getPatientId());
+                if (patientInfo != null) {
+                    i.setPatientName(patientInfo.getName());
+                    i.setPatientIdNo(patientInfo.getIdNo());
+                    i.setPatientSex(SexTypeEnum.getName(patientInfo.getSex()));
+                    i.setPatientAge(DateUtil.yearCompare(patientInfo.getBirthday(), DateUtil.now()));
+                }
+                
+                List<InquiryDetail> detailList= inquiryDetailMap.get(i.getInquiryId());
+                i.setDetailList(detailList);
+                String diagnose = detailList.stream().filter(inquiryDetail->inquiryDetail.getType()==7).map(inquiryDetail->inquiryDetail.getContent()).toString();
+                i.setDiagnose(diagnose.split(";")[0]);
+                
+            });
+             
+    	}
+    	
+    	return ipage;
+    }
+    
+    
     /**
      * 对接-历史病历列表
-     *
+     * 
      * @param hisInquirysForDjVO
      * @return
      */

+ 6 - 0
icss-service/src/main/java/com/diagbot/mapper/InquiryInfoMapper.java

@@ -3,7 +3,10 @@ package com.diagbot.mapper;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.HisInquirysForJzDTO;
 import com.diagbot.entity.InquiryInfo;
+import com.diagbot.vo.HisInquirysForJzVO;
 
 /**
  * <p>
@@ -25,4 +28,7 @@ public interface InquiryInfoMapper extends BaseMapper<InquiryInfo> {
 	 */
 	InquiryInfo getPatientLast(Map<String,Object> map);
 	
+	
+	IPage<HisInquirysForJzDTO> hisInquirysForJz(HisInquirysForJzVO hisInquirysForJzVO);
+	
 }

+ 58 - 0
icss-service/src/main/java/com/diagbot/vo/HisInquirysForJzVO.java

@@ -0,0 +1,58 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2018/11/19 18:58
+ */
+@ApiModel(value="急诊-历史病历列表接口传参")
+@SuppressWarnings({ "rawtypes", "serial" })
+@Getter
+@Setter
+public class HisInquirysForJzVO extends Page {
+	
+	/**
+     * 医院id
+     */
+	@ApiModelProperty(value="医院id",required=true)
+	@NotNull(message="医院id必传")
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+	@ApiModelProperty(value="科室id",required=true)
+	@NotNull(message="科室id必传")
+    private Long hospitalDeptId;
+    
+	/**
+	 * 开始时间
+	 */
+	@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;
+	
+	@ApiModelProperty(value="是否有二次诊断,0-没有,1-有")
+	private Integer isHasSecond; 
+	   
+}

+ 22 - 9
icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -1,6 +1,18 @@
 package com.diagbot.web;
 
 
+import java.util.List;
+
+import javax.validation.Valid;
+
+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 com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetEvaluationScalesDTO;
 import com.diagbot.dto.GetEvaluationsDTO;
@@ -8,6 +20,7 @@ import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
 import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.HisInquirysForJzDTO;
 import com.diagbot.dto.ReadInquiryDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SaveInquiryDTO;
@@ -17,22 +30,15 @@ import com.diagbot.vo.GetEvaluationsVO;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
 import com.diagbot.vo.HisInquirysForDjVO;
+import com.diagbot.vo.HisInquirysForJzVO;
 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 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 springfox.documentation.annotations.ApiIgnore;
 
-import javax.validation.Valid;
-import java.util.List;
-
 /**
  * @author rengb
  * @since 2018-11-23
@@ -74,6 +80,13 @@ public class InquiryInfoController {
     public RespDTO<List<HisInquiryDTO>> hisInquirys(@Valid @RequestBody HisInquirysVO hisInquirysVO) {
         return RespDTO.onSuc(inquiryInfoFacade.hisInquirys(hisInquirysVO));
     }
+    
+    @ApiOperation(value = "急诊-历史病历列表[by:rengb]")
+    @PostMapping("/hisInquirysForJz")
+    @SysLogger("hisInquirysForJz")
+    public RespDTO<IPage<HisInquirysForJzDTO>> hisInquirysForJz(@Valid @RequestBody HisInquirysForJzVO hisInquirysForJzVO) {
+        return RespDTO.onSuc(inquiryInfoFacade.hisInquirysForJz(hisInquirysForJzVO));
+    }
 
     @ApiOperation(value = "对接-历史病历列表[by:rengb]")
     @PostMapping("/hisInquirysForDj")

+ 42 - 0
icss-service/src/main/resources/mapper/InquiryInfoMapper.xml

@@ -35,5 +35,47 @@
 		ORDER BY a.gmt_create desc
 		limit 0,1
     </select>
+    
+    <select id="hisInquirysForJz" resultType="com.diagbot.dto.HisInquirysForJzDTO">
+    	SELECT
+		a.id AS inquiryId,
+		a.hospital_dept_id AS hospitalDeptId,
+		a.doctor_id AS doctorId,
+		a.patient_id AS patientId,
+		a.inquiry_code AS inquiryCode,
+		a.gmt_modified AS inquiryDate,
+		b.modifier AS doctorIdSecond,
+		b.gmt_modified AS inquiryTimeSecond,
+		b.content_value AS diagnoseSecond
+		FROM icss_inquiry_info a
+		LEFT JOIN
+		(SELECT
+		inquiry_id,
+		gmt_modified,
+		modifier,
+		content_value
+		FROM icss_inquiry_detail
+		WHERE type=9) b
+		ON a.id=b.inquiry_id
+		WHERE 1=1
+		AND a.hospital_id=#{hospitalId}
+		AND a.hospital_dept_id=#{hospitalDeptId}
+		<if test="startDate!=null">
+			AND a.gmt_modified>=#{startDate}
+		</if>
+		<if test="endDate!=null">
+			AND #{endDate}>=a.gmt_modified
+		</if>
+		<choose>
+			<when test="isHasSecond==0">
+				AND b.inquiry_id IS NULL
+			</when>
+			<when test="isHasSecond==1">
+				AND b.inquiry_id IS NOT NULL
+			</when>
+			<otherwise></otherwise>
+		</choose>
+		ORDER BY a.gmt_modified DESC
+    </select>
 
 </mapper>