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";