diff --git a/pom.xml b/pom.xml
index cf9901d..7c96222 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.xjgs
- his
+ hisTall
1.0-SNAPSHOT
diff --git a/src/main/java/com/xjgs/service/HisService.java b/src/main/java/com/xjgs/service/HisService.java
index 6277ea4..c5f0f12 100644
--- a/src/main/java/com/xjgs/service/HisService.java
+++ b/src/main/java/com/xjgs/service/HisService.java
@@ -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 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 hisInfoMasterId() {
+ String sTime = dateFormat1.format(new Date());
+ //获取需要采集的病历
List patientInfo = getPatientInfo();
- logger.log("电子病历与护理已采集,需要同步"+patientInfo.size()+"份病历");
- List archiveMasterList = new ArrayList<>();
+ logger.log("电子病历与护理已采集,需要同步" + patientInfo.size() + "份病历");
for (V_emrpatient v_emrpatient : patientInfo) {
ArchiveMaster masterIdByPa = getMasterIdByPa(v_emrpatient.getFpatno());
+ //查询是否存在当前患者
if (null != masterIdByPa.getId()) {
+ //查询是否存在记录
List pdfPathByIdAndHis = getPdfPathByIdAndHis(masterIdByPa);
- //如果存在 采集过,则不再重采
- if (pdfPathByIdAndHis==null||pdfPathByIdAndHis.isEmpty()){
- archiveMasterList.add(masterIdByPa);
- }
- }else{
+ //存在删除在更新,不存在直接新增
+ if (pdfPathByIdAndHis == null || pdfPathByIdAndHis.isEmpty()) {
+ hisInfnByPatientId(v_emrpatient.getFpatno());
+ } else {
+ existUpdate(v_emrpatient, masterIdByPa, pdfPathByIdAndHis);
+ }
+ } else {
+ //不存在患者时生成患者
uploadHomePageByPid(v_emrpatient.getFpatno());
+ //查询患者信息
ArchiveMaster archiveMaster = getMasterIdByPa(v_emrpatient.getFpatno());
- archiveMasterList.add(archiveMaster);
+ //采集
+ hisInfnByPatientId(archiveMaster.getPatientId());
}
}
//查询补偿表中记录加到需要执行的archiveMasterList中
List 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 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 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 主管医生 " +
"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";