Browse Source

新增接口代码提交

chenweida 9 years ago
parent
commit
c5868a2e24

+ 28 - 9
Hos-Resource-Mini/src/main/java/com.yihu.ehr/controller/DataAcquisitionController.java

@ -1,15 +1,20 @@
package com.yihu.ehr.controller;
import com.yihu.ehr.common.constants.Constants;
import com.yihu.ehr.dbhelper.jdbc.DBHelper;
import com.yihu.ehr.model.RespResult;
import com.yihu.ehr.service.intf.IDataAcquisitionManager;
import com.yihu.ehr.util.operator.StringUtil;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by chenweida on 2016/3/18.
@ -20,21 +25,35 @@ public class DataAcquisitionController {
    @Autowired
    private IDataAcquisitionManager dataAcquisitionManager;
    private DBHelper db = new DBHelper();
    @RequestMapping(value = "/getData")
    @ResponseBody
    public RespResult getData(HttpServletRequest request) throws Exception {
        RespResult r = new RespResult();
        //得到参数
        try {
            String transactionCode = request.getParameter("transactionCode");
            String page = request.getParameter("page");
            String filter = request.getParameter("filter");
            if (!StringUtils.isEmpty(transactionCode)) {
                r.setData(gate(request, transactionCode, page, filter));
            } else {
                r.setRespCode(Constants.SYSTEM_PARAMS);
                r.setRespMessage(Constants.SYSTEM_PARAMS_MESSAGE);
            //判断transactionCode是否错误
            if (StringUtil.isEmpty(transactionCode)) {
                r.setRespCode(Constants.SYSTEM_ERROR);
                r.setRespMessage("transactionCode为空");
                return r;
            }
            //根据transactionCode查找数据库
            List<JSONObject> list = db.query("select * from data_acquisition where transaction_code='" + transactionCode + "'");
            if (list == null && list.size() == 0) {
                r.setRespCode(Constants.SYSTEM_ERROR);
                r.setRespMessage("transactionCode不存在");
                return r;
            }
            //得到参数
            Map<String, String[]> paramsMap = request.getParameterMap();
            Map<String,Object> params=new HashMap<String,Object>();
            for (Map.Entry<String, String[]> a : paramsMap.entrySet()){
                params.put(a.getKey(),a.getValue()[0]);
            }
            JSONObject jo = list.get(0);
            r.setData(dataAcquisitionManager.gate(jo,params));
            //根据参数选择业务函数
            r.setTransactionCode(transactionCode);
        } catch (Exception e) {

+ 35 - 21
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/DataAcquisitionManager.java

@ -1,40 +1,54 @@
package com.yihu.ehr.service;
import com.yihu.ehr.service.intf.IDataAcquisitionManager;
import com.yihu.ehr.util.httpclient.HttpClientUtil;
import com.yihu.ehr.util.httpclient.HttpHelper;
import com.yihu.ehr.util.json.JSON;
import org.json.JSONObject;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.Map;
/**
 * Created by chenweida on 2016/3/18.
 */
@Service("dataAcquisitionManager")
public class DataAcquisitionManager implements IDataAcquisitionManager {
    @Override
    /**
     * 格式YYYY-MM-DD HH:mm:ss
     */
    public String getPatientQueue(String beginDate, String endDate, String page, String filter) {
        return null;
    public String gate(JSONObject jo, Map<String,Object> params) {
        String responMsg = "";
        String path = (String) jo.get("url");
        String requestType = (String) jo.get("request_type");//1是查询 2是文件上传
        String urlType = (String) jo.get("url_type");//1是post 2是 get
        //判断是http请求还是https
        responMsg = getResponMsg(path, requestType, urlType, params);
        return responMsg;
    }
    @Override
    public String getPatientDataset(String patientId, String eventNo, String datasetCode) {
        return null;
    }
    @Override
    public String postPatientDataset(String patientId, String eventNo, String dataset) {
        //转文件
        File f = JSON.json2File(patientId, eventNo, dataset);
        //文件上传
        //删除文件
        f.delete();
        return null;
    private String getResponMsg(String path, String requestType, String urlType, Map<String,Object> params) {
            //1是查询
        if("1".equals(requestType)){
            if("1".equals(urlType)){
                //post
                HttpHelper.post(path,params);
            }else if ("2".equals(urlType)){
                //get
                HttpHelper.get(path,params);
            }
            //2是文件上传
        }else if("2".equals(requestType)){
            File f = JSON.json2File(params);
            //文件上传
            if("1".equals(urlType)){
                //post
                HttpHelper.postFile(path,null,f);
            }
            //删除文件
            f.delete();
        }
        return "";
    }

+ 5 - 4
Hos-Resource-Mini/src/main/java/com.yihu.ehr/service/intf/IDataAcquisitionManager.java

@ -1,12 +1,13 @@
package com.yihu.ehr.service.intf;
import org.json.JSONObject;
import java.util.Map;
/**
 * Created by chenweida on 2016/3/18.
 */
public interface IDataAcquisitionManager {
    String getPatientQueue(String beginDate, String endDate,String page,String filter);
    String getPatientDataset(String patientId, String eventNo, String datasetCode);
    String postPatientDataset(String patientId, String eventNo, String dataset);
    String gate(JSONObject jo, Map<String,Object> params);
}

+ 2 - 3
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpClientUtil.java

@ -142,17 +142,16 @@ public class HttpClientUtil {
     * 发送文件
     *
     * @param url        路径
     * @param filePath   文件路径
     * @param formParams 参数
     * @return
     */
    public static Response postFile(String url, String filePath, List<NameValuePair> formParams,SSLConnectionSocketFactory ssl, String username, String password) {
    public static Response postFile(String url,
                                    File file, List<NameValuePair> formParams,SSLConnectionSocketFactory ssl, String username, String password) {
        Response re = new Response();
        CloseableHttpResponse response = null;
        CloseableHttpClient httpClient = getCloseableHttpClient(ssl);
        try{
            File file = new File(filePath);
            //设置请求信息
            RequestConfig requestConfig = RequestConfig.custom().

+ 20 - 1
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/httpclient/HttpHelper.java

@ -139,7 +139,26 @@ public class HttpHelper {
    }
    public static Response postFile(String url, List<NameValuePair> formParams, String filePath)
    {
        return HttpClientUtil.postFile(url, filePath, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
        File file = new File(filePath);
        if(url.startsWith("https"))
        {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
        }
        else{
        //默认http不走ssl和用户密码
        return HttpClientUtil.postFile(url, file, formParams, null,defaultHttpUser,defaultHttpPassword);
    }
    }
    public static Response postFile(String url, List<NameValuePair> formParams, File file)
    {
        if(url.startsWith("https"))
        {
            return HttpClientUtil.postFile(url, file, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
        }
        else{
            //默认http不走ssl和用户密码
            return HttpClientUtil.postFile(url, file, formParams, null,defaultHttpUser,defaultHttpPassword);
        }
    }
    /************************** Put方法 ******************************************/
    public static Response put(String url)

+ 8 - 4
Hos-Resource-Mini/src/main/java/com.yihu.ehr/util/json/JSON.java

@ -7,6 +7,7 @@ import net.sf.json.JSONObject;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
/**
 * Created by chenweida on 2016/3/24.
@ -14,13 +15,16 @@ import java.util.Date;
public class JSON {
    public static final String[] key = {"data", "event_no", "patient_id"};
    public static File json2File(String patientId, String eventNo, String dataset) {
    public static File json2File(Map<String,Object> params) {
        String dataset= (String) params.get("dataset");
        //先转json
        String jsonDataSet = XML2JSON.xml2JSON(dataset);
        JSONObject jo = new JSONObject();
        jo.put(key[0], dataset);
        jo.put(key[1], eventNo);
        jo.put(key[2], patientId);
        for(Map.Entry<String,Object> a:params.entrySet()){
            if(!"dataset".equals(a.getKey())){
                jo.put(a.getKey(),a.getValue());
            }
        }
        String jsonString=jo.toString();
        //json转文件
        String home = System.getProperty("catalina.home").replace('\\', '/');

+ 0 - 3
Hos-Resource-Mini/src/main/resources/config/dataAcquisition.properties

@ -1,3 +0,0 @@
service.url=https://172.19.103.73:443/api/v1.0/
service.clientId = kHAbVppx44
service.clientKey = Bd2h8rdYhep6NKOO

+ 0 - 1
Hos-Resource-Mini/src/main/resources/spring/applicationContext.xml

@ -43,5 +43,4 @@
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
    <util:properties id="sys" location="classpath:config/dataAcquisition.properties"/>
</beans>