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