刘韬 5 年之前
父节点
当前提交
f5132b074e

+ 5 - 4
DataFusion/src/com/zskk/config/ZskkConfig.java

@@ -18,6 +18,7 @@ import com.zskk.service.ServiceFactory;
 import com.zskk.control.ViewController;
 import com.zskk.model._MappingKit;
 import com.zskk.task.DataTask;
+import com.zskk.task.UpdateTask;
 
 public class ZskkConfig extends JFinalConfig {
 	
@@ -94,12 +95,12 @@ public class ZskkConfig extends JFinalConfig {
 		me.add(arpConnected2);
 
 		Cron4jPlugin cpData = new Cron4jPlugin();
-		cpData.addTask("*/15 * * * *", new DataTask());
+		cpData.addTask("*/14 * * * *", new DataTask());
 		me.add(cpData);
 
-//		Cron4jPlugin cp2 = new Cron4jPlugin();
-//		cp2.addTask("*/3 * * * *", new SyncTask2());
-//	me.add(cp2);
+		Cron4jPlugin cp2 = new Cron4jPlugin();
+		cp2.addTask("*/16 * * * *", new UpdateTask());
+		me.add(cp2);
 	}
 
 	@Override

+ 84 - 77
DataFusion/src/com/zskk/model/_DataDictionary.txt

@@ -1,83 +1,90 @@
 Table: doctors
-----------------+---------------+------+-----+---------+---------
- Field          | Type          | Null | Key | Default | Remarks 
-----------------+---------------+------+-----+---------+---------
- id             | VARCHAR(32)   | NO   | PRI |         |         
- username       | VARCHAR(100)  | NO   |     |         | 用户名     
- password       | VARCHAR(200)  | NO   |     |         | 密码      
- realname       | VARCHAR(200)  | YES  |     |         | 真实姓名    
- email          | VARCHAR(200)  | YES  |     |         | email   
- login_time     | DATETIME(19)  | YES  |     |         | 登录时间    
- createdAt      | DATETIME(19)  | YES  |     |         | 创建时间    
- updatedAt      | DATETIME(19)  | YES  |     |         | 修改时间    
- token          | VARCHAR(255)  | YES  |     |         | 每次登陆产生新的Session标识
- phone          | VARCHAR(20)   | YES  |     |         | 电话      
- remark         | VARCHAR(1000) | YES  |     |         | 备注      
- doctor_title   | VARCHAR(255)  | YES  |     |         | 职称      
- status         | VARCHAR(50)   | YES  |     |         |         
- attachment     | VARCHAR(2000) | YES  |     |         | 附件      
- institution_id | VARCHAR(50)   | YES  |     |         | 医疗机构ID  
- department_id  | VARCHAR(50)   | YES  |     |         | 主要科室ID  
- doctor_role    | VARCHAR(20)   | YES  |     |         | 1.本地医生2.远程医生(可多选)
- login_failure  | INT(10)       | YES  |     |         | 登录失败次数  
- is_report      | VARCHAR(10)   | YES  |     |         | 是否能写报告  
- exam_class     | VARCHAR(255)  | YES  |     | *       |         
- send_sms       | INT(10)       | YES  |     | 0       |         
- message_push   | VARCHAR(10)   | YES  |     | 0       |         
-----------------+---------------+------+-----+---------+---------
+------------------+---------------+------+-----+---------+---------
+ Field            | Type          | Null | Key | Default | Remarks 
+------------------+---------------+------+-----+---------+---------
+ id               | VARCHAR(32)   | NO   | PRI |         |         
+ username         | VARCHAR(100)  | NO   |     |         | 用户名     
+ password         | VARCHAR(200)  | NO   |     |         | 密码      
+ realname         | VARCHAR(200)  | YES  |     |         | 真实姓名    
+ email            | VARCHAR(200)  | YES  |     |         | email   
+ login_time       | DATETIME(19)  | YES  |     |         | 登录时间    
+ createdAt        | DATETIME(19)  | YES  |     |         | 创建时间    
+ updatedAt        | DATETIME(19)  | YES  |     |         | 修改时间    
+ token            | VARCHAR(255)  | YES  |     |         | 每次登陆产生新的Session标识
+ phone            | VARCHAR(20)   | YES  |     |         | 电话      
+ remark           | VARCHAR(1000) | YES  |     |         | 备注      
+ doctor_title     | VARCHAR(255)  | YES  |     |         | 职称      
+ status           | VARCHAR(50)   | YES  |     |         |         
+ attachment       | VARCHAR(2000) | YES  |     |         | 附件      
+ institution_id   | VARCHAR(50)   | YES  |     |         | 医疗机构ID  
+ department_id    | VARCHAR(50)   | YES  |     |         | 主要科室ID  
+ doctor_role      | VARCHAR(20)   | YES  |     |         | 1.本地医生2.远程医生(可多选)
+ login_failure    | INT(10)       | YES  |     |         | 登录失败次数  
+ is_report        | VARCHAR(10)   | YES  |     |         | 是否能写报告  
+ exam_class       | VARCHAR(255)  | YES  |     | *       |         
+ send_sms         | INT(10)       | YES  |     | 0       |         
+ message_push     | VARCHAR(10)   | YES  |     | 0       | 是否推送消息  
+ is_admin         | VARCHAR(255)  | YES  |     | 0       | 是否为管理员  
+ is_send_message  | VARCHAR(255)  | YES  |     | 0       | 登录是否发送短信
+ is_use_autograph | VARCHAR(255)  | YES  |     | 0       | 是否使用电子签名
+ autograph        | VARCHAR(255)  | YES  |     |         | 电子签名    
+------------------+---------------+------+-----+---------+---------
 
 Table: exams
--------------------+---------------+------+-----+---------+---------
- Field             | Type          | Null | Key | Default | Remarks 
--------------------+---------------+------+-----+---------+---------
- id                | VARCHAR(32)   | NO   | PRI |         |         
- dept_id           | VARCHAR(100)  | YES  |     |         | 检查科室(执行科室)
- patient_id        | VARCHAR(100)  | YES  |     |         | 患者id    
- patient_num       | VARCHAR(200)  | YES  |     |         | 病历号     
- accession_num     | VARCHAR(100)  | YES  |     |         | 科室检查号   
- exam_datetime     | VARCHAR(20)   | YES  |     |         | 检查日期    
- exam_class        | VARCHAR(200)  | YES  |     |         | 检查类型    
- exam_sub_class    | VARCHAR(200)  | YES  |     |         | 检查子类    
- exam_project      | VARCHAR(200)  | YES  |     |         | 检查项目    
- device            | VARCHAR(200)  | YES  |     |         | 检查设备    
- body_part         | VARCHAR(200)  | YES  |     |         | 检查部位    
- exam_method       | VARCHAR(200)  | YES  |     |         | 检查方法    
- hopitalized_no    | VARCHAR(200)  | YES  |     |         | 住院号     
- bed_no            | VARCHAR(200)  | YES  |     |         | 床位号     
- clin_dept_id      | VARCHAR(50)   | YES  |     |         | 送诊科室id  
- technician        | VARCHAR(200)  | YES  |     |         | 技师      
- charge            | VARCHAR(200)  | YES  |     |         | 检查费用    
- cost              | VARCHAR(200)  | YES  |     |         | 实际费用    
- clin_doctors      | VARCHAR(200)  | YES  |     |         | 送诊医生    
- phone             | VARCHAR(20)   | YES  |     |         | 联系方式    
- institution_id    | VARCHAR(200)  | YES  |     |         | 医院id    
- study_id          | VARCHAR(50)   | YES  |     |         | studyuid(studykey)
- illness_desc      | TEXT(65535)   | YES  |     |         | 主诉      
- phys_sign         | VARCHAR(200)  | YES  |     |         | 体征      
- clin_diag         | VARCHAR(1000) | YES  |     |         | 临床诊断    
- clin_symp         | VARCHAR(4000) | YES  |     |         | 临床症状    
- patient_source    | VARCHAR(20)   | YES  |     |         | 病人来源 1门诊 2住院 3外来
- req_datetime      | DATETIME(19)  | YES  |     |         | 申请时间    
- req_doctor        | VARCHAR(50)   | YES  |     |         | 申请医生(医生id)
- remark            | TEXT(65535)   | YES  |     |         | 其他说明    
- register          | VARCHAR(50)   | YES  |     |         | 登记人员( 医生id)
- register_datetime | DATETIME(19)  | YES  |     |         | 注册登记时间  
- exam_status       | TINYINT(3)    | YES  |     | 1       | 1、登记 2、开始检查3、检查完毕 4、申请 5、驳回 6、接收、7、初步报告 8、审核报告 9、确认、
- status            | VARCHAR(20)   | YES  |     | 1       | 记录状态 0禁用 1正常
- pay_status        | VARCHAR(10)   | YES  |     | 0       | 支付状态    
- is_remote         | VARCHAR(10)   | YES  |     |         | 远程诊断是被接受 0,未接受  1,已接受
- urgent            | VARCHAR(10)   | NO   |     | 0       | 是否急诊 0否  1是
- film_type         | VARCHAR(20)   | YES  |     | 0       | 0 未定义  1传统胶片  2电子胶片
- anamnesis         | VARCHAR(255)  | YES  |     |         |         
- family_ill        | VARCHAR(255)  | YES  |     |         |         
- createdAt         | DATETIME(19)  | YES  |     |         |         
- updatedAt         | DATETIME(19)  | YES  |     |         |         
- delivery_doctor   | VARCHAR(100)  | YES  |     |         | 送诊医生    
- exam_report       | VARCHAR(10)   | YES  |     |         | 检查结果    
- ext               | JSON          | YES  |     |         |         
- id_card           | VARCHAR(50)   | YES  |     |         | 身份证号    
- study_uid         | VARCHAR(100)  | YES  |     |         |         
--------------------+---------------+------+-----+---------+---------
+------------------------+---------------+------+-----+---------+---------
+ Field                  | Type          | Null | Key | Default | Remarks 
+------------------------+---------------+------+-----+---------+---------
+ id                     | VARCHAR(32)   | NO   | PRI |         |         
+ dept_id                | VARCHAR(100)  | YES  |     |         | 检查科室(执行科室)
+ patient_id             | VARCHAR(100)  | YES  |     |         | 患者id    
+ patient_num            | VARCHAR(200)  | YES  |     |         | 病历号     
+ accession_num          | VARCHAR(100)  | YES  |     |         | 科室检查号   
+ exam_datetime          | VARCHAR(20)   | YES  |     |         | 检查日期    
+ exam_class             | VARCHAR(200)  | YES  |     |         | 检查类型    
+ exam_sub_class         | VARCHAR(200)  | YES  |     |         | 检查子类    
+ exam_project           | VARCHAR(200)  | YES  |     |         | 检查项目    
+ device                 | VARCHAR(200)  | YES  |     |         | 检查设备    
+ body_part              | VARCHAR(200)  | YES  |     |         | 检查部位    
+ exam_method            | VARCHAR(200)  | YES  |     |         | 检查方法    
+ hopitalized_no         | VARCHAR(200)  | YES  |     |         | 住院号     
+ bed_no                 | VARCHAR(200)  | YES  |     |         | 床位号     
+ clin_dept_id           | VARCHAR(50)   | YES  |     |         | 送诊科室id  
+ technician             | VARCHAR(200)  | YES  |     |         | 技师      
+ charge                 | VARCHAR(200)  | YES  |     |         | 检查费用    
+ cost                   | VARCHAR(200)  | YES  |     |         | 实际费用    
+ clin_doctors           | VARCHAR(200)  | YES  |     |         | 送诊医生    
+ phone                  | VARCHAR(20)   | YES  |     |         | 联系方式    
+ institution_id         | VARCHAR(200)  | YES  |     |         | 医院id    
+ study_id               | VARCHAR(50)   | YES  |     |         | studyuid(studykey)
+ illness_desc           | TEXT(65535)   | YES  |     |         | 主诉      
+ phys_sign              | VARCHAR(200)  | YES  |     |         | 体征      
+ clin_diag              | VARCHAR(1000) | YES  |     |         | 临床诊断    
+ clin_symp              | VARCHAR(4000) | YES  |     |         | 临床症状    
+ patient_source         | VARCHAR(20)   | YES  |     |         | 病人来源 1门诊 2住院 3外来
+ req_datetime           | DATETIME(19)  | YES  |     |         | 申请时间    
+ req_doctor             | VARCHAR(50)   | YES  |     |         | 申请医生(医生id)
+ remark                 | TEXT(65535)   | YES  |     |         | 其他说明    
+ register               | VARCHAR(50)   | YES  |     |         | 登记人员( 医生id)
+ register_datetime      | DATETIME(19)  | YES  |     |         | 注册登记时间  
+ exam_status            | TINYINT(3)    | YES  |     | 1       | 1、登记 2、开始检查3、检查完毕 4、申请 5、驳回 6、接收、7、初步报告 8、审核报告 9、确认、
+ status                 | VARCHAR(20)   | YES  |     | 1       | 记录状态 0禁用 1正常
+ pay_status             | VARCHAR(10)   | YES  |     | 0       | 支付状态    
+ is_remote              | VARCHAR(10)   | YES  |     |         | 远程诊断是被接受 0,未接受  1,已接受
+ urgent                 | VARCHAR(10)   | NO   |     | 0       | 是否急诊 0否  1是
+ film_type              | VARCHAR(20)   | YES  |     | 2       | 0 未定义  1传统胶片  2电子胶片
+ anamnesis              | VARCHAR(255)  | YES  |     |         |         
+ family_ill             | VARCHAR(255)  | YES  |     |         |         
+ createdAt              | DATETIME(19)  | YES  |     |         |         
+ updatedAt              | DATETIME(19)  | YES  |     |         |         
+ delivery_doctor        | VARCHAR(100)  | YES  |     |         | 送诊医生    
+ exam_report            | VARCHAR(10)   | YES  |     |         | 检查结果    
+ ext                    | JSON          | YES  |     |         |         
+ id_card                | VARCHAR(50)   | YES  |     |         | 身份证号    
+ study_uid              | VARCHAR(100)  | YES  |     |         |         
+ application_department | VARCHAR(255)  | YES  |     |         | 申请科室    
+ application_doctor     | VARCHAR(255)  | YES  |     |         | 申请医生    
+ severe                 | VARCHAR(255)  | YES  |     | 0       | 重症标识    
+------------------------+---------------+------+-----+---------+---------
 
 Table: patient_infos
 -----------------+--------------+------+-----+---------+---------

+ 1 - 1
DataFusion/src/com/zskk/model/_MappingKit.java

@@ -21,7 +21,7 @@ public class _MappingKit {
 		arp.addMapping("patient_infos", "id", PatientInfos.class);
 		arp.addMapping("report", "id", Report.class);
 		// Composite Primary Key order: id,studyuid
-		arp.addMapping("studies", "id,studyuid", Studies.class);
+		arp.addMapping("studies", "id", Studies.class);
 	}
 }
 

+ 36 - 0
DataFusion/src/com/zskk/model/base/BaseDoctors.java

@@ -207,4 +207,40 @@ public abstract class BaseDoctors<M extends BaseDoctors<M>> extends Model<M> imp
 		return getStr("message_push");
 	}
 
+	public M setIsAdmin(java.lang.String isAdmin) {
+		set("is_admin", isAdmin);
+		return (M)this;
+	}
+	
+	public java.lang.String getIsAdmin() {
+		return getStr("is_admin");
+	}
+
+	public M setIsSendMessage(java.lang.String isSendMessage) {
+		set("is_send_message", isSendMessage);
+		return (M)this;
+	}
+	
+	public java.lang.String getIsSendMessage() {
+		return getStr("is_send_message");
+	}
+
+	public M setIsUseAutograph(java.lang.String isUseAutograph) {
+		set("is_use_autograph", isUseAutograph);
+		return (M)this;
+	}
+	
+	public java.lang.String getIsUseAutograph() {
+		return getStr("is_use_autograph");
+	}
+
+	public M setAutograph(java.lang.String autograph) {
+		set("autograph", autograph);
+		return (M)this;
+	}
+	
+	public java.lang.String getAutograph() {
+		return getStr("autograph");
+	}
+
 }

+ 27 - 0
DataFusion/src/com/zskk/model/base/BaseExams.java

@@ -432,4 +432,31 @@ public abstract class BaseExams<M extends BaseExams<M>> extends Model<M> impleme
 		return getStr("study_uid");
 	}
 
+	public M setApplicationDepartment(java.lang.String applicationDepartment) {
+		set("application_department", applicationDepartment);
+		return (M)this;
+	}
+	
+	public java.lang.String getApplicationDepartment() {
+		return getStr("application_department");
+	}
+
+	public M setApplicationDoctor(java.lang.String applicationDoctor) {
+		set("application_doctor", applicationDoctor);
+		return (M)this;
+	}
+	
+	public java.lang.String getApplicationDoctor() {
+		return getStr("application_doctor");
+	}
+
+	public M setSevere(java.lang.String severe) {
+		set("severe", severe);
+		return (M)this;
+	}
+	
+	public java.lang.String getSevere() {
+		return getStr("severe");
+	}
+
 }

+ 86 - 0
DataFusion/src/com/zskk/task/UpdateTask.java

@@ -1,12 +1,66 @@
 package com.zskk.task;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.cron4j.ITask;
+import com.zskk.model.Doctors;
+import com.zskk.model.Exams;
+import com.zskk.model.PatientInfos;
+import com.zskk.model.Report;
+import com.zskk.model.Studies;
+import com.zskk.service.ServiceFactory;
+import com.zskk.service.WeixinService;
 
 public class UpdateTask implements ITask {
 
 	@Override
 	public void run() {
 		// TODO Auto-generated method stub
+				try {
+					List<Exams> exams = Exams.dao.use("zskk").find("SELECT * FROM pacsonline.exams where exam_status=3 and institution_id=51000001 order by createdAt desc limit 30");
+					for (Exams exams2 : exams) {
+						Studies studies = Studies.dao.use("zskk").findById(exams2.getStudyId());
+						Record record = Db.use("connected2").findFirst("select * from reportinfo where STUDYUID=?",studies.getStudyuid());
+						if (record == null) {
+							continue;
+						}
+						Report report = new Report().use("zskk");
+						report.setId(creatId());
+						report.setReportDatetime(parseStringToDate(record.getStr("REPORTDATE")));
+						if (record.getStr("IMPRESSION") == null && record.getStr("DESCRIPTION") == null) {
+							continue;
+						}
+						report.setImpression(record.getStr("IMPRESSION"));
+						report.setDescription(record.getStr("DESCRIPTION"));
+						report.setExamId(exams2.getId());
+						report.setCreatedAt(new Date());
+						report.setReportDoctorId(getDoctorIdByName(record.getStr("REPORTDOCTOR")));
+						report.setReviewDoctorId(getDoctorIdByName(record.getStr("REVIEWDOCTOR")));
+						report.setReviewDatetime(parseStringToDate(record.getStr("REPORTDATE")));
+						report.setConfirmDoctorId(getDoctorIdByName(record.getStr("REVIEWDOCTOR")));
+						report.setConfirmDatetime(parseStringToDate(record.getStr("REPORTDATE")));
+						report.save();
+						PatientInfos patientInfos = PatientInfos.dao.use("zskk").findById(exams2.getPatientId());
+						patientInfos.setName(record.getStr("PATIENTNAME"));
+						patientInfos.setPhone(record.getStr("PHONE"));
+						patientInfos.setCardNum(record.getStr("IDCARD"));
+						patientInfos.update();
+						exams2.setApplicationDepartment(record.getStr("DEPARTMENT"));
+						exams2.setApplicationDoctor(record.getStr("CLINICALDOCTOR"));
+						exams2.setExamStatus(9);
+						exams2.update();
+						WeixinService wService = ServiceFactory.getService(WeixinService.class);
+						wService.requestWeixinQrcode(report.getId());;
+					}
+				} catch (Exception e) {
+					// TODO: handle exception
+				}
 
 	}
 
@@ -15,5 +69,37 @@ public class UpdateTask implements ITask {
 		// TODO Auto-generated method stub
 
 	}
+	
+	private String creatId() {
+		UUID id=UUID.randomUUID();
+        String[] idd = id.toString().split("-");
+        return idd[0]+idd[1]+idd[2];
+	}
+	
+	private String getDoctorIdByName(String name) {
+		if (name == null) {
+			return null;
+		}
+		Doctors doctors = Doctors.dao.use("zskk").findFirst("SELECT * FROM doctors where instr(?,realname) and institution_id=51000001",name);
+		if (doctors == null) {
+			return null;
+		}
+		return doctors.getId();
+	}
+	
+	private Date parseStringToDate(String dateStr) {
+		if (dateStr == null) {
+			return new Date();
+		}
+		SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+	    Date date = null;
+		try {
+			date = sdf.parse(dateStr);
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+        return date;
+	}
 
 }

+ 1 - 1
DataFusion/src/com/zskk/tools/_JFinalDemoGenerator.java

@@ -38,7 +38,7 @@ public class _JFinalDemoGenerator {
 		// 设置是否生成链式 setter 方法
 		generator.setGenerateChainSetter(false);
 		// 添加不需要生成的表名
-		generator.addExcludedTable("bodypart","constant","department","device","doctor_class","dr_cla_permission","exam_class","exam_project","exam_subclass","institution","manager","menu","messages","operating","remote_application","report_record","series","sys_logs","sys_menus","templates","bbs","images","open_application","oss_callbacks","user","user_bind","version","wechat_bind");
+		generator.addExcludedTable("bodypart","constant","department","device","doctor_class","dr_cla_permission","exam_class","exam_project","exam_subclass","institution","manager","menu","messages","operating","remote_application","report_record","series","sys_logs","sys_menus","templates","bbs","images","open_application","oss_callbacks","user","user_bind","version","wechat_bind","every_studies","remote_contact","remote_cost","remote_order","remote_water","send_message","wechat_pay_log");
 		// 设置是否在 Model 中生成 dao 对象
 		generator.setGenerateDaoInModel(true);
 		// 设置是否生成链式 setter 方法