|
@@ -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;
|
|
|
+ }
|
|
|
|
|
|
}
|