修改采集顺序

master
linjj 1 year ago
parent 87e6f4de4e
commit 0cd70fffbb

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

@ -56,46 +56,42 @@ public class HisService {
//电子病历采集 //电子病历采集
public void hisInfo() { public void hisInfo() {
//开始时间
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormat1.format(new Date()); String sTime = 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() {
List<V_emrpatient> patientInfo = getPatientInfo(); List<V_emrpatient> patientInfo = getPatientInfo();
logger.log("电子病历与护理已采集,需要同步"+patientInfo.size()+"份病历"); logger.log("电子病历与护理已采集,需要同步" + patientInfo.size() + "份病历");
List<ArchiveMaster> archiveMasterList = new ArrayList<>();
for (V_emrpatient v_emrpatient : patientInfo) { for (V_emrpatient v_emrpatient : patientInfo) {
ArchiveMaster masterIdByPa = getMasterIdByPa(v_emrpatient.getFpatno()); ArchiveMaster masterIdByPa = getMasterIdByPa(v_emrpatient.getFpatno());
//查询是否存在当前患者
if (null != masterIdByPa.getId()) { if (null != masterIdByPa.getId()) {
//查询是否存在记录
List<Archive_Detail> pdfPathByIdAndHis = getPdfPathByIdAndHis(masterIdByPa); List<Archive_Detail> pdfPathByIdAndHis = getPdfPathByIdAndHis(masterIdByPa);
//如果存在 采集过,则不再重采 //存在删除在更新,不存在直接新增
if (pdfPathByIdAndHis==null||pdfPathByIdAndHis.isEmpty()){ if (pdfPathByIdAndHis == null || pdfPathByIdAndHis.isEmpty()) {
archiveMasterList.add(masterIdByPa); hisInfnByPatientId(v_emrpatient.getFpatno());
} } else {
}else{ existUpdate(v_emrpatient, masterIdByPa, pdfPathByIdAndHis);
}
} else {
//不存在患者时生成患者
uploadHomePageByPid(v_emrpatient.getFpatno()); uploadHomePageByPid(v_emrpatient.getFpatno());
//查询患者信息
ArchiveMaster archiveMaster = getMasterIdByPa(v_emrpatient.getFpatno()); ArchiveMaster archiveMaster = getMasterIdByPa(v_emrpatient.getFpatno());
archiveMasterList.add(archiveMaster); //采集
hisInfnByPatientId(archiveMaster.getPatientId());
} }
} }
//查询补偿表中记录加到需要执行的archiveMasterList中 //查询补偿表中记录加到需要执行的archiveMasterList中
List<ArchiveMaster> compensate = getCompensate(); List<ArchiveMaster> compensate = getCompensate();
if (compensate.size()>0){ if (compensate.size() > 0) {
logger.log("有需要补偿病历,本次需要补偿"+compensate.size()+"份病历"); logger.log("有需要补偿病历,本次需要补偿" + compensate.size() + "份病历");
for (ArchiveMaster list :compensate){ for (ArchiveMaster list : compensate) {
//查询文件表是否存在 //查询文件表是否存在
List<Archive_Detail> pdfPathByIdAndHis = getPdfPathByIdAndHis(list); List<Archive_Detail> pdfPathByIdAndHis = getPdfPathByIdAndHis(list);
//存在则删除后新增 //存在则删除后新增
if (pdfPathByIdAndHis.size()>0){ if (pdfPathByIdAndHis.size() > 0) {
//删除本地tup //删除本地tup
for (Archive_Detail archiveDetail : pdfPathByIdAndHis) { for (Archive_Detail archiveDetail : pdfPathByIdAndHis) {
File file = new File(archiveDetail.getPdfPath().replace("F:\\pdf", "Z:")); File file = new File(archiveDetail.getPdfPath().replace("F:\\pdf", "Z:"));
@ -105,21 +101,47 @@ public class HisService {
} }
redirectHisInfo(list); redirectHisInfo(list);
} }
archiveMasterList.add(list); hisInfnByPatientId(list.getPatientId());
updateCompensate(list); 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 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){
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 主管医生 " + 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"; "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; ArchiveMaster master = null;
ResultSet resultSet = null; ResultSet resultSet = null;
Connection connection = null; Connection connection = null;
PreparedStatement statement = null; PreparedStatement statement = null;
Object[]parms = new Object[]{patientId}; Object[] parms = new Object[]{patientId};
try { try {
connection = JDBCUtils.getConnection(); connection = JDBCUtils.getConnection();
statement = connection.prepareStatement(sql); statement = connection.prepareStatement(sql);
@ -142,11 +164,11 @@ public class HisService {
master.setDeptAdmissionTo(resultSet.getString("入院科室")); master.setDeptAdmissionTo(resultSet.getString("入院科室"));
master.setDeptName(resultSet.getString("出院科室")); master.setDeptName(resultSet.getString("出院科室"));
master.setDoctorInCharge(resultSet.getString("主管医生")); master.setDoctorInCharge(resultSet.getString("主管医生"));
master.setBedId(resultSet.getString ("入院床位")); master.setBedId(resultSet.getString("入院床位"));
master.setSource("hisTall"); master.setSource("hisTall");
if(!StringUtils.isNoneBlank (master.getDischargeDateTime ())){ if (!StringUtils.isNoneBlank(master.getDischargeDateTime())) {
master.setStatus("在院"); master.setStatus("在院");
}else{ } else {
master.setStatus("归档中"); master.setStatus("归档中");
} }
if ("2".equals(master.getSex())) { if ("2".equals(master.getSex())) {
@ -158,9 +180,8 @@ public class HisService {
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} } finally {
finally { JDBCUtils.release(resultSet, statement, connection);
JDBCUtils.release(resultSet,statement,connection);
} }
} }
@ -168,7 +189,7 @@ public class HisService {
int writeHomeEntity(ArchiveMaster archiveMaster) { int writeHomeEntity(ArchiveMaster archiveMaster) {
String sql = "insert into archive_master(id,patient_id,inp_no,visit_id,name,sex,dept_name,discharge_date_time," + 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(), '-', ''),?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; "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; Connection connection = null;
PreparedStatement statement = null; PreparedStatement statement = null;
int j = 0; int j = 0;
@ -183,8 +204,8 @@ public class HisService {
j = statement.executeUpdate(); j = statement.executeUpdate();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
}finally { } finally {
JDBCUtils.release(null,statement,connection); JDBCUtils.release(null, statement, connection);
} }
return j; return j;
} }
@ -244,7 +265,6 @@ public class HisService {
} }
public int updateCompensate(ArchiveMaster archiveMaster) { public int updateCompensate(ArchiveMaster archiveMaster) {
String sql = "update compensate set compensateState=1 where masterId=?"; String sql = "update compensate set compensateState=1 where masterId=?";
Object[] parms = new Object[]{archiveMaster.getId()}; Object[] parms = new Object[]{archiveMaster.getId()};
@ -269,8 +289,6 @@ public class HisService {
} }
public ArchiveMaster getMasterIdByPa(String jzh) { public ArchiveMaster getMasterIdByPa(String jzh) {
String sql = "select ID,patient_id from archive_master where patient_id = ?"; String sql = "select ID,patient_id from archive_master where patient_id = ?";
Object[] parms = new Object[]{jzh}; Object[] parms = new Object[]{jzh};
@ -301,9 +319,6 @@ public class HisService {
} }
/** /**
* @description: * @description:
* @author linjj * @author linjj
@ -335,8 +350,6 @@ public class HisService {
} }
//取his数据 //取his数据
public void uploadHisInfo(String patientId) { public void uploadHisInfo(String patientId) {
String temp = System.getProperty("user.dir") + "\\temp"; String temp = System.getProperty("user.dir") + "\\temp";

Loading…
Cancel
Save