123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- package com.zskk.task;
- 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.Report;
- import com.zskk.model.Studies;
- 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 org.apache.log4j.Logger;
- 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 {
- Logger logger = Logger.getLogger(UpdateTask.class);
- 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");
- JSONArray examList = getExamList("51000001", 30);
- List<Exams> exams = JSONObject.parseArray(examList.toJSONString(), Exams.class);
- for (Exams exams2 : exams) {
- logger.info(exams2.getId());
- try {
- 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;
- }
- Map<String, String> params = new HashMap<>();
- //params.put("institution_id","51000001");
- //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("REVIEWDOCTOR"));
- //确认时间
- 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");
- String post = post(SAVE_REPORT_URL, JSON.toJSONString(params));
- logger.error(post);
- /*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")==null?"":record.getStr("PHONE"));
- patientInfos.setCardNum(record.getStr("IDCARD")==null?"":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
- continue;
- }
- }
- } catch (Exception e) {
- // TODO: handle exception
- }
- }
- @Override
- public void stop() {
- // 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;
- }
- /**
- * 获取未出报告的检查列表
- * @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();
- //System.out.println(result);
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- if (null != response) {
- response.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return result;
- }
- }
|