浏览代码

增加检验检查信息核心代码

liuqq 4 年之前
父节点
当前提交
d767d0a242

+ 10 - 10
src/main/java/com/diagbot/entity/MedLisInfo.java

@@ -1,7 +1,7 @@
 package com.diagbot.entity;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -23,7 +23,7 @@ public class MedLisInfo implements Serializable {
     /**
      * 医院ID
      */
-    private String hospitalId;
+    private Long hospitalId;
 
     /**
      * 住院病人ID
@@ -88,12 +88,12 @@ public class MedLisInfo implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -112,11 +112,11 @@ public class MedLisInfo implements Serializable {
     public void setRepNo(String repNo) {
         this.repNo = repNo;
     }
-    public String getHospitalId() {
+    public Long getHospitalId() {
         return hospitalId;
     }
 
-    public void setHospitalId(String hospitalId) {
+    public void setHospitalId(Long hospitalId) {
         this.hospitalId = hospitalId;
     }
     public String getBehospitalCode() {
@@ -203,18 +203,18 @@ public class MedLisInfo implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 10 - 10
src/main/java/com/diagbot/entity/MedPacsInfo.java

@@ -1,7 +1,7 @@
 package com.diagbot.entity;
 
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -23,7 +23,7 @@ public class MedPacsInfo implements Serializable {
     /**
      * 医院ID
      */
-    private String hospitalId;
+    private Long hospitalId;
 
     /**
      * 住院病人ID
@@ -103,12 +103,12 @@ public class MedPacsInfo implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -127,11 +127,11 @@ public class MedPacsInfo implements Serializable {
     public void setRepNo(String repNo) {
         this.repNo = repNo;
     }
-    public String getHospitalId() {
+    public Long getHospitalId() {
         return hospitalId;
     }
 
-    public void setHospitalId(String hospitalId) {
+    public void setHospitalId(Long hospitalId) {
         this.hospitalId = hospitalId;
     }
     public String getBehospitalCode() {
@@ -239,18 +239,18 @@ public class MedPacsInfo implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
     public String getCreator() {

+ 103 - 0
src/main/java/com/diagbot/facade/data/AMedLisInfoFacade.java

@@ -0,0 +1,103 @@
+package com.diagbot.facade.data;
+
+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.RespDTO;
+import com.diagbot.entity.MedLisInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.MedLisInfoServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.SqlProperties;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.ADeleteFlagVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+
+import java.util.Date;
+import java.util.List;
+
+public class AMedLisInfoFacade extends MedLisInfoServiceImpl {
+
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    @Autowired
+    private SqlProperties sqlProperties;
+
+    @Autowired
+    @Qualifier("medLisInfoServiceImpl")
+    private MedLisInfoServiceImpl medLisInfoServiceImpl;
+
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+
+
+    /**
+     * 同步前一天
+     */
+    public void executeMedPacsResult() {
+        //String sql="select * from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        //同步前一天的数据
+        //String sql="select * from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23))";
+        String sql = sqlProperties.getLisInfoSql();
+        List<MedLisInfo> medLisInfoList= tzDBConn.getLisInfo(sql);
+        execute(medLisInfoList);
+    }
+
+    public void execute(List<MedLisInfo> medLisInfoList){
+        try {
+            List<MedLisInfo> addE = Lists.newLinkedList();
+            List<MedLisInfo> updateE = Lists.newLinkedList();
+            if (medLisInfoList != null && medLisInfoList.size() > 0) {
+                medLisInfoList.stream().forEach(s -> {
+                    MedLisInfo medLisInfo = this.getOne(new QueryWrapper<MedLisInfo>()
+                            .eq("rep_no", s.getRepNo())
+                            .eq("hospital_id", s.getHospitalId()), false);
+                    if (medLisInfo != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                medLisInfoServiceImpl.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+            //aMedAbnormalInfoFacade.saveAbnormalInfo("检查",JSON.toJSONString(medPacsResultList),"","操作成功!");
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检验信息-保存异常",JSON.toJSONString(medLisInfoList),"",e.getMessage());
+        }
+    }
+
+    public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
+        try {
+            //验证数据是否存在
+            if(StringUtil.isEmpty(aDeleteFlagVO.getRepNo())){
+                return RespDTO.onError("请输入报告单号!");
+            }else if(aDeleteFlagVO.getHospitalId()==null){
+                return RespDTO.onError("请输入医院编码!");
+            }else {
+                UpdateWrapper<MedLisInfo> updateWrapper=new UpdateWrapper<>();
+                updateWrapper.eq("rep_no", aDeleteFlagVO.getRepNo())
+                        .eq("hospital_id", aDeleteFlagVO.getHospitalId())
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .set("is_deleted",IsDeleteEnum.Y)
+                        .set("gmt_modified", DateUtil.now());
+
+                Boolean flag=update(new MedLisInfo(),updateWrapper);
+                //aMedAbnormalInfoFacade.saveAbnormalInfo("检查-删除",JSON.toJSONString(aDeleteFlagVO),JSON.toJSONString(RespDTO.onSuc(flag)),"操作成功!");
+                return RespDTO.onSuc(flag);
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-删除异常", JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
+            return RespDTO.onError(e.getMessage());
+        }
+    }
+}

+ 104 - 0
src/main/java/com/diagbot/facade/data/AMedPacsInfoFacade.java

@@ -0,0 +1,104 @@
+package com.diagbot.facade.data;
+
+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.RespDTO;
+import com.diagbot.entity.MedPacsInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.MedPacsInfoServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.SqlProperties;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.TZDBConn;
+import com.diagbot.vo.data.ADeleteFlagVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class AMedPacsInfoFacade extends MedPacsInfoServiceImpl {
+    private TZDBConn tzDBConn = new TZDBConn();
+
+    @Autowired
+    private SqlProperties sqlProperties;
+
+    @Autowired
+    @Qualifier("medPacsInfoServiceImpl")
+    private MedPacsInfoServiceImpl medPacsInfoServiceImpl;
+
+    @Autowired
+    private AMedAbnormalInfoFacade aMedAbnormalInfoFacade;
+
+
+    /**
+     * 同步前一天
+     */
+    public void executeMedPacsResult() {
+        //String sql="select * from br_rechome where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
+        //同步前一天的数据
+        //String sql="select * from br_rechome where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23))";
+        String sql = sqlProperties.getPacsInfoSql();
+        List<MedPacsInfo> medPacsInfoList= tzDBConn.getPacsInfo(sql);
+        execute(medPacsInfoList);
+    }
+
+    public void execute(List<MedPacsInfo> medPacsInfoList){
+        try {
+            List<MedPacsInfo> addE = Lists.newLinkedList();
+            List<MedPacsInfo> updateE = Lists.newLinkedList();
+            if (medPacsInfoList != null && medPacsInfoList.size() > 0) {
+                medPacsInfoList.stream().forEach(s -> {
+                    MedPacsInfo medPacsInfo = this.getOne(new QueryWrapper<MedPacsInfo>()
+                            .eq("rep_no", s.getRepNo())
+                            .eq("hospital_id", s.getHospitalId()), false);
+                    if (medPacsInfo != null) {
+                        s.setGmtModified(new Date());
+                        updateE.add(s);
+                    } else {
+                        s.setGmtCreate(new Date());
+                        addE.add(s);
+                    }
+                });
+            }
+            if(addE.size()>0){
+                medPacsInfoServiceImpl.saveBatch(addE);
+            }
+            if(updateE.size()>0){
+                this.baseMapper.updateBatchByKey(updateE);
+            }
+            //aMedAbnormalInfoFacade.saveAbnormalInfo("检查",JSON.toJSONString(medPacsResultList),"","操作成功!");
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-保存异常",JSON.toJSONString(medPacsInfoList),"",e.getMessage());
+        }
+    }
+
+    public RespDTO deleteFlag(ADeleteFlagVO aDeleteFlagVO){
+        try {
+            //验证数据是否存在
+            if(StringUtil.isEmpty(aDeleteFlagVO.getRepNo())){
+                return RespDTO.onError("请输入报告单号!");
+            }else if(aDeleteFlagVO.getHospitalId()==null){
+                return RespDTO.onError("请输入医院编码!");
+            }else {
+                UpdateWrapper<MedPacsInfo> updateWrapper=new UpdateWrapper<>();
+                updateWrapper.eq("rep_no", aDeleteFlagVO.getRepNo())
+                        .eq("hospital_id", aDeleteFlagVO.getHospitalId())
+                        .eq("is_deleted", IsDeleteEnum.N)
+                        .set("is_deleted",IsDeleteEnum.Y)
+                        .set("gmt_modified", DateUtil.now());
+
+                Boolean flag=update(new MedPacsInfo(),updateWrapper);
+                //aMedAbnormalInfoFacade.saveAbnormalInfo("检查-删除",JSON.toJSONString(aDeleteFlagVO),JSON.toJSONString(RespDTO.onSuc(flag)),"操作成功!");
+                return RespDTO.onSuc(flag);
+            }
+        }catch (Exception e){
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查信息-删除异常", JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
+            return RespDTO.onError(e.getMessage());
+        }
+    }
+}

+ 1 - 1
src/main/java/com/diagbot/facade/data/AMedPacsResultFacade.java

@@ -128,7 +128,7 @@ public class AMedPacsResultFacade extends MedPacsResultServiceImpl {
                 return RespDTO.onSuc(flag);
             }
         }catch (Exception e){
-            aMedAbnormalInfoFacade.saveAbnormalInfo("检查-删除",JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
+            aMedAbnormalInfoFacade.saveAbnormalInfo("检查结果-删除",JSON.toJSONString(aDeleteFlagVO),"",e.getMessage());
             return RespDTO.onError(e.getMessage());
         }
     }

+ 3 - 3
src/main/java/com/diagbot/mapper/MedLisInfoMapper.java

@@ -1,12 +1,10 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.dto.CheckInfoDTO;
 import com.diagbot.dto.ExamineInfoDTO;
 import com.diagbot.dto.ExamineSonInfoDTO;
 import com.diagbot.entity.MedLisInfo;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.vo.CheckInfoVO;
 import com.diagbot.vo.ExamineInfoVO;
 import com.diagbot.vo.ExamineSonInfoVO;
 import org.apache.ibatis.annotations.Param;
@@ -33,4 +31,6 @@ public interface MedLisInfoMapper extends BaseMapper<MedLisInfo> {
     List<String> getInfo(@Param("hospitalId") Long hospitalId, @Param("behospitalCode") String behospitalCode);
 
     IPage<ExamineSonInfoDTO> getExamineSonInfo(@Param("examineSonInfoVO") ExamineSonInfoVO examineSonInfoVO, @Param("infos") Set<String> infos);
+
+    void updateBatchByKey(List<MedLisInfo> list);
 }

+ 2 - 4
src/main/java/com/diagbot/mapper/MedPacsInfoMapper.java

@@ -1,13 +1,10 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.CheckInfoDTO;
-import com.diagbot.dto.DoctorAdviceDTO;
-import com.diagbot.entity.DoctorAdvice;
 import com.diagbot.entity.MedPacsInfo;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.CheckInfoVO;
-import com.diagbot.vo.DoctorAdviceVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -31,4 +28,5 @@ public interface MedPacsInfoMapper extends BaseMapper<MedPacsInfo> {
 
     List<String> getInfo(@Param("hospitalId") Long hospitalId, @Param("behospitalCode") String behospitalCode);
 
+    void updateBatchByKey(List<MedPacsInfo> list);
 }

+ 2 - 0
src/main/java/com/diagbot/util/SqlProperties.java

@@ -21,4 +21,6 @@ public class SqlProperties {
     private String homeDiagnoseInfoSql;
     private String homeOperationInfoSql;
     private String crisisInfoSql;
+    private String pacsInfoSql;
+    private String lisInfoSql;
 }

+ 63 - 0
src/main/java/com/diagbot/util/TZDBConn.java

@@ -686,4 +686,67 @@ public class TZDBConn {
 		}
 		return medCheckInfoList;
 	}
+
+	public List<MedPacsInfo> getPacsInfo(String sql){
+		List<MedPacsInfo>  medPacsInfoList= Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				MedPacsInfo medPacsInfo=new MedPacsInfo();
+				medPacsInfo.setRepNo(rs.getString("REPNO"));//报告单号
+				medPacsInfo.setHospitalId(HOSPITAL_ID);//医院ID
+				medPacsInfo.setBehospitalCode(rs.getString("BEHOSPITALCODE"));//住院病人ID
+				medPacsInfo.setRepType(rs.getString("REPTYPE"));//报告类型代码
+				medPacsInfo.setRepName(rs.getString("REPNAME"));//检查类型名称
+				medPacsInfo.setRepTypeName(rs.getString("REPTYPENAME"));//检查类型名称
+				medPacsInfo.setPart(rs.getString("PART"));//检查部位
+				medPacsInfo.setRepDate(rs.getString("REPDATE"));//发布时间
+				medPacsInfo.setCheckDate(rs.getString("CHECKDATE"));//报告检查时间
+				medPacsInfo.setApplyDoctor(rs.getString("APPLYDOCTOR"));//申请医生
+				medPacsInfo.setDeptId(rs.getString("DEPTID"));//开单科室代码
+				medPacsInfo.setDeptName(rs.getString("DEPTNAME"));//开单科室名称
+				medPacsInfo.setRegisterFlag(rs.getString("REGISTERFLAG"));;//报告单状态
+				medPacsInfo.setReportDoctor(rs.getString("REPORTDOCTOR"));
+				medPacsInfo.setChecker(rs.getString("CHECKER"));
+				medPacsInfo.setYjpdz(rs.getString("YJPDZ"));
+				medPacsInfoList.add(medPacsInfo);
+			}
+		}catch (Exception e){
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		return medPacsInfoList;
+	}
+
+	public List<MedLisInfo> getLisInfo(String sql){
+		List<MedLisInfo>  medLisInfoList= Lists.newLinkedList();
+		try {
+			TZDBConn dbconn=new TZDBConn();
+			ResultSet rs =dbconn.Query(sql, null);
+			while(rs.next()){
+				MedLisInfo medLisInfo=new MedLisInfo();
+				medLisInfo.setRepNo(rs.getString("REPNO"));//报告单号
+				medLisInfo.setHospitalId(HOSPITAL_ID);//医院ID
+				medLisInfo.setBehospitalCode(rs.getString("BEHOSPITALCODE"));//住院病人ID
+				medLisInfo.setRepType(rs.getString("REPTYPE"));//报告类型代码
+				medLisInfo.setRepName(rs.getString("REPNAME"));//检查类型名称
+				medLisInfo.setRepTypeName(rs.getString("REPTYPENAME"));//检查类型名称
+				medLisInfo.setSlideType(rs.getString("SLIDETYPE"));//标本名称
+				medLisInfo.setRepDate(rs.getString("REPDATE"));//发布时间
+				medLisInfo.setCheckDate(rs.getString("CHECKDATE"));//报告检查时间
+				medLisInfo.setApplyDoctor(rs.getString("APPLYDOCTOR"));//申请医生
+				medLisInfo.setDeptId(rs.getString("DEPTID"));//开单科室代码
+				medLisInfo.setDeptName(rs.getString("DEPTNAME"));//开单科室名称
+				medLisInfo.setRegisterFlag(rs.getString("REGISTERFLAG"));;//报告单状态
+				medLisInfoList.add(medLisInfo);
+			}
+		}catch (Exception e){
+			e.printStackTrace();
+		}finally {
+			close();
+		}
+		return medLisInfoList;
+	}
 }

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

@@ -291,4 +291,29 @@
         </if>
     </select>
 
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_pacs_info
+            <set>
+                behospital_code = #{item.behospitalCode},
+                rep_type = #{item.repType},
+                rep_name = #{item.repName},
+                rep_type_name = #{item.repTypeName},
+                slide_type = #{item.slideType},
+                rep_date = #{item.repDate},
+                check_date = #{item.checkDate},
+                apply_doctor = #{item.applyDoctor},
+                dept_id = #{item.deptId},
+                dept_name = #{item.deptName},
+                register_flag = #{item.registerFlag},
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where rep_no = #{item.repNo} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
 </mapper>

+ 29 - 0
src/main/resources/mapper/MedPacsInfoMapper.xml

@@ -148,4 +148,33 @@
             and a.behospital_code = #{behospitalCode}
         </if>
     </select>
+
+    <update id="updateBatchByKey">
+        <foreach collection="list" item="item"  separator=";">
+            update med_pacs_info
+            <set>
+                behospital_code = #{item.behospitalCode},
+                rep_name= #{item.repName},
+                rep_type= #{item.repType},
+                rep_type_name= #{item.repTypeName},
+                part= #{item.part},
+                rep_date= #{item.repDate},
+                check_date= #{item.checkDate},
+                apply_doctor= #{item.applyDoctor},
+                dept_id= #{item.deptId},
+                dept_name= #{item.deptName},
+                register_flag= #{item.registerFlag},
+                report_doctor= #{item.reportDoctor},
+                checker= #{item.checker},
+                yjpdz= #{item.yjpdz},
+                <if test="item.gmtModified != null">
+                    gmt_modified = #{item.gmtModified},
+                </if>
+                <if test="item.modifier != null">
+                    modifier = #{item.modifier},
+                </if>
+            </set>
+            where rep_no = #{item.repNo} and hospital_id = #{item.hospitalId}
+        </foreach>
+    </update>
 </mapper>