儿童医院代码更新

children
zhanglb 2 years ago
parent 1a6479b298
commit 5e661ccee7

@ -11,6 +11,10 @@ public class BasicInfo {
private String patientId;
private String patPath;
private String hostReason;
private String inpatientNo;
private Date disDate;

@ -2,6 +2,8 @@ package com.docus.demo.entity.sqlserver2;
import lombok.Data;
import java.util.Date;
@Data
public class Tscan {
@ -12,4 +14,6 @@ public class Tscan {
private String scanPage;
private int upState;
private Date upDate;
}

@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@DS("mapper/sqlserver")
public interface PictureMapper {

@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
@DS("mapper/sqlserver1")
public interface PaintVisitMapper {
List<Tpatientvisit> getTpatientVisitList(@Param("dto") SyncBasicDataDto syncBasicDataDto);

@ -1,16 +1,18 @@
package com.docus.demo.mapper.sqlserver2;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.docus.demo.entity.sqlserver2.BasicInfo;
import com.docus.demo.entity.sqlserver2.Tscan;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@DS("mapper/sqlserver2")
public interface TscanMapper {
List<Tscan> getOldScanListByPid(@Param("id")String patientId);
List<Tscan> getOldScanListByPid(@Param("id") String patientId);
void insertScanList(List<Tscan> insertList);
void insertScanList(@Param("list") List<Tscan> insertList);
}

@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -43,14 +44,23 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
List<BasicInfo> basicInfos = pictureMapper.getBasicInfoList();
//2.代入到联众数据库 查询图片信息
//3.根据id查询出文件信息
for (BasicInfo basicInfo: basicInfos) {
List<Tscan> oldScanList = tscanMapper.getOldScanListByPid(basicInfo.getPatientId());
//4.文件数据同步-> 路径 病案号 +病案id主键
List<Tscan> syncScanList = this.doSyncFile(basicInfo);
List<Tscan> insertList = this.getInsertList(oldScanList,syncScanList);
if (ObjectUtil.isNotEmpty(insertList)){
//5.数据入库tsacn
tscanMapper.insertScanList(insertList);
//判断数据量 如果文件数据大于五百条 需要做拆分分批次插入
int batchSize = 100;
// 拆分列表
for (int i = 0; i < insertList.size(); i += batchSize) {
int endIndex = Math.min(i + batchSize, insertList.size());
List<Tscan> sublist = insertList.subList(i, endIndex);
//5.数据入库tsacn
tscanMapper.insertScanList(sublist);
}
}
}
return CommonResult.success("同步成功");
@ -69,22 +79,30 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
private List<Tscan> doSyncFile(BasicInfo basicInfo) {
List<Tscan> tscanList = new ArrayList<>(1000);
//010 00 09590 19990405
String[] disDate = dateFormat.format(basicInfo.getDisDate()).split("-");
String cyYear = disDate[0];
String cyMonth = disDate[1];
String cyDay = disDate[2];
String inpatientNo = basicInfo.getInpatientNo();
String patPath = basicInfo.getPatPath();
String inpatientNo = basicInfo.getInpatientNo().trim();
String patientId = basicInfo.getPatientId();
String pid = basicInfo.getId();
//
String rootDir = "E:\\ServerE01"+File.separator
+cyYear+File.separator
+cyYear+cyMonth+ File.separator
+cyYear+cyMonth+cyDay+ File.separator
+"010"+inpatientNo+cyYear+cyMonth+cyDay+File.separator;
+patPath+File.separator;
String outDir = "E:\\docus"+File.separator+inpatientNo+File.separator+pid ;
String outDir = "E:\\docus"+File.separator+inpatientNo+File.separator+patientId ;
File file = new File(rootDir);
if (!file.exists()){
rootDir= basicInfo.getHostReason();
}
// 2.根据cid查询联众表t_picture 走索引大概零点几秒
@ -114,9 +132,10 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
// 2.4组合文件信息
Tscan tscan = new Tscan();
tscan.setPatientId(pid);
tscan.setPatientId(patientId);
tscan.setAssortId(tpicture.getPicKind());
tscan.setScanPage(picName+".jpg");
tscan.setUpDate(new Date());
if (savePicFlag&&rotateFlag){
tscan.setUpState(200);
@ -129,6 +148,10 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
tscanList.add(tscan);
if (!savePicFlag){
break;
}
}

@ -22,7 +22,7 @@ spring:
name: @artifactId@
datasource:
dynamic:
primary: mysql #设置默认的数据源默认值为mysql
primary: sqlserver2 #设置默认的数据源默认值为mysql
strict: false #是否弃用严格模式,如果启用在味匹配到指定数据源时抛出异常
datasource:
#公司病案的文件服务数据库
@ -51,9 +51,9 @@ spring:
#联众数据库
sqlserver:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: 17931
url: jdbc:sqlserver://192.168.8.74:1433;DatabaseName=u_medrecord
username: JSuser
password: 123456
url: jdbc:sqlserver://172.18.0.227:1433;DatabaseName=u_medrecord
# 初始化配置
initial-size: 3
# 最小连接数
@ -71,33 +71,11 @@ spring:
test-on-return: false
validation-query: select 1
#省厅数据库
sqlserver1:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: 17931
url: jdbc:sqlserver://192.168.8.74:1433;DatabaseName=u_medrecord
# 初始化配置
initial-size: 3
# 最小连接数
min-idle: 3
# 最大连接数
max-active: 15
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 90000
# 最大空闲时间
min-evictable-idle-time-millis: 1800000
test-while-idle: true
test-on-borrow: false
test-on-return: false
validation-query: select 1
#联众数据库
sqlserver:
sqlserver1:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: 17931
url: jdbc:sqlserver://192.168.8.74:1433;DatabaseName=u_medrecord
username: JSuser
password: 123456
url: jdbc:sqlserver://172.18.0.227:1433;DatabaseName=u_medrecord
# 初始化配置
initial-size: 3
# 最小连接数
@ -114,25 +92,25 @@ spring:
test-on-borrow: false
test-on-return: false
validation-query: select 1
#2.0数据库
sqlserver1:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: JSuser
password: 123456
url: jdbc:sqlserver://172.18.0.227:1433;DatabaseName=etyyrecord
# 初始化配置
initial-size: 3
# 最小连接数
min-idle: 3
# 最大连接数
max-active: 15
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 90000
# 最大空闲时间
min-evictable-idle-time-millis: 1800000
test-while-idle: true
test-on-borrow: false
test-on-return: false
validation-query: select 1
#联众数据库
sqlserver2:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: JSuser
password: 123456
url: jdbc:sqlserver://172.18.0.227:1433;DatabaseName=etyyrecord
# 初始化配置
initial-size: 3
# 最小连接数
min-idle: 3
# 最大连接数
max-active: 15
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 90000
# 最大空闲时间
min-evictable-idle-time-millis: 1800000
test-while-idle: true
test-on-borrow: false
test-on-return: false
validation-query: select 1

@ -11,24 +11,24 @@
RotateDegree
FROM
T_picture
where cuid = #{cuid}
where FileId = #{cuid}
</select>
<select id="getBasicInfoList" resultType="com.docus.demo.entity.sqlserver2.BasicInfo">
SELECT
tp.patient_id,
tp.admiss_times,
tp.inpatient_no,
tp.dis_date,
tci.id,
tci.patno,
tci.patnum
tp.patient_id as patientId,
tp.admiss_times as admissTimes,
tp.inpatient_no as inpatientNo,
tp.dis_date as disDate,
tci.pat_path as patPath,
tci.id as id,
tpt.hostReason
FROM t_card_info tci
INNER JOIN 未采集101份 tp
ON tci.patno = tp.inpatient_no
AND tci.patnum = tp.admiss_times
INNER JOIN T_picture_transfer tpt on tpt.FileId = tci.id
</select>

@ -5,10 +5,10 @@
<mapper namespace="com.docus.demo.mapper.sqlserver2.TscanMapper">
<insert id="insertScanList">
insert into t_scan_assort
(patient_id,assort_id,scan_page,file_source,file_pages,creater,create_time)
(patient_id,assort_id,scan_page,source,is_del,up_date,up_state)
values
<foreach collection="list" item="item" separator=",">
(#{item.patientId},#{item.assortId},#{item.scanPage},#{item.fileSource},#{item.filePages},#{item.creater},#{item.createTime})
(#{item.patientId},#{item.assortId},#{item.scanPage},1,0,#{item.upDate},#{item.upState})
</foreach>
</insert>
@ -16,9 +16,15 @@
<select id="getOldScanListByPid" resultType="com.docus.demo.entity.sqlserver2.Tscan">
SELECT
*
patient_id as patientId,
assort_id as assortId,
scan_page as scanPage,
up_state as upState
FROM
t_scan_assort tsa
AND tsa.patient_id = #{id}
t_scan_assort
WHERE patient_id = #{id}
</select>
</mapper>
Loading…
Cancel
Save