ソースを参照

云医康数据对接

zhangzhanping 5 年 前
コミット
339bfb1044

+ 9 - 12
DataFusion/src/com/zskk/control/ViewController.java

@@ -1,11 +1,5 @@
 package com.zskk.control;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
 import com.jfinal.core.Controller;
 import com.jfinal.kit.PropKit;
 import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
@@ -13,12 +7,14 @@ import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.activerecord.dialect.SqlServerDialect;
 import com.jfinal.plugin.druid.DruidPlugin;
-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.model._MappingKit;
+import com.zskk.model.*;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 public class ViewController extends Controller {
 
@@ -136,4 +132,5 @@ public class ViewController extends Controller {
         return date;
 	}
 
+
 }

+ 148 - 5
DataFusion/src/com/zskk/task/DataTask.java

@@ -1,17 +1,24 @@
 package com.zskk.task;
 
+import com.alibaba.fastjson.JSON;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import com.jfinal.plugin.cron4j.ITask;
-import com.zskk.model.*;
+import com.zskk.model.Doctors;
+import com.zskk.model.Exams;
+import com.zskk.model.PatientInfos;
+import com.zskk.model.Report;
 import com.zskk.service.ServiceFactory;
 import com.zskk.service.WeixinService;
+import org.apache.commons.codec.digest.DigestUtils;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
+
+
 
 public class DataTask implements ITask {
 
@@ -53,6 +60,65 @@ public class DataTask implements ITask {
                 exams2.setApplicationDoctor(record.getStr("clinicaldoctor"));
                 exams2.setClinDiag(record.getStr("diagnosis"));
 				exams2.update();
+				//传云医康 数据
+                Map<String, String> params = new HashMap<>(10);
+                Map<String, String> data = new HashMap<>(22);
+                //获取data数据
+                //医院id
+                data.put("hospital_id","15700002");
+                //影像所见
+                data.put("description",record.getStr("DESCRIPTION"));
+                //意见建议
+                data.put("impression",record.getStr("impression"));
+                //检查id
+                data.put("exam_id",exams2.getId());
+                //患者id
+                data.put("patient_id",exams2.getPatientId());
+                //患者姓名
+                data.put("patient_name",record.getStr("patientname"));
+                //患者性别
+                data.put("patient_sex",record.getStr("patientsex"));
+                //身份证号
+                data.put("card_num",record.getStr("idcard"));
+                //手机号
+                data.put("phone",record.getStr("phone"));
+                //患者生日
+                data.put("birthday",record.getStr("birthdate"));
+                //患者检查时年龄
+                data.put("patient_age",record.getStr("patientage"));
+                //阴阳性 1阴性 2阳性
+                //data.put("report_result","");
+                //报告时间 10位时间戳
+                data.put("report_datetime",returnSecondTimestamp(record.getStr("reportdate")));
+                //报告医生id
+                //data.put("report_doctor_id",);
+                //报告医生姓名
+                data.put("report_doctor_name",record.getStr("reportdoctor"));
+                //审核时间
+                data.put("review_datetime",returnSecondTimestamp(record.getStr("reportdate")));
+                //审核医生id
+                //data.put("review_doctor_id",);
+                //审核姓名
+                data.put("review_doctor_name",record.getStr("reviewdoctor"));
+                //确认时间
+                data.put("confirm_datetime", returnSecondTimestamp(record.getStr("reportdate")));
+                //确认医生id
+                //data.put("confirm_doctor_id", );
+                //确认医生姓名
+                data.put("confirm_doctor_name",record.getStr("clinicaldoctor"));
+                //时间戳
+                params.put("timestamp", String.valueOf(getSecondTimestamp(new Date())));
+                //signature
+                params.put("signature", getSign(data, "YgpxjVeIx0yoK6Atz413IAj7hU9dygH4"));
+                //datajson字符串
+                params.put("data", JSON.toJSONString(data));
+                System.out.println(params);
+                //sendPost(url, params);
+
+
+
+
+
 				WeixinService wService = ServiceFactory.getService(WeixinService.class);
 				wService.requestWeixinQrcode(report.getId());;
 			}
@@ -62,8 +128,85 @@ public class DataTask implements ITask {
 		
 	}
 
+    /**
+     *
+     * 功能描述: 获取当前时间戳(秒)
+     *
+     * @param: [date]
+     * @return: int
+     * @auther: zzp
+     * @date: 2019/12/26 18:26
+     */
+    public String getSecondTimestamp(Date date) {
+        if (null == date) {
+            return "参数为空";
+        }
+        String timestamp = String.valueOf(date.getTime());
+        int length = timestamp.length();
+        if (length > 3) {
+            return String.valueOf(timestamp.substring(0, length - 3));
+        } else {
+            return "参数不足3位数";
+        }
+    }
+    /**
+     *
+     * 功能描述: 对数组的值按key排序,生成url的形式(http_build_query)
+     *
+     * @param: [map]
+     * @return: java.lang.String
+     * @auther: zzp
+     * @date: 2019/12/26 19:21
+     */
+    public  String Ksort(Map<String, String> map) {
+        String sb = "";
+        String[] key = new String[map.size()];
+        int index = 0;
+        for (String k : map.keySet()) {
+            key[index] = k;
+            index++;
+        }
+        Arrays.sort(key);
+        for (String s : key) {
+            sb += s + "=" + map.get(s) + "&";
+        }
+        sb = sb.substring(0, sb.length() - 1);
+        try {
+            sb = URLEncoder.encode(sb, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }// 使用常见的UTF-8编码
+        return sb.replace("%3D", "=").replace("%26", "&");
+    }
+    /**
+     *
+     * 功能描述:生成signature
+     *
+     * @param: [param, key]
+     * @return: java.lang.String
+     * @auther: zzp
+     * @date: 2019/12/24 15:28
+     */
+    public  String getSign(Map<String, String> param, String key) {
+        return DigestUtils.md5Hex(Ksort(param) + key);
+    }
+    /**
+     *
+     * 功能描述: 转时间戳(秒)
+     *
+     * @param:
+     * @return:
+     * @auther: zpp
+     * @date: 2019/12/26 18:26
+     */
+    public  String returnSecondTimestamp(String data) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
-	@Override
+        return String.valueOf(sdf.parse(data).getTime()/1000);
+    }
+
+
+    @Override
 	public void stop() {
 		// TODO Auto-generated method stub