lipc 4 år sedan
förälder
incheckning
3a2e51c157

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

@@ -1,4 +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;
+
 }

+ 28 - 0
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -2244,4 +2244,32 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         return ret;
     }
 
+    /**
+     * 获取患者年龄信息(通过出生日期和入院日期重新计算)
+     * @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;
+    }
 }

+ 21 - 0
src/main/java/com/diagbot/facade/data/AHomePageFacade.java

@@ -4,11 +4,13 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.AnalyzeRunDTO;
+import com.diagbot.dto.BehospitalInfoAgeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.data.AHomePageDTO;
 import com.diagbot.entity.HomePage;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.service.impl.BehospitalInfoServiceImpl;
 import com.diagbot.service.impl.HomePageServiceImpl;
 import com.diagbot.util.*;
 import com.diagbot.vo.AnalyzeRunVO;
@@ -46,6 +48,10 @@ public class AHomePageFacade extends HomePageServiceImpl{
     @Autowired
     private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
 
+    @Autowired
+    @Qualifier("behospitalInfoServiceImpl")
+    private BehospitalInfoServiceImpl behospitalInfoService;
+
     @Value("${log_switch.enable}")
     private boolean logSwitch;
 
@@ -146,6 +152,21 @@ public class AHomePageFacade extends HomePageServiceImpl{
                 homePage.setBehospitalDate(DateUtil.parseDateTime(s.getBehospitalDate()));
                 homePage.setLeaveHospitalDate(DateUtil.parseDateTime(s.getLeaveHospitalDate()));
                 homePage.setQcDate(DateUtil.parseDateTime(s.getQcDate()));
+
+                List<String> behospitalCodes = Lists.newArrayList();
+                behospitalCodes.add(s.getBehospitalCode());
+                List<BehospitalInfoAgeDTO> behospitalInfoAge = behospitalInfoService.getBaseMapper().getBehospitalInfoAge(s.getHospitalId(), behospitalCodes);
+                if(behospitalInfoAge.size() > 0){
+                    behospitalInfoAge.forEach(behospitalInfoAgeDTO -> {
+                        if (StringUtil.isNotBlank(behospitalInfoAgeDTO.getAgeYear()) && !behospitalInfoAgeDTO.getAgeYear().equals("0")) {
+                            homePage.setAge(behospitalInfoAgeDTO.getAgeYear());
+                            homePage.setAgeUnit("岁");
+                        } else {
+                            homePage.setAge(behospitalInfoAgeDTO.getAgeMon());
+                            homePage.setAgeUnit("月");
+                        }
+                    });
+                }
                 homePageList.add(homePage);
 
                 //初始化诊断和手术,并同步到数据库

+ 8 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -666,4 +666,12 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<ExportExcelByDeptDTO> qcCheckMRPageExportByDept(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
+    /**
+     * 获取患者年龄信息(通过出生日期和入院日期重新计算)
+     * @param hospitalId
+     * @param behospitalCodes
+     * @return
+     */
+    List<BehospitalInfoAgeDTO> getBehospitalInfoAge(Long hospitalId, List<String> behospitalCodes);
 }

+ 5 - 5
src/main/resources/application-local.yml

@@ -59,10 +59,10 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      # url: jdbc:mysql://172.16.203.211:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
-      url: jdbc:mysql://192.168.2.236:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      url: jdbc:mysql://172.16.203.211:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
+      # url: jdbc:mysql://127.0.0.1:3306/qc?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true
       username: root
-      password: lantone
+      password: langtong
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5
@@ -112,7 +112,7 @@ spring:
     database:
       cache: 8 # cache索引
       token: 8 # Token索引
-    host: 192.168.2.121  #Redis服务器地址
+    host: 127.0.0.1  #Redis服务器地址
     port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
@@ -165,7 +165,7 @@ oath.self.address: http://${myhost}:${server.port}
 
 # 加解密开关
 encrypt:
-  enable: true
+  enable: false
 
 swagger:
   enable: true

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

@@ -17391,4 +17391,25 @@
         f1.doctorId = f2.doctorId
         AND f1.doctorName = f2.doctorName
     </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>