From 4e8edf16d80f387aadad044ede27ecb19392b377 Mon Sep 17 00:00:00 2001
From: linjj <850658129@qq.com>
Date: Mon, 22 Jul 2024 11:00:47 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=87=87=E9=9B=86=E4=BF=9D?=
=?UTF-8?q?=E5=AD=98=E8=B7=AF=E5=BE=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 20 +-
.../spring/config/DataSource1Config.java | 61 -----
.../spring/config/DataSource3Config.java | 48 ----
.../spring/controller/MoneyController.java | 36 ++-
.../spring/db1/dao/ArchiveDetailDao.java | 4 +-
.../spring/db1/dao/ArchiveMasterDao.java | 20 +-
.../spring/db1/service/ECGPollingService.java | 25 ++
.../db1/service/PacsPollingService.java | 48 ----
.../serviceImpl/ECGPollingServiceImpl.java | 228 ++++++++++++++++++
.../serviceImpl/PacsPollingServiceImpl.java | 228 ------------------
.../com/shibofu/spring/db2/dao/ECGDao.java | 20 ++
.../com/shibofu/spring/db2/dao/PacsDao.java | 20 --
.../shibofu/spring/db3/dao/CostListDao.java | 21 --
.../spring/db3/service/CostListService.java | 13 -
.../db3/serviceImpl/CostListServiceImpl.java | 141 -----------
.../com/shibofu/spring/quartz/ECGQuartz.java | 28 +++
.../shibofu/spring/quartz/PacsPushQuartz.java | 29 ---
.../com/shibofu/spring/quartz/PacsQuartz.java | 33 ---
.../shibofu/spring/quartz/QuartzConfig.java | 21 +-
.../java/com/shibofu/spring/text/test.java | 19 +-
.../shibofu/spring/util/PacsAutoPrintPDF.java | 14 --
.../shibofu/spring/vo/ArchiveMasterVo.java | 2 +
.../com/shibofu/spring/vo/CostListVo.java | 29 ---
.../java/com/shibofu/spring/vo/ECGVo.java | 19 ++
.../java/com/shibofu/spring/vo/PacsVo.java | 20 --
src/main/resources/application.properties | 49 ++--
src/main/resources/application.yml | 7 +-
src/main/resources/logback.xml | 2 +-
.../mapper/db1/ArchiveDetailrMapper.xml | 13 +-
.../mapper/db1/ArchiveMasterMapper.xml | 37 +--
src/main/resources/mapper/db2/ECGMapper.xml | 11 +
src/main/resources/mapper/db2/PacsMapper.xml | 16 --
src/main/resources/mapper/db3/CostListDao.xml | 19 --
33 files changed, 414 insertions(+), 887 deletions(-)
delete mode 100644 src/main/java/com/shibofu/spring/config/DataSource1Config.java
delete mode 100644 src/main/java/com/shibofu/spring/config/DataSource3Config.java
create mode 100644 src/main/java/com/shibofu/spring/db1/service/ECGPollingService.java
delete mode 100644 src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java
create mode 100644 src/main/java/com/shibofu/spring/db1/serviceImpl/ECGPollingServiceImpl.java
delete mode 100644 src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java
create mode 100644 src/main/java/com/shibofu/spring/db2/dao/ECGDao.java
delete mode 100644 src/main/java/com/shibofu/spring/db2/dao/PacsDao.java
delete mode 100644 src/main/java/com/shibofu/spring/db3/dao/CostListDao.java
delete mode 100644 src/main/java/com/shibofu/spring/db3/service/CostListService.java
delete mode 100644 src/main/java/com/shibofu/spring/db3/serviceImpl/CostListServiceImpl.java
create mode 100644 src/main/java/com/shibofu/spring/quartz/ECGQuartz.java
delete mode 100644 src/main/java/com/shibofu/spring/quartz/PacsPushQuartz.java
delete mode 100644 src/main/java/com/shibofu/spring/quartz/PacsQuartz.java
delete mode 100644 src/main/java/com/shibofu/spring/util/PacsAutoPrintPDF.java
delete mode 100644 src/main/java/com/shibofu/spring/vo/CostListVo.java
create mode 100644 src/main/java/com/shibofu/spring/vo/ECGVo.java
delete mode 100644 src/main/java/com/shibofu/spring/vo/PacsVo.java
create mode 100644 src/main/resources/mapper/db2/ECGMapper.xml
delete mode 100644 src/main/resources/mapper/db2/PacsMapper.xml
delete mode 100644 src/main/resources/mapper/db3/CostListDao.xml
diff --git a/pom.xml b/pom.xml
index b711b8f..ecd2609 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
com.shibofu.spring
- pacs
+ ECG
0.0.1-SNAPSHOT
jar
demo
@@ -46,14 +46,13 @@
test
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- 1.3.2
-
-
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.3.1
+
@@ -95,13 +94,6 @@
-
-
- org.postgresql
- postgresql
- 42.7.3
-
-
commons-io
commons-io
diff --git a/src/main/java/com/shibofu/spring/config/DataSource1Config.java b/src/main/java/com/shibofu/spring/config/DataSource1Config.java
deleted file mode 100644
index e6db427..0000000
--- a/src/main/java/com/shibofu/spring/config/DataSource1Config.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.shibofu.spring.config;
-
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-
-import javax.sql.DataSource;
-
-/**
- * @author potter.fu
- * @date 2018-12-07 15:27
- */
-@Configuration
-@MapperScan(basePackages = "com.shibofu.spring.db1.dao", sqlSessionTemplateRef = "db1SqlSessionTemplate")
-public class DataSource1Config {
- /**
- * 生成数据源. @Primary 注解声明为默认数据源
- */
- @Bean(name = "db1DataSource")
- @ConfigurationProperties(prefix = "spring.datasource.hikari.db1")
- @Primary
- public DataSource testDataSource() {
- return DataSourceBuilder.create().build();
- }
-
- /**
- * 创建 SqlSessionFactory
- */
- @Bean(name = "db1SqlSessionFactory")
- @Primary
- public SqlSessionFactory testSqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(dataSource);
- bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db1/*.xml"));
- return bean.getObject();
- }
-
- /**
- * 配置事务管理
- */
- @Bean(name = "db1TransactionManager")
- @Primary
- public DataSourceTransactionManager testTransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
-
- @Bean(name = "db1SqlSessionTemplate")
- @Primary
- public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("db1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
-}
diff --git a/src/main/java/com/shibofu/spring/config/DataSource3Config.java b/src/main/java/com/shibofu/spring/config/DataSource3Config.java
deleted file mode 100644
index 9478d41..0000000
--- a/src/main/java/com/shibofu/spring/config/DataSource3Config.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.shibofu.spring.config;
-
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.boot.jdbc.DataSourceBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-
-import javax.sql.DataSource;
-
-/**
- * @author potter.fu
- * @date 2018-12-07 15:30
- */
-@Configuration
-@MapperScan(basePackages = "com.shibofu.spring.db3.dao", sqlSessionTemplateRef = "db3SqlSessionTemplate")
-public class DataSource3Config {
-
- @Bean(name = "db3DataSource")
- @ConfigurationProperties(prefix = "spring.datasource.hikari.db3")
- public DataSource testDataSource() {
- return DataSourceBuilder.create().build();
- }
-
- @Bean(name = "db3SqlSessionFactory")
- public SqlSessionFactory testSqlSessionFactory(@Qualifier("db3DataSource") DataSource dataSource) throws Exception {
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(dataSource);
- bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/db3/*.xml"));
- return bean.getObject();
- }
-
- @Bean(name = "db3TransactionManager")
- public DataSourceTransactionManager testTransactionManager(@Qualifier("db3DataSource") DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
-
- @Bean(name = "db3SqlSessionTemplate")
- public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("db3SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
-}
diff --git a/src/main/java/com/shibofu/spring/controller/MoneyController.java b/src/main/java/com/shibofu/spring/controller/MoneyController.java
index 14b0d29..30085cd 100644
--- a/src/main/java/com/shibofu/spring/controller/MoneyController.java
+++ b/src/main/java/com/shibofu/spring/controller/MoneyController.java
@@ -1,16 +1,13 @@
package com.shibofu.spring.controller;
-import com.shibofu.spring.db1.service.PacsPollingService;
-import com.shibofu.spring.db2.service.MoneyService;
-import com.shibofu.spring.db3.service.CostListService;
+import com.shibofu.spring.db1.service.ECGPollingService;
+import com.shibofu.spring.db1.serviceImpl.ECGPollingServiceImpl;
import com.shibofu.spring.util.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.util.Map;
-
/**
* @author potter.fu
* @date 2018-12-07 15:38
@@ -19,24 +16,25 @@ import java.util.Map;
@RequestMapping("/makeUp")
public class MoneyController {
@Autowired
- private PacsPollingService pacsPollingService;
- @Autowired
- private CostListService costListService;
+ private ECGPollingService ecgPollingService;
+
- @GetMapping("/makeUpByPacsAndTime")
- public String makeUpByNeed() {
- pacsPollingService.pacsAnxu();
- return "采集完成";
+ @GetMapping("/makeUpECG")
+ public Msg makeUpByNeed() {
+ Msg msg = ecgPollingService.ECGDayPolling();
+ return msg;
}
- @GetMapping("/makeUpPacsByMasterId")
- public Msg makeUpPacsByMasterId(String masterId) {
- return pacsPollingService.makeUpPacsByMasterId(masterId);
+ @GetMapping("/makeUpECGByPatientId")
+ public Msg makeUpECGByPatientId(String patientId) {
+ Msg msg = ecgPollingService.ECGDayPollingByPatientId(patientId);
+ return msg;
}
- @GetMapping("/costList")
- public String getCostList(){
- costListService.collectionCostList();
- return "采集完成";
+ @GetMapping("/makeUpTime")
+ public Msg makeUp() {
+ return ecgPollingService.makeUp();
}
+
+
}
diff --git a/src/main/java/com/shibofu/spring/db1/dao/ArchiveDetailDao.java b/src/main/java/com/shibofu/spring/db1/dao/ArchiveDetailDao.java
index 69bcf1e..8cd401a 100644
--- a/src/main/java/com/shibofu/spring/db1/dao/ArchiveDetailDao.java
+++ b/src/main/java/com/shibofu/spring/db1/dao/ArchiveDetailDao.java
@@ -19,8 +19,8 @@ public interface ArchiveDetailDao {
boolean addArchiveDetail(@Param("list") List list);
- List getSubAssort(String subAssort);
+ List getArchiveDetailBySourceAndMid(@Param("source")String source,@Param("mid")String mid);
- int delSubAssort(String subAssort);
+ boolean delDetailBySourceAndMid(@Param("source")String source,@Param("mid")String mid);
}
diff --git a/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java b/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java
index cf564d3..0c77d19 100644
--- a/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java
+++ b/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java
@@ -15,20 +15,10 @@ import java.util.List;
@Mapper
public interface ArchiveMasterDao {
//查询24小时内出院病历
- List PollingPacs();
-
- List PollingPacsAnXu();
-
-
- //查询168小时内出院病历
- List PacsEveryWeekPolling();
-
-
- List makeUpPacsByMasterId(String masterId);
-
- int updatePacsCompenSate(String masterId);
- String selectPacsPush();
-
- String getIdbyJzh(String jzh);
+ List PollingECG();
+ //根据记帐号查询病历
+ List PollingECGByPatientId(String patientId);
+ //整年心电数据补偿
+ List makeUp();
}
diff --git a/src/main/java/com/shibofu/spring/db1/service/ECGPollingService.java b/src/main/java/com/shibofu/spring/db1/service/ECGPollingService.java
new file mode 100644
index 0000000..a06a29d
--- /dev/null
+++ b/src/main/java/com/shibofu/spring/db1/service/ECGPollingService.java
@@ -0,0 +1,25 @@
+package com.shibofu.spring.db1.service;
+
+import com.shibofu.spring.util.Msg;
+
+/**
+ * @InterfaceName ECGPollingService
+ * @Description 心电接口
+ * @Author linjj
+ * @Date 2024/7/8 8:55
+ * @Version 1.0
+ */
+public interface ECGPollingService {
+
+
+ /**
+ * @description: 定时查询每天出院患者
+ * @author linjj
+ * @date: 2024/1/18 9:29
+ */
+ Msg ECGDayPolling() ;
+
+ Msg ECGDayPollingByPatientId(String patientId);
+
+ Msg makeUp();
+}
diff --git a/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java b/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java
deleted file mode 100644
index 38728af..0000000
--- a/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.shibofu.spring.db1.service;
-
-import com.shibofu.spring.util.Msg;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * @InterfaceName PollingService
- * @Description pacs轮询接口
- * @Author linjj
- * @Date 2024/1/18 9:26
- * @Version 1.0
- */
-
-public interface PacsPollingService {
-
-
-
- /**
- * @description: 定时查询每天出院患者
- * @author linjj
- * @date: 2024/1/18 9:29
- */
- void PacsEveryDayPolling() ;
-
-
- Msg pacsAnxu();
-
- /**
- * @description: 定时查询每星期出院患者
- * @author linjj
- * @date: 2024/1/18 9:29
- */
- Msg PacsEveryWeekPolling();
- /**
- * @description: pacs按需采集
- * @author linjj
- * @date: 2024/4/29 10:36
- */
- Msg makeUpPacsByMasterId(String masterId);
- /**
- * @description: 轮询pacs提交采集病历
- * @author linjj
- * @date: 2024/4/29 10:36
- */
- Msg makeUpPacsPush();
-}
diff --git a/src/main/java/com/shibofu/spring/db1/serviceImpl/ECGPollingServiceImpl.java b/src/main/java/com/shibofu/spring/db1/serviceImpl/ECGPollingServiceImpl.java
new file mode 100644
index 0000000..87aa33f
--- /dev/null
+++ b/src/main/java/com/shibofu/spring/db1/serviceImpl/ECGPollingServiceImpl.java
@@ -0,0 +1,228 @@
+package com.shibofu.spring.db1.serviceImpl;
+
+import com.shibofu.spring.db1.dao.ArchiveDetailDao;
+import com.shibofu.spring.db1.dao.ArchiveMasterDao;
+import com.shibofu.spring.db1.service.ECGPollingService;
+import com.shibofu.spring.db2.dao.ECGDao;
+import com.shibofu.spring.dto.ArchiveDetailDto;
+import com.shibofu.spring.util.Msg;
+import com.shibofu.spring.vo.ArchiveDetailVo;
+import com.shibofu.spring.vo.ArchiveMasterVo;
+import com.shibofu.spring.vo.ECGVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName ECGPollingServiceImpl
+ * @Description 心电接口
+ * @Author linjj
+ * @Date 2024/7/8 8:55
+ * @Version 1.0
+ */
+@Service
+@Slf4j
+public class ECGPollingServiceImpl implements ECGPollingService {
+
+ @Autowired
+ private ArchiveMasterDao archiveMasterDao;
+ @Autowired
+ private ECGDao ecgDao;
+ @Value("${savePath}")
+ private String savePath;
+ @Autowired
+ private ArchiveDetailDao archiveDetailDao;
+
+ @Override
+ public Msg ECGDayPolling() {
+ //查询当前时间24小时内需要采集数据
+ List archiveMasters = archiveMasterDao.PollingECG();
+ if (CollectionUtils.isEmpty(archiveMasters)) {
+ log.info("当前时间段查询不到心跳数据");
+ return Msg.success("当前时间段查询不到心跳数据");
+ }
+ log.info("--------------------------------------------当前时间段心电需要采集:" + archiveMasters.size() + "个患者--------------------------------------------");
+ //循环所有患者采集
+ for (ArchiveMasterVo list : archiveMasters) {
+ log.info("---------------------开始采集记帐号为:" + list.getPatientId() + "的患者---------------------");
+ List ecgs = ecgDao.getECG(list.getPatientId());
+ if (CollectionUtils.isEmpty(ecgs)) {
+ log.info("记帐号为:" + list.getPatientId() + "的患者没有心电数据");
+ continue;
+ }
+ //获取需要插入archiveDetai表数据
+ ArrayList archiveDetailList = getArchiveDetailDtos(list, ecgs);
+ if (CollectionUtils.isEmpty(archiveDetailList)) {
+ log.info("记帐号为:" + list.getPatientId()+"没有保存文件表数据");
+ continue;
+ }
+ //更新文件表
+ updateArchiveDetail(list, archiveDetailList);
+ }
+ log.info("--------------------------------------------此时间段采集完成--------------------------------------------");
+ return Msg.success("此时间段采集完成");
+ }
+
+ @Override
+ public Msg ECGDayPollingByPatientId(String patientId){
+ List archiveMasters = archiveMasterDao.PollingECGByPatientId(patientId);
+ if (CollectionUtils.isEmpty(archiveMasters)) {
+ log.info("当前时间段查询不到心跳数据");
+ return Msg.success("当前时间段查询不到心跳数据");
+ }
+ log.info("--------------------------------------------心电按需:" + archiveMasters.size() + "个患者--------------------------------------------");
+ //循环所有患者采集
+ for (ArchiveMasterVo list : archiveMasters) {
+ log.info("---------------------开始采集记帐号为:" + list.getPatientId() + "的患者---------------------");
+ List ecgs = ecgDao.getECG(list.getPatientId());
+ if (CollectionUtils.isEmpty(ecgs)) {
+ log.info("记帐号为:" + list.getPatientId() + "的患者没有心电数据");
+ continue;
+ }
+ //获取需要插入archiveDetai表数据
+ ArrayList archiveDetailList = getArchiveDetailDtos(list, ecgs);
+ if (CollectionUtils.isEmpty(archiveDetailList)) {
+ log.info("记帐号为:" + list.getPatientId()+"没有保存文件表数据");
+ continue;
+ }
+ //更新文件表
+ updateArchiveDetail(list, archiveDetailList);
+ }
+ log.info("--------------------------------------------心电按需采集完成--------------------------------------------");
+ return Msg.success("心电按需采集完成");
+ }
+
+ @Override
+ public Msg makeUp() {
+ List archiveMasters = archiveMasterDao.makeUp();
+ if (CollectionUtils.isEmpty(archiveMasters)) {
+ log.info("当前时间段查询不到心跳数据");
+ return Msg.success("当前时间段查询不到心跳数据");
+ }
+ log.info("--------------------------------------------心电补偿:" + archiveMasters.size() + "个患者--------------------------------------------");
+ //循环所有患者采集
+ for (ArchiveMasterVo list : archiveMasters) {
+ log.info("---------------------开始采集记帐号为:" + list.getPatientId() + "的患者---------------------");
+ List ecgs = ecgDao.getECG(list.getPatientId());
+ if (CollectionUtils.isEmpty(ecgs)) {
+ log.info("记帐号为:" + list.getPatientId() + "的患者没有心电数据");
+ continue;
+ }
+ //获取需要插入archiveDetai表数据
+ ArrayList archiveDetailList = getArchiveDetailDtos(list, ecgs);
+ if (CollectionUtils.isEmpty(archiveDetailList)) {
+ log.info("记帐号为:" + list.getPatientId()+"没有保存文件表数据");
+ continue;
+ }
+ //更新文件表
+ updateArchiveDetail(list, archiveDetailList);
+ }
+ log.info("--------------------------------------------心电补偿采集完成--------------------------------------------");
+ return Msg.success("心电补偿采集完成");
+ }
+ //更新文件表数据
+ private void updateArchiveDetail(ArchiveMasterVo list, ArrayList archiveDetailList) {
+ //判断是否存在数据,存在删除并且删除原文件
+ List ecgList = archiveDetailDao.getArchiveDetailBySourceAndMid("ECG", list.getId());
+ if (!CollectionUtils.isEmpty(ecgList)) {
+ archiveDetailDao.delDetailBySourceAndMid("ECG", list.getId());
+ //删除原文件数据
+ deleteFliepath(ecgList);
+ }
+ if (archiveDetailDao.addArchiveDetail(archiveDetailList)){
+ log.info("记帐号为:" + list.getPatientId()+"采集了"+ archiveDetailList.size()+"张图像");
+ }
+ }
+
+ private ArrayList getArchiveDetailDtos(ArchiveMasterVo list, List ecgs) {
+ ArrayList archiveDetailList = null;
+ try {
+ String filePathdir;
+ //文件保存目录
+ filePathdir = savePath + File.separatorChar + list.getPatientId();
+ // 本地磁盘的路径
+ Path localPath = Paths.get(filePathdir);
+ //确保目录存在
+ if (createDirectory(localPath)) return null;
+ //保存文件表集合
+ archiveDetailList = new ArrayList<>();
+ //患者所有心电记录采集到本地磁盘
+ for (ECGVo ecg : ecgs) {
+ String newPath;
+ String pPath = ecg.getPPath();
+ //使用yyyyMMddHHmmssSSS格式作为文件名
+ Date date = new Date();
+ SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String newDate = format.format(date);
+ String savaPath = filePathdir + File.separatorChar + newDate + ".PDF";
+ if (pPath.contains("E:\\ecgdata\\ECG")) {
+ newPath = pPath.replace("E:\\ecgdata\\ECG", "Z:");
+ } else {
+ newPath = pPath.replace("E:\\ECGDATA\\ECG", "Z:");
+ }
+ // 构建网络文件的完整路径
+ Path networkFilePath = Paths.get(newPath);
+ // 从网络磁盘拷贝文件到本地磁盘
+ try {
+ Files.copy(networkFilePath, Paths.get(savaPath));
+ } catch (Exception e) {
+ log.error("记帐号为:" + list.getPatientId() + "的病历文件名为:" + networkFilePath.getFileName() + "的文件拷贝失败", e);
+ continue;
+ }
+ //组织保存文件表数据
+ ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto();
+ archiveDetailDto.setMasterId(list.getId());
+ archiveDetailDto.setUploadDateTime(new Date());
+ archiveDetailDto.setAssortId("DA342ED81CEE4A8EA827424626F3F577");
+ archiveDetailDto.setSource("ECG");
+ archiveDetailDto.setFlag("0");
+ archiveDetailDto.setSys("ECG");
+ archiveDetailDto.setTitle("心电图报告");
+ archiveDetailDto.setPdfPath(savaPath);
+ archiveDetailList.add(archiveDetailDto);
+ }
+ } catch (Exception e) {
+ log.error("记帐号为:" + list.getPatientId() + "的病历异常处理");
+ return null;
+ }
+ return archiveDetailList;
+ }
+
+
+ private void deleteFliepath(List ecgList) {
+ for (ArchiveDetailVo list : ecgList) {
+ File file = new File(list.getPdfPath());
+ try {
+ file.delete(); // 删除照片
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private static boolean createDirectory(Path localPath) {
+ try {
+ if (!Files.exists(localPath)) {
+ Files.createDirectories(localPath);
+ }
+ } catch (IOException e) {
+ log.error(e.getMessage());
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java b/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java
deleted file mode 100644
index b79f4e4..0000000
--- a/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package com.shibofu.spring.db1.serviceImpl;
-
-import com.shibofu.spring.db1.dao.ArchiveDetailDao;
-import com.shibofu.spring.db1.dao.ArchiveMasterDao;
-import com.shibofu.spring.db1.service.PacsPollingService;
-import com.shibofu.spring.db2.dao.PacsDao;
-import com.shibofu.spring.dto.ArchiveDetailDto;
-import com.shibofu.spring.dto.ArchiveMasterDto;
-import com.shibofu.spring.util.*;
-import com.shibofu.spring.vo.ArchiveDetailVo;
-import com.shibofu.spring.vo.ArchiveMasterVo;
-
-import com.shibofu.spring.vo.PacsVo;
-import lombok.extern.slf4j.Slf4j;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.ObjectUtils;
-
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * @ClassName PollingServiceImpl
- * @Description pacs轮询实现类
- * @Author linjj
- * @Date 2024/1/18 9:26
- * @Version 1.0
- */
-@Service
-@Slf4j
-public class PacsPollingServiceImpl implements PacsPollingService {
- @Value("${savePath}")
- private String savePath;
-
- @Autowired
- private ArchiveDetailDao archiveDetailDao;
-
- private final static Logger logger = LoggerFactory.getLogger(PacsPollingServiceImpl.class);
- @Autowired
- private ArchiveMasterDao archiveMasterDao;
- @Autowired
- private PacsDao pacsDao;
-
- @Override
- public void PacsEveryDayPolling() {
- List archiveMasterVos = archiveMasterDao.PollingPacs();
- if (!CollectionUtils.isEmpty(archiveMasterVos)) {
- logger.info("一共:"+archiveMasterVos.size()+"条病历!!!!");
- gather(archiveMasterVos);
- }
- }
-
- @Override
- public Msg pacsAnxu() {
- List archiveMasterVos = archiveMasterDao.PollingPacsAnXu();
- if (CollectionUtils.isEmpty(archiveMasterVos)) {
- return Msg.fail("无需采集数据");
- }
- gather(archiveMasterVos);
- return Msg.success("采集完成");
- }
-
-
- @Override
- public Msg PacsEveryWeekPolling() {
- List archiveMasterVos = archiveMasterDao.PacsEveryWeekPolling();
- if (CollectionUtils.isEmpty(archiveMasterVos)) {
- return Msg.fail("无需采集数据");
- }
- gather(archiveMasterVos);
- return Msg.success("采集完成");
- }
-
- @Override
- public Msg makeUpPacsByMasterId(String masterId) {
- List archiveMasterVos = archiveMasterDao.makeUpPacsByMasterId(masterId);
- if (CollectionUtils.isEmpty(archiveMasterVos)) {
- return Msg.fail("无需采集数据");
- }
- logger.info("一共:"+archiveMasterVos.size()+"条病历!!!!");
- gather(archiveMasterVos);
- return Msg.success("采集完成");
- }
-
- @Override
- public Msg makeUpPacsPush() {
- String masterId = archiveMasterDao.selectPacsPush();
- List archiveMasterVos = archiveMasterDao.makeUpPacsByMasterId(masterId);
- if (CollectionUtils.isEmpty(archiveMasterVos)) {
- return Msg.fail("无需采集数据");
- }
- gather(archiveMasterVos);
- archiveMasterDao.updatePacsCompenSate(masterId);
- return Msg.success("采集完成");
- }
-
-
- private void deleteFliepath(List listPath) {
- for (ArchiveDetailVo list : listPath) {
- archiveDetailDao.delSubAssort(list.getId());
- File file = new File(list.getPdfPath());
- try {
- file.delete(); // 删除照片
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
-
- private void gather(List archiveMasterVos) {
- // 创建 JNI 实例
- PacsAutoPrintPDF.INSTANCE.setServerInfo("10.36.116.100", 204);
- for (ArchiveMasterVo list : archiveMasterVos) {
- try {
- ArchiveMasterDto dto = new ArchiveMasterDto();
- BeanUtils.copyProperties(list, dto);
- //根据入院前六小时出院后六小时住院号查询要下载pdf的路径
- List vo = pacsDao.getVo(dto);
- if (CollectionUtils.isEmpty(vo)) {
- logger.info("该住院号时间内无数据" + list.getInpNo() + "住院次数为:" + list.getVisitId());
- continue;
- }
- logger.info("住院号为:"+list.getInpNo() + "住院次数为:" + list.getVisitId()+"当前记录为:"+vo.size()+"条");
- //插入文件表数据集合
- List ArchiveDetailList = new ArrayList<>();
- //需要同步的数据
- for (PacsVo pacsList : vo) {
- //查询文件是否存在,如果存在先删除后新增
- List subAssort = archiveDetailDao.getSubAssort(pacsList.getAccessionnumber());
- if (subAssort.size() > 0) {
- deleteFliepath(subAssort);
- }
- //使用yyyyMMddHHmmssSSS格式作为文件名
- Date date = new Date();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- String newDate = format.format(date);
- //组织路径
- String filePathdir = savePath + File.separatorChar + list.getInpNo() + File.separatorChar + list.getVisitId();
- File file = new File(filePathdir);
- //判断文件夹是否存在不存在创建文件夹
- if (!file.exists()) {
- file.mkdirs();
- }
- String filePath = filePathdir + File.separatorChar + newDate + ".pdf";
- logger.info("-----------------文件id:" + pacsList.getAccessionnumber() + ",路径:" + filePath);
- // 调用 GetPDF 函数
- try {
- boolean result = PacsAutoPrintPDF.INSTANCE.GetPDF(pacsList.getAccessionnumber(), filePath);
- } catch (Throwable e) {
- logger.info(pacsList.getAccessionnumber()+"异常处理");
- continue;
- }
- //成功存在文件表中,不成功输出到日志中
- saveArchiveDetailDto(list, dto, ArchiveDetailList, pacsList, filePath);
- }
- //插入文件表
- boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList);
- if (b) {
- ArchiveDetailList.clear();
- logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成");
- }
- } catch (Exception e) {
- logger.info(list.getId()+"异常处理");
- }
- }
- }
-
-
- private static void saveArchiveDetailDto(ArchiveMasterVo list, ArchiveMasterDto dto, List ArchiveDetailList, PacsVo pacsList, String filePath) {
- //成功存在文件表中,不成功输出到日志中
- if (new File(filePath).exists()) {
- ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto();
- archiveDetailDto.setMasterId(dto.getId());
- archiveDetailDto.setUploadDateTime(new Date());
- String emrAssort = getEmrAssort(pacsList.getProf());
- archiveDetailDto.setAssortId(emrAssort);
- archiveDetailDto.setSource("pacs");
- archiveDetailDto.setFlag("0");
- archiveDetailDto.setTitle(pacsList.getExamItem());
- archiveDetailDto.setPdfPath(filePath);
- archiveDetailDto.setSubAssort(pacsList.getAccessionnumber());
- ArchiveDetailList.add(archiveDetailDto);
- //记录保存文件表
- } else {
- logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析不返回图片");
- }
- }
-
-
- public static String getEmrAssort(String prof) {
- Map map = new HashMap<>();
- map.put("1", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("2", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("3", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("4", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("5", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("6", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("7", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("8", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("9", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("20", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("22", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("23", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("24", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("25", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("26", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("27", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("28", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("29", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("30", "DE599D770E8347CCB5122BC357D96F37");
- map.put("32", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("33", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("34", "DA342ED81CEE4A8EA827424626F3F577");
- map.put("36", "DE599D770E8347CCB5122BC357D96F37");
- map.put("37", "DE599D770E8347CCB5122BC357D96F37");
- map.put("38", "DE599D770E8347CCB5122BC357D96F37");
- map.put("39", "DA342ED81CEE4A8EA827424626F3F577");
- return map.get(prof);
- }
-}
diff --git a/src/main/java/com/shibofu/spring/db2/dao/ECGDao.java b/src/main/java/com/shibofu/spring/db2/dao/ECGDao.java
new file mode 100644
index 0000000..afc5da8
--- /dev/null
+++ b/src/main/java/com/shibofu/spring/db2/dao/ECGDao.java
@@ -0,0 +1,20 @@
+package com.shibofu.spring.db2.dao;
+
+import com.shibofu.spring.vo.ECGVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @ClassName ECGDao
+ * @Description 心跳接口
+ * @Author linjj
+ * @Date 2024/7/8 9:05
+ * @Version 1.0
+ */
+@Mapper
+public interface ECGDao {
+
+ List getECG(@Param("patientID") String patientID);
+}
diff --git a/src/main/java/com/shibofu/spring/db2/dao/PacsDao.java b/src/main/java/com/shibofu/spring/db2/dao/PacsDao.java
deleted file mode 100644
index 3566f59..0000000
--- a/src/main/java/com/shibofu/spring/db2/dao/PacsDao.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.shibofu.spring.db2.dao;
-
-import com.shibofu.spring.dto.ArchiveMasterDto;
-import com.shibofu.spring.vo.PacsVo;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @InterfaceName PacsDao
- * @Description
- * @Author linjj
- * @Date 2024/1/18 15:35
- * @Version 1.0
- */
-@Mapper
-public interface PacsDao {
-
- List getVo(ArchiveMasterDto archiveMasterDto);
-}
diff --git a/src/main/java/com/shibofu/spring/db3/dao/CostListDao.java b/src/main/java/com/shibofu/spring/db3/dao/CostListDao.java
deleted file mode 100644
index 59d35c8..0000000
--- a/src/main/java/com/shibofu/spring/db3/dao/CostListDao.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.shibofu.spring.db3.dao;
-
-import com.shibofu.spring.vo.CostListVo;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @InterfaceName CostListServiceMapper
- * @Description
- * @Author linjj
- * @Date 2024/5/22 10:30
- * @Version 1.0
- */
-@Mapper
-public interface CostListDao {
-
- ListgetCostList(int offset);
-
- int getConut();
-}
diff --git a/src/main/java/com/shibofu/spring/db3/service/CostListService.java b/src/main/java/com/shibofu/spring/db3/service/CostListService.java
deleted file mode 100644
index 103c4b4..0000000
--- a/src/main/java/com/shibofu/spring/db3/service/CostListService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.shibofu.spring.db3.service;
-
-/**
- * @InterfaceName CostListService
- * @Description 费用清单接口
- * @Author linjj
- * @Date 2024/5/22 10:18
- * @Version 1.0
- */
-public interface CostListService {
-
- void collectionCostList();
-}
diff --git a/src/main/java/com/shibofu/spring/db3/serviceImpl/CostListServiceImpl.java b/src/main/java/com/shibofu/spring/db3/serviceImpl/CostListServiceImpl.java
deleted file mode 100644
index e7287d9..0000000
--- a/src/main/java/com/shibofu/spring/db3/serviceImpl/CostListServiceImpl.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package com.shibofu.spring.db3.serviceImpl;
-
-import com.shibofu.spring.db1.dao.ArchiveDetailDao;
-import com.shibofu.spring.db1.dao.ArchiveMasterDao;
-import com.shibofu.spring.db3.dao.CostListDao;
-import com.shibofu.spring.db3.service.CostListService;
-import com.shibofu.spring.dto.ArchiveDetailDto;
-import com.shibofu.spring.vo.ArchiveDetailVo;
-import com.shibofu.spring.vo.CostListVo;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * @ClassName CostListServiceImpl
- * @Description 费用清单
- * @Author linjj
- * @Date 2024/5/22 10:19
- * @Version 1.0
- */
-@Service
-@Slf4j
-public class CostListServiceImpl implements CostListService {
-
- @Autowired
- private CostListDao costListDao;
- @Autowired
- private ArchiveMasterDao archiveMasterDao;
- @Autowired
- private ArchiveDetailDao archiveDetailDao;
- @Value("${savePath}")
- private String savePath;
-
-
- /**
- * @description: 采集费用清单
- * @author linjj
- * @date: 2024/5/22 10:21
- */
- @Override
- public void collectionCostList() {
- //插入文件表数据集合
- List ArchiveDetailList = new ArrayList<>();
- //查询一共有多条记录
- int conut = costListDao.getConut();
- //每次查询50条记录
- int pollingNum = (int) Math.floor((double) conut / (double) 50);
- for (int i = 0; i <= pollingNum; i++) {
- //每次查询50条记录
- int offset = i * 50;
- //查询需要采集清单病历
- List costList = costListDao.getCostList(offset);
- if (!CollectionUtils.isEmpty(costList)) {
- log.info("费用清单本次采集" + costList.size() + "份!!!");
- for (CostListVo list : costList) {
- if (StringUtils.isEmpty(list.getFpdf())) {
- log.info(list.getFjzh() + "路径为空!!");
- continue;
- }
- try {
- download(list, ArchiveDetailList);
- } catch (IOException e) {
- log.info(e.getMessage());
- }
- }
- archiveDetailDao.addArchiveDetail(ArchiveDetailList);
- log.info("完成采集" + ArchiveDetailList.size() + "份!!!");
- ArchiveDetailList.clear();
- }
- }
- log.info("本次采集没有费用清单记录");
- }
-
- private void download(CostListVo costListVo, List ArchiveDetailList) throws IOException {
- ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto();
- //使用yyyyMMddHHmmssSSS格式作为文件名
- Date date = new Date();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- String newDate = format.format(date);
- //根据jzh查询患者主键id
- String masterId = archiveMasterDao.getIdbyJzh(costListVo.getFjzh());
- //判断文件是否存在存在删除后新增不存在新增
- List subAssort = archiveDetailDao.getSubAssort(masterId);
- if (subAssort.size() > 0) {
- deleteFliepath(subAssort);
- }
- //组织保存目录
- String filePathdir = savePath + File.separatorChar + costListVo.getFpatid() + File.separatorChar + costListVo.getFtimes();
- File file = new File(filePathdir);
- //判断文件夹是否存在不存在创建文件夹
- if (!file.exists()) {
- file.mkdirs();
- }
- //文件保存路径
- String filePath = filePathdir + File.separatorChar + newDate + ".pdf";
- //下载文件
- try (FileOutputStream fileOutputStream = new FileOutputStream(filePath)) {
- // 将二进制数据写入文件
- fileOutputStream.write(costListVo.getFpdf());
- fileOutputStream.flush();
- } catch (IOException e) {
- log.info(masterId + "异常处理" + e.getMessage());
- }
- //保存文件表
- archiveDetailDto.setMasterId(masterId);
- archiveDetailDto.setUploadDateTime(new Date());
- archiveDetailDto.setAssortId("DE599D770E8347CCB5122BC357D96F47");
- archiveDetailDto.setSource("pacs");
- archiveDetailDto.setFlag("0");
- archiveDetailDto.setTitle("费用结算清单");
- archiveDetailDto.setPdfPath(filePath);
- archiveDetailDto.setSubAssort(masterId);
- ArchiveDetailList.add(archiveDetailDto);
- }
-
-
- private void deleteFliepath(List listPath) {
- for (ArchiveDetailVo list : listPath) {
- archiveDetailDao.delSubAssort(list.getId());
- File file = new File(list.getPdfPath());
- try {
- file.delete(); // 删除照片
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
-
-}
diff --git a/src/main/java/com/shibofu/spring/quartz/ECGQuartz.java b/src/main/java/com/shibofu/spring/quartz/ECGQuartz.java
new file mode 100644
index 0000000..cc94b29
--- /dev/null
+++ b/src/main/java/com/shibofu/spring/quartz/ECGQuartz.java
@@ -0,0 +1,28 @@
+package com.shibofu.spring.quartz;
+
+
+
+import com.shibofu.spring.db1.service.ECGPollingService;
+import org.quartz.JobExecutionContext;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+import javax.annotation.Resource;
+
+/**
+ * @description: pacs定时任务采集
+ * @author linjj
+ * @date: 2024/1/18 9:22
+ */
+public class ECGQuartz extends QuartzJobBean {
+
+
+
+ @Resource
+ private ECGPollingService ecgPollingService;
+
+ @Override
+ protected void executeInternal(JobExecutionContext jobExecutionContext) {
+ //每天轮询查询昨天数据进来采集
+ ecgPollingService.ECGDayPolling();
+ }
+}
diff --git a/src/main/java/com/shibofu/spring/quartz/PacsPushQuartz.java b/src/main/java/com/shibofu/spring/quartz/PacsPushQuartz.java
deleted file mode 100644
index 264237b..0000000
--- a/src/main/java/com/shibofu/spring/quartz/PacsPushQuartz.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.shibofu.spring.quartz;
-
-
-
-import com.shibofu.spring.db1.dao.ArchiveMasterDao;
-import com.shibofu.spring.db1.service.PacsPollingService;
-import org.quartz.JobExecutionContext;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.quartz.QuartzJobBean;
-
-import javax.annotation.Resource;
-
-/**
- * @description: pacs定时任务轮询
- * @author linjj
- * @date: 2024/41/29 9:22
- */
-public class PacsPushQuartz extends QuartzJobBean {
-
- @Resource
- private PacsPollingService pacsPollingService;
-
-
- @Override
- protected void executeInternal(JobExecutionContext jobExecutionContext) {
- //查询1条需要采集的记录
- pacsPollingService.makeUpPacsPush();
- }
-}
diff --git a/src/main/java/com/shibofu/spring/quartz/PacsQuartz.java b/src/main/java/com/shibofu/spring/quartz/PacsQuartz.java
deleted file mode 100644
index 16f7764..0000000
--- a/src/main/java/com/shibofu/spring/quartz/PacsQuartz.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.shibofu.spring.quartz;
-
-
-
-import com.shibofu.spring.db1.service.PacsPollingService;
-import com.shibofu.spring.db3.service.CostListService;
-import org.quartz.JobExecutionContext;
-import org.springframework.scheduling.quartz.QuartzJobBean;
-
-import javax.annotation.Resource;
-
-/**
- * @description: pacs定时任务采集
- * @author linjj
- * @date: 2024/1/18 9:22
- */
-public class PacsQuartz extends QuartzJobBean {
-
- @Resource
- private PacsPollingService pacsPollingService;
- @Resource
- private CostListService costListService;
-
- @Override
- protected void executeInternal(JobExecutionContext jobExecutionContext) {
- //每天轮询查询昨天数据进来采集
- pacsPollingService.PacsEveryDayPolling();
- //费用清单采集
- costListService.collectionCostList();
- //每天轮询查询一周内数据进来采集
- pacsPollingService.PacsEveryWeekPolling();
- }
-}
diff --git a/src/main/java/com/shibofu/spring/quartz/QuartzConfig.java b/src/main/java/com/shibofu/spring/quartz/QuartzConfig.java
index db109cb..b46cacc 100644
--- a/src/main/java/com/shibofu/spring/quartz/QuartzConfig.java
+++ b/src/main/java/com/shibofu/spring/quartz/QuartzConfig.java
@@ -18,21 +18,14 @@ public class QuartzConfig {
@Value("${quartzTime}")
private String quartzTime;
- @Value("${pacsQuartzTime}")
- private String pacsQuartzTime;
@Bean
public JobDetail teatQuartzDetail() {
- return JobBuilder.newJob(PacsQuartz.class).withIdentity("PacsQuartz").storeDurably().build();
+ return JobBuilder.newJob(ECGQuartz.class).withIdentity("ECGQuartz").storeDurably().build();
}
- @Bean
- public JobDetail pacsPush() {
- return JobBuilder.newJob(PacsPushQuartz.class).withIdentity("PacsPushQuartz").storeDurably().build();
- }
-
@Bean
@@ -40,7 +33,7 @@ public class QuartzConfig {
return TriggerBuilder.newTrigger().forJob(teatQuartzDetail())
- .withIdentity("PacsQuartz")
+ .withIdentity("ECGQuartz")
.withSchedule(CronScheduleBuilder.cronSchedule(quartzTime))
.build();
@@ -48,16 +41,6 @@ public class QuartzConfig {
- @Bean
- public Trigger pacsPushTrigger() {
-
- return TriggerBuilder.newTrigger().forJob(pacsPush())
-
- .withIdentity("PacsPushQuartz")
- .withSchedule(CronScheduleBuilder.cronSchedule(pacsQuartzTime))
- .build();
-
- }
}
diff --git a/src/main/java/com/shibofu/spring/text/test.java b/src/main/java/com/shibofu/spring/text/test.java
index 46a1779..f6d3a95 100644
--- a/src/main/java/com/shibofu/spring/text/test.java
+++ b/src/main/java/com/shibofu/spring/text/test.java
@@ -1,8 +1,6 @@
package com.shibofu.spring.text;
import com.shibofu.spring.MainApplication;
-import com.shibofu.spring.db1.service.PacsPollingService;
-import com.shibofu.spring.db1.serviceImpl.PacsPollingServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -33,17 +31,20 @@ public class test {
private String savePath;
private final static Logger logger = LoggerFactory.getLogger(test.class);
- @Autowired
- private PacsPollingService pacsPollingService;
+
@Test
public void testDemo() {
- File temporaryFile = new File("D:\\jiashi\\scanning\\35131\\1412");
- try {
- temporaryFile.delete(); // 删除临时照片
- } catch (Exception e) {
- e.printStackTrace();
+ String newPath;
+ String path = "E:\\ecgdata\\ECG\\2024-02-28\\1.2.826.0.1.3680043.2.377.114.21.20240228005228255.141737_1.PDF";
+ if (path.contains("E:\\ecgdata\\ECG")) {
+ newPath = path.replace("E:\\ecgdata\\ECG", "Z:");
+ } else {
+ newPath = path.replace("E:\\ECGDATA\\ECG", "Z:");
}
+ System.out.println("newPath" + newPath);
+
+
}
}
diff --git a/src/main/java/com/shibofu/spring/util/PacsAutoPrintPDF.java b/src/main/java/com/shibofu/spring/util/PacsAutoPrintPDF.java
deleted file mode 100644
index 670c3d3..0000000
--- a/src/main/java/com/shibofu/spring/util/PacsAutoPrintPDF.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.shibofu.spring.util;
-
-import com.sun.jna.Native;
-import com.sun.jna.Platform;
-import com.sun.jna.win32.StdCallLibrary;
-
-public interface PacsAutoPrintPDF extends StdCallLibrary {
- PacsAutoPrintPDF INSTANCE = (PacsAutoPrintPDF) Native.loadLibrary(
- (Platform.isWindows() ? "PacsAutoPrintPDF" : "c"),
- PacsAutoPrintPDF.class);
-
- boolean GetPDF(String accessionNumber, String filename);
- void setServerInfo(String host, int port);
-}
\ No newline at end of file
diff --git a/src/main/java/com/shibofu/spring/vo/ArchiveMasterVo.java b/src/main/java/com/shibofu/spring/vo/ArchiveMasterVo.java
index 07786d4..80a885e 100644
--- a/src/main/java/com/shibofu/spring/vo/ArchiveMasterVo.java
+++ b/src/main/java/com/shibofu/spring/vo/ArchiveMasterVo.java
@@ -25,4 +25,6 @@ public class ArchiveMasterVo {
private String admissionDateTime;
//出院时间
private String dischargeDateTime;
+ //记帐号
+ private String patientId;
}
diff --git a/src/main/java/com/shibofu/spring/vo/CostListVo.java b/src/main/java/com/shibofu/spring/vo/CostListVo.java
deleted file mode 100644
index 3ad1265..0000000
--- a/src/main/java/com/shibofu/spring/vo/CostListVo.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.shibofu.spring.vo;
-
-import lombok.Data;
-
-/**
- * @ClassName CostListVo
- * @Description 采集病历清单实体
- * @Author linjj
- * @Date 2024/5/22 10:32
- * @Version 1.0
- */
-@Data
-public class CostListVo {
-
- //住院号
- private String fpatid;
- //住院次数
- private String ftimes;
- //二进制文件
- private byte[] fpdf;
- //记帐号
- private String fjzh;
- //出院时间
- private String ffirstdate;
- //最后更新时间
- private String fnewdate;
- //文件地址
- private String filepath;
-}
diff --git a/src/main/java/com/shibofu/spring/vo/ECGVo.java b/src/main/java/com/shibofu/spring/vo/ECGVo.java
new file mode 100644
index 0000000..2eed692
--- /dev/null
+++ b/src/main/java/com/shibofu/spring/vo/ECGVo.java
@@ -0,0 +1,19 @@
+package com.shibofu.spring.vo;
+
+import lombok.Data;
+
+/**
+ * @ClassName ECGVo
+ * @Description 心跳返回实体类
+ * @Author linjj
+ * @Date 2024/7/8 9:09
+ * @Version 1.0
+ */
+@Data
+public class ECGVo {
+ private String patientId;
+
+ private String WriteDateTime;
+
+ private String PPath;
+}
diff --git a/src/main/java/com/shibofu/spring/vo/PacsVo.java b/src/main/java/com/shibofu/spring/vo/PacsVo.java
deleted file mode 100644
index acc5825..0000000
--- a/src/main/java/com/shibofu/spring/vo/PacsVo.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.shibofu.spring.vo;
-
-import lombok.Data;
-
-/**
- * @ClassName PacsVo
- * @Description pacs视图返回
- * @Author linjj
- * @Date 2024/1/18 15:34
- * @Version 1.0
- */
-@Data
-public class PacsVo {
- //文件唯一标识
- private String accessionnumber;
- //文件名
- private String ExamItem;
-
- private String prof;
-}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index fc50310..eee5c82 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,36 +1,27 @@
-server.port=3391
+server.port=3397
#sqlserver
-spring.datasource.hikari.db1.jdbc-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=yd_record
-spring.datasource.hikari.db1.username=sa
-spring.datasource.hikari.db1.password=admin123
-spring.datasource.hikari.db1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
-##sqlserver
-spring.datasource.hikari.db2.jdbc-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=yd_record
-spring.datasource.hikari.db2.username=sa
-spring.datasource.hikari.db2.password=admin123
-spring.datasource.hikari.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
-#pg
-spring.datasource.hikari.db3.jdbc-url=jdbc:postgresql://localhost:5432/yd
-spring.datasource.hikari.db3.username=postgres
-spring.datasource.hikari.db3.password=admin123
-spring.datasource.hikari.db3.driver-class-name=org.postgresql.Driver
-
-
-#sqlserver
-#spring.datasource.hikari.db1.jdbc-url=jdbc:sqlserver://10.36.116.108:1433;DatabaseName=emr_record
+#spring.datasource.hikari.db1.jdbc-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=yd_record
#spring.datasource.hikari.db1.username=sa
-#spring.datasource.hikari.db1.password=xjgs+docus911
+#spring.datasource.hikari.db1.password=admin123
#spring.datasource.hikari.db1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
-##sqlserver
-#spring.datasource.hikari.db2.jdbc-url=jdbc:sqlserver://10.36.116.100:1433;DatabaseName=pacsdb
-#spring.datasource.hikari.db2.username=AP
-#spring.datasource.hikari.db2.password=AP
+###sqlserver
+#spring.datasource.hikari.db2.jdbc-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=qf_record
+#spring.datasource.hikari.db2.username=sa
+#spring.datasource.hikari.db2.password=admin123
#spring.datasource.hikari.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
-##pg
-#spring.datasource.hikari.db3.jdbc-url=jdbc:postgresql://192.168.55.230:5432/postgres
-#spring.datasource.hikari.db3.username=postgres
-#spring.datasource.hikari.db3.password=pl4grWwt
-#spring.datasource.hikari.db3.driver-class-name=org.postgresql.Driver
+#sqlserver
+spring.datasource.hikari.db1.jdbc-url=jdbc:sqlserver://10.36.116.108:1433;DatabaseName=emr_record
+spring.datasource.hikari.db1.username=sa
+spring.datasource.hikari.db1.password=xjgs+docus911
+spring.datasource.hikari.db1.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
+#ECG
+spring.datasource.hikari.db2.jdbc-url=jdbc:sqlserver://192.168.10.50:1433;DatabaseName=medexmemrsECG
+spring.datasource.hikari.db2.username=sa
+spring.datasource.hikari.db2.password=MedExSQLServerAdmin
+spring.datasource.hikari.db2.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
+# MyBatis-Plus ??
+mybatis-plus.mapper-locations=classpath:mapper/db1/*.xml,classpath:mapper/db2/*.xml
+mybatis-plus.type-aliases-package=com.shibofu.spring.vo
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0a446c6..6704c2f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,7 +1,4 @@
#文件保存路径
-savePath: F:\jiashi\reload
+savePath: F:\ECG\reload
#定时补偿任务时间
-quartzTime: 0 0 1 * * ?
-#定时轮速pacs任务表时间
-pacsQuartzTime: 0 */1 * * * ?
-#quartzTime: "0 10 16 * * ?
+quartzTime: 0 0 3 * * ?
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index cc0b903..da608b4 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -14,7 +14,7 @@
true
- pacsLog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
+ ECGLog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
diff --git a/src/main/resources/mapper/db1/ArchiveDetailrMapper.xml b/src/main/resources/mapper/db1/ArchiveDetailrMapper.xml
index 7e350a9..ef44ef3 100644
--- a/src/main/resources/mapper/db1/ArchiveDetailrMapper.xml
+++ b/src/main/resources/mapper/db1/ArchiveDetailrMapper.xml
@@ -6,20 +6,19 @@
insert into
- archive_detail(id,PDF_PATH,MasterID,UpLoadDateTime,AssortID,Source,SubAssort,Title,flag
+ archive_detail(id,PDF_PATH,MasterID,UpLoadDateTime,AssortID,Source,Title,flag,Sys
)
values
(replace(newid(), '-', ''),#{item.pdfPath},#{item.masterId},#{item.uploadDateTime},#{item.assortId},#{item.source},
- #{item.subAssort},#{item.title},#{item.flag})
+ #{item.title},#{item.flag},#{item.sys})
-
- delete from archive_detail where id=#{id} and Source='pacs'
+
+ delete from archive_detail where MasterID=#{mid} and Source=#{source}
-
-