zhangzhanping 5 سال پیش
والد
کامیت
1479f3e050
2فایلهای تغییر یافته به همراه276 افزوده شده و 153 حذف شده
  1. 0 153
      DataFusion/WebRoot/WEB-INF/classes/com/zskk/model/_DataDictionary.txt
  2. 276 0
      DataFusion/src/com/zskk/control/HttpTest.java

+ 0 - 153
DataFusion/WebRoot/WEB-INF/classes/com/zskk/model/_DataDictionary.txt

@@ -1,153 +0,0 @@
-Table: doctors
-----------------+---------------+------+-----+---------+---------
- Field          | Type          | Null | Key | Default | Remarks 
-----------------+---------------+------+-----+---------+---------
- id             | VARCHAR(32)   | NO   | PRI |         |         
- username       | VARCHAR(100)  | NO   |     |         | 用户名     
- password       | VARCHAR(200)  | NO   |     |         | 密码      
- realname       | VARCHAR(200)  | YES  |     |         | 真实姓名    
- email          | VARCHAR(200)  | YES  |     |         | email   
- login_time     | DATETIME(19)  | YES  |     |         | 登录时间    
- createdAt      | DATETIME(19)  | YES  |     |         | 创建时间    
- updatedAt      | DATETIME(19)  | YES  |     |         | 修改时间    
- token          | VARCHAR(255)  | YES  |     |         | 每次登陆产生新的Session标识
- phone          | VARCHAR(20)   | YES  |     |         | 电话      
- remark         | VARCHAR(1000) | YES  |     |         | 备注      
- doctor_title   | VARCHAR(255)  | YES  |     |         | 职称      
- status         | VARCHAR(50)   | YES  |     |         |         
- attachment     | VARCHAR(2000) | YES  |     |         | 附件      
- institution_id | VARCHAR(50)   | YES  |     |         | 医疗机构ID  
- department_id  | VARCHAR(50)   | YES  |     |         | 主要科室ID  
- doctor_role    | VARCHAR(20)   | YES  |     |         | 1.本地医生2.远程医生(可多选)
- login_failure  | INT(10)       | YES  |     |         | 登录失败次数  
- is_report      | VARCHAR(10)   | YES  |     |         | 是否能写报告  
- exam_class     | VARCHAR(255)  | YES  |     | *       |         
- send_sms       | INT(10)       | YES  |     | 0       |         
- message_push   | VARCHAR(10)   | YES  |     | 0       |         
-----------------+---------------+------+-----+---------+---------
-
-Table: exams
--------------------+---------------+------+-----+---------+---------
- Field             | Type          | Null | Key | Default | Remarks 
--------------------+---------------+------+-----+---------+---------
- id                | VARCHAR(32)   | NO   | PRI |         |         
- dept_id           | VARCHAR(100)  | YES  |     |         | 检查科室(执行科室)
- patient_id        | VARCHAR(100)  | YES  |     |         | 患者id    
- patient_num       | VARCHAR(200)  | YES  |     |         | 病历号     
- accession_num     | VARCHAR(100)  | YES  |     |         | 科室检查号   
- exam_datetime     | VARCHAR(20)   | YES  |     |         | 检查日期    
- exam_class        | VARCHAR(200)  | YES  |     |         | 检查类型    
- exam_sub_class    | VARCHAR(200)  | YES  |     |         | 检查子类    
- exam_project      | VARCHAR(200)  | YES  |     |         | 检查项目    
- device            | VARCHAR(200)  | YES  |     |         | 检查设备    
- body_part         | VARCHAR(200)  | YES  |     |         | 检查部位    
- exam_method       | VARCHAR(200)  | YES  |     |         | 检查方法    
- hopitalized_no    | VARCHAR(200)  | YES  |     |         | 住院号     
- bed_no            | VARCHAR(200)  | YES  |     |         | 床位号     
- clin_dept_id      | VARCHAR(50)   | YES  |     |         | 送诊科室id  
- technician        | VARCHAR(200)  | YES  |     |         | 技师      
- charge            | VARCHAR(200)  | YES  |     |         | 检查费用    
- cost              | VARCHAR(200)  | YES  |     |         | 实际费用    
- clin_doctors      | VARCHAR(200)  | YES  |     |         | 送诊医生    
- phone             | VARCHAR(20)   | YES  |     |         | 联系方式    
- institution_id    | VARCHAR(200)  | YES  |     |         | 医院id    
- study_id          | VARCHAR(50)   | YES  |     |         | studyuid(studykey)
- illness_desc      | TEXT(65535)   | YES  |     |         | 主诉      
- phys_sign         | VARCHAR(200)  | YES  |     |         | 体征      
- clin_diag         | VARCHAR(1000) | YES  |     |         | 临床诊断    
- clin_symp         | VARCHAR(4000) | YES  |     |         | 临床症状    
- patient_source    | VARCHAR(20)   | YES  |     |         | 病人来源 1门诊 2住院 3外来
- req_datetime      | DATETIME(19)  | YES  |     |         | 申请时间    
- req_doctor        | VARCHAR(50)   | YES  |     |         | 申请医生(医生id)
- remark            | TEXT(65535)   | YES  |     |         | 其他说明    
- register          | VARCHAR(50)   | YES  |     |         | 登记人员( 医生id)
- register_datetime | DATETIME(19)  | YES  |     |         | 注册登记时间  
- exam_status       | TINYINT(3)    | YES  |     | 1       | 1、登记 2、开始检查3、检查完毕 4、申请 5、驳回 6、接收、7、初步报告 8、审核报告 9、确认、
- status            | VARCHAR(20)   | YES  |     | 1       | 记录状态 0禁用 1正常
- pay_status        | VARCHAR(10)   | YES  |     | 0       | 支付状态    
- is_remote         | VARCHAR(10)   | YES  |     |         | 远程诊断是被接受 0,未接受  1,已接受
- urgent            | VARCHAR(10)   | NO   |     | 0       | 是否急诊 0否  1是
- film_type         | VARCHAR(20)   | YES  |     | 0       | 0 未定义  1传统胶片  2电子胶片
- anamnesis         | VARCHAR(255)  | YES  |     |         |         
- family_ill        | VARCHAR(255)  | YES  |     |         |         
- createdAt         | DATETIME(19)  | YES  |     |         |         
- updatedAt         | DATETIME(19)  | YES  |     |         |         
- delivery_doctor   | VARCHAR(100)  | YES  |     |         | 送诊医生    
- exam_report       | VARCHAR(10)   | YES  |     |         | 检查结果    
- ext               | JSON          | YES  |     |         |         
- id_card           | VARCHAR(50)   | YES  |     |         | 身份证号    
- study_uid         | VARCHAR(100)  | YES  |     |         |         
--------------------+---------------+------+-----+---------+---------
-
-Table: patient_infos
------------------+--------------+------+-----+---------+---------
- Field           | Type         | Null | Key | Default | Remarks 
------------------+--------------+------+-----+---------+---------
- id              | VARCHAR(32)  | NO   | PRI |         |         
- name            | VARCHAR(100) | YES  |     |         | 患者姓名    
- sex             | VARCHAR(10)  | YES  |     |         | 性别      
- card_num        | VARCHAR(100) | YES  |     |         | 身份证号    
- phone           | VARCHAR(20)  | YES  |     |         | 手机号     
- ctime           | DATETIME(19) | YES  |     |         | 创建时间    
- birthday        | VARCHAR(20)  | YES  |     |         | 生日      
- age             | VARCHAR(10)  | YES  |     |         | 年龄      
- card_type       | VARCHAR(30)  | YES  |     |         | 证件类型    
- nationality     | VARCHAR(50)  | YES  |     |         | 国籍      
- nation          | VARCHAR(30)  | YES  |     |         | 民族      
- marry           | VARCHAR(10)  | YES  |     |         | 婚否      
- professional    | VARCHAR(100) | YES  |     |         | 职业      
- address         | VARCHAR(255) | YES  |     |         | 联系地址    
- temp_patient_id | VARCHAR(50)  | YES  |     |         | 检查临时患者id(从dicom影像中解析)
- status          | INT(10)      | NO   |     | 1       |         
- institution_id  | VARCHAR(200) | YES  |     |         | 所属医院    
- anamnesis       | VARCHAR(255) | YES  |     |         | 疾病史     
- family_ill      | VARCHAR(255) | YES  |     |         | 家族史     
- createdAt       | DATETIME(19) | YES  |     |         |         
- updatedAt       | DATETIME(19) | YES  |     |         |         
- ext             | JSON         | YES  |     |         |         
------------------+--------------+------+-----+---------+---------
-
-Table: report
------------------------+---------------+------+-----+---------+---------
- Field                 | Type          | Null | Key | Default | Remarks 
------------------------+---------------+------+-----+---------+---------
- id                    | VARCHAR(32)   | NO   | PRI |         | 报告id    
- report_datetime       | DATETIME(19)  | YES  |     |         | 报告时间    
- description           | TEXT(65535)   | YES  |     |         | 检查所见    
- impression            | TEXT(65535)   | YES  |     |         | 意见建议    
- img_url               | VARCHAR(1500) | YES  |     |         | 缩略图地址   
- exam_id               | VARCHAR(255)  | YES  |     |         | 检查表id   
- createdAt             | DATETIME(19)  | YES  |     |         |         
- report_doctor_id      | VARCHAR(255)  | YES  |     |         | 报告医生id  
- review_doctor_id      | VARCHAR(255)  | YES  |     |         | 审核医生id  
- qr_code               | VARCHAR(255)  | YES  |     |         | 二维码     
- report_result         | VARCHAR(255)  | YES  |     |         | 报告结果(阴阳性) 1阴性 2阳性
- review_datetime       | DATETIME(19)  | YES  |     |         | 审核时间    
- confirm_doctor_id     | VARCHAR(50)   | YES  |     |         | 确认医生    
- confirm_datetime      | DATETIME(19)  | YES  |     |         | 确认时间    
- type                  | VARCHAR(10)   | YES  |     | 1       | 报告类型    
- remote_application_id | VARCHAR(50)   | YES  |     |         | 申请id    
------------------------+---------------+------+-----+---------+---------
-
-Table: studies
-------------------+--------------+------+-----+---------+---------
- Field            | Type         | Null | Key | Default | Remarks 
-------------------+--------------+------+-----+---------+---------
- id               | VARCHAR(32)  | NO   | PRI |         |         
- studyuid         | VARCHAR(200) | NO   | PRI |         |         
- patient_id       | VARCHAR(50)  | YES  |     |         | 患者id    
- studyid          | VARCHAR(50)  | YES  |     |         |         
- accession_num    | VARCHAR(255) | YES  |     |         | 科室检查号   
- studydate        | VARCHAR(255) | YES  |     |         |         
- ctime            | DATETIME(19) | YES  |     |         |         
- utime            | DATETIME(19) | YES  |     |         |         
- modality         | VARCHAR(255) | YES  |     |         |         
- status           | INT(10)      | YES  |     |         |         
- patient_age      | VARCHAR(20)  | YES  |     |         |         
- institution_name | VARCHAR(50)  | YES  |     |         | 机构名称    
- institution_id   | VARCHAR(200) | YES  |     |         |         
- createdAt        | DATETIME(19) | YES  |     |         |         
- updatedAt        | DATETIME(19) | YES  |     |         |         
- ext              | JSON         | YES  |     |         |         
-------------------+--------------+------+-----+---------+---------
-

+ 276 - 0
DataFusion/src/com/zskk/control/HttpTest.java

@@ -0,0 +1,276 @@
+package com.zskk.control;//package com.java;
+
+import com.alibaba.fastjson.JSON;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.*;
+
+/**
+ * 用于模拟HTTP请求中GET/POST方式
+ *
+ * @author java
+ */
+public class HttpTest {
+
+   public final static String url = "http://test99.yunyikang.cn/pacs/zskk/writePatientReport";
+
+    /**
+     * 主函数,测试请求
+     *
+     * @param args
+     */
+    public static void main(String[] args) {
+        Map<String, String> data = new HashMap<>(22);
+        //获取data数据
+        getData(data);
+        Map<String, String> params = new HashMap<>(10);
+        //时间戳
+        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);
+        String result = sendPost(url, params);
+        System.out.println("===============");
+        System.out.println(result);
+    }
+
+    /**
+     * 发送GET请求
+     *
+     * @param url        目的地址
+     * @param parameters 请求参数,Map类型。
+     * @return 远程响应结果
+     */
+    public static String sendGet(String url, Map<String, String> parameters) {
+        String result = "";
+        BufferedReader in = null;// 读取响应输入流
+        StringBuffer sb = new StringBuffer();// 存储参数
+        String params = "";// 编码之后的参数
+        try {
+            // 编码请求参数
+            if (parameters.size() == 1) {
+                for (String name : parameters.keySet()) {
+                    sb.append(name).append("=").append(
+                            URLEncoder.encode(parameters.get(name),
+                                    "UTF-8"));
+                }
+                params = sb.toString();
+            } else {
+                for (String name : parameters.keySet()) {
+                    sb.append(name).append("=").append(
+                            URLEncoder.encode(parameters.get(name),
+                                    "UTF-8")).append("&");
+                }
+                String temp_params = sb.toString();
+                params = temp_params.substring(0, temp_params.length() - 1);
+            }
+            String full_url = url + "?" + params;
+            System.out.println(full_url);
+            // 创建URL对象
+            java.net.URL connURL = new java.net.URL(full_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)");
+            // 建立实际的连接
+            httpConn.connect();
+            // 响应头部获取
+            Map<String, List<String>> headers = httpConn.getHeaderFields();
+            // 遍历所有的响应头字段
+            for (String key : headers.keySet()) {
+                System.out.println(key + "\t:\t" + headers.get(key));
+            }
+            // 定义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 (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 发送POST请求
+     *
+     * @param url        目的地址
+     * @param parameters 请求参数,Map类型。
+     * @return 远程响应结果
+     */
+    public static String sendPost(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(
+                            URLEncoder.encode(parameters.get(name),
+                                    "UTF-8"));
+                }
+                params = sb.toString();
+            } else {
+                for (String name : parameters.keySet()) {
+                    sb.append(name).append("=").append(
+                            URLEncoder.encode(parameters.get(name),
+                                    "UTF-8")).append("&");
+                }
+                String temp_params = sb.toString();
+                params = temp_params.substring(0, temp_params.length() - 1);
+            }
+            // 创建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());
+            // 发送请求参数
+            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 void getData(Map<String, String> data) {
+        data.put("hospital_id", "12");
+        data.put("description", "12");
+        data.put("impression", "没有意见");
+        data.put("exam_id", "12");
+        data.put("patient_id", "12");
+        data.put("patient_name", "没毛病");
+        data.put("patient_sex", "M");
+        data.put("card_num", "21321321");
+        data.put("phone", "21321521521");
+        data.put("birthday", "12");
+        data.put("patient_age", "12");
+        data.put("report_result", "12");
+        data.put("report_datetime", String.valueOf(getSecondTimestamp(new Date())));
+        data.put("report_doctor_id", "12");
+        data.put("report_doctor_name", "的撒旦");
+        data.put("review_datetime", String.valueOf(getSecondTimestamp(new Date())));
+        data.put("review_doctor_id", "12");
+        data.put("review_doctor_nam", "无");
+        data.put("confirm_datetime", String.valueOf(getSecondTimestamp(new Date())));
+        data.put("confirm_doctor_id", "12");
+        data.put("confirm_doctor_name", "的撒旦2");
+    }
+    /**
+     *
+     * 功能描述:生成signature
+     *
+     * @param: [param, key]
+     * @return: java.lang.String
+     * @auther: zzp
+     * @date: 2019/12/24 15:28
+     */
+    public static String getSign(Map<String, String> param, String key) {
+        return DigestUtils.md5Hex(Ksort(param) + key);
+    }
+
+    /**
+     *
+     * 功能描述: 对数组的值按key排序,生成url的形式(http_build_query)
+     *
+     * @param: [map]
+     * @return: java.lang.String
+     * @auther: zzp
+     * @date: 2019/12/3 15:29
+     */
+    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);
+        try {
+            sb = URLEncoder.encode(sb, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }// 使用常见的UTF-8编码
+        return sb.replace("%3D", "=").replace("%26", "&");
+    }
+
+    /**
+     *
+     * 功能描述: 获取当前时间戳(秒)
+     *
+     * @param: [date]
+     * @return: int
+     * @auther: MACHENOIKE
+     * @date: 2019/12/3 15:26
+     */
+    public static int getSecondTimestamp(Date date) {
+        if (null == date) {
+            return 0;
+        }
+        String timestamp = String.valueOf(date.getTime());
+        int length = timestamp.length();
+        if (length > 3) {
+            return Integer.valueOf(timestamp.substring(0, length - 3));
+        } else {
+            return 0;
+        }
+    }
+}