Przeglądaj źródła

Merge branch '20210512_yw_check' into test

rengb 4 lat temu
rodzic
commit
5f954123f4

+ 28 - 0
src/main/java/com/diagbot/dto/BehospitalInfoAgeDTO.java

@@ -0,0 +1,28 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangsy
+ * @time: 2021/5/13 15:00
+ */
+@Getter
+@Setter
+public class BehospitalInfoAgeDTO {
+
+    /**
+     * 病人住院序号
+     */
+    private String behospitalCode;
+
+    /**
+     * 年龄
+     */
+    private String age;
+    private String ageYear;
+    private String ageMon;
+    private String ageDay;
+
+}

+ 6 - 0
src/main/java/com/diagbot/dto/CheckedRecordListDTO.java

@@ -126,4 +126,10 @@ public class CheckedRecordListDTO {
     @ApiModelProperty("病历得分")
     private BigDecimal scoreRes;
 
+    /**
+     * 年龄
+     */
+    @ApiModelProperty("年龄")
+    private String age;
+
 }

+ 64 - 4
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -11,8 +11,31 @@ import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.BehospitalInfoServiceImpl;
-import com.diagbot.util.*;
-import com.diagbot.vo.*;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EncrypDES;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.MapUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.AlgorithmVO;
+import com.diagbot.vo.AnalyzeCdsVO;
+import com.diagbot.vo.AnalyzeCodeVO;
+import com.diagbot.vo.AnalyzeRunVO;
+import com.diagbot.vo.AnalyzeVO;
+import com.diagbot.vo.BasDeptInfoVO;
+import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
+import com.diagbot.vo.FilterVO;
+import com.diagbot.vo.GetDetailVO;
+import com.diagbot.vo.MedrecVo;
+import com.diagbot.vo.QcResultAlgQueryVO;
+import com.diagbot.vo.QcResultAlgVO;
+import com.diagbot.vo.QueryVo;
+import com.diagbot.vo.RecordContentVO;
+import com.diagbot.vo.TaskVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
@@ -25,8 +48,15 @@ import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -2344,4 +2374,34 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO){
         return  baseMapper.malignancy(filterVO);
     }
+
+    /**
+     * 获取患者年龄信息(通过出生日期和入院日期重新计算)
+     * @param hospitalId
+     * @param behospitalCodes
+     * @return
+     */
+    public List<BehospitalInfoAgeDTO> getBehospitalInfoAge(Long hospitalId, List<String> behospitalCodes) {
+        if (hospitalId == null || ListUtil.isEmpty(behospitalCodes)) {
+            return new ArrayList<>();
+        }
+        List<BehospitalInfoAgeDTO> behospitalInfoAgeDTOList = this.baseMapper.getBehospitalInfoAge(hospitalId, behospitalCodes);
+        if (behospitalInfoAgeDTOList == null) {
+            return new ArrayList<>();
+        }
+
+        behospitalInfoAgeDTOList.forEach(behospitalInfoAgeDTO -> {
+            String age = "";
+            if (StringUtil.isNotBlank(behospitalInfoAgeDTO.getAgeYear()) && !behospitalInfoAgeDTO.getAgeYear().equals("0")) {
+                age += behospitalInfoAgeDTO.getAgeYear() + "岁";
+            } else {
+                age += (StringUtil.isNotBlank(behospitalInfoAgeDTO.getAgeMon()) && !behospitalInfoAgeDTO.getAgeMon().equals("0") ? (behospitalInfoAgeDTO.getAgeMon() + "个月") : "")
+                        + (StringUtil.isNotBlank(behospitalInfoAgeDTO.getAgeDay()) && !behospitalInfoAgeDTO.getAgeDay().equals("0") ? (behospitalInfoAgeDTO.getAgeDay() + "天") : "");
+            }
+            behospitalInfoAgeDTO.setAge(age);
+        });
+
+        return behospitalInfoAgeDTOList;
+    }
+
 }

+ 7 - 16
src/main/java/com/diagbot/facade/MedCheckWorkFacade.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.BasDeptInfoDTO;
+import com.diagbot.dto.BehospitalInfoAgeDTO;
 import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.dto.MedicalRecordDTO;
 import com.diagbot.entity.MedBehospitalType;
@@ -58,6 +59,8 @@ public class MedCheckWorkFacade {
     private MedicalRecordServiceImpl medicalRecordServiceImpl;
     @Autowired
     private SysTaskCronFacade sysTaskCronFacade;
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
 
     /**
      * @Author songxl
@@ -233,25 +236,13 @@ public class MedCheckWorkFacade {
         if (res == null || ListUtil.isEmpty(res.getRecords())) {
             return res;
         }
+
         List<String> behospitalCodes = res.getRecords().stream().map(CheckWorkDTO::getBehospitalCode).collect(Collectors.toList());
-        Map<String, CheckWorkDTO> ageMap = medCheckInfoFacade.getBaseMapper().getCheckWorkAgeByCodes(checkWorkPageVO.getHospitalId(), behospitalCodes).stream().collect(Collectors.toMap(i -> i.getBehospitalCode(), i -> i));
-        res.getRecords().stream().forEach(i -> {
-            if (ageMap.get(i.getBehospitalCode()) != null) {
-                i.setAgeYear(ageMap.get(i.getBehospitalCode()).getAgeYear());
-                i.setAgeMon(ageMap.get(i.getBehospitalCode()).getAgeMon());
-                i.setAgeDay(ageMap.get(i.getBehospitalCode()).getAgeDay());
-            }
-        });
+        Map<String, BehospitalInfoAgeDTO> ageMap = behospitalInfoFacade.getBehospitalInfoAge(checkWorkPageVO.getHospitalId(), behospitalCodes).stream().collect(Collectors.toMap(i -> i.getBehospitalCode(), i -> i));
         res.getRecords().forEach(i -> {
-            String age = "";
-            if (StringUtil.isNotBlank(i.getAgeYear()) && !i.getAgeYear().equals("0")) {
-                age += i.getAgeYear() + "岁";
-            } else {
-                age += (StringUtil.isNotBlank(i.getAgeMon()) && !i.getAgeMon().equals("0") ? (i.getAgeMon() + "个月") : "")
-                        + (StringUtil.isNotBlank(i.getAgeDay()) && !i.getAgeDay().equals("0") ? (i.getAgeDay() + "天") : "");
-            }
-            i.setAge(age);
+            i.setAge(ageMap.get(i.getBehospitalCode()) == null ? "" : ageMap.get(i.getBehospitalCode()).getAge());
         });
+
         //更新delFlag
         Long principleId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
         res.getRecords().stream().forEach(checkWorkDTO -> {

+ 6 - 0
src/main/java/com/diagbot/facade/RecordCheckFacade.java

@@ -2,6 +2,7 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.BehospitalInfoAgeDTO;
 import com.diagbot.dto.CheckedRecordListDTO;
 import com.diagbot.dto.SysUserDeptDTO;
 import com.diagbot.entity.MedCheckInfo;
@@ -47,6 +48,9 @@ public class RecordCheckFacade {
     MedCheckInfoFacade medCheckInfoFacade;
     @Autowired
     MedQcresultDetailService medQcresultDetailService;
+    @Autowired
+    BehospitalInfoFacade behospitalInfoFacade;
+
 
     public IPage<CheckedRecordListDTO> checkedRecordList(CheckedRecordListVO checkedRecordListVO) {
         Long hospitalId = Long.parseLong(SysUserUtils.getCurrentHospitalID());
@@ -88,10 +92,12 @@ public class RecordCheckFacade {
             medQcresultDetailQueryWrapper.in("behospital_code", behospitalCodes);
             medQcresultDetailQueryWrapper.select("behospital_code", "cases_entry_id");
             Map<String, Long> behospitalCodeCasesMap = medQcresultDetailService.list(medQcresultDetailQueryWrapper).stream().collect(Collectors.groupingBy(MedQcresultDetail::getBehospitalCode, Collectors.counting()));
+            Map<String, BehospitalInfoAgeDTO> ageMap = behospitalInfoFacade.getBehospitalInfoAge(hospitalId, behospitalCodes).stream().collect(Collectors.toMap(i -> i.getBehospitalCode(), i -> i));
             iPage.getRecords().forEach(i -> {
                 i.setCasesEntryNum(behospitalCodeCasesMap.get(i.getBehospitalCode()) == null ? 0 : behospitalCodeCasesMap.get(i.getBehospitalCode()).intValue());
                 i.setMonth(i.getJobDistributionTime());
                 i.setStatus(CheckStatusEnum.getName(Integer.parseInt(i.getStatus())));
+                i.setAge(ageMap.get(i.getBehospitalCode()) == null ? "" : ageMap.get(i.getBehospitalCode()).getAge());
             });
         }
 

+ 26 - 3
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -4,11 +4,26 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.*;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.FilterRecordVO;
-import com.diagbot.vo.*;
+import com.diagbot.vo.AnalyzeCodeVO;
+import com.diagbot.vo.AnalyzeVO;
+import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.CaseScoreVO;
+import com.diagbot.vo.EntryStatisticsVO;
+import com.diagbot.vo.ExportQcresultVO;
+import com.diagbot.vo.FilterMedicalCheckVO;
+import com.diagbot.vo.FilterOrderByDeptVO;
+import com.diagbot.vo.FilterOrderVO;
+import com.diagbot.vo.FilterPageByDeptVO;
+import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
+import com.diagbot.vo.FilterVO;
+import com.diagbot.vo.MedIndexFilterVO;
+import com.diagbot.vo.QcResultPageVO;
+import com.diagbot.vo.QcResultShortPageVO;
+import com.diagbot.vo.ReBeHosPageVO;
+import com.diagbot.vo.TaskVO;
 import org.apache.ibatis.annotations.Param;
 
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -729,4 +744,12 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<Map<String,String>> malignancy(@Param("filterVO") FilterVO filterVO);
+
+    /**
+     * 获取患者年龄信息(通过出生日期和入院日期重新计算)
+     * @param hospitalId
+     * @param behospitalCodes
+     * @return
+     */
+    List<BehospitalInfoAgeDTO> getBehospitalInfoAge(Long hospitalId, List<String> behospitalCodes);
 }

+ 1 - 3
src/main/java/com/diagbot/mapper/MedCheckInfoMapper.java

@@ -1,5 +1,6 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.CheckJobDTO;
 import com.diagbot.dto.CheckUserDTO;
@@ -7,7 +8,6 @@ import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.dto.CheckedRecordListDTO;
 import com.diagbot.dto.DeptCheckUserDTO;
 import com.diagbot.entity.MedCheckInfo;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.CheckJobPageVO;
 import com.diagbot.vo.CheckJobVO;
 import com.diagbot.vo.CheckUserVO;
@@ -31,8 +31,6 @@ public interface MedCheckInfoMapper extends BaseMapper<MedCheckInfo> {
     List<DeptCheckUserDTO> getJobNumByUserId(CheckUserVO checkUserVO);
     //核查任务列表
     IPage<CheckWorkDTO> getCheckWorkPage(CheckWorkPageVO checkWorkPageVO);
-    //获取核查任务年龄
-    List<CheckWorkDTO> getCheckWorkAgeByCodes(Long hospitalId, List<String> behospitalCodes);
     //获取指定核查人员的核查任务
     List<CheckJobDTO> getCheckListByUserId(CheckJobVO checkJobVO);
     //取消核查任务

+ 22 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -17877,4 +17877,26 @@
         )
         )
     </select>
+
+    <!-- 获取患者年龄信息(通过出生日期和入院日期重新计算) -->
+    <select id="getBehospitalInfoAge" resultType="com.diagbot.dto.BehospitalInfoAgeDTO">
+        SELECT
+        mbi.behospital_code behospitalCode,
+        mhp.age,
+        TIMESTAMPDIFF(year,ifnull(mhp.birthday,mbi.birthday),mbi.behospital_date) as ageYear,
+        TIMESTAMPDIFF(month,DATE_ADD(ifnull(mhp.birthday,mbi.birthday),INTERVAL TIMESTAMPDIFF(year,ifnull(mhp.birthday,mbi.birthday),mbi.behospital_date) year),mbi.behospital_date) as ageMon,
+        TIMESTAMPDIFF(day,DATE_ADD(ifnull(mhp.birthday,mbi.birthday),INTERVAL TIMESTAMPDIFF(month,ifnull(mhp.birthday,mbi.birthday),mbi.behospital_date) month),mbi.behospital_date) as ageDay
+        FROM
+        med_behospital_info mbi
+        LEFT JOIN med_home_page mhp
+        ON mbi.behospital_code=mhp.behospital_code
+        AND mbi.hospital_id = mhp.hospital_id AND mhp.is_deleted = 'N'
+        WHERE mbi.hospital_id=#{hospitalId} AND mbi.is_deleted = 'N'
+        <if test="behospitalCodes !=null and behospitalCodes.size > 0">
+            and mbi.behospital_code in
+            <foreach collection="behospitalCodes" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>

+ 0 - 21
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -294,27 +294,6 @@
         </if>
     </select>
 
-    <!--获取核查任务年龄-->
-    <select id="getCheckWorkAgeByCodes" resultType="com.diagbot.dto.CheckWorkDTO">
-        SELECT
-        mbi.behospital_code behospitalCode,
-        mhp.age,
-        TIMESTAMPDIFF(year,ifnull(mhp.birthday,mbi.birthday),mbi.behospital_date) as ageYear,
-        TIMESTAMPDIFF(month,DATE_ADD(ifnull(mhp.birthday,mbi.birthday),INTERVAL TIMESTAMPDIFF(year,ifnull(mhp.birthday,mbi.birthday),mbi.behospital_date) year),mbi.behospital_date) as ageMon,
-        TIMESTAMPDIFF(day,DATE_ADD(ifnull(mhp.birthday,mbi.birthday),INTERVAL TIMESTAMPDIFF(month,ifnull(mhp.birthday,mbi.birthday),mbi.behospital_date) month),mbi.behospital_date) as ageDay
-        FROM
-        med_behospital_info mbi
-        LEFT JOIN med_home_page mhp
-        ON mbi.behospital_code=mhp.behospital_code
-        AND mbi.hospital_id = mhp.hospital_id AND mhp.is_deleted = 'N'
-        WHERE mbi.hospital_id=#{hospitalId} AND mbi.is_deleted = 'N'
-        <if test="behospitalCodes !=null and behospitalCodes.size > 0">
-            and mbi.behospital_code in
-            <foreach collection="behospitalCodes" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
-    </select>
     <!--通过住院号,取消核查任务-->
     <update id="deleteBatchCodes">
         <foreach collection="list" item="item"  separator=";">