Sfoglia il codice sorgente

评分接口:查询速度优化

chengyao 4 anni fa
parent
commit
70171e09cc

+ 282 - 0
src/main/java/com/diagbot/dto/MedLisResultDTO.java

@@ -0,0 +1,282 @@
+package com.diagbot.dto;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-08-04
+ */
+public class MedLisResultDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 报告单号
+     */
+    private String repNo;
+
+    /**
+     * 医院ID
+     */
+    private Integer hospitalId;
+
+    /**
+     * 住院病人ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 报告代码
+     */
+    private String itemCode;
+
+    /**
+     * medLisResult报告名称
+     */
+    private String reportName;
+
+    /**
+     * medLisInfo报告名称
+     */
+    private String repName;
+
+    /**
+     * 检验结果
+     */
+    private String result;
+
+    /**
+     * 参考值
+     */
+    private String reference;
+
+    /**
+     * 最小参考值
+     */
+    private String referenceMin;
+
+    /**
+     * 最大参考值
+     */
+    private String referenceMax;
+
+    /**
+     * 单位
+     */
+    private String unit;
+
+    /**
+     * 异常标志
+     */
+    private String abnormal;
+
+    /**
+     * 异常颜色
+     */
+    private String color;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getRepNo() {
+        return repNo;
+    }
+
+    public void setRepNo(String repNo) {
+        this.repNo = repNo;
+    }
+
+    public Integer getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Integer hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+
+    public String getBehospitalCode() {
+        return behospitalCode;
+    }
+
+    public void setBehospitalCode(String behospitalCode) {
+        this.behospitalCode = behospitalCode;
+    }
+
+    public String getItemCode() {
+        return itemCode;
+    }
+
+    public void setItemCode(String itemCode) {
+        this.itemCode = itemCode;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public String getReportName() {
+        return reportName;
+    }
+
+    public void setReportName(String reportName) {
+        this.reportName = reportName;
+    }
+
+    public String getRepName() {
+        return repName;
+    }
+
+    public void setRepName(String repName) {
+        this.repName = repName;
+    }
+
+    public String getResult() {
+        return result;
+    }
+
+    public void setResult(String result) {
+        this.result = result;
+    }
+
+    public String getReference() {
+        return reference;
+    }
+
+    public void setReference(String reference) {
+        this.reference = reference;
+    }
+
+    public String getReferenceMin() {
+        return referenceMin;
+    }
+
+    public void setReferenceMin(String referenceMin) {
+        this.referenceMin = referenceMin;
+    }
+
+    public String getReferenceMax() {
+        return referenceMax;
+    }
+
+    public void setReferenceMax(String referenceMax) {
+        this.referenceMax = referenceMax;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getAbnormal() {
+        return abnormal;
+    }
+
+    public void setAbnormal(String abnormal) {
+        this.abnormal = abnormal;
+    }
+
+    public String getColor() {
+        return color;
+    }
+
+    public void setColor(String color) {
+        this.color = color;
+    }
+
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public MedLisResultDTO() {
+    }
+
+    @Override
+    public String toString() {
+        return "MedLisResultDTO{" +
+                "repNo='" + repNo + '\'' +
+                ", hospitalId=" + hospitalId +
+                ", behospitalCode='" + behospitalCode + '\'' +
+                ", itemCode='" + itemCode + '\'' +
+                ", reportName='" + reportName + '\'' +
+                ", repName='" + repName + '\'' +
+                ", result='" + result + '\'' +
+                ", reference='" + reference + '\'' +
+                ", referenceMin='" + referenceMin + '\'' +
+                ", referenceMax='" + referenceMax + '\'' +
+                ", unit='" + unit + '\'' +
+                ", abnormal='" + abnormal + '\'' +
+                ", color='" + color + '\'' +
+                ", isDeleted='" + isDeleted + '\'' +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator='" + creator + '\'' +
+                ", modifier='" + modifier + '\'' +
+                '}';
+    }
+}

+ 17 - 20
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -4,23 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.AuthServiceClient;
-import com.diagbot.dto.AlgorithmDTO;
-import com.diagbot.dto.AnalyzeDTO;
-import com.diagbot.dto.AnalyzeRunDTO;
-import com.diagbot.dto.BehosDTO;
-import com.diagbot.dto.BehospitalInfoDTO;
-import com.diagbot.dto.ExportExcelDTO;
-import com.diagbot.dto.MedicalRecordDTO;
-import com.diagbot.dto.MsgApiDTO;
-import com.diagbot.dto.MsgDTO;
-import com.diagbot.dto.OutputInfo;
-import com.diagbot.dto.QcCasesEntryDTO;
-import com.diagbot.dto.QcModeDTO;
-import com.diagbot.dto.QcResultApiDTO;
-import com.diagbot.dto.QcResultDTO;
-import com.diagbot.dto.QuestionEntryDTO;
-import com.diagbot.dto.RecordContentDTO;
-import com.diagbot.dto.Response;
+import com.diagbot.dto.*;
 import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.entity.HomeDiagnoseInfo;
@@ -351,10 +335,23 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             queryVo.setBehospitalInfo(behospitalInfoList.get(0));
         }
 
-        // 化验
-        List<MedLisResult> medLisResultList = getMedLisResultList(behospitalInfoList.get(0));
+
+    // 化验
+        //List<MedLisResult> medLisResultList = getMedLisResultList(behospitalInfoList.get(0));
+    //使用sql进行关联优化数据查询
+        List<MedLisResultDTO> medLisResultListDTO = medLisResultFacade.getMedLisResultList(behospitalInfoList.get(0));
+        List<MedLisResult> medLisResultList =new ArrayList<>();
+        for (MedLisResultDTO medLisResultSingle : medLisResultListDTO) {
+            MedLisResult medLisResult = new MedLisResult();
+            BeanUtil.copyProperties(medLisResultSingle,medLisResult);
+            medLisResult.setItemName( medLisResultSingle.getRepName()+ "=" +medLisResultSingle.getReportName());
+            medLisResultList.add(medLisResult);
+        }
+
         // 辅检
-        List<MedPacsResult> medPacsResultList = getMedPacsResultList(behospitalInfoList.get(0));
+       // List<MedPacsResult> medPacsResultList = getMedPacsResultList(behospitalInfoList.get(0));
+      //使用sql进行关联优化数据查询
+        List<MedPacsResult> medPacsResultList = medPacsResultFacade.getMedPacsResultList(behospitalInfoList.get(0));
 
         // 会诊记录
         addDataWithKey("会诊", recMap, medrecVoList,

+ 10 - 0
src/main/java/com/diagbot/facade/MedLisResultFacade.java

@@ -1,8 +1,13 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.MedLisResultDTO;
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.MedLisResult;
 import com.diagbot.service.impl.MedLisResultServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Description:
  * @author: zhoutg
@@ -10,4 +15,9 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class MedLisResultFacade extends MedLisResultServiceImpl {
+    public List<MedLisResultDTO>getMedLisResultList(BehospitalInfo behospitalInfo){
+        return getMedLisResults(behospitalInfo);
+    }
+
+
 }

+ 8 - 0
src/main/java/com/diagbot/facade/MedPacsResultFacade.java

@@ -1,8 +1,13 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.MedLisResultDTO;
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.MedPacsResult;
 import com.diagbot.service.impl.MedPacsResultServiceImpl;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Description:
  * @author: zhoutg
@@ -10,4 +15,7 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class MedPacsResultFacade extends MedPacsResultServiceImpl {
+    public List<MedPacsResult> getMedPacsResultList(BehospitalInfo behospitalInfo){
+        return getMedPacsResults(behospitalInfo);
+    }
 }

+ 5 - 1
src/main/java/com/diagbot/mapper/MedLisResultMapper.java

@@ -1,8 +1,12 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.MedLisResultDTO;
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedLisResult;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-08-04
  */
 public interface MedLisResultMapper extends BaseMapper<MedLisResult> {
-
+    List<MedLisResultDTO> getMedLisResults(BehospitalInfo behospitalInfo);
 }

+ 4 - 1
src/main/java/com/diagbot/mapper/MedPacsResultMapper.java

@@ -1,8 +1,11 @@
 package com.diagbot.mapper;
 
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedPacsResult;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-08-04
  */
 public interface MedPacsResultMapper extends BaseMapper<MedPacsResult> {
-
+    public List<MedPacsResult> getMedPacsResults(BehospitalInfo behospitalInfo);
 }

+ 5 - 1
src/main/java/com/diagbot/service/MedLisResultService.java

@@ -1,8 +1,12 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.MedLisResultDTO;
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedLisResult;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -12,5 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-08-04
  */
 public interface MedLisResultService extends IService<MedLisResult> {
-
+    List<MedLisResultDTO> getMedLisResults(BehospitalInfo behospitalInfo);
 }

+ 4 - 0
src/main/java/com/diagbot/service/MedPacsResultService.java

@@ -1,8 +1,11 @@
 package com.diagbot.service;
 
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedPacsResult;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -12,5 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-08-04
  */
 public interface MedPacsResultService extends IService<MedPacsResult> {
+    public List<MedPacsResult> getMedPacsResults(BehospitalInfo behospitalInfo);
 
 }

+ 8 - 0
src/main/java/com/diagbot/service/impl/MedLisResultServiceImpl.java

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.MedLisResultDTO;
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedLisResult;
 import com.diagbot.mapper.MedLisResultMapper;
 import com.diagbot.service.MedLisResultService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +21,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class MedLisResultServiceImpl extends ServiceImpl<MedLisResultMapper, MedLisResult> implements MedLisResultService {
 
+    @Override
+    public List<MedLisResultDTO> getMedLisResults(BehospitalInfo behospitalInfo) {
+        return baseMapper.getMedLisResults(behospitalInfo);
+    }
 }

+ 8 - 1
src/main/java/com/diagbot/service/impl/MedPacsResultServiceImpl.java

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.MedLisResultDTO;
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedPacsResult;
 import com.diagbot.mapper.MedPacsResultMapper;
 import com.diagbot.service.MedPacsResultService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -16,5 +20,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class MedPacsResultServiceImpl extends ServiceImpl<MedPacsResultMapper, MedPacsResult> implements MedPacsResultService {
-
+    @Override
+    public List<MedPacsResult> getMedPacsResults(BehospitalInfo behospitalInfo) {
+        return baseMapper.getMedPacsResults(behospitalInfo);
+    }
 }

+ 25 - 0
src/main/resources/mapper/MedLisResultMapper.xml

@@ -22,5 +22,30 @@
         <result column="creator" property="creator" />
         <result column="modifier" property="modifier" />
     </resultMap>
+    <select id="getMedLisResults" parameterType="com.diagbot.entity.BehospitalInfo" resultType="com.diagbot.dto.MedLisResultDTO">
+        SELECT
+        t1.rep_no,t1.rep_name repName,t2.behospital_code,t2.hospital_id,t2.item_code,t2.item_name reportName,t2.result,t2.reference,t2.reference_max,t2.reference_min,
+        t2.unit,t2.abnormal,t2.color,t2.is_deleted,t2.gmt_create,t2.gmt_modified,t2.creator,t2.modifier
+        FROM
+            med_lis_info t1,
+            med_lis_result t2
+        WHERE
+            t1.is_deleted = "N"
+        and t2.is_deleted = "N"
+        AND t1.rep_name IS NOT NULL
+        AND t1.check_date IS NOT NULL
+        AND t2.item_name IS NOT NULL
+        and t1.hospital_id = #{hospitalId}
+        and t1.hospital_id = t2.hospital_id
+        and t1.behospital_code = t2.behospital_code
+        and t1.behospital_code = #{behospitalCode}
+        and t2.rep_no in(t1.rep_no)
+        <if test="behospitalDate != null">
+            <![CDATA[ AND t1.check_date >= #{behospitalDate}]]>
+        </if>
+        <if test="leaveHospitalDate != null">
+            <![CDATA[ AND t1.check_date <= #{leaveHospitalDate}]]>
+        </if>
+    </select>
 
 </mapper>

+ 39 - 1
src/main/resources/mapper/MedPacsResultMapper.xml

@@ -23,5 +23,43 @@
         <result column="creator" property="creator" />
         <result column="modifier" property="modifier" />
     </resultMap>
-
+    <select id="getMedPacsResults" parameterType="com.diagbot.entity.BehospitalInfo" resultType="com.diagbot.entity.MedPacsResult">
+        SELECT
+        t1.rep_no,
+        t1.rep_name as reptName,
+        t1.dept_name,
+        t1.part,
+        t2.hospital_id,
+        t2.behospital_code,
+        t2.clinic_diag,
+        t2.apply_doctor,
+        t2.clinic_sight,
+        t2.rept_diag,
+        t2.remark,
+        t2.report_doctor,
+        t2.checker_doctor,
+        t2.is_deleted,
+        t2.gmt_create,
+        t2.gmt_modified,
+        t2.creator,
+        t2.modifier
+        FROM
+        med_pacs_info t1,
+        med_pacs_result t2
+        WHERE
+        t1.is_deleted = "N"
+        AND t2.is_deleted = "N"
+        AND t1.check_date IS NOT NULL
+        and t1.hospital_id = #{hospitalId}
+        and t1.hospital_id = t2.hospital_id
+        and t1.behospital_code = t2.behospital_code
+        and t1.behospital_code = #{behospitalCode}
+        and t2.rep_no in(t1.rep_no)
+        <if test="behospitalDate != null">
+            <![CDATA[ AND t1.check_date >= #{behospitalDate}]]>
+        </if>
+        <if test="leaveHospitalDate != null">
+            <![CDATA[ AND t1.check_date <= #{leaveHospitalDate}]]>
+        </if>
+    </select>
 </mapper>