修改采集顺序

master
linjj 1 year ago
parent 87e6f4de4e
commit 0cd70fffbb

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.xjgs</groupId>
<artifactId>his</artifactId>
<artifactId>hisTall</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>

@ -56,46 +56,42 @@ public class HisService {
//电子病历采集
public void hisInfo() {
//开始时间
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormat1.format(new Date());
List<ArchiveMaster> masterList = hisInfoMasterId();
for (ArchiveMaster archiveMaster : masterList) {
uploadHisInfo(archiveMaster.getPatientId());
uploadEmrInfo(archiveMaster.getPatientId());
}
String format1 = dateFormat1.format(new Date());
logger.log("电子病历与护理已采集,采集时间,开始时间:" + format + "结束时间:" + format1 + ",共同步" + masterList.size() + "份病历");
}
public List<ArchiveMaster> hisInfoMasterId() {
String sTime = dateFormat1.format(new Date());
//获取需要采集的病历
List<V_emrpatient> patientInfo = getPatientInfo();
logger.log("电子病历与护理已采集,需要同步"+patientInfo.size()+"份病历");
List<ArchiveMaster> archiveMasterList = new ArrayList<>();
logger.log("电子病历与护理已采集,需要同步" + patientInfo.size() + "份病历");
for (V_emrpatient v_emrpatient : patientInfo) {
ArchiveMaster masterIdByPa = getMasterIdByPa(v_emrpatient.getFpatno());
//查询是否存在当前患者
if (null != masterIdByPa.getId()) {
//查询是否存在记录
List<Archive_Detail> pdfPathByIdAndHis = getPdfPathByIdAndHis(masterIdByPa);
//如果存在 采集过,则不再重采
if (pdfPathByIdAndHis==null||pdfPathByIdAndHis.isEmpty()){
archiveMasterList.add(masterIdByPa);
//存在删除在更新,不存在直接新增
if (pdfPathByIdAndHis == null || pdfPathByIdAndHis.isEmpty()) {
hisInfnByPatientId(v_emrpatient.getFpatno());
} else {
existUpdate(v_emrpatient, masterIdByPa, pdfPathByIdAndHis);
}
}else{
} else {
//不存在患者时生成患者
uploadHomePageByPid(v_emrpatient.getFpatno());
//查询患者信息
ArchiveMaster archiveMaster = getMasterIdByPa(v_emrpatient.getFpatno());
archiveMasterList.add(archiveMaster);
//采集
hisInfnByPatientId(archiveMaster.getPatientId());
}
}
//查询补偿表中记录加到需要执行的archiveMasterList中
List<ArchiveMaster> compensate = getCompensate();
if (compensate.size()>0){
logger.log("有需要补偿病历,本次需要补偿"+compensate.size()+"份病历");
for (ArchiveMaster list :compensate){
if (compensate.size() > 0) {
logger.log("有需要补偿病历,本次需要补偿" + compensate.size() + "份病历");
for (ArchiveMaster list : compensate) {
//查询文件表是否存在
List<Archive_Detail> pdfPathByIdAndHis = getPdfPathByIdAndHis(list);
//存在则删除后新增
if (pdfPathByIdAndHis.size()>0){
if (pdfPathByIdAndHis.size() > 0) {
//删除本地tup
for (Archive_Detail archiveDetail : pdfPathByIdAndHis) {
File file = new File(archiveDetail.getPdfPath().replace("F:\\pdf", "Z:"));
@ -105,21 +101,47 @@ public class HisService {
}
redirectHisInfo(list);
}
archiveMasterList.add(list);
hisInfnByPatientId(list.getPatientId());
updateCompensate(list);
}
}
//结束时间
String eTime = dateFormat1.format(new Date());
logger.log("电子病历与护理已采集,采集时间,开始时间:" + sTime + "结束时间:" + eTime + ",共同步" + patientInfo.size() + "份病历");
}
//存在时删除后新增方法
private void existUpdate(V_emrpatient v_emrpatient, ArchiveMaster masterIdByPa, List<Archive_Detail> pdfPathByIdAndHis) {
for (Archive_Detail archiveDetail : pdfPathByIdAndHis) {
File file = new File(archiveDetail.getPdfPath().replace("F:\\pdf", "Z:"));
if (file.exists()) {
file.delete();
}
}
return archiveMasterList;
redirectHisInfo(masterIdByPa);
hisInfnByPatientId(v_emrpatient.getFpatno());
}
public void uploadHomePageByPid(String patientId){
//电子病历、护理记录采集
public void hisInfnByPatientId(String PatientId) {
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormat1.format(new Date());
uploadHisInfo(PatientId);
uploadEmrInfo(PatientId);
String format1 = dateFormat1.format(new Date());
logger.log("电子病历与护理已采集,采集时间,开始时间:" + format + "结束时间:" + format1 + "," + PatientId + "病历已补偿完成");
}
public void uploadHomePageByPid(String patientId) {
String sql = "select t.zyh as 住院号,t.jzh as 记账号,t.zycs as 住院次数,t.xm as 姓名,t.xb as 性别,t.ryrq as 入院日期,t.cyrq as 出院日期,t.sfzh as 身份证号,t.rybq as 入院科室,t.dqbq as 出院科室,t.rycw as 入院床位,hp.fdrname as 主管医生 " +
"from ndns.zl t left join hthis.p_doctor hp on t.dqys = hp.fdrid where t.jzh = ? order by t.jzh desc";
ArchiveMaster master = null;
ResultSet resultSet = null;
Connection connection = null;
PreparedStatement statement = null;
Object[]parms = new Object[]{patientId};
Object[] parms = new Object[]{patientId};
try {
connection = JDBCUtils.getConnection();
statement = connection.prepareStatement(sql);
@ -142,11 +164,11 @@ public class HisService {
master.setDeptAdmissionTo(resultSet.getString("入院科室"));
master.setDeptName(resultSet.getString("出院科室"));
master.setDoctorInCharge(resultSet.getString("主管医生"));
master.setBedId(resultSet.getString ("入院床位"));
master.setBedId(resultSet.getString("入院床位"));
master.setSource("hisTall");
if(!StringUtils.isNoneBlank (master.getDischargeDateTime ())){
if (!StringUtils.isNoneBlank(master.getDischargeDateTime())) {
master.setStatus("在院");
}else{
} else {
master.setStatus("归档中");
}
if ("2".equals(master.getSex())) {
@ -158,9 +180,8 @@ public class HisService {
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
JDBCUtils.release(resultSet,statement,connection);
} finally {
JDBCUtils.release(resultSet, statement, connection);
}
}
@ -168,7 +189,7 @@ public class HisService {
int writeHomeEntity(ArchiveMaster archiveMaster) {
String sql = "insert into archive_master(id,patient_id,inp_no,visit_id,name,sex,dept_name,discharge_date_time," +
"archivestate,admission_date_time,dept_admission_to,doctor_in_charge,id_no,bed_id,source)values(replace(newid(), '-', ''),?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
Object[] parms = new Object[]{archiveMaster.getPatientId(), archiveMaster.getInpNo(), archiveMaster.getVisitId(), archiveMaster.getName(), archiveMaster.getSex(), archiveMaster.getDeptName(), archiveMaster.getDischargeDateTime(), archiveMaster.getStatus(), archiveMaster.getAdmissionDateTime(), archiveMaster.getDeptAdmissionTo(), archiveMaster.getDoctorInCharge(), archiveMaster.getIdNo(),archiveMaster.getBedId (),archiveMaster.getSource()};
Object[] parms = new Object[]{archiveMaster.getPatientId(), archiveMaster.getInpNo(), archiveMaster.getVisitId(), archiveMaster.getName(), archiveMaster.getSex(), archiveMaster.getDeptName(), archiveMaster.getDischargeDateTime(), archiveMaster.getStatus(), archiveMaster.getAdmissionDateTime(), archiveMaster.getDeptAdmissionTo(), archiveMaster.getDoctorInCharge(), archiveMaster.getIdNo(), archiveMaster.getBedId(), archiveMaster.getSource()};
Connection connection = null;
PreparedStatement statement = null;
int j = 0;
@ -183,8 +204,8 @@ public class HisService {
j = statement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.release(null,statement,connection);
} finally {
JDBCUtils.release(null, statement, connection);
}
return j;
}
@ -244,7 +265,6 @@ public class HisService {
}
public int updateCompensate(ArchiveMaster archiveMaster) {
String sql = "update compensate set compensateState=1 where masterId=?";
Object[] parms = new Object[]{archiveMaster.getId()};
@ -269,8 +289,6 @@ public class HisService {
}
public ArchiveMaster getMasterIdByPa(String jzh) {
String sql = "select ID,patient_id from archive_master where patient_id = ?";
Object[] parms = new Object[]{jzh};
@ -301,9 +319,6 @@ public class HisService {
}
/**
* @description:
* @author linjj
@ -335,8 +350,6 @@ public class HisService {
}
//取his数据
public void uploadHisInfo(String patientId) {
String temp = System.getProperty("user.dir") + "\\temp";

Loading…
Cancel
Save