刘韬 5 years ago
parent
commit
598b7ef1ed

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WeixinMsgController.java

@@ -38,7 +38,7 @@ public class WeixinMsgController extends MsgControllerAdapter {
     		
 			CustomServiceApi.sendText(inTextMsg.getFromUserName(), "【声明】为保证客户数据隐私安全,电子胶片示例涉及检查信息、用户信息、医疗机构信息等均已经过数据脱敏处理。\n通过以下途径了解更多或联系我们:\n官方网站:<a href=\"http://www.pacsonline.cn\">点击进入</a>\n咨询热线:010-53932350\n电子邮箱:company@pacsonline.cn\n您即将收到电子胶片示例,请点击下方消息查看,谢谢您的使用!");
 
-			String toUrlString = String.format("http://wechat.client.pacsonline.cn/#/reportInfo/report?openid=%s&exam_id=%s&study_id=%s","test","8f0d2411134615e9","0c803a0934dfa1d8");
+			String toUrlString = String.format("http://wechat.client.pacsonline.cn/#/reportInfo/report?openid=%s&exam_id=%s&study_id=%s","test","116edead589fa976","116edead577aac99");
 
 			List<Articles> list = new ArrayList<Articles>();
 			Articles articles1 = new Articles();

+ 140 - 12
PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/UserService.java

@@ -1,13 +1,27 @@
 package com.zskk.service;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.UUID;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.jfinal.kit.HashKit;
+import com.jfinal.kit.HttpKit;
 import com.jfinal.kit.PropKit;
+import com.jfinal.plugin.activerecord.Record;
 import com.zskk.model.Exams;
 import com.zskk.model.User;
 import com.zskk.model.UserBind;
 
+import okhttp3.ConnectionSpec;
+import okhttp3.FormBody;
 import okhttp3.MediaType;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
@@ -20,7 +34,6 @@ public class UserService {
 
 	private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient();
 
-
 	/**
 	 * 创建微信用户
 	 * 
@@ -196,22 +209,137 @@ public class UserService {
 		  }
 	
 
-	private static String post(String url, String json) throws IOException {
-	    RequestBody body = RequestBody.create(json, JSON_CODE);
-	    Request request = new Request.Builder()
-	        .url(url)
-	        .post(body)
-	        .build();
-	    try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
-	      return response.body().string();
-	    }
+	private static void post2(String url, Map<String, String> map) throws IOException {
+		RequestBody formBody = new FormBody.Builder()
+		        .add("timestamp", String.valueOf(getSecondTimestamp(new Date())))
+		        .add("signature", Ksort(map))
+		        .add("data", JSON.toJSONString(map))
+		        .build();
+	      System.out.println(String.valueOf(getSecondTimestamp(new Date())));
+	      System.out.println(Ksort(map));
+	      System.out.println(JSON.toJSONString(map));
+
+		    Request request = new Request.Builder()
+		        .url("http://39.106.136.96/pacs/zskk/writePatientReport")
+		        .post(formBody)
+		        .build();
+
+//		    try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
+//		      if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
+//
+//		      System.out.println(response.body().string());
+////			  return response.body().string();
+//
+//		    }
 	  }  
+	public static 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位数";
+        }
+    }
 	
+	public static 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);
+		System.out.println("***"+sb);
+
+		try {
+		sb = URLEncoder.encode(sb, "UTF-8");
+		} catch (UnsupportedEncodingException e) {
+		e.printStackTrace();
+		}// 使用常见的UTF-8编码
+		sb = sb.replace("%3D", "=").replace("%26", "&");
+
+		System.out.println("**"+sb);
+		String resultString = HashKit.md5(sb+"YgpxjVeIx0yoK6Atz413IAj7hU9dygH4");
+		return resultString;
+	}
+	
+
 	public static void main(String[] args) throws IOException {
 //		        .url("http://wechat.pacsonline.cn/wx_patient/api/getQrcode?reportId=7e7a4cc7c93b4d2b")
 
-	    String response = run("http://www.baidu.com");
-	    System.out.println(response);
+//	    String response = run("http://www.baidu.com");
+//	    System.out.println(response);
+		
+			
+		Map<String, String> data = new HashMap<String, String>();
+		//医院id
+        data.put("hospital_id","15700002");
+        //影像所见
+        data.put("description","test");
+        //意见建议
+        data.put("impression","test");
+        //检查id
+        data.put("exam_id","116f463f179cd343ooo");
+        //患者id
+        data.put("patient_id","116f463f176844f7");
+        data.put("study_id","116f463f176c89a9");
+
+        //患者姓名
+        data.put("patient_name","zhangsan");
+        //患者性别
+        data.put("patient_sex","男");
+        //身份证号
+        data.put("card_num","");
+        //手机号
+        data.put("phone","");
+        //患者生日
+        data.put("birthday","");
+        //患者检查时年龄
+        data.put("patient_age","36");
+        //阴阳性 1阴性 2阳性
+        data.put("report_result","");
+        //报告时间 10位时间戳
+        data.put("report_datetime",String.valueOf(getSecondTimestamp(new Date())));
+        //报告医生id
+        data.put("report_doctor_id","");
+        //报告医生姓名
+        data.put("report_doctor_name","lisi");
+        //审核时间
+        data.put("review_datetime",String.valueOf(getSecondTimestamp(new Date())));
+        //审核医生id
+        data.put("review_doctor_id","");
+        //审核姓名
+        data.put("review_doctor_name","lisi");
+        //确认时间
+        data.put("confirm_datetime", String.valueOf(getSecondTimestamp(new Date())));
+        //确认医生id
+        data.put("confirm_doctor_id", "");
+        //确认医生姓名
+        data.put("confirm_doctor_name","wangwu");
+		System.out.println(data);
+
+		String jString = "{\"birthdate\":\"1964-05-09 00:00:00\",\"modality\":\"MR\",\"patientid\":\"030418249\",\"patientsex\":\"女\",\"reportPaperNum\":740168,\"reportdate\":\"2020-01-08 10:33:30\",\"diagnosis\":\"宫颈ca术后\",\"accessionNumber\":\"17772\",\"patientname\":\"金淑坤\",\"symptom\":\"宫颈ca术后二年余复查\",\"clinicaldoctor\":\"郑鑫\",\"phone\":\"15946362662\",\"DESCRIPTION\":\"   盆腔呈术后改变,子宫缺如。阴道断端未见明确肿瘤信号影,增强扫描未见明显异常强化。膀胱充盈尚可,壁尚光滑。盆腔内未见明确肿大淋巴结。未见盆腔积液。左侧骶骨可见小片状异常信号影,T1WI呈低信号,T2脂肪抑制呈稍高信号,增强扫描呈轻度强化,大小约为1.0*0.4cm。\\r\\n\\r\\n\",\"printreport\":false,\"idcard\":\"231025196405090621\",\"patientage\":\"55岁\",\"impression\":\"1、盆腔呈子宫术后改变,局部未见明确复发征象,建议定期复查。\\r\\n2、左侧骶骨小片状异常强化灶,请追随。\\r\\n\",\"regPaperNum\":\"893058\",\"reviewdoctor\":\"杨滨\",\"department\":\"妇瘤一科\",\"studyuid\":\"17772\",\"printfilm\":false,\"reportdoctor\":\"刘媛\"}";
+	 Map maps = (Map)JSON.parse(jString);  
+     System.out.println("这个是用JSON类来解析JSON字符串!!!");  
+     for (Object map : maps.entrySet()){  
+         System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  
+     }     
+		String jsonObject = JSON.toJSONString(data);
+		System.out.println(jsonObject);
+		JSONObject record = JSON.parseObject(jString);
+		String dString  = record.getString("PATIENTAGE");
+
+		post2(null, maps);
 		
 	}
 }