瀏覽代碼

commit 替换

zhangzhanping 5 年之前
父節點
當前提交
38cf276b22
共有 3 個文件被更改,包括 271 次插入23 次删除
  1. 2 0
      .gitignore
  2. 62 11
      DataFusion/src/com/zskk/task/DataTask.java
  3. 207 12
      DataFusion/src/com/zskk/task/UpdateTask.java

+ 2 - 0
.gitignore

@@ -18,3 +18,5 @@ DataFusion/.idea/encodings.xml
 DataFusion/.idea/inspectionProfiles/Project_Default.xml
 DataFusion/.idea/modules.xml
 DataFusion/DataFusion.iml
+DataFusion/WebRoot/WEB-INF/lib/okhttp-4.2.2.jar
+DataFusion/WebRoot/WEB-INF/lib/okio-2.2.2.jar

+ 62 - 11
DataFusion/src/com/zskk/task/DataTask.java

@@ -8,11 +8,19 @@ import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.cron4j.ITask;
 import com.zskk.model.Doctors;
 import com.zskk.model.Exams;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
 
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.PrintWriter;
+import java.nio.charset.Charset;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -22,6 +30,15 @@ import java.util.*;
 public class DataTask implements ITask {
 	private static String GET_EXAM_URL = "https://risserver3.pacsonline.cn/butt/getExam";
 	private static String SAVE_REPORT_URL = "https://risserver3.pacsonline.cn/butt/getExam/butt/saveReport";
+	private static CloseableHttpClient httpClient;
+
+	static {
+		PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+		cm.setMaxTotal(100);
+		cm.setDefaultMaxPerRoute(20);
+		cm.setDefaultMaxPerRoute(50);
+		httpClient = HttpClients.custom().setConnectionManager(cm).build();
+	}
 
 	@Override
 	public void run() {
@@ -79,7 +96,7 @@ public class DataTask implements ITask {
 				//患者身份证号
 				params.put("card_num",record.getStr("idcard"));
 				params.put("report_result","1");
-				postWithParameters(SAVE_REPORT_URL, params);
+				post(SAVE_REPORT_URL, JSON.toJSONString(params));
 				/*report.setImpression(record.getStr("impression"));
 				report.setDescription(record.getStr("description"));
 				report.setExamId(exams2.getId());
@@ -152,8 +169,8 @@ public class DataTask implements ITask {
 	 * @param instutionId
 	 * @param number
 	 */
-	public  JSONArray getExamList(String instutionId, Integer number) {
-		Map<String,String> map = new HashMap<String,String>();
+	public static JSONArray getExamList(String instutionId, Integer number) {
+		Map <String,String> map = new HashMap<String,String>();
 		map.put("institution_id", instutionId);
 		map.put("num", number.toString());
 		String content = postWithParameters(GET_EXAM_URL, map);
@@ -165,14 +182,7 @@ public class DataTask implements ITask {
 		return jsonArray;
 
 	}
-	/**
-	 * 发送POST请求
-	 *
-	 * @param url        目的地址
-	 * @param parameters 请求参数,Map类型。
-	 * @return 远程响应结果
-	 */
-	public  String postWithParameters(String url, Map<String, String> parameters) {
+	public static String postWithParameters(String url, Map<String, String> parameters) {
 		String result = "";// 返回的结果
 		BufferedReader in = null;// 读取响应输入流
 		PrintWriter out = null;
@@ -194,8 +204,11 @@ public class DataTask implements ITask {
 									"UTF-8")).append("&");
 				}
 				String temp_params = sb.toString();
+				//System.out.println(temp_params);
 				params = temp_params.substring(0, temp_params.length() - 1);
+				System.out.println(params);
 			}
+			//params = java.net.URLEncoder.encode(params, "UTF-8");
 			// 创建URL对象
 			java.net.URL connURL = new java.net.URL(url);
 			// 打开URL连接
@@ -210,12 +223,15 @@ public class DataTask implements ITask {
 			httpConn.setDoInput(true);
 			httpConn.setDoOutput(true);
 			// 获取HttpURLConnection对象对应的输出流
+			// out = new PrintWriter(httpConn.getOutputStream()); // 用PrintWriter进行包装
+			// out.println(params);
 			out = new PrintWriter(httpConn.getOutputStream());
 			// 发送请求参数
 			out.write(params);
 			// flush输出流的缓冲
 			out.flush();
 			// 定义BufferedReader输入流来读取URL的响应,设置编码方式
+
 			in = new BufferedReader(new InputStreamReader(httpConn
 					.getInputStream(), "UTF-8"));
 			String line;
@@ -239,5 +255,40 @@ public class DataTask implements ITask {
 		}
 		return result;
 	}
+	public static String post(String url, String jsonString) {
+		CloseableHttpResponse response = null;
+		BufferedReader in = null;
+		String result = "";
+		try {
+			HttpPost httpPost = new HttpPost(url);
+			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
+			httpPost.setConfig(requestConfig);
+			httpPost.setConfig(requestConfig);
+			httpPost.addHeader("Content-type", "application/json; charset=utf-8");
+			httpPost.setHeader("Accept", "application/json");
+			httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));
+			response = httpClient.execute(httpPost);
+			in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
+			StringBuffer sb = new StringBuffer("");
+			String line = "";
+			String NL = System.getProperty("line.separator");
+			while ((line = in.readLine()) != null) {
+				sb.append(line + NL);
+			}
+			in.close();
+			result = sb.toString();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				if (null != response) {
+					response.close();
+				}
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return result;
+	}
 	
 }

+ 207 - 12
DataFusion/src/com/zskk/task/UpdateTask.java

@@ -1,29 +1,53 @@
 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.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 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;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.nio.charset.Charset;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 public class UpdateTask implements ITask {
+	private static String GET_EXAM_URL = "https://risserver3.pacsonline.cn/butt/getExam";
+
+	private static String SAVE_REPORT_URL = "https://risserver3.pacsonline.cn/butt/saveReport";
+	private static CloseableHttpClient httpClient;
+
+	static {
+		PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+		cm.setMaxTotal(100);
+		cm.setDefaultMaxPerRoute(20);
+		cm.setDefaultMaxPerRoute(50);
+		httpClient = HttpClients.custom().setConnectionManager(cm).build();
+	}
 
 	@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 50");
+					//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 50");
+					JSONArray examList = getExamList("51000001", 30);
+					List<Exams> exams = JSONObject.parseArray(examList.toJSONString(), Exams.class);
 					for (Exams exams2 : exams) {
 						try {
 						Studies studies = Studies.dao.use("zskk").findById(exams2.getStudyId());
@@ -37,7 +61,45 @@ public class UpdateTask implements ITask {
 						if (record.getStr("IMPRESSION") == null && record.getStr("DESCRIPTION") == null) {
 							continue;
 						}
-						report.setImpression(record.getStr("IMPRESSION"));
+							Map<String, String> params = new HashMap<>();
+							//exams表
+							params.put("exam_id",exams2.getId());
+							//报告医生姓名
+							params.put("report_doctor_name",record.getStr("REPORTDOCTOR"));
+							//报告时间
+							params.put("report_datetime",record.getStr("REPORTDATE"));
+							//审核医生姓名
+							params.put("review_doctor_name",record.getStr("REVIEWDOCTOR"));
+							//审核时间
+							params.put("review_datetime",record.getStr("REPORTDATE"));
+							//确认医生姓名
+							params.put("confirm_doctor_name",record.getStr("CLINICALDOCTOR"));
+							//确认时间
+							params.put("confirm_datetime",record.getStr("REPORTDATE"));
+							if (record.getStr("IMPRESSION") == null && record.getStr("DESCRIPTION") == null) {
+								continue;
+							}
+							//意见建议
+							params.put("impression",record.getStr("IMPRESSION"));
+							//影像所见
+							params.put("description",record.getStr("DESCRIPTION"));
+							//exams表
+							//申请科室
+							params.put("application_department",record.getStr("DEPARTMENT"));
+							//申请医生
+							params.put("application_doctor",record.getStr("CLINICALDOCTOR"));
+							//临床诊断
+							params.put("clin_diag",record.getStr("DIAGNOSIS"));
+							//patient_infos表
+							//患者姓名
+							params.put("name",record.getStr("PATIENTNAME"));
+							//患者手机号
+							params.put("phone",record.getStr("phone"));
+							//患者身份证号
+							params.put("card_num",record.getStr("IDCARD"));
+							params.put("report_result","1");
+							post(SAVE_REPORT_URL, JSON.toJSONString(params));
+						/*report.setImpression(record.getStr("IMPRESSION"));
 						report.setDescription(record.getStr("DESCRIPTION"));
 						report.setExamId(exams2.getId());
 						report.setCreatedAt(new Date());
@@ -57,7 +119,7 @@ public class UpdateTask implements ITask {
 						exams2.setExamStatus(9);
 						exams2.update();
 						WeixinService wService = ServiceFactory.getService(WeixinService.class);
-						wService.requestWeixinQrcode(report.getId());
+						wService.requestWeixinQrcode(report.getId());*/
 						} catch (Exception e) {
 							// TODO: handle exception
 							continue;
@@ -106,5 +168,138 @@ public class UpdateTask implements ITask {
 		}
         return date;
 	}
+	/**
+	 * 获取未出报告的检查列表
+	 * @param instutionId
+	 * @param number
+	 */
+	public static JSONArray getExamList(String instutionId, Integer number) {
+		Map<String,String> map = new HashMap<String,String>();
+		map.put("institution_id", instutionId);
+		map.put("num", number.toString());
+		String content = postWithParameters(GET_EXAM_URL, map);
+		JSONObject jsonObject = JSON.parseObject(content);
+		if (!jsonObject.getString("msg").equals("success")) {
+			return null;
+		}
+		JSONArray jsonArray = JSON.parseArray(jsonObject.getString("data"));
+		return jsonArray;
+
+	}
+	/**
+	 * 发送POST请求
+	 *
+	 * @param url        目的地址
+	 * @param parameters 请求参数,Map类型。
+	 * @return 远程响应结果
+	 */
+	public static String postWithParameters(String url, Map<String, String> parameters) {
+		String result = "";// 返回的结果
+		BufferedReader in = null;// 读取响应输入流
+		PrintWriter out = null;
+		StringBuffer sb = new StringBuffer();// 处理请求参数
+		String params = "";// 编码之后的参数
+		try {
+			// 编码请求参数
+			if (parameters.size() == 1) {
+				for (String name : parameters.keySet()) {
+					sb.append(name).append("=").append(
+							java.net.URLEncoder.encode(parameters.get(name),
+									"UTF-8"));
+				}
+				params = sb.toString();
+			} else {
+				for (String name : parameters.keySet()) {
+					sb.append(name).append("=").append(
+							java.net.URLEncoder.encode(parameters.get(name),
+									"UTF-8")).append("&");
+				}
+				String temp_params = sb.toString();
+				//System.out.println(temp_params);
+				params = temp_params.substring(0, temp_params.length() - 1);
+				System.out.println(params);
+			}
+			//params = java.net.URLEncoder.encode(params, "UTF-8");
+			// 创建URL对象
+			java.net.URL connURL = new java.net.URL(url);
+			// 打开URL连接
+			java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL
+					.openConnection();
+			// 设置通用属性
+			httpConn.setRequestProperty("Accept", "*/*");
+			httpConn.setRequestProperty("Connection", "Keep-Alive");
+			httpConn.setRequestProperty("User-Agent",
+					"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
+			// 设置POST方式
+			httpConn.setDoInput(true);
+			httpConn.setDoOutput(true);
+			// 获取HttpURLConnection对象对应的输出流
+			// out = new PrintWriter(httpConn.getOutputStream()); // 用PrintWriter进行包装
+			// out.println(params);
+			out = new PrintWriter(httpConn.getOutputStream());
+			// 发送请求参数
+			out.write(params);
+			// flush输出流的缓冲
+			out.flush();
+			// 定义BufferedReader输入流来读取URL的响应,设置编码方式
+
+			in = new BufferedReader(new InputStreamReader(httpConn
+					.getInputStream(), "UTF-8"));
+			String line;
+			// 读取返回的内容
+			while ((line = in.readLine()) != null) {
+				result += line;
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				if (out != null) {
+					out.close();
+				}
+				if (in != null) {
+					in.close();
+				}
+			} catch (IOException ex) {
+				ex.printStackTrace();
+			}
+		}
+		return result;
+	}
+	public static String post(String url, String jsonString) {
+		CloseableHttpResponse response = null;
+		BufferedReader in = null;
+		String result = "";
+		try {
+			HttpPost httpPost = new HttpPost(url);
+			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
+			httpPost.setConfig(requestConfig);
+			httpPost.setConfig(requestConfig);
+			httpPost.addHeader("Content-type", "application/json; charset=utf-8");
+			httpPost.setHeader("Accept", "application/json");
+			httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));
+			response = httpClient.execute(httpPost);
+			in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
+			StringBuffer sb = new StringBuffer("");
+			String line = "";
+			String NL = System.getProperty("line.separator");
+			while ((line = in.readLine()) != null) {
+				sb.append(line + NL);
+			}
+			in.close();
+			result = sb.toString();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			try {
+				if (null != response) {
+					response.close();
+				}
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return result;
+	}
 
 }