Browse Source

CDA 添加

huangzhiyong 7 years ago
parent
commit
ce282ffc2d
100 changed files with 3774 additions and 218 deletions
  1. 25 1
      pom.xml
  2. 122 0
      src/main/java/com/yihu/hos/common/BaseUIController.java
  3. 1 1
      src/main/java/com/yihu/hos/common/CommonPageController.java
  4. 1 1
      src/main/java/com/yihu/hos/standard/util/ExcelModel.java
  5. 1 1
      src/main/java/com/yihu/hos/standard/util/ExcelUtil.java
  6. 1 1
      src/main/java/com/yihu/hos/standard/util/ExcelUtilBigData.java
  7. 1 1
      src/main/java/com/yihu/hos/standard/util/GetChineseFirst.java
  8. 1 1
      src/main/java/com/yihu/hos/standard/util/LikeHashMap.java
  9. 267 0
      src/main/java/com/yihu/hos/common/util/http/HttpClientUtil.java
  10. 1 1
      src/main/java/com/yihu/hos/qc/controller/ReportController.java
  11. 693 0
      src/main/java/com/yihu/hos/standard/controller/CdaController.java
  12. 292 0
      src/main/java/com/yihu/hos/standard/controller/CdaTypeController.java
  13. 324 0
      src/main/java/com/yihu/hos/standard/controller/StdVersionController.java
  14. 40 6
      src/main/resources/application.yml
  15. 136 0
      src/main/resources/text/error.zh_CN.properties
  16. 3 0
      src/main/resources/text/message_zh_CN.properties
  17. 3 1
      src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp
  18. 12 76
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/CDAUpdate.jsp
  19. 67 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/CDAUpdateCss.jsp
  20. 8 9
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/CDAUpdateJs.jsp
  21. 125 98
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cda.jsp
  22. 70 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaBaseInfo.jsp
  23. 65 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaBaseInfoCss.jsp
  24. 22 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaBaseInfoJs.jsp
  25. 88 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaCss.jsp
  26. 805 11
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaJs.jsp
  27. 50 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaRelationship.jsp
  28. 41 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaRelationshipCss.jsp
  29. 16 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaRelationshipJs.jsp
  30. 2 9
      src/main/webapp/WEB-INF/ehr/jsp/std/cda/index.jsp
  31. 42 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/CdaTypeDetail.jsp
  32. 24 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/CdaTypeDetailCss.jsp
  33. 8 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/CdaTypeDetailJs.jsp
  34. 32 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/index.jsp
  35. 11 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/indexCss.jsp
  36. 374 0
      src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/indexJs.jsp
  37. BIN
      src/main/webapp/develop/images/Delete_btn_pre.png
  38. BIN
      src/main/webapp/develop/images/Modify_btn_pre.png
  39. BIN
      src/main/webapp/develop/images/add_btn.png
  40. BIN
      src/main/webapp/develop/images/add_btn_pre.png
  41. BIN
      src/main/webapp/develop/images/app/After1_btn_pre.png
  42. BIN
      src/main/webapp/develop/images/app/Blue_btn.png
  43. BIN
      src/main/webapp/develop/images/app/Blue_btn_pre.png
  44. BIN
      src/main/webapp/develop/images/app/Click02_btn.png
  45. BIN
      src/main/webapp/develop/images/app/Click_btn.png
  46. BIN
      src/main/webapp/develop/images/app/Click_btn_pre.png
  47. BIN
      src/main/webapp/develop/images/app/Close_btn.png
  48. BIN
      src/main/webapp/develop/images/app/Close_btn01.png
  49. BIN
      src/main/webapp/develop/images/app/Close_btn_pre.png
  50. BIN
      src/main/webapp/develop/images/app/Close_btn_pre01.png
  51. BIN
      src/main/webapp/develop/images/app/Determine_btn.png
  52. BIN
      src/main/webapp/develop/images/app/Determine_btn_pre.png
  53. BIN
      src/main/webapp/develop/images/app/Dictionaries_btn.png
  54. BIN
      src/main/webapp/develop/images/app/Dictionaries_btn_pre.png
  55. BIN
      src/main/webapp/develop/images/app/Dividing_line.png
  56. BIN
      src/main/webapp/develop/images/app/Drag_bg.png
  57. BIN
      src/main/webapp/develop/images/app/Drag_icon.png
  58. BIN
      src/main/webapp/develop/images/app/Eject_btn.png
  59. BIN
      src/main/webapp/develop/images/app/Eject_btn_pre.png
  60. BIN
      src/main/webapp/develop/images/app/Grey_btn.png
  61. BIN
      src/main/webapp/develop/images/app/Grey_btn_pre.png
  62. BIN
      src/main/webapp/develop/images/app/Left_btn.png
  63. BIN
      src/main/webapp/develop/images/app/Left_btn_pre.png
  64. BIN
      src/main/webapp/develop/images/app/Menu2_bg.png
  65. BIN
      src/main/webapp/develop/images/app/Menu_bg.png
  66. BIN
      src/main/webapp/develop/images/app/Right_btn.png
  67. BIN
      src/main/webapp/develop/images/app/Right_btn_pre.png
  68. BIN
      src/main/webapp/develop/images/app/Search03_btn.png
  69. BIN
      src/main/webapp/develop/images/app/Search_btn.png
  70. BIN
      src/main/webapp/develop/images/app/Search_btn_pre.png
  71. BIN
      src/main/webapp/develop/images/app/Selected2_btn_pre.png
  72. BIN
      src/main/webapp/develop/images/app/Selected3_btn_pre.png
  73. BIN
      src/main/webapp/develop/images/app/The-import_btn.png
  74. BIN
      src/main/webapp/develop/images/app/The-import_btn_pre.png
  75. BIN
      src/main/webapp/develop/images/app/Verification_btn.png
  76. BIN
      src/main/webapp/develop/images/app/Verification_btn_pre.png
  77. BIN
      src/main/webapp/develop/images/app/Verification_dis.png
  78. BIN
      src/main/webapp/develop/images/app/active.png
  79. BIN
      src/main/webapp/develop/images/app/active_pre.png
  80. BIN
      src/main/webapp/develop/images/app/add_btn.png
  81. BIN
      src/main/webapp/develop/images/app/add_btn_pre.png
  82. BIN
      src/main/webapp/develop/images/app/add_hui.png
  83. BIN
      src/main/webapp/develop/images/app/arrows.png
  84. BIN
      src/main/webapp/develop/images/app/bianji01_btn.png
  85. BIN
      src/main/webapp/develop/images/app/bianji_btn.png
  86. BIN
      src/main/webapp/develop/images/app/bianji_btn_pre.png
  87. BIN
      src/main/webapp/develop/images/app/btn_bg.png
  88. BIN
      src/main/webapp/develop/images/app/cancel_btn.png
  89. BIN
      src/main/webapp/develop/images/app/cancel_btn_pre.png
  90. BIN
      src/main/webapp/develop/images/app/confirm_btn.png
  91. BIN
      src/main/webapp/develop/images/app/confirm_btn_pre.png
  92. BIN
      src/main/webapp/develop/images/app/dangan_icon.png
  93. BIN
      src/main/webapp/develop/images/app/dashed.png
  94. BIN
      src/main/webapp/develop/images/app/dateeditor-btn-over.gif
  95. BIN
      src/main/webapp/develop/images/app/dateeditor-btn.gif
  96. BIN
      src/main/webapp/develop/images/app/delete_btn01.png
  97. BIN
      src/main/webapp/develop/images/app/delete_btn01_pre.png
  98. BIN
      src/main/webapp/develop/images/app/export_btn.png
  99. BIN
      src/main/webapp/develop/images/app/export_btn_pre.png
  100. 0 0
      src/main/webapp/develop/images/app/gouxuan.png

+ 25 - 1
pom.xml

@ -173,10 +173,15 @@
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
        </dependency>
        <dependency>
            <groupId>net.minidev</groupId>
            <artifactId>json-smart</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20140107</version>
            <version>20160212</version>
        </dependency>
        <dependency>
            <groupId>org.zbus</groupId>
@ -188,6 +193,12 @@
            <artifactId>spring-security-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu.ehr</groupId>
            <artifactId>commons-admin-gateway-model</artifactId>
@ -239,6 +250,19 @@
            <artifactId>ehr-dbhelper</artifactId>
            <version>1.1.9</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.1</version>
        </dependency>
    </dependencies>
    <build>

+ 122 - 0
src/main/java/com/yihu/hos/common/BaseUIController.java

@ -0,0 +1,122 @@
package com.yihu.hos.common;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.util.rest.Envelop;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.List;
/** UI用controller工具类
 * Created by Administrator on 2016/3/16.
 */
public class BaseUIController {
    private static String ERR_SYSREM_DES = "系统错误,请联系管理员!";
    @Autowired
    public ObjectMapper objectMapper;
    public Envelop getEnvelop(String json){
        try {
            return objectMapper.readValue(json,Envelop.class);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    public String toJson(Object data){
        try {
            String json = objectMapper.writeValueAsString(data);
            return json;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
    public <T> T toModel(String json,Class<T> targetCls){
        try {
            T model = objectMapper.readValue(json, targetCls);
            return model;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
    /**
     *将envelop中的obj串转化为model
     * Envelop envelop = objectMapper.readValue(resultStr,Envelop.class)
     * jsonData = envelop.getObj()
     * @param jsonData
     * @param targetCls
     * @param <T>
     * @return
     */
    public <T> T getEnvelopModel(Object jsonData, Class<T> targetCls) {
        try {
            String objJsonData = objectMapper.writeValueAsString(jsonData);
            T model = objectMapper.readValue(objJsonData, targetCls);
            return model;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
    /**
     *将envelop中的DetailList串转化为模板对象集合
     *Envelop envelop = objectMapper.readValue(resultStr,Envelop.class)
     * modelList = envelop.getDetailModelList()
     * @param modelList
     * @param targets
     * @param targetCls
     * @param <T>
     * @return
     */
    public <T> Collection<T> getEnvelopList(List modelList, Collection<T> targets, Class<T> targetCls) {
        try {
            for (Object aModelList : modelList) {
                String objJsonData = objectMapper.writeValueAsString(aModelList);
                T model = objectMapper.readValue(objJsonData, targetCls);
                targets.add(model);
            }
            return targets;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
    public Envelop failed(String errMsg) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        envelop.setErrorMsg(errMsg);
        return envelop;
    }
    public Envelop success(Object object) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(true);
        envelop.setObj(object);
        return envelop;
    }
    public String encodeStr(String str) {
        try {
            if (str == null) {
                return null;
            }
            return new String(str.getBytes("ISO-8859-1"), "UTF-8");
        } catch (UnsupportedEncodingException ex) {
            return null;
        }
    }
    protected Envelop failedSystem() {
        return failed(ERR_SYSREM_DES);
    }
}

+ 1 - 1
src/main/java/com/yihu/hos/common/CommonPageController.java

@ -46,7 +46,7 @@ public class CommonPageController extends BaseController {
    private String saasAdmin;
    @Value("${hos.clientId}")
    private String clientId;
    @Value("${service-gateway.adminUrl}")
    @Value("${service-gateway.url}")
    public String adminUrl;
    @Value("${service-gateway.portalUrl}")
    public String portalUrl;

+ 1 - 1
src/main/java/com/yihu/hos/standard/util/ExcelModel.java

@ -1,4 +1,4 @@
package com.yihu.hos.standard.util;
package com.yihu.hos.common.util;
import java.util.ArrayList;
import java.util.List;

+ 1 - 1
src/main/java/com/yihu/hos/standard/util/ExcelUtil.java

@ -1,4 +1,4 @@
package com.yihu.hos.standard.util;
package com.yihu.hos.common.util;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.IndexedColors;

+ 1 - 1
src/main/java/com/yihu/hos/standard/util/ExcelUtilBigData.java

@ -1,4 +1,4 @@
package com.yihu.hos.standard.util;
package com.yihu.hos.common.util;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;

+ 1 - 1
src/main/java/com/yihu/hos/standard/util/GetChineseFirst.java

@ -1,4 +1,4 @@
package com.yihu.hos.standard.util;
package com.yihu.hos.common.util;
/**
 * Created by Administrator on 2016/6/28.

+ 1 - 1
src/main/java/com/yihu/hos/standard/util/LikeHashMap.java

@ -1,4 +1,4 @@
package com.yihu.hos.standard.util;
package com.yihu.hos.common.util;
import java.util.*;

+ 267 - 0
src/main/java/com/yihu/hos/common/util/http/HttpClientUtil.java

@ -0,0 +1,267 @@
package com.yihu.hos.common.util.http;
import net.minidev.json.JSONObject;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.log4j.Logger;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.*;
/**
 * HTTP 请求工具类
 *
 * @author : cwd
 * @version : 1.0.0
 * @date : 2016/1/14
 * @see : TODO
 */
public class HttpClientUtil {
    public static Logger logger  = Logger.getLogger(HttpClientUtil.class);
    /**
     * 发送 GET 请求(HTTP),不带输入数据 不加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url) throws Exception {
        return doGet(url, new HashMap<String, Object>(), "", "");
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 不加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url, Map<String, Object> params) throws Exception {
        return doGet(url, params, "", "");
    }
    /**
     * 发送 GET 请求(HTTP),不带输入数据 加密
     *
     * @param url
     * @return
     */
    public static String doGet(String url, String username, String password) throws Exception {
        return doGet(url, new HashMap<String, Object>(), username, password);
    }
    /**
     * httpClient的get请求方式
     *
     * @return
     * @throws Exception
     */
    public static String doGet(String url, Map<String, Object> params, String username, String password)
            throws Exception {
        String getKey = UUID.randomUUID().toString();
        logger.info( "用户:" + username+";发起get请求连接:" + url+",请求标示:"+getKey);
        HttpClient httpClient = new HttpClient();
        String response = "";
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        GetMethod getMethod = null;
        StringBuilder param = new StringBuilder();
        int i = 0;
        try {
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
                httpClient.getState().setCredentials(AuthScope.ANY, creds);
            }
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            getMethod = new GetMethod(url + "?" + URLEncodedUtils.format(jsonParams, HTTP.UTF_8));
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
            int statusCode = httpClient.executeMethod(getMethod);
            if (statusCode != HttpStatus.SC_OK) {
                String jsonObject = JSONObject.toJSONString(params);
                logger.debug("用户:"+username+"\r\n发起get请求出错:\r\n请求连接" + url + "\r\n请求参数:"+jsonObject+",状态:" + statusCode + "\r\nresponseBody"+new String(getMethod.getResponseBody(), "UTF-8")+",\r\n请求标示:"+getKey+"\r\n");
                throw new Exception("请求出错: " + getMethod.getStatusLine());
            }
            byte[] responseBody = getMethod.getResponseBody();
            response = new String(responseBody, "UTF-8");
        } catch (HttpException e) {
            logger.debug("用户:"+username+";发起get请求出错,请求连接:" + url + ",HttpException异常信息:" + e.getLocalizedMessage()+",请求标示:"+getKey);
            e.printStackTrace();
        } catch (IOException e) {
            logger.debug("用户:"+username+";发起get请求出错,请求连接:" + url + ",IOException异常信息:" + e.getLocalizedMessage()+",请求标示:"+getKey);
            e.printStackTrace();
        } finally {
            // getMethod.releaseConnection();
        }
        return response;
    }
    /**
     * 发送 POST 请求(HTTP),不带输入数据 不加密
     */
    public static String doPost(String url, Map<String, Object> params) throws Exception {
        return doPost(url, params, "", "");
    }
    /**
     *  httpClient的post请求方式
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doPost(String url, Map<String, Object> params, String username, String password) throws Exception {
         String postKey = UUID.randomUUID().toString();
        logger.info( "用户:" + username+";发起post请求连接:" + url+",请求标示:"+postKey);
        HttpClient httpClient = new HttpClient();
        String response = "";
        List<NameValuePair> jsonParams=new ArrayList<NameValuePair>();
        PostMethod postMethod = null;
        StringBuilder param = new StringBuilder();
        int i = 0;
        try {
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
                httpClient.getState().setCredentials(AuthScope.ANY, creds);
            }
            NameValuePair nameValuePair  =null;
            //配置参数
            postMethod = new PostMethod(url);
            for (String key : params.keySet()) {
                nameValuePair = new NameValuePair(key, String.valueOf(params.get(key)));
                postMethod.addParameter(nameValuePair);
            }
            postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
            postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");
            int statusCode = httpClient.executeMethod(postMethod);
            if (statusCode != HttpStatus.SC_OK) {
                String jsonObject = JSONObject.toJSONString(params);
                logger.debug("用户:"+username+"\r\n发起post请求出错:\r\n请求连接" + url + "\r\n请求参数:"+jsonObject+",状态:" + statusCode + "\r\nresponseBody"+new String(postMethod.getResponseBody(), "UTF-8")+",\r\n请求标示:"+postKey+"\r\n");
                throw new Exception("请求出错: " + postMethod.getStatusLine());
            }
            byte[] responseBody = postMethod.getResponseBody();
            response = new String(responseBody, "UTF-8");
        } catch (HttpException e) {
            logger.debug("用户:" + username + ";发起post请求出错,请求连接:" + url + ",HttpException异常信息:" + e.getLocalizedMessage() + ",请求标示:" + postKey);
            e.printStackTrace();
        } catch (IOException e) {
            logger.debug("用户:" + username + ";发起post请求出错,请求连接:" + url + ",IOException异常信息:" + e.getLocalizedMessage() + ",请求标示:" + postKey);
            e.printStackTrace();
        } finally {
            // getMethod.releaseConnection();
        }
        return response;
    }
    /**
     *  httpClient的put请求方式
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doPut(String url, Map<String, Object> params, String username, String password) throws Exception {
        String putKey = UUID.randomUUID().toString();
        logger.info( "用户:" + username+";发起put请求连接:" + url+",请求标示:"+putKey);
        HttpClient httpClient = new HttpClient();
        String response = "";
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        PutMethod putMethod = null;
        StringBuilder param = new StringBuilder();
        int i = 0;
        try {
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
                httpClient.getState().setCredentials(AuthScope.ANY, creds);
            }
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            putMethod = new PutMethod(url + "?" + URLEncodedUtils.format(jsonParams, HTTP.UTF_8));
            putMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
            int statusCode = httpClient.executeMethod(putMethod);
            if (statusCode != HttpStatus.SC_OK) {
                String jsonObject = JSONObject.toJSONString(params);
                logger.debug("用户:"+username+"\r\n发起put请求出错:\r\n请求连接" + url + "\r\n请求参数:"+jsonObject+",状态:" + statusCode + "\r\nresponseBody"+new String(putMethod.getResponseBody(), "UTF-8")+",\r\n请求标示:"+putKey+"\r\n");
                throw new Exception("请求出错: " + putMethod.getStatusLine());
            }
            byte[] responseBody = putMethod.getResponseBody();
            response = new String(responseBody, "UTF-8");
        } catch (HttpException e) {
            logger.debug("用户:" + username + ";发起put请求出错,请求连接:" + url + ",HttpException异常信息:" + e.getLocalizedMessage() + ",请求标示:" + putKey);
            e.printStackTrace();
        } catch (IOException e) {
            logger.debug("用户:" + username + ";发起put请求出错,请求连接:" + url + ",IOException异常信息:" + e.getLocalizedMessage() + ",请求标示:" + putKey);
            e.printStackTrace();
        } finally {
            // getMethod.releaseConnection();
        }
        return response;
    }
    /**
     *  httpClient的delete请求方式
     * @param url
     * @param params
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    public static String doDelete(String url, Map<String, Object> params, String username, String password) throws Exception {
        String deleteKey = UUID.randomUUID().toString();
        logger.info( "用户:" + username+";发起delete请求连接:" + url+",请求标示:"+deleteKey);
        HttpClient httpClient = new HttpClient();
        String response = "";
        List<BasicNameValuePair> jsonParams = new ArrayList<>();
        DeleteMethod deleteMethod = null;
        StringBuilder param = new StringBuilder();
        int i = 0;
        try {
            if (!StringUtils.isEmpty(username) && !StringUtils.isEmpty(password)) {
                //需要验证
                UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
                httpClient.getState().setCredentials(AuthScope.ANY, creds);
            }
            //配置参数
            for (String key : params.keySet()) {
                jsonParams.add(new BasicNameValuePair(key, String.valueOf(params.get(key))));
            }
            deleteMethod = new DeleteMethod(url + "?" + URLEncodedUtils.format(jsonParams, HTTP.UTF_8));
            deleteMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
            int statusCode = httpClient.executeMethod(deleteMethod);
            if (statusCode != HttpStatus.SC_OK) {
                String jsonObject = JSONObject.toJSONString(params);
                logger.debug("用户:"+username+"\r\n发起delete请求出错:\r\n请求连接" + url + "\r\n请求参数:"+jsonObject+",状态:" + statusCode + "\r\nresponseBody"+new String(deleteMethod.getResponseBody(), "UTF-8")+",\r\n请求标示:"+deleteKey+"\r\n");
                throw new Exception("请求出错: " + deleteMethod.getStatusLine());
            }
            byte[] responseBody = deleteMethod.getResponseBody();
            response = new String(responseBody, "UTF-8");
        } catch (HttpException e) {
            logger.debug("用户:" + username + ";发起delete请求出错,请求连接:" + url + ",HttpException异常信息:" + e.getLocalizedMessage() + ",请求标示:" + deleteKey);
            e.printStackTrace();
        } catch (IOException e) {
            logger.debug("用户:" + username + ";发起delete请求出错,请求连接:" + url + ",IOException异常信息:" + e.getLocalizedMessage() + ",请求标示:" + deleteKey);
            e.printStackTrace();
        } finally {
            // getMethod.releaseConnection();
        }
        return response;
    }
}

+ 1 - 1
src/main/java/com/yihu/hos/qc/controller/ReportController.java

@ -17,7 +17,7 @@ import javax.servlet.http.HttpServletResponse;
@RequestMapping("/report")
//@SessionAttributes(SessionAttributeKeys.CurrentUser)
public class ReportController extends BaseController {
    @Value("${service-gateway.adminUrl}")
    @Value("${service-gateway.url}")
    private String comUrl;
    @Value("${service-gateway.oauth2authorize}")
    private String oauth2authUrl;

+ 693 - 0
src/main/java/com/yihu/hos/standard/controller/CdaController.java

@ -0,0 +1,693 @@
package com.yihu.hos.standard.controller;
import com.yihu.ehr.agModel.standard.cdadocument.CDAModel;
import com.yihu.ehr.agModel.user.UserDetailModel;
import com.yihu.ehr.constants.ErrorCode;
import com.yihu.ehr.constants.SessionAttributeKeys;
import com.yihu.ehr.util.log.LogService;
import com.yihu.ehr.util.rest.Envelop;
import com.yihu.hos.common.BaseUIController;
import com.yihu.hos.common.util.http.HttpClientUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@RequestMapping(value = "/cda", produces = "application/json")
@Controller
@SessionAttributes(SessionAttributeKeys.CurrentUser)
public class CdaController extends BaseUIController {
    @Value("${service-gateway.username}")
    private String username;
    @Value("${service-gateway.password}")
    private String password;
    @Value("${service-gateway.url}")
    private String comUrl;
    @Value("${service-gateway.standard}")
    public String standardUrl;
    @RequestMapping("initial")
    public String cdaInitial(Model model) {
        model.addAttribute("contentPage", "std/cda/cda");
        return "pageView";
    }
    @RequestMapping("cdaupdate")
    public String cdaUpdate(Model model, String userId) {
        model.addAttribute("UserId", userId);
        model.addAttribute("contentPage", "std/cda/CDAUpdate");
        return "generalView";
    }
    @RequestMapping("cdaBaseInfo")
    public String cdaBaseInfo(Model model, String userId) {
        model.addAttribute("UserId", userId);
        model.addAttribute("contentPage", "std/cda/cdaBaseInfo");
        return "generalView";
    }
    @RequestMapping("cdaRelationship")
    public String cdaRelationship(Model model) {
        model.addAttribute("contentPage", "std/cda/cdaRelationship");
        return "generalView";
    }
    @RequestMapping("GetCdaListByKey")
    @ResponseBody
    public Object GetCdaListByKey(String strKey, String strVersion, String strType, Integer page, Integer rows) {
        String url = "/cda/cdas";
        String filters = "type="+strType;
        Envelop result = new Envelop();
        Map<String,Object> params = new HashMap<>();
        if (!StringUtils.isEmpty(strKey)){
            filters += " g1;code?"+strKey+" g2;name?"+strKey+" g2";
        }
        params.put("fields","");
        params.put("sorts","");
        params.put("version",strVersion);
        params.put("filters",filters);
        params.put("page",page);
        params.put("size",rows);
        if (StringUtils.isEmpty(strVersion)) {
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.VersionCodeIsNull.toString());
            return result;
        }
        try {
            String _rus = HttpClientUtil.doGet(comUrl+url, params, username, password);
            if (StringUtils.isEmpty(_rus)) {
                result.setSuccessFlg(false);
                result.setErrorMsg(ErrorCode.GetCDAInfoFailed.toString());
            }else{
                return _rus;
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
    }
    @RequestMapping("getCDAInfoById")
    @ResponseBody
    public Object getCDAInfoById(String strId, String strVersion) {
        String url = "/cda/cda";
        String strErrorMsg = "";
        Envelop result = new Envelop();
        Map<String,Object> params = new HashMap<>();
        params.put("version_code",strVersion);
        params.put("cda_id",strId);
        if (StringUtils.isEmpty(strVersion)) {
            strErrorMsg += "请选择标准版本!";
        }
        if (StringUtils.isEmpty(strId)) {
            strErrorMsg += "请选择将要编辑的CDA!";
        }
        if (!StringUtils.isEmpty(strErrorMsg)) {
            result.setSuccessFlg(false);
            result.setErrorMsg(strErrorMsg);
            return result;
        }
        try {
            String _rus = HttpClientUtil.doGet(comUrl + url, params, username, password);
            return _rus;
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
        /*Result result = new Result();
        try {
            String strErrorMsg = "";
            if (strVersion == null || strVersion == "") {
                strErrorMsg += "请选择标准版本!";
            }
            if (strId == null || strId == "") {
                strErrorMsg += "请选择将要编辑的CDA!";
            }
            if (strErrorMsg != "") {
                result.setSuccessFlg(false);
                result.setErrorMsg(strErrorMsg);
                return result;
            }
            List<String> listId = Arrays.asList(strId.split(","));
            XCDADocument[] xcdaDocuments = xcdaDocumentManager.getDocumentList(strVersion, listId);
            if (xcdaDocuments == null) {
                result.setSuccessFlg(false);
                result.setErrorMsg(ErrorCode.GetCDAInfoFailed.toString());
                return result;
            }
            List<CDAForInterface> resultInfos = GetCDAForInterface(xcdaDocuments);
            result.setSuccessFlg(true);
            result.setObj(resultInfos.get(0));
        } catch (Exception ex) {
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.GetCDAInfoFailed.toString());
        }
        return result;*/
    }
   /* public List<CDAForInterface> GetCDAForInterface(XCDADocument[] xcdaDocuments) {
        List<CDAForInterface> infos = new ArrayList<>();
        for (XCDADocument xcdaDocument : xcdaDocuments) {
            CDAForInterface info = new CDAForInterface();
            info.setId(xcdaDocument.getId());
            info.setCode(xcdaDocument.getCode());
            info.setName(xcdaDocument.getName());
            info.setDescription(xcdaDocument.getDescription());
            info.setPrintOut(xcdaDocument.getPrintOut());
            info.setSourceId(xcdaDocument.getSourceId());
            info.setSchema(xcdaDocument.getSchema());
            info.setVersionCode(xcdaDocument.getVersionCode());
            info.setTypeId(xcdaDocument.getTypeId());
            infos.add(info);
        }
        return infos;
    }*/
    @RequestMapping("getRelationByCdaId")
    @ResponseBody
    public Object getRelationByCdaId(String cdaId, String strVersionCode, String strkey, Integer page, Integer rows) {
        // TODO 无对应
        Envelop result = new Envelop();
        try {
            String url = "/cda*/************";
            Map<String,Object> params = new HashMap<>();
            params.put("cdaId",cdaId);
            params.put("versionCode",strVersionCode);
            params.put("strkey",strkey);
            params.put("page",page);
            params.put("rows",rows);
            String _rus = HttpClientUtil.doGet(comUrl+url,params,username,password);
            if(StringUtils.isEmpty(_rus)){
                result.setSuccessFlg(false);
                result.setErrorMsg("关系获取失败!");
            }else {
                return _rus;
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
        /*Result result = new Result();
        try {
            List<CdaDatasetRelationshipForInterface> listResult = new ArrayList<>();
            XCdaDatasetRelationship[] relations = xCdaDatasetRelationshipManager.getRelationshipByCdaId(cdaId, strVersionCode, strkey, page, rows);
            if (relations != null) {
                for (XCdaDatasetRelationship info : relations) {
                    CdaDatasetRelationshipForInterface _res = new CdaDatasetRelationshipForInterface();
                    _res.setId(info.getId());
                    _res.setDatasetId(info.getDataSetId());
                    _res.setDataset_code(info.getDataSetCode());
                    _res.setDataset_name(info.getDataSetName());
                    _res.setSummary(info.getSummary());
                    listResult.add(_res);
                }
            }
            int resultCount = xCdaDatasetRelationshipManager.getRelationshipCountByCdaId(cdaId, strVersionCode, strkey);
            result = getResult(listResult, resultCount, page, rows);
        } catch (Exception ex) {
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg("��ϵ��ȡʧ��!");
        }
        return result;*/
    }
    @RequestMapping("getALLRelationByCdaId")
    @ResponseBody
    public Object getALLRelationByCdaId(String cdaId, String strVersionCode) {
        Envelop result = new Envelop();
        try {
            String url = "/cda/relationships";
            Map<String,Object> params = new HashMap<>();
            params.put("cdaId",cdaId);
            params.put("versionCode",strVersionCode);
            //TODO 结果转换为对象且getResult(listResult,1,1,1);
            String _rus = HttpClientUtil.doGet(comUrl+url,params,username,password);
            if(StringUtils.isEmpty(_rus)){
                result.setSuccessFlg(false);
                result.setErrorMsg("关系获取失败!");
            }else {
              result.setSuccessFlg(true);
                return _rus;
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
        /*Result result = new Result();
        try {
            List<CdaDatasetRelationshipForInterface> listResult = new ArrayList<>();
            XCdaDatasetRelationship[] relations = xCdaDatasetRelationshipManager.getRelationshipByCdaId(cdaId, strVersionCode);
            if (relations != null) {
                for (XCdaDatasetRelationship info : relations) {
                    CdaDatasetRelationshipForInterface _res = new CdaDatasetRelationshipForInterface();
                    _res.setId(info.getId());
                    _res.setDatasetId(info.getDataSetId());
                    _res.setDataset_code(info.getDataSetCode());
                    _res.setDataset_name(info.getDataSetName());
                    _res.setSummary(info.getSummary());
                    listResult.add(_res);
                }
            }
            result = getResult(listResult, 1, 1, 1);
        } catch (Exception ex) {
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg("关系获取失败!");
        }
        return result;*/
    }
    @RequestMapping("SaveCdaInfo")
    @ResponseBody
    public Object SaveCdaInfo(String cdaJson,String version,HttpServletRequest request) throws IOException {
        String url = "/cda/cda";
        String resultStr = "";
        CDAModel cdaModel = null;
        Envelop envelop = new Envelop();
        Map<String,Object> params = new HashMap<>();
        cdaModel = toModel(cdaJson,CDAModel.class);
        UserDetailModel userDetailModel = (UserDetailModel)request.getSession().getAttribute(SessionAttributeKeys.CurrentUser);
        params.put("version",version);
        try {
            if(StringUtils.isEmpty(cdaModel.getId())) {
                cdaModel.setCreateUser(userDetailModel.getId());
                params.put("cdaInfoJson",toJson(cdaModel));
                resultStr = HttpClientUtil.doPost(comUrl + url, params, username, password);//新增
            }
            else {
                params.put("version_code",cdaModel.getVersionCode());
                params.put("cda_id",cdaModel.getId());
                resultStr = HttpClientUtil.doGet(comUrl + url, params, username, password);//获取
                envelop = toModel(resultStr,Envelop.class);
                CDAModel updateCdaModel = getEnvelopModel(envelop.getDetailModelList().get(0),CDAModel.class);
                updateCdaModel.setCode(cdaModel.getCode());
                updateCdaModel.setName(cdaModel.getName());
                updateCdaModel.setSourceId(cdaModel.getSourceId());
                updateCdaModel.setType(cdaModel.getType());
                updateCdaModel.setDescription(cdaModel.getDescription());
                cdaModel.setUpdateUser(userDetailModel.getId());
                params.put("cdaInfoJson",toJson(updateCdaModel));
                resultStr = HttpClientUtil.doPut(comUrl + url, params, username, password);//修改
            }
            envelop = toModel(resultStr,Envelop.class);
            if(!envelop.isSuccessFlg()){
                envelop.setSuccessFlg(false);
                envelop.setErrorMsg("CDA保存失败");
            }else {
                envelop.setSuccessFlg(true);
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    @RequestMapping("deleteCdaInfo")
    @ResponseBody
    public Object deleteCdaInfo(String ids, String strVersionCode) {
        String url = "/cda/cda";
        String resultStr = "";
        Envelop envelop = new Envelop();
        Map<String,Object> params = new HashMap<>();
        params.put("cdaId",ids);
        params.put("versionCode",strVersionCode);
        String strErrorMsg = "";
        if (StringUtils.isEmpty(strVersionCode)) {
            strErrorMsg += "标准版本不能为空!";
        }
        if (StringUtils.isEmpty(ids)) {
            strErrorMsg += "请先选择将要删除的CDA";
        }
        if (!StringUtils.isEmpty(strErrorMsg)) {
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(strErrorMsg);
            return envelop;
        }
        try {
            resultStr = HttpClientUtil.doDelete(comUrl+url,params,username,password);
            return resultStr;
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    /**
     * 保存CDA信息
     * 1.先删除CDA数据集关联关系信息与cda文档XML文件,在新增信息
     * @param strDatasetIds 关联的数据集
     * @param strCdaId  cda文档 ID
     * @param strVersionCode 版本号
     * @param xmlInfo xml 文件内容
     * @return 操作结果
     */
    @RequestMapping("SaveRelationship")
    @ResponseBody
    public Object SaveRelationship(String strDatasetIds, String strCdaId, String strVersionCode, String xmlInfo) {
//        MultiValueMap<String,String> conditionMap = new LinkedMultiValueMap<String, String>();
//        RestTemplates template = new RestTemplates();
        Envelop result = new Envelop();
        String strErrorMsg = "";
        if (StringUtils.isEmpty(strVersionCode)) {
            strErrorMsg += "标准版本不能为空!";
        }
        if (StringUtils.isEmpty(strCdaId)) {
            strErrorMsg += "请先选择CDA!";
        }
        if (!StringUtils.isEmpty(strErrorMsg)) {
            result.setSuccessFlg(false);
            result.setErrorMsg(strErrorMsg);
            return result;
        }
        try {
            Map<String,Object> conditionMap = new HashMap<>();
            conditionMap.put("dataSetIds", strDatasetIds);
            conditionMap.put("cdaId", strCdaId);
            conditionMap.put("versionCode", strVersionCode);
            conditionMap.put("xmlInfo", xmlInfo);
            String url = comUrl + "/cda/saveRelationship";
            String _rus = HttpClientUtil.doPost( url, conditionMap, username, password);
            if(StringUtils.isEmpty(_rus)){
                result.setSuccessFlg(false);
                result.setErrorMsg("关系保存失败");
            }else{
                result.setSuccessFlg(true);
            }
        }catch(Exception ex){
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
    }
    @RequestMapping("DeleteRelationship")
    @ResponseBody
    public Object DeleteRelationship(String ids, String strVersionCode) {
        //TODO 无对应
        Envelop result = new Envelop();
        try {
            String url = "/cda*/*************";
            Map<String,Object> params = new HashMap<>();
            params.put("ids",ids);
            params.put("strVersionCode",strVersionCode);
            String _msg = HttpClientUtil.doDelete(comUrl + url, params, username, password);
            if(Boolean.parseBoolean(_msg)){
                result.setSuccessFlg(true);
            }else {
                result.setSuccessFlg(false);
                result.setErrorMsg("关系删除失败!");
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
        /*Result result = new Result();
        try {
            List<String> relationIds = Arrays.asList(ids.split(","));
            int iResult = xCdaDatasetRelationshipManager.deleteRelationshipById(strVersionCode, relationIds);
            if (iResult >= 0) {
                result.setSuccessFlg(true);
            } else {
                result.setSuccessFlg(false);
                result.setErrorMsg("关系删除失败!");
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg("关系删除失败!");
        }
        return result;*/
    }
    /*
  * 判断文件是否存在*/
    @RequestMapping("/FileExists")
    @ResponseBody
    public String FileExists(String strCdaId, String strVersionCode) {
        //TODO 无对应
        try{
            String url = "/cda/***********";
            Map<String,Object> params = new HashMap<>();
            params.put("strCdaId",strCdaId);
            params.put("strVersionCode",strVersionCode);
            String _msg = HttpClientUtil.doGet(comUrl+url,params,username,password);
            if(Boolean.parseBoolean(_msg)){
                return "true";
            }else{
                return "false";
            }
        }catch(Exception ex){
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            return "false";
        }
       /*//1 已存在文件
        if (xcdaDocumentManager.isFileExists(strCdaId, strVersionCode)) {
            return "true";
        } else {
            return "false";
        }*/
    }
    /*
     * 根据CDA ID 获取数据集信息
     * @param strVersionCode 版本号
     * @param strCdaId CDAID
     * @return Result
     * */
    @RequestMapping("/getDatasetByCdaId")
    @ResponseBody
    public Object getDatasetByCdaId(String strVersionCode, String strCdaId) {
        Envelop result = new Envelop();
        try {
            String url = "/cda/relationships";
            Map<String,Object> params = new HashMap<>();
            params.put("versionCode",strVersionCode);
            params.put("cdaId",strCdaId);
            String _rus = HttpClientUtil.doGet(comUrl+url,params,username,password);
            if(StringUtils.isEmpty(_rus)){
                result.setSuccessFlg(false);
                result.setErrorMsg("数据集获取失败");
            }else{
               result.setSuccessFlg(true);
                return _rus;
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
    }
    @RequestMapping("/validatorCda")
    @ResponseBody
    public Object validatorCda(String code, String versionCode) {
        Envelop result = new Envelop();
        try {
            String url = "/cda/documentExist";
            Map<String,Object> params = new HashMap<>();
            params.put("code",code);
            params.put("versionCode",versionCode);
            String _msg = HttpClientUtil.doPost(comUrl+url,params,username,password);
            if(Boolean.parseBoolean(_msg)){
                result.setSuccessFlg(true);
            }else {
                result.setSuccessFlg(false);
            }
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
        /*boolean documentExist = xcdaDocumentManager.isDocumentExist(versionCode, code);
        if (documentExist) {
            return getSuccessResult(true).toJson();
        }
        return getSuccessResult(false).toJson();*/
    }
    /**
     * 将String 保存为XML文件
     *
     * @param fileInfo 文件信息
     * @return 返回 文件路径
     */
    /*public String SaveCdaFile(String fileInfo, String versionCode, String cdaId) {
        fileInfo = fileInfo.replaceAll("&lt;", "<").replaceAll("&gt;", ">");
        String strPath = System.getProperty("java.io.tmpdir");
        String splitMark = System.getProperty("file.separator");
        strPath += splitMark+"StandardFiles";
        //文件路径
        String strXMLFilePath = strPath + splitMark + "xml" + splitMark + versionCode + splitMark + "createfile" + splitMark + cdaId + ".xml";
        File file = new File(strXMLFilePath);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }
        try {
            file.createNewFile();
        } catch (IOException ex) {
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
        }
        try {
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(fileInfo);
            bw.flush();
            bw.close();
            fw.close();
        } catch (IOException ex) {
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
        }
        return strXMLFilePath;
    }*/
   /* public boolean SaveXmlFilePath(String cdaId, String versionCode, String fileGroup, String filePath) {
        boolean result = true;
        try {
            List<String> listIds = new ArrayList<>();
            listIds.add(cdaId);
            XCDADocument[] xcdaDocuments = xcdaDocumentManager.getDocumentList(versionCode, listIds);
            if (xcdaDocuments.length <= 0) {
                LogService.getLogger(CdaController_w.class).error("δ�ҵ�CDA");
                return false;
            }
            xcdaDocuments[0].setFileGroup(fileGroup);
            xcdaDocuments[0].setSchema(filePath);
            xcdaDocuments[0].setVersionCode(versionCode);
            int iRes = xcdaDocumentManager.saveDocument(xcdaDocuments[0]);
            if (iRes < 0) {
                return false;
            }
        } catch (Exception ex) {
            result = false;
            LogService.getLogger(CdaController_w.class).error(ex.getMessage());
        }
        return result;
    }*/
    /**
     * 获取cda文档的XML文件信息。
     * <p>
     * 从服务器的临时文件路径中读取配置文件,并以XML形式返回。
     *
     * @param cdaId
     * @param versionCode
     * @return XML信息
     * @version 1.0.1 将临时目录转移至fastDFS。
     */
    @RequestMapping("/getCdaXmlFileInfo")
    @ResponseBody
    public Object getCdaXmlFileInfo(String cdaId, String versionCode) {
        Envelop envelop = new Envelop();
        String strXmlInfo = "";
        try {
            String url = "/cda/getCdaXmlFileInfo";
            Map<String,Object> params = new HashMap<>();
            params.put("cdaId",cdaId);
            params.put("versionCode",versionCode);
            strXmlInfo = HttpClientUtil.doGet(comUrl+url,params,username,password);
            return strXmlInfo;
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
        }
        return envelop;
    }
    @RequestMapping("/getOrgType")
    @ResponseBody
    public Object getOrgType() {
        // 例子
        Envelop result = new Envelop();
        try {
            String url = "/conDict/orgType";
            Map<String, Object> params = new HashMap<>();
            params.put("type","Govement");
            String _res = HttpClientUtil.doGet(comUrl + url, params, username, password);
            result.setSuccessFlg(true);
            result.setObj(_res);
        } catch (Exception ex) {
            LogService.getLogger(CdaController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
        }
        return result;
    }
}

+ 292 - 0
src/main/java/com/yihu/hos/standard/controller/CdaTypeController.java

@ -0,0 +1,292 @@
package com.yihu.hos.standard.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.agModel.standard.cdatype.CdaTypeDetailModel;
import com.yihu.ehr.agModel.user.UserDetailModel;
import com.yihu.ehr.constants.ErrorCode;
import com.yihu.ehr.constants.SessionAttributeKeys;
import com.yihu.ehr.util.log.LogService;
import com.yihu.ehr.util.rest.Envelop;
import com.yihu.hos.common.BaseUIController;
import com.yihu.hos.common.util.http.HttpClientUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by AndyCai on 2015/12/14.
 */
@RequestMapping(value = "/cdatype", produces = "application/json;charset=utf-8")
@Controller
@SessionAttributes(SessionAttributeKeys.CurrentUser)
public class CdaTypeController extends BaseUIController {
    @Value("${service-gateway.username}")
    private String username;
    @Value("${service-gateway.password}")
    private String password;
    @Value("${service-gateway.cdatypeurl}")
    private String comUrl;
    @Autowired
    ObjectMapper objectMapper;
    @RequestMapping("index")
    public String cdaTypeInitial(Model model) {
        model.addAttribute("contentPage", "std/cdaType/index");
        return "pageView";
    }
    @RequestMapping("typeupdate")
    public String typeupdate(Model model, HttpServletRequest request) {
        UserDetailModel user = (UserDetailModel)request.getSession().getAttribute(SessionAttributeKeys.CurrentUser);
        model.addAttribute("UserId", user.getId());
        model.addAttribute("contentPage", "std/cdaType/CdaTypeDetail");
        return "generalView";
    }
    @RequestMapping("getTreeGridData")
    @ResponseBody
    //获取TreeData 用于初始页面显示嵌套model
    public Object getTreeGridData(String codeName) {
        Envelop envelop = new Envelop();
        String url = "/cda_types/cda_types_tree";
        String strResult = "";
        if (StringUtils.isEmpty(codeName)){
            codeName = "";
        }
        try{
            Map<String,Object> params = new HashMap<>();
            params.put("code_name",codeName);
            strResult = HttpClientUtil.doGet(comUrl+url,params,username,password);
            return strResult;
        }catch(Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    @RequestMapping("GetCdaTypeList")
    @ResponseBody
    public Object GetCdaTypeList(String strKey, Integer page, Integer rows) {
        Envelop envelop = new Envelop();
        String url = "/cda_types/no_paging";
        String filters = "";
        if(!StringUtils.isEmpty(strKey)){
            filters = "code?"+strKey+" g1;name?"+strKey+" g1;";
        }
        try{
            Map<String,Object> params = new HashMap<>();
            params.put("filters",filters);
            String _rus = HttpClientUtil.doGet(comUrl+url,params,username,password);
            return _rus;
        }catch (Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    @RequestMapping("getCdaTypeById")
    @ResponseBody
    public Object getCdaTypeById(String strIds) {
        Envelop envelop = new Envelop();
        String url = "/cda_types/id/"+strIds;
        try{
            String envelopStr = HttpClientUtil.doGet(comUrl+url,username,password);
            return envelopStr;
        }catch (Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    @RequestMapping("delteCdaTypeInfo")
    @ResponseBody
    /**
     * 删除CDA类别,若该类别存在子类别,将一并删除子类别
     * 先根据当前的类别ID获取全部子类别ID,再进行删除
     * @param  ids  cdaType Id
     *  @return result 操作结果
     */
    public Object delteCdaTypeInfo(String ids) {
        Envelop result = new Envelop();
        String url = "/cda_types/"+ids;
        if (StringUtils.isEmpty(ids)){
            result.setErrorMsg("请选择要删除的数据");
            result.setSuccessFlg(false);
            return result;
        }
        try{
            Map<String,Object> params = new HashMap<>();
            params.put("typeId",ids);
            String _msg = HttpClientUtil.doDelete(comUrl + url, params, username, password);
            if(Boolean.parseBoolean(_msg)){
                result.setSuccessFlg(true);
            }else{
                result.setSuccessFlg(false);
                result.setErrorMsg("cda类别删除失败");
            }
        }catch (Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
    }
    @RequestMapping("SaveCdaType")
    @ResponseBody
    //新增、修改的保存合二为一
    public Object SaveCdaType(String dataJson,HttpServletRequest request) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        String url = "/cda_types";
        UserDetailModel userDetailModel = (UserDetailModel)request.getSession().getAttribute(SessionAttributeKeys.CurrentUser);
        String createUserId = userDetailModel.getId();
        try {
            CdaTypeDetailModel detailModel = objectMapper.readValue(dataJson,CdaTypeDetailModel.class);
            if(StringUtils.isEmpty(detailModel.getCode())){
                envelop.setErrorMsg("cda类别编码不能为空!");
                return envelop;
            }
            if(StringUtils.isEmpty(detailModel.getName())){
                envelop.setErrorMsg("cda类别名称不能为空!");
                return envelop;
            }
            Map<String,Object> params = new HashMap<>();
            String cdaTypeId = detailModel.getId();
            // 新增cda类别
            String envelopStr = "";
            if(StringUtils.isEmpty(cdaTypeId)){
                detailModel.setCreateUser(createUserId);
                String jsonData = objectMapper.writeValueAsString(detailModel);
                params.put("jsonData",jsonData);
                envelopStr = HttpClientUtil.doPost(comUrl+url,params,username,password);
                return envelopStr;
            }
            // 修改cda类别(先获取,再赋值)
            String urlGet = "/cda_types/id/"+cdaTypeId;
            String envelopStrGet = HttpClientUtil.doGet(comUrl+urlGet,username,password);
            Envelop envelopGet = objectMapper.readValue(envelopStrGet,Envelop.class);
            if (!envelopGet.isSuccessFlg()){
                return envelopStrGet;
            }
            CdaTypeDetailModel modelForUpdate = getEnvelopModel(envelopGet.getObj(),CdaTypeDetailModel.class);
            modelForUpdate.setCode(detailModel.getCode());
            modelForUpdate.setDescription(detailModel.getDescription());
            modelForUpdate.setName(detailModel.getName());
            modelForUpdate.setParentId(detailModel.getParentId());
            modelForUpdate.setUpdateUser(createUserId);
            String typeJson = objectMapper.writeValueAsString(modelForUpdate);
            params.put("jsonData", typeJson);
            String envelopStrUpdate = HttpClientUtil.doPut(comUrl + url, params, username, password);
            return envelopStrUpdate;
        } catch (Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    /**
     * 获取可以作为父类别的cda类别列表
     * @param strId
     * @param codeName
     * @return
     */
    @RequestMapping("getCdaTypeExcludeSelfAndChildren")
    @ResponseBody
    public Object getCdaTypeExcludeSelfAndChildren(String strId, String codeName) {
        //页面新增修改访问的是同个接口
        Envelop envelop = new Envelop();
        try{
            //新增cda类别是获取的是所有类别
            if(StringUtils.isEmpty(strId)){
                String urlGetAll = "/cda_types/no_paging";
                String filters = "";
                if(!StringUtils.isEmpty(codeName)){
                    filters = "code?"+codeName+" g1;name?"+codeName+" g1;";
                }
                Map<String,Object> params = new HashMap<>();
                params.put("filters",filters);
                String envelopStr = HttpClientUtil.doGet(comUrl+urlGetAll,params,username,password);
                return envelopStr;
            }
            //修改时获取自身及其子类。。以外的cda类别
            String urlGetOthers = "/types/parent";
            Map<String,Object> args = new HashMap<>();
            args.put("id",strId);
            String envelopStrOthers = HttpClientUtil.doGet(comUrl+urlGetOthers,args,username,password);
            return envelopStrOthers;
        }catch (Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    @RequestMapping("getCDATypeListByParentId")
    @ResponseBody
    //根据父级ID获取下一级cda类别(不含子类的子类。。)
    public Object getCDATypeListByParentId(String ids) {
        Envelop envelop = new Envelop();
        ObjectMapper mapper = new ObjectMapper();
        Map<String,Object> params = new HashMap<>();
        params.put("parent_id",ids);
        String url = "/children_cda_types";
        try {
            String envelopStr = HttpClientUtil.doGet(comUrl + url,params,username, password);
            envelop = mapper.readValue(envelopStr,Envelop.class);
            return envelop.getDetailModelList();
        } catch (Exception ex) {
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    /**
     * 删除cda类别前先判断是否有关联的cda文档
     * @param ids
     * @return
     */
    @RequestMapping("isExitRelativeCDA")
    @ResponseBody
    public Object isExitRelativeCDA(String ids){
        Envelop envelop = new Envelop();
        String url = "/isExitRelativeCDA";
        try{
            Map<String,Object> params = new HashMap<>();
            params.put("ids",ids);
            String envelopStr = HttpClientUtil.doGet(comUrl+url,params,username,password);
            return envelopStr;
        }catch (Exception ex){
            LogService.getLogger(CdaTypeController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
}

+ 324 - 0
src/main/java/com/yihu/hos/standard/controller/StdVersionController.java

@ -0,0 +1,324 @@
package com.yihu.hos.standard.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.agModel.standard.standardversion.StdVersionModel;
import com.yihu.ehr.agModel.user.UserDetailModel;
import com.yihu.ehr.constants.ErrorCode;
import com.yihu.ehr.constants.SessionAttributeKeys;
import com.yihu.ehr.util.log.LogService;
import com.yihu.ehr.util.rest.Envelop;
import com.yihu.hos.common.BaseUIController;
import com.yihu.hos.common.util.http.HttpClientUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by yww on 2016/3/17.
 */
@RequestMapping("/cdaVersion")
@Controller
@SessionAttributes(SessionAttributeKeys.CurrentUser)
public class StdVersionController extends BaseUIController {
    @Value("${service-gateway.username}")
    private String username;
    @Value("${service-gateway.password}")
    private String password;
    @Value("${service-gateway.versionurl}")
    private String comUrl;
    @Autowired
    ObjectMapper objectMapper;
    @RequestMapping("initial")
    public String cdaVersionInitial(Model model){
        model.addAttribute("contentPage", "std/cdaVersion/cdaVersion");
        return "pageView";
    }
    @RequestMapping("searchVersions")
    @ResponseBody
    public Object searchVersions(String searchNm,int page, int rows){
        Envelop envelop = new Envelop();
        String url = "/versions";
        String filters = "";
        if(!StringUtils.isEmpty(searchNm)){
            filters = "version?"+searchNm+" g1;versionName?"+searchNm+" g1;";
        }
        try {
            Map<String, Object> params = new HashMap<>();
            params.put("fields", "");
            params.put("filters", filters);
            params.put("sorts", "");
            params.put("page", 1);
            params.put("size", 999);
            String envelopStr = HttpClientUtil.doGet(comUrl + url, params, username, password);
            return envelopStr;
        } catch (Exception ex) {
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    /**
     * 通用的用于下拉列表框(所有的版本,发布/未发布)
     * @return
     */
    @RequestMapping("getVersionList")
    @ResponseBody
    public Object getVersionList() {
        //原来流程是通过标准字典controller得到
        Envelop envelop = new Envelop();
        String url = "/versions";
        try {
            Map<String, Object> params = new HashMap<>();
            params.put("fields", "");
            params.put("filters", "");
            params.put("sorts", "");
            params.put("page", 1);
            params.put("size", 999);
            String envelopStr = HttpClientUtil.doGet(comUrl + url, params, username, password);
            envelop = getEnvelop(envelopStr) ;
            Collections.reverse(envelop.getDetailModelList());
            return envelop;
        } catch (Exception ex) {
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg("系统错误!");
            return envelop;
        }
    }
    @RequestMapping("getVersion")
    @ResponseBody
    public Object getVersion(String strVersion){
        Envelop envelop = new Envelop();
        if(StringUtils.isEmpty(strVersion)){
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg("标准版本号不能为空!");
            return envelop;
        }
        try {
            String url = "/version/"+strVersion;
            String envelopStr = HttpClientUtil.doGet(comUrl+url,username,password);
            return envelopStr;
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    // 检查是否存在处于编辑状态的版本
    @RequestMapping("existInStage")
    @ResponseBody
    public Object existInStage(){
        Envelop result = new Envelop();
        String url = "/version/exist_instage";
        String resultStr="";
        try{
            resultStr = HttpClientUtil.doGet(comUrl+url,username,password);
            if("true".equals(resultStr)){
                result.setSuccessFlg(true);
            }else{
                result.setSuccessFlg(false);
                //获取最新版本
                url = "/version/latest";
                resultStr = HttpClientUtil.doGet(comUrl+url,username,password);
                Envelop envelop = getEnvelop(resultStr);
                if (envelop.isSuccessFlg()){
                    StdVersionModel stdVersionModel = getEnvelopModel(envelop.getObj(), StdVersionModel.class);
                    if (stdVersionModel!=null){
                        result.setObj(stdVersionModel.getVersionName());
                    }else{
                        result.setErrorMsg("获取最新版本错误!");
                    }
                }else{
                    if (envelop.getErrorMsg().equals("没有版本信息")){
                        result.setObj("000000000000");
                    }else{
                        result.setErrorMsg("获取最新版本错误!");
                    }
                }
            }
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            result.setSuccessFlg(false);
            result.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return result;
    }
    @RequestMapping("addVersion")
    @ResponseBody
    public Object addVersion(@ModelAttribute(SessionAttributeKeys.CurrentUser) UserDetailModel user){
        Envelop envelop = new Envelop();
        String url = "/version";
        Map<String,Object> params = new HashMap<>();
        params.put("userLoginCode",user.getLoginCode());
        try{
            String envelopStr = HttpClientUtil.doPost(comUrl+url,params,username,password);
            return envelopStr;
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
            return envelop;
        }
    }
    @RequestMapping("dropCDAVersion")
    //该方法可删除已发布版本,然后将子版本的baseversion设置为该版本的父级版本
    public Object dropCDAVersion(String strVersion){
        //未使用
        Envelop envelop = new Envelop();
        String url = "/version/version/"+strVersion+"/drop";
        Map<String,Object> params = new HashMap<>();
        params.put("version",strVersion);
        try {
            String _msg = HttpClientUtil.doDelete(comUrl+url,params,username,password);
            if("true".equals(_msg)){
                envelop.setSuccessFlg(true);
            }else{
                envelop.setSuccessFlg(false);
                envelop.setErrorMsg("标准版本删除失败!");
            }
        }
        catch (Exception ex) {
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    //删除编辑状态的版本
    @RequestMapping("deleteStageVersion")
    @ResponseBody
    public Object deleteStageVersion(String strVersion){
        Envelop envelop = new Envelop();
        String url = "/version/"+strVersion+"/revert";
        Map<String,Object> params = new HashMap<>();
        params.put("version",strVersion);
        try {
            String _msg = HttpClientUtil.doDelete(comUrl+url,params,username,password);
            if("true".equals(_msg)){
                envelop.setSuccessFlg(true);
            }else{
                envelop.setSuccessFlg(false);
                envelop.setErrorMsg("标准版本删除失败!");
            }
        }
        catch (Exception ex) {
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    @RequestMapping("isLatestVersion")
    @ResponseBody
    public Object isLatestVersion(String strVersion){
        //未使用
        Envelop envelop = new Envelop();
        String url = "/version/"+strVersion+"/isLatest";
        try{
            String _msg = HttpClientUtil.doGet(comUrl+url,username,password);
            if("true".equals(_msg)){
                envelop.setSuccessFlg(true);
            }else{
                envelop.setSuccessFlg(false);
                envelop.setErrorMsg("该版本不是最新已发布版本!");
            }
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    //发布新版本
    @RequestMapping("commitVersion")
    @ResponseBody
    public Object commitVersion(String strVersion){
        Envelop envelop = new Envelop();
        String url = "/version/"+strVersion+"/commit";
        Map<String,Object> params = new HashMap<>();
        params.put("version",strVersion);
        try{
            String envelopStr = HttpClientUtil.doPut(comUrl+url,params,username,password);
            return envelopStr;
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    //将最新的已发布版本回滚为编辑状态
    @RequestMapping("rollbackToStage")
    @ResponseBody
    public Object rollbackToStage(String strVersion){
        //未使用
        Envelop envelop = new Envelop();
        String url = "/version/"+strVersion+"/rollback_stage";
        Map<String,Object> params = new HashMap<>();
        params.put("version",strVersion);
        try{
            String _msg = HttpClientUtil.doPut(comUrl+url,params,username,password);
            if("true".equals(_msg)){
                envelop.setSuccessFlg(true);
            }else{
                envelop.setSuccessFlg(false);
                envelop.setErrorMsg("标准版本返回编辑状态失败!");
            }
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
    @RequestMapping("checkVersionName")
    @ResponseBody
    public Object checkVersionName(String versionName){
        //现未使用,原为修改版本时使用
        Envelop envelop = new Envelop();
        String url = "/version/check_name";
        Map<String,Object> params = new HashMap<>();
        params.put("versionName",versionName);
        try{
            String _msg = HttpClientUtil.doGet(comUrl+url,params,username,password);
            if("true".equals(_msg)){
                envelop.setSuccessFlg(true);
            }else{
                envelop.setSuccessFlg(false);
                envelop.setErrorMsg("该版本名称不存在!");
            }
        }catch (Exception ex){
            LogService.getLogger(StdVersionController.class).error(ex.getMessage());
            envelop.setSuccessFlg(false);
            envelop.setErrorMsg(ErrorCode.SystemError.toString());
        }
        return envelop;
    }
}

+ 40 - 6
src/main/resources/application.yml

@ -62,12 +62,24 @@ hos:
    filePath: e://learn.sql   #租户基础表 sql文件位置
service-gateway:
  portalUrl: http://192.168.1.221:10280/api/v1.0/portal
  adminUrl: http://192.168.1.221:10000/api/v1.0/admin
  oauth2authorize: http://192.168.131.106:10260/
  oauth2RedictUrl: http://192.168.131.106:8083/ehr/login/signinReport
  oauth2ReportClientId: 2YTOSRI0tw
  url: http://172.19.103.37:9999/api
  esbUrl: http://172.19.103.37:9999/api
  appService: http://127.0.0.1:10500
  username: user
  password: eureka
  url: http://192.168.1.221:10000/api/v1.0/admin
  stdurl: http://192.168.1.221:10000/api/v1.0/admin/std
  versionurl: http://192.168.1.221:10000/api/v1.0/admin/version
  cdatypeurl: http://192.168.1.221:10000/api/v1.0/admin/cda_type
  stdsourceurl: http://192.168.1.221:10000/api/v1.0/admin/standard_source
  adaption: http://192.168.1.221:10000/api/v1.0/adapter
  template: http://192.168.1.221:10000/api/v1.0/template
  standard: http://192.168.1.221:10000/api/v1.0/std
  BrowseClienturl: http://192.168.1.221:8010/ehr/browser
  profileurl: http://http://172.17.110.227:9009/api/v1.0
---
spring:
  profiles: test
@ -112,11 +124,22 @@ hos:
    filePath: /usr/local/esb/esb.sql   #租户基础表 sql文件位置
service-gateway:
  portalUrl: http://172.19.103.73:10280/api/v1.0/portal
  adminUrl: http://172.19.103.73:10000/api/v1.0/admin
  oauth2authorize: http://172.19.103.73:10260/
  oauth2RedictUrl: http://172.19.103.73:8080/ehr/login/signinReport
  oauth2ReportClientId: 2YTOSRI0tw
  url: http://172.19.103.37:9999/api
  esbUrl: http://172.19.103.37:9999/api
  username: user
  password: eureka
  url: http://192.168.1.221:10000/api/v1.0/admin
  stdurl: http://192.168.1.221:10000/api/v1.0/admin/std
  versionurl: http://192.168.1.221:10000/api/v1.0/admin/version
  cdatypeurl: http://192.168.1.221:10000/api/v1.0/admin/cda_type
  stdsourceurl: http://192.168.1.221:10000/api/v1.0/admin/standard_source
  adaption: http://192.168.1.221:10000/api/v1.0/adapter
  template: http://192.168.1.221:10000/api/v1.0/template
  standard: http://192.168.1.221:10000/api/v1.0/std
  BrowseClienturl: http://192.168.1.221:8010/ehr/browser
  profileurl: http://http://172.17.110.227:9009/api/v1.0
---
spring:
  profiles: prod
@ -161,8 +184,19 @@ hos:
    filePath: /usr/local/esb/esb.sql   #租户基础表 sql文件位置
service-gateway:
  portalUrl: http://192.168.135.31:10280/api/v1.0/portal
  adminUrl: http://192.168.135.31:10000/api/v1.0/admin
  oauth2authorize: http://192.168.135.35:10260/
  oauth2RedictUrl: http://192.168.135.30:8090/ehr/login/signinReport
  oauth2ReportClientId: 2YTOSRI0tw
  url: http://192.168.135.38:9999/api
  esbUrl: http://192.168.135.38:9999/api
  username: user
  password: eureka
  url: http://192.168.1.221:10000/api/v1.0/admin
  stdurl: http://192.168.1.221:10000/api/v1.0/admin/std
  versionurl: http://192.168.1.221:10000/api/v1.0/admin/version
  cdatypeurl: http://192.168.1.221:10000/api/v1.0/admin/cda_type
  stdsourceurl: http://192.168.1.221:10000/api/v1.0/admin/standard_source
  adaption: http://192.168.1.221:10000/api/v1.0/adapter
  template: http://192.168.1.221:10000/api/v1.0/template
  standard: http://192.168.1.221:10000/api/v1.0/std
  BrowseClienturl: http://192.168.1.221:8010/ehr/browser
  profileurl: http://http://172.17.110.227:9009/api/v1.0

+ 136 - 0
src/main/resources/text/error.zh_CN.properties

@ -157,3 +157,139 @@ ehr.scheduler.get.trigger.failed			= 获取Trigger信息失败, {0}
# other
ehr.json.package.unknown						= 未知的JSON包, {0}
# 共通
lbl.page.total                      = 共{0}页
lbl.page.goto                       = 到
# 登录模块
lbl.delete.message                  = 删除信息
lbl.user.input                      = 输入用户名/邮箱/手机号
lbl.user.noexist 			        = 没有帐号?
lbl.user.forget 		            = 立即注册
lbl.user.validation 		        = 用户验证
lbl.pwd.input                       = 输入密码:
lbl.pwd.register                    = 忘记密码?
lbl.pwd.change                      = 密码修改
lbl.pwd.retrieve.success            = 找回成功
lbl.pwd.new                         = 新的密码:
lbl.input.again                     = 再输一次:
lbl.verification.input              = 输入验证码
lbl.verification.in                 = 输入验证:
lbl.verification.invisibility       = 看不清
lbl.verification.change             = 换一张
lbl.dict.tip.name.input             = 请输入名称或简拼
lbl.welcome.login                   = 欢迎登入
lbl.last.login                      = 最近登入
lbl.location                        = 位置
lbl.input.placehold                 = 请输入代码或者名称
lbl.input.CDAplacehold                 = 请输入CDA编码或者名称
lbl.input.schemapath                   = 概要路径
lbl.dataset                         = 数据集
lbl.selected_Item                   = 已选择项
# 用户管理
lbl.user.org.input                  = 姓名或所属机构
lbl.name                            = 姓名
lbl.role                            = 角色
lbl.org.belong                      = 所属机构:
lbl.specialized                     = 专业
lbl.specialized.belong              = 所属专业:
lbl.user.tel                        = 用户手机
lbl.patient.tel                     = 病人手机
lbl.tel                             = 联系电话
lbl.operation                       = 操作
lbl.real.name                       = 真实姓名:
lbl.identity.card                  	= 身份证号
lbl.user.sex                        = 用户性别:
lbl.marriage.status                 = 婚姻状况:
lbl.user.mail                       = 用户邮箱:
lbl.patient.mail                    = 病人邮箱:
lbl.user.role                       = 用户角色:
lbl.mail.open                       = 邮箱解绑
lbl.mail.input                      = 输入新邮箱:
lbl.mail.already.bound              = 该邮箱已被绑定,请重新输入
lbl.phone.open                      = 手机解绑
lbl.in.new.phone                    = 输入新手机:
lbl.phone.already.bound             = 该手机已被绑定,请重新输入
lbl.unwrap                          = 解绑
lbl.advanced                        = 高级
lbl.required.input.doctor           = 医护人员必填
lbl.publickey.info                  = 公钥信息:
lbl.effective.date                  = 有效期限:
lbl.create.date                     = 生成时间:
lbl.upload.photo                    = 上传照片
lbl.user.tel2                       = 备用联系号码
lbl.user.qq                         = QQ
lbl.user.status.fertility         = 生育状态
lbl.user.birthday                  = 出生日期
lbl.user.flag.realname            = 实名认证标识
lbl.user.micard                    = 医保卡
lbl.user.ssid                       = 社保卡
# 机构管理
lbl.code                            = 代码
lbl.designation                     = 名称
lbl.join.mode                       = 入驻方式:
lbl.org.code                        = 组织机构代码:
lbl.org.fullName                    = 机构全名:
lbl.org.shortName                   = 机构简称:
lbl.org.type                        = 机构类型:
lbl.tip                             = 标签:
lbl.paste                           = 贴上
lbl.addr.province                   = 省/自治区/直辖市
lbl.addr.city                       = 市/自治州/自治县
lbl.addr.town                       = 区/县
lbl.addr.detail                     = 镇/街道/门牌号
# 病人管理
lbl.patient.sex                     = 病人性别:
lbl.patient.nation                  = 病人民族:
lbl.patient.native.place            = 病人籍贯:
lbl.birthdate                       = 出生日期:
lbl.house.address                   = 家庭地址:
lbl.census.register.address         = 户籍地址:
lbl.work.address                    = 工作地址:
lbl.census.register.natrue          = 户籍性质:
lbl.record.bind                     = 已绑定档案
lbl.card.number.                    = 卡号
lbl.type                            = 类型
lbl.doctor.visit                    = 就诊机构/科室
lbl.doctor.visit.date               = 就诊时间
lbl.doctor.visit.card               = 就诊卡号:
lbl.doctor                          = 医生
lbl.relieve                         = 解除
lbl.record.search                   = 档案搜索
lbl.claim                           = 认领
lbl.card.bind                       = 已绑定卡
lbl.issue.org                       = 发行机构
lbl.add.date                        = 添加时间
lbl.status                          = 状态
lbl.card.holder.name                = 持有人姓名
lbl.issue.site                      = 发行地
lbl.introduction                    = 说明
lbl.card.search                     = 卡搜索
lbl.binding                         = 绑定
lbl.pwd.setting                     = 设置密码:
# 应用管理
lbl.app.id                          = APP ID
lbl.app.secret                      = APP Secret
lbl.callback.URL                    = 回调URL
lbl.audit                           = 审核
lbl.pass                            = 通过
lbl.reject                          = 否决
lbl.forbidden                       = 禁用
lbl.open                            = 开启
lbl.nothing                         = 无
lbl.describetion                    = 描述:
lbl.qualification.search            = 查看资质
lbl.audit.operation                 = 审核操作
# 系统字典管理
lbl.dict.name                       = 字典名称
lbl.dict.detail                     = 字典详情
lbl.encoding                        = 编码
lbl.content                         = 内容
#CDADocument 管理
lbl.cdaDocument                             = CDA

+ 3 - 0
src/main/resources/text/message_zh_CN.properties

@ -283,12 +283,15 @@ lbl.resource.parent_category                            = 父类别
#CDADocument
lbl.input.placehold                 = 请输入代码或者名称
lbl.input.CDAplacehold                 = 请输入CDA编码或者名称
lbl.input.schemapath                   = 概要路径
btn.edit                            = 编辑
lbl.dataset                         = 数据集
lbl.selected_Item                   = 已选择项
lbl.cdaDocument.edit                        = CDA编辑
# Message ------------------------------------------------------------------
msg.000001                          = 验证信息已发送至您的手机,请注意查收!

+ 3 - 1
src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp

@ -76,7 +76,9 @@
                {id: 2, text: '标准规范', icon: '${staticRoot}/images/index/menu01.png'},
                <%--{id: 21, pid: 2, text: '平台标准', url: '${contextRoot}/integration/initial/standard', icon: '${staticRoot}/images/index/Ins_icon.png'},--%>
                {id: 22, pid: 2, text: '标准管理', url: '${contextRoot}/integration/initial/application', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 23, pid: 2, text: '适配方案', url: '${contextRoot}/adapterPlan/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 23, pid: 2, text: 'CDA类型管理', url: '${contextRoot}/cdatype/index', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 24, pid: 2, text: 'CDA管理', url: '${contextRoot}/cda/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                {id: 25, pid: 2, text: '适配方案', url: '${contextRoot}/adapterPlan/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},
                //数据服务总线
                {id: 1, text: '服务总线', icon: '${staticRoot}/images/index/menu03.png'},
                {id: 15, pid: 1, text: '服务管理', url: '${contextRoot}/app/initial', icon: '${staticRoot}/images/index/Ins_icon.png'},

+ 12 - 76
src/main/webapp/WEB-INF/ehr/jsp/std/cda/CDAUpdate.jsp

@ -1,80 +1,16 @@
<%--
  Created by IntelliJ IDEA.
  User: AndyCai
  Date: 2015/10/14
  Time: 19:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style type="text/css">
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
<%--<div class="pop_tab">--%>
    <%--<ul class="ul_tab">--%>
        <%--<li class="cur" name="btn_basic">基础属性</li>--%>
  input{
    height: 28px;
    width: 240px;
  }
</style>
<div id="div_cda_info_form" data-role-form class="m-form-inline f-mt20">
  <div class="m-form-group">
    <label>代码:</label>
    <div class="l-text-wrapper m-form-control essential">
      <input type="text" class="required f-w240 " id="txt_Code" data-attr-scan="code">
    </div>
  </div>
  <div class="m-form-group">
    <label>名称:</label>
    <div class="l-text-wrapper m-form-control essential">
      <input type="text" id="txt_Name" data-attr-scan="name" class="required f-w240">
    </div>
  </div>
  <div class="m-form-group">
    <label>CDA文件路径:</label>
    <div class="m-form-control">
      <input type="text" id="txt_schema_path" data-attr-scan="schema">
    </div>
  </div>
  <div class="m-form-group">
    <label>标准来源:</label>
    <div class="l-text-wrapper m-form-control">
      <input type="text" id="ipt_select" data-type="select" data-attr-scan="sourceId">
    </div>
  </div>
  <div class="m-form-group">
    <label>描述:</label>
    <div class="m-form-control">
      <textarea rows="3" id="txt_description" name="txb_desc" style="width: 240px;height: 60px;" data-attr-scan="description"  class="required useTitle"></textarea>
    </div>
  </div>
        <%--<li id="btn_relationship" name="btn_relationship" style="">数据集关联管理</li>--%>
    <%--</ul>--%>
<%--</div>--%>
<div id="div_content">
  <div class="m-form-control pane-attribute-toolbar">
    <div class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" id="btn_create_file">
      <span>创建文档</span>
    </div>
    <div class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" id="btn_save">
      <span>保存</span>
    </div>
    <div class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam close-toolbar" id="btn_close">
      <span>关闭</span>
    </div>
  </div>
  <input type="hidden" id="hdId" value=""/>
  <input type="hidden" id="hdversion" value=""/>
  <input type="hidden" id="hd_url" value="${contextRoot}"/>
  <input type="hidden" id="hd_user" value="${User.id}"/>
</div>
<input type="hidden" id="hdId" value=""/>
<input type="hidden" id="hdversion" value=""/>
<input type="hidden" id="hd_url" value="${contextRoot}"/>
<input type="hidden" id="hd_user" value="${UserId}"/>

+ 67 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/CDAUpdateCss.jsp

@ -0,0 +1,67 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style type="text/css">
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
  input{
    height: 28px;
    width: 240px;
  }
 .pop_tab {
    height: 36px;
    line-height: 36px;
    background: url(${staticRoot}/images/sub_bg.gif) #eee repeat-x left bottom;
    padding-left: 2px;
 }
  .pop_tab li.cur {
    background: #fff;
    font-weight: bold;
    border-left: 1px solid #cacaca;
    border-right: 1px solid #cacaca;
  }
  .pop_tab li {
    cursor: default;
  }
  .pop_tab li {
    font-size: 12px;
    color: #000;
    float: left;
    padding: 0 14px;
  }
  .pane-attribute-toolbar{
      display: block;
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 50px;
      padding: 6px 0 4px;
      background-color: #fff;
      border-top: 1px solid #ccc;
      text-align: right;
  }
  .close-toolbar{
      margin-right: 20px;
  }
</style>

+ 8 - 9
src/main/webapp/WEB-INF/ehr/jsp/std/cda/CDAUpdateJs.jsp

@ -1,16 +1,15 @@
<%--
  Created by IntelliJ IDEA.
  User: AndyCai
  Date: 2015/11/20
  Time: 17:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/Scripts/cdaJs.js"></script>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/ueditor.config.js"></script>--%>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/ueditor.all.js"></script>--%>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/editor_api.js"></script>--%>
<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/editor/kindeditor.js"></script>
<script src="${contextRoot}/develop/Scripts/cdaRelationship.js"></script>
<script src="${contextRoot}/develop/Scripts/cdaJs.js?tim=<%=new Date()%>"></script>
<script >
  $(function(){
    debugger;
    $("#hd_user").val('${User.id}');
    cda.attr.init();

+ 125 - 98
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cda.jsp

@ -1,110 +1,137 @@
<%--
  Created by IntelliJ IDEA.
  User: AndyCai
  Date: 2015/11/19
  Time: 16:01
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<!--######用户管理页面Title设置######-->
<style>
  input,#cdaVersion {
    font-family: SimSun;
    font-size: 14px;
    height: 30px;
    width: 240px;
  }
  .image-create{
    margin-left:340px;
    margin-top: -25px;
    width: 22px;
    height: 22px;
    background: url(${staticRoot}/images/add_btn.png);
  }
  .image-create:hover{
    margin-left:340px;
    margin-top: -25px;
    width: 22px;
    height: 22px;
    background: url(${staticRoot}/images/add_btn_pre.png);
  }
  .image-modify{
    width: 22px;
    height: 22px;
    background: url(${staticRoot}/images/Modify_btn_pre.png);
  }
  .image-delete{
    width: 22px;
    height: 22px;
    margin-top: -22px;
    background: url(${staticRoot}/images/Delete_btn_pre.png);
  }
  .font_right{
    text-align: right;
  }
    input, #cdaVersion {
        font-family: Microsoft YaHei;
        font-size: 10px;
        height: 30px;
        width: 240px;
    }
    .l-text {
        width: 242px;
    }
    .image-create {
        margin-left: 340px;
        margin-top: -25px;
        width: 22px;
        height: 22px;
        background: url(${staticRoot}/images/add_btn.png);
    }
    .image-create:hover {
        margin-left: 340px;
        margin-top: -25px;
        width: 22px;
        height: 22px;
        background: url(${staticRoot}/images/add_btn_pre.png);
    }
    .image-modify {
        width: 22px;
        height: 22px;
        background: url(${staticRoot}/images/Modify_btn_pre.png);
    }
    .image-delete {
        width: 22px;
        height: 22px;
        margin-top: -22px;
        background: url(${staticRoot}/images/Delete_btn_pre.png);
    }
    .font_right {
        text-align: right;
    }
    .li-tree {
        height: 22px;
        line-height: 22px;
    }
    .btn_hide{
        display: inline-block;
        margin-bottom: 0;
        font-weight: normal;
        text-align: center;
        vertical-align: middle;
        -ms-touch-action: manipulation;
        touch-action: manipulation;
        cursor: pointer;
        background-image: none;
        border: 1px solid transparent;
        white-space: nowrap;
        padding: 6px 12px;
        font-size: 12px;
        line-height: 1.42857143;
        border-radius: 4px;
        -webkit-user-select: none;
        color:#a8a8a8;
        background: url(${staticRoot}/images/app/hui_btn.png);
    }
    .edit_delete{
        display: inline-block;
        width: 40px;
        height: 40px;
        cursor: pointer;
        background: url(${staticRoot}/images/app/shanchu_btn.png) center no-repeat;
    }
</style>
<!--######用户管理页面Title设置######-->
<div class="f-dn" data-head-title="true">CDA文件管理</div>
<div id="div_wrapper" style="height: 100%;" >
  <div id="conditionArea" class="f-mb10" align="right" style="margin-right: 10px;">
    <table>
      <tr>
        <%--<select id="cdaVersion" class="inputwidth f-w200">--%>
        <%--</select>--%>
        <input type="text" data-type="select" id="cdaVersion" data-attr-scan="version" style="height: 27px;">
      </tr>
    </table>
  </div>
  <!--######CDA信息表######-->
  <div id="div_left" style=" width:400px;float: left;">
    <div id="div_search" class="m-retrieve-area f-h50 f-dn f-pr" style="display:block; border: 1px solid #D6D6D6;border-bottom: 0px;">
      <ul>
        <li class=" f-mt15">
          <span class="f-mt20 f-fs14 f-ml10 f-f1">
              <strong style="font-weight: bolder;"><spring:message code="title.CDA.manage"/>:</strong>
          </span>
          <input type="text" id="searchNm" placeholder="<spring:message code="lbl.input.placehold"/>">
          <div title="新增" id="btn_create" class="image-create" >
          </div>
        </li>
      </ul>
<div id="div_wrapper" style="height: 100%;">
    <div id="conditionArea" class="f-mb10" align="right" style="margin-right: 10px;">
                <%--<select id="cdaVersion" class="inputwidth f-w200">--%>
                <%--</select>--%>
                <input type="text" data-type="select" id="cdaVersion" data-attr-scan="version" style="height: 27px;">
    </div>
    <div id="div_cda_grid">
    <!--######CDA信息表######-->
    <div id="div_left" style=" width:320px;float: left;">
        <div id="div_left_tree" style=" width:318px;border: 1px solid #D6D6D6; overflow: auto;">
            <div id="div_typeTree" style=" width:316px;">
            </div>
        </div>
    </div>
    <div id="div_right" style="float: left; margin-left: 10px;">
        <div class="m-retrieve-area f-h50 f-dn f-pr"
             style="display:block;border: 1px solid #D6D6D6;border-bottom: 0px;">
            <ul>
                <li class=" f-mt15">
                    <span class="f-mt10 f-fs14 f-ml10">
                       <strong style="font-weight: bolder;">CDA:</strong>
                    </span>
                    <input type="text" id="searchNm" placeholder="<spring:message code="lbl.input.CDAplacehold"/>">
                    <a id="btn_Delete" class="btn btn-primary J_add-btn f-fr f-mr10"
                       style="  margin-right: 20px;margin-top: -26px;">
                        批量删除
                    </a>
                    <a id="btn_create" class="btn btn-primary J_add-btn f-fr f-mr10"
                       style="  margin-right: 20px;margin-top: -26px;">
                        新增
                    </a>
                </li>
            </ul>
        </div>
        <%--<div id="div_relation_grid"></div>--%>
        <div id="div_cda_grid">
        </div>
    </div>
  </div>
  <div id="div_right" style="float: left; margin-left: 10px;">
    <div class="m-retrieve-area f-h50 f-dn f-pr" style="display:block;border: 1px solid #D6D6D6;border-bottom: 0px;">
    <ul>
      <li class=" f-mt15">
        <span class="f-mt10 f-fs14 f-ml10">
           <strong style="font-weight: bolder;">关联数据集:</strong>
        </span>
        <input type="text" id="searchNmEntry" placeholder="<spring:message code="lbl.input.placehold"/>" class="f-ml10">
        <%--<button type="button" class="btn btn-primary " id="btn_test" >获取映射关系</button>--%>
        <a id="btn_Update_relation" class="btn btn-primary J_add-btn f-fr f-mr10" style="  margin-right: 20px;margin-top: -26px;display: none;">
          <spring:message code="btn.edit"/>
        </a>
        <a id="btn_Delete_relation" class="btn btn-primary J_add-btn f-fr f-mr10" style="  margin-right: 20px;margin-top: -26px;display: none;">
          批量删除
        </a>
      </li>
    </ul>
      </div>
    <div id="div_relation_grid" ></div>
  </div>
  <!--######用户信息表#结束######-->
    <!--######用户信息表#结束######-->
</div>
<input type="hidden" id="hd_url" value="${contextRoot}"/>
<input type="hidden" id="hdId" value=""/>
<input type="hidden" id="hdType" value=""/>
<input type="hidden" id="hdTypeName" value=""/>

+ 70 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaBaseInfo.jsp

@ -0,0 +1,70 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<div id="div_cda_info_form" data-role-form class="m-form-inline">
    <div class=" f-mt20">
        <div class="m-form-group">
            <label>CDA编码:</label>
            <div class="l-text-wrapper m-form-control essential">
                <input type="text" class="required useTitle ajax f-w240 max-length-100 validate-special-char" id="txt_Code" data-attr-scan="code"
                       required-title=<spring:message code="lbl.must.input"/>>
            </div>
        </div>
        <div class="m-form-group">
            <label>名称:</label>
            <div class="l-text-wrapper m-form-control essential">
                <input type="text" id="txt_Name" data-attr-scan="name" class="required useTitle f-w240 max-length-100 validate-special-char"
                       required-title=<spring:message code="lbl.must.input"/>>
            </div>
        </div>
        <div class="m-form-group" style="display: none">
            <label>CDA文件路径:</label>
            <div class="m-form-control">
                <input type="text" id="txt_schema_path" data-attr-scan="schema">
            </div>
        </div>
        <div class="m-form-group">
            <label>标准来源:</label>
            <div class="l-text-wrapper m-form-control ">
                <input type="text" id="ipt_select" data-type="select" class="required useTitle" required-title=<spring:message code="lbl.must.input"/>
                       data-attr-scan="sourceId">
            </div>
        </div>
        <div class="m-form-group">
            <label>类别:</label>
            <div class="l-text-wrapper m-form-control">
                <input type="text" id="ipt_type" data-type="select" class="required useTitle" required-title=<spring:message code="lbl.must.input"/>
                       data-attr-scan="type">
            </div>
        </div>
        <div class="m-form-group">
            <label>说明:</label>
            <div class="m-form-control">
                <textarea rows="3" id="txt_description" name="txb_desc" style="width: 240px;height: 60px;" class="max-length-500 validate-special-char"
                          data-attr-scan="description"></textarea>
            </div>
        </div>
    </div>
    <div class="m-form-control pane-attribute-toolbar div_toolbar">
        <%--<div class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" name="btn_create_file">--%>
        <%--<span>创建文档</span>--%>
        <%--</div>--%>
        <div class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" name="btn_save" style="display: none;" id="btn_save">
            <span>保存</span>
        </div>
        <div class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam close-toolbar" name="btn_close">
            <span>关闭</span>
        </div>
    </div>
    <input type="hidden" id="hdId" value=""/>
    <input type="hidden" id="hdversion" value=""/>
    <input type="hidden" id="hd_url" value="${contextRoot}"/>
    <input type="hidden" id="hd_user" value="${UserId}"/>
    <input type="hidden" id="hdTypeId" value=""/>
    <input type="hidden" id="hdTypeName" value=""/>
</div>

+ 65 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaBaseInfoCss.jsp

@ -0,0 +1,65 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style type="text/css">
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
  input{
    height: 28px;
    width: 240px;
  }
  .pop_tab {
    height: 36px;
    line-height: 36px;
    background: url(${staticRoot}/images/sub_bg.gif) #eee repeat-x left bottom;
    padding-left: 2px;
  }
  .pop_tab li.cur {
    background: #fff;
    font-weight: bold;
    border-left: 1px solid #cacaca;
    border-right: 1px solid #cacaca;
  }
  .pop_tab li {
    cursor: default;
  }
  .pop_tab li {
    font-size: 12px;
    color: #000;
    float: left;
    padding: 0 14px;
  }
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
</style>

+ 22 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaBaseInfoJs.jsp

@ -0,0 +1,22 @@
<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/ueditor.config.js"></script>--%>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/ueditor.all.js"></script>--%>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/editor_api.js"></script>--%>
<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/editor/kindeditor.js"></script>
<script src="${contextRoot}/develop/Scripts/cdaRelationship.js"></script>
<script src="${contextRoot}/develop/Scripts/cdaJs.js?tim=<%=new Date()%>"></script>
<script >
  $(function(){
    $("#hd_user").val('${User.id}');
    cda.attr.init();
    var staged = $.Util.getUrlQueryString('staged');
    if(staged=='false'){
        cda.attr.cda_form.addClass("m-form-readonly");
        cda.attr.cda_form.find("input").addClass("l-text-field").parent().find(".essential").addClass("l-text");
    }
  });
</script>

+ 88 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaCss.jsp

@ -0,0 +1,88 @@
<%--
  Created by IntelliJ IDEA.
  User: AndyCai
  Date: 2015/11/19
  Time: 10:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style>
    input, #cdaVersion {
        font-family: Microsoft YaHei;
        font-size: 10px;
        height: 30px;
        width: 240px;
    }
    .l-text {
        width: 242px;
    }
    .image-create {
        margin-left: 340px;
        margin-top: -25px;
        width: 22px;
        height: 22px;
        background: url(${staticRoot}/images/add_btn.png);
    }
    .image-create:hover {
        margin-left: 340px;
        margin-top: -25px;
        width: 22px;
        height: 22px;
        background: url(${staticRoot}/images/add_btn_pre.png);
    }
    .image-modify {
        width: 22px;
        height: 22px;
        background: url(${staticRoot}/images/Modify_btn_pre.png);
    }
    .image-delete {
        width: 22px;
        height: 22px;
        margin-top: -22px;
        background: url(${staticRoot}/images/Delete_btn_pre.png);
    }
    .font_right {
        text-align: right;
    }
    .li-tree {
        height: 22px;
        line-height: 22px;
    }
    .btn_hide{
        display: inline-block;
        margin-bottom: 0;
        font-weight: normal;
        text-align: center;
        vertical-align: middle;
        -ms-touch-action: manipulation;
        touch-action: manipulation;
        cursor: pointer;
        background-image: none;
        border: 1px solid transparent;
        white-space: nowrap;
        padding: 6px 12px;
        font-size: 12px;
        line-height: 1.42857143;
        border-radius: 4px;
        -webkit-user-select: none;
        color:#a8a8a8;
        background: url(${staticRoot}/images/app/hui_btn.png);
    }
    .edit_delete{
        display: inline-block;
        width: 40px;
        height: 40px;
        cursor: pointer;
        background: url(${staticRoot}/images/app/shanchu_btn.png) center no-repeat;
    }
</style>

+ 805 - 11
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaJs.jsp

@ -1,15 +1,809 @@
<%--
  Created by IntelliJ IDEA.
  User: AndyCai
  Date: 2015/11/19
  Time: 10:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page import="java.util.Date" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/Scripts/cdaJs.js"></script>
<script >
  $(function(){
    cda.list.init();
  })
    /**
     * Created by AndyCai on 2015/11/19.
     */
    debugger
    var cda = {};
    var Util = $.Util;
    cda.list = {
        _url: $("#hd_url").val(),
        _dialog: null,
        grid: null,
        columns: [],
        rows: null,
        enableData: [],
        relationGrid: null,
        relationColumns: [],
        cdaSearch: null,
        relationSearch: null,
        relationIds: "",//关系IDs
        manager: null,
        versionStage: null,
        dialog_cda_detail:null,
        init: function () {
//      this.top = $.Util.getTopWindowDOM();
            //CDA 列名
            this.columns = [
                {display: 'CDA编码', name: 'code', align: 'left'},
                {display: '名称', name: 'name', align: 'left'},
                {display: '说明', name: 'description', align: 'left'},
                {
                    display: '操作', isSort: false, width: 180, render: function (rowdata, rowindex, value) {
                    var html = '';
                    <%--<sec:authorize url="/cda/cdaRelationship">--%>
                    html += "<a class='label_a' title='关联' onclick='cda.list.updateCdaInfo(\"" + rowdata.id + "\",\"btn_relationship\")'>关联</a> ";
                    <%--</sec:authorize>--%>
                    <%--<sec:authorize url="/cda/SaveCdaInfo">--%>
                    html += "<a class='grid_edit' style='margin-left:10px;' title='编辑' onclick='cda.list.updateCdaInfo(\"" + rowdata.id + "\",\"btn_basic\")'></a> ";
                    <%--</sec:authorize>--%>
                    <%--<sec:authorize url="/cda/deleteCdaInfo">--%>
                    html += "<a class='grid_delete'style='' title='删除' onclick='cda.list.deleteCda(\"" + rowdata.id + "\")'></a>";
                    <%--</sec:authorize>--%>
                    return html;
                }
                }
            ];
            this.relationColumns = [
                {display: '代码', name: 'dataset_code', align: 'left'},
                {display: '名称', name: 'dataset_name', align: 'left'},
                {display: '描述', name: 'summary', align: 'left'},
                {
                    display: '操作', isSort: false, render: function (rowdata, rowindex, value) {
                    var html = "<a href='#' onclick='cda.list.deleteRelation(\"" + rowdata.id + "\")'>删除</a>";
                    return html;
                }
                }];
            this.cdaSearch = $("#searchNm").ligerTextBox({
                width: 240, isSearch: true, search: function () {
                    // var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
                    cda.list.getCDAList(1);
                }
            });
            $("#searchNm").keyup(function (e) {
                if (e.keyCode == 13) {
                    //var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
                    cda.list.getCDAList(1);
                }
            });
            this.relationSearch = $("#searchNmEntry").ligerTextBox({
                width: 240, isSearch: true, search: function () {
                    var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
                    versionCode = versionCode.split("|")[0];
                    var cdaid = $("#hdId").val();
                    cda.list.getRelationShipList(versionCode, cdaid);
                }
            });
            $("#searchNmEntry").keyup(function (e) {
                if (e.keyCode == 13) {
                    var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
                    cda.list.getRelationShipList(versionCode, cdaid);
                }
            });
            cda.list.setCss();
            //$(window).resize(function () {  cda.list.setCss(); });
            cda.list.getVersionList();
            cda.list.event();
            debugger
            $("#div_left_tree").mCustomScrollbar({theme: "minimal-dark", axis: "yx"});
        },
        getStagedByValue: function () {
            var _value = $("#cdaVersion").ligerGetComboBoxManager().getValue();
            if (!_value && _value == "") return false;
            var data = $("#cdaVersion").ligerComboBox().data;
            for (var i = 0; i < data.length; i++) {
                if (data[i].id == _value) {
                    return data[i].inStage;
                }
            }
            return false;
        },
        setCss: function () {
            var _height = $(".l-layout-content").outerHeight() - 40;
            $(".f-p10").css({
                "height": _height
            });
            var _leftHeight = $(".l-layout-content").outerHeight() - $("#div_nav_breadcrumb_bar").outerHeight() * 2 - 19;
            $("#div_left_tree").css({
                "height": _leftHeight
            });
            $("#div_left .l-text").css({
                "margin-left": 50, "margin-top": -20
            });
            $("#div_right .l-text").css({
                "margin-left": 100, "margin-top": -20
            });
            $("#div_right").css({
                "width": $("#div_wrapper").width() - $("#div_left").width() - 10
            });
        },
        getVersionList: function () {
            var u = cda.list;
            $.ajax({
                url: u._url + "/cdaVersion/getVersionList",
                type: "post",
                dataType: "json",
                data: {page: "1", rows: "100"},
                success: function (data) {
                    var cdaVersionList = data.detailModelList;
                    var option = [];
                    for (var i = 0; i < cdaVersionList.length; i++) {
                        option.push({
                            text: cdaVersionList[i].versionName,
                            id: cdaVersionList[i].version,
                            inStage: cdaVersionList[i].inStage
                        });
                    }
                    var select = $("#cdaVersion").ligerComboBox({
                        data: option,
                        onSelected: function (value, text) {
                            u.versionStage = u.getStagedByValue();
                            var typeid = $("#hdType").val();
                            if (!$.Util.isStrEmpty(typeid)) {
                                cda.list.getCDAList(1);
                            }
                            cda.list.getTypeTree();
                        }
                    });
                    //cda.list.getTypeTree();
                    var manager = $("#cdaVersion").ligerGetComboBoxManager();
                    debugger
                    manager.selectItemByIndex(0);
                },
                complete: function () {
                }
            });
        },
        getCDAList: function (curPage) {
            var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
            var typeid = $("#hdType").val();
            var u = cda.list;
            if (u.grid == null) {
                u.grid = $("#div_cda_grid").ligerGrid($.LigerGridEx.config({
                    url: u._url + "/cda/GetCdaListByKey",
                    // 传给服务器的ajax 参数
                    parms: {
                        strKey: u.cdaSearch.getValue(),
                        strVersion: versionCode,
                        strType: typeid
                    },
                    async: true,
                    columns: u.columns,
                    pageSizeOptions: [10, 15, 20, 30, 40, 50],
                    pageSize: 15,
                    rownumbers: true,
                    checkbox: true,
                    usePager: true,
                    height: "100%",
                    onSelectRow: function (rowdata, rowid, rowobj) {
                    },
                    onAfterShowData: function (currentData) {
                    }
                }));
                window.grid = u.grid;
                $(".l-grid-body2").css({
                    'overflow-x': 'hidden'
                });
            }
            else {
                u.grid.set({
                    //url: u._url + "/cda/GetCdaListByKey",
                    // 传给服务器的ajax 参数
                    parms: {
                        strKey: u.cdaSearch.getValue(),
                        strVersion: versionCode,
                        strType: typeid
                    }
                });
                if(curPage)
                    u.grid.options.newPage = curPage;
                u.grid.reload();
            }
        },
        getTypeTree: function () {
            var flag = true;
            var u = cda.list;
            var typeTree = $("#div_typeTree").ligerTree({
                nodeWidth: 260,
                url: u._url + '/cdatype/getCDATypeListByParentId?ids=',//参数ids值为测试值
                isLeaf: function (data) {
                    if (!data) return false;
                    return data.type == "employee";
                },
                delay: function (e) {
                    var data = e.data;
                    return {url: u._url + '/cdatype/getCDATypeListByParentId?ids=' + data.id}
                },
                checkbox: false,
                idFieldName: 'id',
                textFieldName: 'name',
                slide: false,
                childIcon:null,
                parentIcon:null,
                onSelect: function (data) {
                    var id = data.data.id;
                    $("#hdType").val(id);
                    $("#hdTypeName").val(data.data.name);
                    cda.list.getCDAList(1);
                },
                onSuccess: function (data) {
                    var cdaTypes = data
                    if (flag) {
                        flag = false;
                        $("#div_typeTree").css({});
                        var id = data[0].id;
                        $("#hdType").val(id);
                        cda.list.getCDAList(1);
                        //$(".l-body").removeClass("l-selected");
                        $("#" + id + " div:first").addClass("l-selected");
                    }
                    $("#div_typeTree li div span").css({
                        "line-height": "22px",
                        "height": "22px"
                    });
                }
            });
        },
        getRelationShipList: function (versionCode, cdaid) {
            var u = cda.list;
            var strkey = u.relationSearch.getValue();
            if (u.relationGrid == null) {
                u.relationGrid = $("#div_relation_grid").ligerGrid($.LigerGridEx.config({
                    url: u._url + "/cda/getRelationByCdaId",
                    // 传给服务器的ajax 参数
                    parms: {cdaId: cdaid, strVersionCode: versionCode, strkey: strkey},
                    columns: u.relationColumns,
                    pageSizeOptions: [10, 15, 20, 30, 40, 50],
                    pageSize: 20,
                    rownumbers: true,
                    checkbox: true,
                    usePager: true
                }));
            }
            else {
                u.relationGrid.set({
                    url: u._url + "/cda/getRelationByCdaId",
                    // 传给服务器的ajax 参数
                    parms: {cdaId: cdaid, strVersionCode: versionCode, strkey: strkey}
                });
                u.relationGrid.reload();
            }
        },
        showDialog: function (_tital, _url, _height, _width, callback) {
            cda.list.dialog_cda_detail = $.ligerDialog.open({
                title: _tital,
                url: _url,
                height: _height,
                width: _width,
                onClosed: callback
            });
//
//        cda.list.top.dialog_cda_detail = $.ligerDialog.open({
//            title: _tital,
//            url: _url,
//            height: _height,
//            width: _width,
//            onClosed: callback
//        });
        },
        addCdaInfo: function () {
            var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
            var typeId = $("#hdType").val();
            var typeName = $("#hdTypeName").val();
            var _tital = "CDA新增";
            var _url = cda.list._url + "/cda/cdaBaseInfo?id=&versioncode=" + versionCode + "&typeid=" + typeId + "&typename=" + typeName + "&click_name=btn_basic" + "&staged=" + cda.list.versionStage;
            var callback = function () {
                cda.list.getCDAList();
            };
            cda.list.showDialog(_tital, _url, 450, 500, callback);
        },
        updateCdaInfo: function (cdaid, click_name) {
            var _height = 600;
            var _width = 955;
            var _tital = "数据集关联";
            var versionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
            var _url = cda.list._url + "/cda/cdaRelationship?id=" + cdaid + "&versioncode=" + versionCode + "&click_name=" + click_name + "&staged=" + cda.list.versionStage;
            if (click_name == "btn_basic") {
                _tital = "CDA编辑";
                _height = 450;
                _width = 500;
                _url = cda.list._url + "/cda/cdaBaseInfo?id=" + cdaid + "&versioncode=" + versionCode + "&click_name=" + click_name + "&staged=" + cda.list.versionStage;
            }
            var callback = function () {
                cda.list.getCDAList();
            };
            cda.list.showDialog(_tital, _url, _height, _width, callback);
        },
        deleteCda: function (ids) {
            if (!cda.list.versionStage) {
                $.Notice.error("已发布版本不可删除,请确认!");
                return;
            }
            if (ids == null || ids == "") {
                $.Notice.error("请先选择需要删除的CDA!");
                return;
            }
            var strVersionCode = $("#cdaVersion").ligerGetComboBoxManager().getValue();
            $.Notice.confirm('删除CDA将连同一起删除CDA数据集关系,是否确定删除该CDA?', function (confirm) {
                if (confirm) {
                    $.ajax({
                        url: cda.list._url + "/cda/deleteCdaInfo",
                        type: "get",
                        dataType: "json",
                        data: {ids: ids, strVersionCode: strVersionCode},
                        success: function (data) {
                            if (data != null) {
                                var _res = eval(data);
                                if (_res.successFlg) {
                                    $.Notice.success("删除成功!");
                                    cda.list.getCDAList(Util.checkCurPage.call(cda.list.grid, ids.split(',').length));
                                }
                                else {
                                    $.Notice.error(_res.errorMsg);
                                }
                            }
                            else {
                                $.Notice.error('删除失败!');
                            }
                        }
                    })
                }
            });
        },
        event: function () {
            $("#btn_create").click(function () {
                if (!cda.list.versionStage) {
                    $.Notice.error("已发布版本不可新增,请确认!");
                    return;
                }
                cda.list.addCdaInfo();
            });
            $("#btn_Delete").click(function () {
                console.log(cda.list.versionStage);
                if (!cda.list.versionStage) {
                    $.Notice.error("已发布版本不可删除,请确认!");
                    return;
                }
                var rows = cda.list.grid.getSelecteds();
                if (rows.length == 0) {
                    $.Notice.error("请选择要删除的内容!");
                    return;
                }
                else {
                    var ids = "";
                    for (var i = 0; i < rows.length; i++) {
                        ids += "," + rows[i].id;
                    }
                    ids = ids.substr(1);
                    cda.list.deleteCda(ids, '0');
                }
            });
            $("#btn_test").click(function () {
                $.ajax({
                    url: cda.list._url + "/cda/getOrgType",
                    type: "get",
                    dataType: "json",
                    data: null,
                    success: function (data) {
                        if (data != null) {
                            var _res = eval(data);
                            if (_res.successFlg) {
                                $.Notice.success("操作成功!");
                            }
                            else {
                                $.Notice.error(_res.errorMsg);
                            }
                        }
                        else {
                            $.Notice.error('删除失败!');
                        }
                    }
                })
            });
        }
    };
    cda.attr = {
        top: null,
        relationIds: "",
        cda_form: $("#div_cda_info_form"),
        init: function () {
            this.top = $.Util.getTopWindowDOM();
            var versionCode = $.Util.getUrlQueryString('versioncode');
            $("#hdversion").val(versionCode);
            var cdaId = $.Util.getUrlQueryString('id');
            $("#hdId").val(cdaId);
            var btn_name = $.Util.getUrlQueryString('click_name');
            if (cdaId == "") {
                var typeId = $.Util.getUrlQueryString('typeid');
                $("#hdTypeId").val(typeId);
                var typeName = $.Util.getUrlQueryString('typename');
                $("#hdTypeName").val(typeName);
            }
            var staged = $.Util.getUrlQueryString('staged');
            if (staged != 'false') {
                $("#btn_save").show();
            }
            cda.attr.event(btn_name);
        },
        getCdaType: function (cdaId) {
            var u = cda.list;
            $.ajax({
                url: u._url + "/cdatype/GetCdaTypeList",
                type: "post",
                dataType: "json",
                data: {strKey: "", page: 1, rows: 0},
                success: function (data) {
                    var result = eval(data.detailModelList);
                    var option = [];
                    if (result != null) {
                        for (var i = 0; i < result.length; i++) {
                            option.push({
                                text: result[i].name,
                                id: result[i].id
                            });
                        }
                    }
                    else {
                        option.push({
                            text: "请先维护CDA类目",
                            id: ""
                        });
                    }
                    var select = $("#ipt_type").ligerComboBox({
                        data: option
                    });
                    if (cdaId == "") {
                        select.setValue($("#hdTypeId").val());
                    }
                    //if (option.length > 0) {
                    //    select.setValue(option[0].id);
                    //}
                },
                complete: function () {
                    //cda.attr.getStandardSource();
                }
            });
        },
        //加载标准来源下拉框
        getStandardSource: function () {
            var u = cda.list;
            if (u._url == "" || u._url == null) {
                u._url = $("#hd_url").val();
            }
            var cdaVersion = $("#hdversion").val();
            $.ajax({
                url: u._url + "/standardsource/getStdSourceList",
                type: "post",
                dataType: "json",
                data: {strVersionCode: cdaVersion},
                success: function (data) {
                    //var result = eval(data.result);
                    var result = data.detailModelList;
                    var option = [];
                    if (result != null) {
                        for (var i = 0; i < result.length; i++) {
                            option.push({
                                text: result[i].name,
                                id: result[i].id
                            });
                        }
                    }
                    else {
                        option.push({
                            text: "请先维护标准来源",
                            id: ""
                        });
                    }
                    var select = $("#ipt_select").ligerComboBox({
                        data: option
                    });
                    if (option.length > 0) {
                        select.setValue(option[0].id);
                    }
                },
                complete: function () {
                    cda.attr.getCDAInfo();
                }
            });
        },
        //获取CDA明细
        getCDAInfo: function () {
            var u = cda.list;
            var versionCode = $("#hdversion").val();
            var id = $("#hdId").val();
            if (id == "") {
                return;
            }
            $.ajax({
                url: u._url + "/cda/getCDAInfoById",
                type: "get",
                dataType: "json",
                data: {strId: id, strVersion: versionCode},
                success: function (data) {
                    var result = eval(data);
                    var info = result.detailModelList[0];
                    if (info != null) {
                        cda.attr.cda_form.attrScan();
                        cda.attr.cda_form.Fields.fillValues(info);
                    }
                    else {
                        $.Notice.error(result.errorMsg);
                    }
                }
            })
        },
        //保存CDA信息
        save: function () {
            var versionCode = $("#hdversion").val();
            var id = $("#hdId").val();
            var user_id = $("#hd_user").val();
            cda.attr.cda_form.attrScan();
            var dataJson = eval("[" + cda.attr.cda_form.Fields.toJsonString() + "]");
            dataJson[0]["versionCode"] = versionCode;
            dataJson[0]["id"] = id;
            $.ajax({
                url: cda.list._url + "/cda/SaveCdaInfo",
                type: "post",
                dataType: "json",
                data: {cdaJson: JSON.stringify(dataJson[0]), version: versionCode},
                success: function (data) {
                    if (data != null) {
                        var _res = eval(data);
                        if (_res.successFlg) {
                            $.ligerDialog.alert("保存成功!", "提示", "success", function () {
                                cda.list.dialog_cda_detail.close();
//                  cda.list.top.dialog_cda_detail.close();
                            }, null);
                        }
                        else {
                            $.Notice.error(_res.errorMsg);
                        }
                    }
                    else {
                        // alert($.i18n.prop('message.save.failure'));
                    }
                }
            })
        },
        /*保存数据集关联关系*/
        saveRelationship: function () {
            var u = cda.attr;
            u.relationIds = "";
            for (var i = 0; i < u.top.list_dataset_storage.length; i++) {
                var datasets = u.top.list_dataset_storage[i];
                if (i == 0) {
                    u.relationIds += datasets.id;
                } else {
                    u.relationIds += "," + datasets.id;
                }
                //u.relationIds += u.top.list_dataset_storage[i].id + ",";
            }
            //u.relationIds=u.relationIds.substring(0,strSetId.length-1);
            var cdaId = $("#hdId").val();
            var strVersionCode = $("#hdversion").val();
            var xmlInfo = kindEditor.editor.text();
            $.ajax({
                url: cda.list._url + "/cda/SaveRelationship",
                type: "post",
                dataType: "json",
                data: {strDatasetIds: u.relationIds, strCdaId: cdaId, strVersionCode: strVersionCode, xmlInfo: xmlInfo},
                success: function (data) {
                    if (data.successFlg) {
                        $.ligerDialog.alert("保存成功!", "提示", "success", function () {
                            cda.list.dialog_cda_detail.close();
//                cda.list.top.dialog_cda_detail.close();
                        }, null);
                    }
                    else {
                        $.Notice.error("保存失败");
                    }
                }
            });
        },
        getALLRelationByCdaId: function (cdaid) {
            var strVersionCode = $("#hdversion").val();
            $.ajax({
                url: cda.list._url + "/cda/getDatasetByCdaId",
                type: "get",
                dataType: "json",
                data: {strCdaId: cdaid, strVersionCode: strVersionCode},
                success: function (data) {
                    cda.attr.top.list_dataset_storage = [];
                    if (data != null) {
                        var _res = eval(data);
                        cda.attr.top.list_dataset_storage = _res.detailModelList;
                    }
                },
                complete: function () {
                    list.dataset(strVersionCode, cdaid);
                }
            })
        },
        //获取基本信息页面
        getBaseInfo: function () {
            cda.attr.getStandardSource();
            cda.attr.attrEvent();
        },
        //获取关联关系页面
        getRelationshipView: function () {
            cda.attr.top.list_dataSet_callback = function () {
                cda.attr.saveRelationship();
            }
            var versionId = $("#hdversion").val();
            cda.attr.top.get_relation_xml = function (setId, VersionCode) {
                cda.attr.getXMLInfoByDataSetId(setId, VersionCode);
            }
            cda.attr.top.versionCode = versionId;
            var cdaId = $("#hdId").val();
            cda.attr.showEditBox();
            cda.attr.getALLRelationByCdaId(cdaId);
            cda.attr.attrEvent();
            cda.attr.getXMLFileByCdaId();
        },
        showEditBox: function () {
//      formKindEditor.init();
            var data = "<root><name></name></root>"
            kindEditor.editor.text(data);
        },
        getXMLInfoByDataSetId: function (setId, VersionCode) {
            var wait = $.Notice.waitting();
            $.ajax({
                url: cda.list._url + "/std/dataset/getXMLInfoByDataSetId",
                type: "get",
                dataType: "json",
                data: {setId: setId, versionCode: VersionCode},
                success: function (data) {
                    if (data.successFlg) {
                        kindEditor.editor.text(data.obj);
                    }
                    wait.close();
                },
                error: function (request) {
                    $.Notice.error("请求数据错误!");
                    wait.close();
                }
            })
        },
        getXMLFileByCdaId: function () {
            var cdaid = $("#hdId").val();
            var versionCode = $("#hdversion").val();
            $.ajax({
                url: cda.list._url + "/cda/getCdaXmlFileInfo",
                type: "get",
                dataType: "json",
                data: {cdaId: cdaid, versionCode: versionCode},
                success: function (data) {
                    if (data.successFlg) {
                        kindEditor.editor.text(data.obj);
                    }
                },
                error: function (requert) {
                    $.Notice.error("请求数据错误!");
                }
            })
        },
        event: function (btn_name) {
            switch (btn_name) {
                case"btn_basic":
                    var cdaId = $("#hdId").val();
                    cda.attr.getCdaType(cdaId);
                    cda.attr.getBaseInfo();
                    break;
                case"btn_relationship":
                    cda.attr.getRelationshipView();
                    break;
            }
        },
        attrEvent: function () {
            // 表单校验工具类
            var jValidation = $.jValidation;
            var validator = new jValidation.Validation(cda.attr.cda_form, {immediate: true, onSubmit: false});
            $(".div_toolbar").on('click', 'div', function () {
                var _name = $(this).attr("name");
                switch (_name) {
                    case'btn_save':
                        if (validator.validate()) {
                            cda.attr.save();
                        }
                        break;
                    case'btn_close':
                        cda.list.dialog_cda_detail.close();
//              cda.list.top.dialog_cda_detail.close();
                        break;
                    case'btn-submit':
                        cda.attr.saveRelationship();
                        break;
                }
            });
        }
    };
    var kindEditor = {
        editor: {},
        editorItems: ['undo', 'redo', '|', 'forecolor', 'hilitecolor', 'bold', 'italic',
            'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'fontname',
            'fontsize'],
        bulidKindEditor: function (targe) {
            this.editor = KindEditor.create(targe, {
                items: kindEditor.editorItems,
                resizeType: 0,
            });
            return this.editor;
        }
    };
    //  var formKindEditor = {
    //    editor: {},
    //    content: top.win_editor_storage,
    //
    //    init: function () {
    //      var editor = kindEditor.bulidKindEditor("textarea[name='txb_Immed_Temp']")
    //      editor.html(formKindEditor.content);
    //      //formKindEditor.event(editor);
    //    }
    //  }
    $(function(){
        cda.list.init();
    })
</script>

+ 50 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaRelationship.jsp

@ -0,0 +1,50 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<div class="frame-list-layout">
    <div id="div_left" style="float: left;width: 445px;">
        <div class="list-section">
            <div class="list-section-head"><h4>选择列表</h4></div>
            <div class="pane-search" id="pane-search">
                <label for="txb-key">检索关键字:</label>
                <input type="text" id="txb-key">
                <%--     <label id="txb-catalog" style="visibility:hidden">类别:</label>
                     <select id="select-catalog" style="display:none"></select>--%>
            </div>
            <div id="pane-list"></div>
        </div>
        <div class="list-section">
            <div class="list-section-head"><h4>已选择项</h4></div>
            <ul id="pane-list-selected"></ul>
        </div>
    </div>
    <div id="div_right" style="float: left;width: 474px; border-left: 1px solid #ccc;">
        <div class="list-section">
            <div class="list-section-head"><h4>XML文档</h4></div>
            <div id="div_edit">
                <textarea name="txb_Immed_Temp" id="txb_Immed_Temp" style="height:475px;width:462px;margin-left: 10px;margin-top: 5px;">
                      &lt;root&gt;
                      &lt;/root&gt;
                </textarea>
            </div>
        </div>
    </div>
    <div class="pane-list-toolbar div_toolbar">
        <div class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" name="btn-submit" id="btn_save" style="display:none;">
            <span>保存</span>
        </div>
        <div class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam close-toolbar" name="btn_close">
            <span>关闭</span>
        </div>
    </div>
    <input type="hidden" id="hdId" value=""/>
    <input type="hidden" id="hdversion" value=""/>
    <input type="hidden" id="hd_url" value="${contextRoot}"/>
</div>

+ 41 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaRelationshipCss.jsp

@ -0,0 +1,41 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<link href="${contextRoot}/develop/common/list.css" rel="stylesheet"/>
<style type="text/css">
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
  input{
    height: 28px;
    width: 240px;
  }
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
</style>

+ 16 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cda/cdaRelationshipJs.jsp

@ -0,0 +1,16 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/ueditor.config.js"></script>--%>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/ueditor.all.js"></script>--%>
<%--<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/ueditor/editor_api.js"></script>--%>
<script type="text/javascript" charset="utf-8" src="${contextRoot}/develop/lib/editor/kindeditor.js"></script>
<script src="${contextRoot}/develop/Scripts/cdaRelationship.js"></script>
<script src="${contextRoot}/develop/Scripts/cdaJs.js"></script>
<script >
  $(function(){
    $("#hd_user").val('${User.id}');
    cda.attr.init();
  });
</script>

+ 2 - 9
src/main/webapp/WEB-INF/ehr/jsp/std/cda/index.jsp

@ -1,10 +1,3 @@
<%--
  Created by IntelliJ IDEA.
  User: cms
  Date: 2015/9/15
  Time: 14:29
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
@ -43,8 +36,8 @@
        }
        .right-gmenu .u-grid .grid-body tr:not(.jqgfirstrow) { height: 60px; font-size: 12px; text-align: center; }
        input {
            font-family: SimSun;
            font-size: 14px;
            font-family: Microsoft YaHei;
            font-size: 10px;
            height: 30px;
            width: 240px;
        }

+ 42 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/CdaTypeDetail.jsp

@ -0,0 +1,42 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<div id="div_cdatype_info_form" data-role-form class="m-form-inline f-mt20">
  <div class="m-form-group">
    <label>代码:</label>
    <div class="l-text-wrapper m-form-control essential">
      <input type="text" class="required useTitle f-w240 max-length-50 validate-special-char" required-title=<spring:message code="lbl.must.input"/> id="txt_Code" data-attr-scan="code">
    </div>
  </div>
  <div class="m-form-group">
    <label>名称:</label>
    <div class="l-text-wrapper m-form-control essential">
      <input type="text" id="txt_Name" data-attr-scan="name" class="required useTitle f-w240 max-length-50 validate-special-char" required-title=<spring:message code="lbl.must.input"/>>
    </div>
  </div>
  <div class="m-form-group">
    <label>父级类别:</label>
    <div class="l-text-wrapper m-form-control">
      <input type="text" id="ipt_select" data-type="select">
    </div>
  </div>
  <div class="m-form-group">
    <label>说明:</label>
    <div class="m-form-control">
      <textarea rows="3" id="txt_description" name="txb_desc" style="width: 240px;height: 60px;" data-attr-scan="description"  class="useTitle max-length-200 validate-special-char"></textarea>
    </div>
  </div>
  <div class="m-form-control pane-attribute-toolbar">
    <div class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam f-mr10" id="btn_save">
      <span>保存</span>
    </div>
    <div class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam close-toolbar f-mr20" id="btn_close">
      <span>关闭</span>
    </div>
  </div>
  <input type="hidden" id="hdId" value=""/>
  <input type="hidden" id="hd_url" value="${contextRoot}"/>
  <input type="hidden" id="hd_user" value="${UserId}"/>
</div>

+ 24 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/CdaTypeDetailCss.jsp

@ -0,0 +1,24 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style type="text/css">
  .pane-attribute-toolbar{
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50px;
    padding: 6px 0 4px;
    background-color: #fff;
    border-top: 1px solid #ccc;
    text-align: right;
  }
  .close-toolbar{
    margin-right: 20px;
  }
  input{
    height: 28px;
    width: 240px;
  }
</style>

+ 8 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/CdaTypeDetailJs.jsp

@ -0,0 +1,8 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<script src="${contextRoot}/develop/Scripts/cdatypeJs.js"></script>
<script >
  $(function(){
    cdaType.attr.init();
  })
</script>

+ 32 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/index.jsp

@ -0,0 +1,32 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<div class="f-dn" data-head-title="true">CDA类别</div>
<div id="div_wrapper">
    <div class="m-retrieve-area f-h50 f-dn f-pr"
         style="display:block;border: 1px solid #D6D6D6;border-bottom: 0px;">
        <ul>
            <li class="f-mt15 li_seach">
                <div style="float: left; width: 250px; margin-left: 12px; margin-top: -5px;">
                    <input type="text" id="inp_search" name="inp_search" placeholder="<spring:message code="lbl.input.placehold"/>"
                           class="f-ml10" >
                </div>
                <div style="float: right; width: 250px; margin-top: -5px;">
                    <%--<a id="btn_Delete_relation" class="btn btn-primary J_add-btn f-fr f-mr10">--%>
                        <%--批量删除--%>
                    <%--</a>--%>
                    <%--<sec:authorize url="/cdatype/SaveCdaType">--%>
                    <a id="btn_Update_relation" class="btn btn-primary J_add-btn f-fr f-mr10">
                        新增
                    </a>
                    <%--</sec:authorize>--%>
                </div>
            </li>
        </ul>
    </div>
    <div id="div_cda_type_grid">
    </div>
    <input type="hidden" id="hd_url" value="${contextRoot}"/>
</div>

+ 11 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/indexCss.jsp

@ -0,0 +1,11 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<style>
  input,#cdaVersion {
    font-family: Microsoft YaHei;
    font-size: 10px;
    height: 30px;
    width: 240px;
  }
</style>

+ 374 - 0
src/main/webapp/WEB-INF/ehr/jsp/std/cdaType/indexJs.jsp

@ -0,0 +1,374 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="utf-8"%>
<%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
<%--<script src="${contextRoot}/develop/Scripts/cdatypeJs.js"></script>--%>
<script >
  var cdaType = {};
  cdaType.list = {
    _url: $("#hd_url").val(),
    top: null,
    grid: null,
    columns: [],
    TypeSearch: null,
    init: function () {
//      this.top = $.Util.getTopWindowDOM();
      //CDA 列名
      this.columns = [
        {display: '名称', name: 'name', align: 'left', id: 'tree_id'},
        {display: '代码', name: 'code', align: 'left'},
        {display: '说明', name: 'description', align: 'left'},
        {
          display: '操作', isSort: false, width: 200, align: 'center', render: function (rowdata, rowindex, value) {
          var html = '';
          <%--<sec:authorize url="/cdatype/SaveCdaType">--%>
          html += "<a class='grid_edit' title='编辑' name='edit_click' style='' onclick='cdaType.list.add(\"" + rowdata.id + "\", \"modify\")'></a> " ;
          <%--</sec:authorize>--%>
          <%--<sec:authorize url="/cdatype/delteCdaTypeInfo">--%>
          html += "<a class='grid_delete' title='删除' name='delete_click' style='' onclick='cdaType.list.deleted(\"" + rowdata.id + "\")'></a>";
          <%--</sec:authorize>--%>
          return html;
        }
        }
      ];
      this.TypeSearch = $("#inp_search").ligerTextBox({
        width: 240, isSearch: true, search: function () {
          cdaType.list.getTypeList();
        }
      });
      this.getTypeList();
      this.event();
    },
    getTypeList: function () {
      var u = cdaType.list;
      var codeName = $('#inp_search').val();
      $.ajax({
        url: u._url + "/cdatype/getTreeGridData",
        type: "get",
        dataType: "json",
        data:{codeName:codeName},
        success: function (data) {
          var envelop = eval(data);
          var result = envelop.detailModelList;
          if (result != null) {
            cdaType.list.setUserList(result);
          }
          //else {
          //    $.Notice.error("数据获取失败!");
          //}
        }
      })
    },
    setUserList: function (data) {
      var u = cdaType.list;
      var dataJson = [];
      //根据下拉框加载相应的数据
      dataJson = data;
      var gridData = {
        Total: dataJson != null ? dataJson.length : null,
        Rows: dataJson
      };
      u.rows = dataJson;
      // window.grid=u.grid=null;
      if (u.grid == null) {
        //$.LigerGridEx.config(
        u.grid = $("#div_cda_type_grid").ligerGrid({
          record: 'totalCount',
          root: 'detailModelList',
          pageSize:15,
          pagesizeParmName: 'rows',
          heightDiff: -10,
          headerRowHeight: 40,
          rowHeight: 40,
          editorTopDiff: 41,
          allowAdjustColWidth: true,
          usePager: false,
          scrollToPage: false,
          columns: u.columns,
          data: gridData,
          height: "100%",
          rownumbers: false,
          checkbox: false,
          root: 'Rows',
          tree: {columnId: 'tree_id',height:'100%'},
          onError: function (a, b) {
          },
          onGroupExtend: function () {
            alert(1);
          }
        });
      }
      else {
        u.grid.reload(gridData);
      }
      u.grid.collapseAll();
      window.grid = u.grid;
    },
    showDialog: function (_tital, _url, _height, _width, callback) {
      cdaType.list.dialog_cdatype_detail = $.ligerDialog.open({
        title: _tital,
        url: _url,
        height: _height,
        width: _width,
        onClosed: callback
      });
    },
    add: function (id, type) {
      var _tital = type=="modify"?"修改CDA分类":"新增CDA分类";
      var _url = cdaType.list._url + "/cdatype/typeupdate?id=" + id;
      var callback = function () {
        cdaType.list.getTypeList();
      };
      cdaType.list.showDialog(_tital, _url, 400, 500, callback);
    },
    deleted: function (ids) {
      if (ids == null || ids == "") {
        $.Notice.error("请先选择需要删除的数据!");
        return;
      }
      //判断该cda类别或其子类别是否有关联的cda文档,---前提 没有批量删除功能
      $.ajax({
        url: cdaType.list._url + "/cdatype/isExitRelativeCDA",
        type: "get",
        dataType: "json",
        data: {ids: ids},
        success: function (data) {
          var _res = eval(data);
          if (_res.successFlg) {
            $.Notice.error("该cda类别不能删除!当前类别或其子类别存在关联的cda文档!");
            return;
          }
          //先判断是否存在子集
          $.ajax({
            url: cdaType.list._url + "/cdatype/getCDATypeListByParentId",
            type: "get",
            dataType: "json",
            data: {ids: ids},
            success: function (data) {
              var _res = data;
              if (_res != null && _res.length > 0) {
                var _text = "当前类别存在子类别,删除将会同时删除子类别!\n请确认是否删除?";
                for (var i = 0; i < _res.length; i++) {
                  ids += "," + _res[i].id;
                }
                // ids = ids.substr(1);
                cdaType.list.doDeleted(ids, _text);
              }
              else {
                var _text = "确定删除当前cda类别?";
                cdaType.list.doDeleted(ids, _text);
              }
            }
          });
        }
      })
    },
    doDeleted: function (ids, _text) {
      $.Notice.confirm(_text, function (confirm) {
        if (confirm) {
          $.ajax({
            url: cdaType.list._url + "/cdatype/delteCdaTypeInfo",
            type: "get",
            dataType: "json",
            data: {ids: ids},
            success: function (data) {
              if (data != null) {
                var _res = eval(data);
                if (_res.successFlg) {
                  $.Notice.success("删除成功!");
                  cdaType.list.getTypeList();
                }
                else {
                  $.Notice.error(_res.errorMsg);
                }
              }
              else {
                $.Notice.error('删除失败!');
              }
            }
          })
        }
      });
    },
    event: function () {
      $(".li_seach").on('keyup', 'input', function (e) {
        var name = $(this).attr('name');
        switch (name) {
          case'inp_search':
            if (e.keyCode == 13) {
              cdaType.list.getTypeList();
            }
            break;
        }
      }).on('click', 'a', function () {
        var id = $(this).attr("id");
        switch (id) {
          case 'btn_Delete_relation':
            var rows = cdaType.list.grid.getSelecteds();
            if (rows.length == 0) {
              $.Notice.error("请选择要删除的内容!");
              return;
            }
            else {
              var ids = "";
              for (var i = 0; i < rows.length; i++) {
                ids += "," + rows[i].id;
              }
              ids = ids.substr(1);
              cdaType.list.deleted(ids);
            }
            break;
          case 'btn_Update_relation':
            cdaType.list.add("");
            break;
        }
      })
    }
  };
  cdaType.attr = {
    type_form: $("#div_cdatype_info_form"),
    validator: null,
    parent_select: null,
    init: function () {
      var typeId = $.Util.getUrlQueryString('id');
      $("#hdId").val(typeId);
      this.getCdaTypeInfo();
      this.event();
      this.validator =  new $.jValidation.Validation(this.type_form, {immediate: true, onSubmit: false,
        onElementValidateForAjax:function(elm){
        }
      });
    },
    getParentType: function (initValue, initText) {
      cdaType.attr.parent_select = $("#ipt_select").ligerComboBox({
        url: cdaType.list._url + "/cdatype/getCdaTypeExcludeSelfAndChildren?strId=" + $("#hdId").val(),
        valueField: 'id',
        textField: 'name',
        dataParmName: 'detailModelList',
        selectBoxWidth: 240,
        keySupport: true,
        width: 240,
        initValue: initValue,
        initText: initText,
        onSuccess: function () {
        },
        onAfterSetData: function () {
        }
      });
      cdaType.attr.parent_select.setValue(initValue);
      cdaType.attr.parent_select.setText(initText);
    },
    getCdaTypeInfo: function () {
      var u = cdaType.list;
      var id = $("#hdId").val();
      if (id == "") {
        cdaType.attr.getParentType("", "");
        return;
      }
      $.ajax({
        url: u._url + "/cdatype/getCdaTypeById",
        type: "get",
        dataType: "json",
        data: {strIds: id},
        success: function (data) {
          var envelop = eval(data);
          var info = envelop.obj;
          if (info != null) {
            cdaType.attr.type_form.attrScan();
            cdaType.attr.type_form.Fields.fillValues(info);
            var initValue = info.parentId;
            var initText = info.parentName;
            cdaType.attr.getParentType(initValue, initText);
          }
          else {
            $.Notice.error(result.errorMsg);
          }
        }
      })
    },
    save: function () {
      if(!this.validator.validate()){
        return;
      }
      var id = $("#hdId").val();
      cdaType.attr.type_form.attrScan();
      var dataJson = eval("[" + cdaType.attr.type_form.Fields.toJsonString() + "]");
      dataJson[0]["id"] = id;
      var user_id = $("#hd_user").val();
      dataJson[0]["createUser"] = user_id;
      var parent_id = cdaType.attr.parent_select.getValue();
      dataJson[0]["parentId"] = parent_id;
      var _url = cdaType.list._url + "/cdatype/SaveCdaType";
      $.ajax({
        url: _url,
        type: "POST",
        dataType: "json",
        data: {dataJson:JSON.stringify(dataJson[0])},
        success: function (data) {
          if (data != null) {
            var _res = eval(data);
            if (_res.successFlg) {
              //alert($.i18n.prop('message.save.success'));
              $.ligerDialog.alert("保存成功", "提示", "success", function () {
                cdaType.list.dialog_cdatype_detail.close();
              }, null);
            }
            else {
              $.Notice.error(_res.errorMsg);
            }
          }
          else {
            $.Notice.error("保存失败!")
          }
        }
      })
    },
    event: function () {
      $("#btn_save").click(function () {
        cdaType.attr.save();
      });
      $("#btn_close").click(function () {
        cdaType.list.dialog_cdatype_detail.close();
      });
    }
  }
  $(function(){
    cdaType.list.init();
  })
</script>

BIN
src/main/webapp/develop/images/Delete_btn_pre.png


BIN
src/main/webapp/develop/images/Modify_btn_pre.png


BIN
src/main/webapp/develop/images/add_btn.png


BIN
src/main/webapp/develop/images/add_btn_pre.png


BIN
src/main/webapp/develop/images/app/After1_btn_pre.png


BIN
src/main/webapp/develop/images/app/Blue_btn.png


BIN
src/main/webapp/develop/images/app/Blue_btn_pre.png


BIN
src/main/webapp/develop/images/app/Click02_btn.png


BIN
src/main/webapp/develop/images/app/Click_btn.png


BIN
src/main/webapp/develop/images/app/Click_btn_pre.png


BIN
src/main/webapp/develop/images/app/Close_btn.png


BIN
src/main/webapp/develop/images/app/Close_btn01.png


BIN
src/main/webapp/develop/images/app/Close_btn_pre.png


BIN
src/main/webapp/develop/images/app/Close_btn_pre01.png


BIN
src/main/webapp/develop/images/app/Determine_btn.png


BIN
src/main/webapp/develop/images/app/Determine_btn_pre.png


BIN
src/main/webapp/develop/images/app/Dictionaries_btn.png


BIN
src/main/webapp/develop/images/app/Dictionaries_btn_pre.png


BIN
src/main/webapp/develop/images/app/Dividing_line.png


BIN
src/main/webapp/develop/images/app/Drag_bg.png


BIN
src/main/webapp/develop/images/app/Drag_icon.png


BIN
src/main/webapp/develop/images/app/Eject_btn.png


BIN
src/main/webapp/develop/images/app/Eject_btn_pre.png


BIN
src/main/webapp/develop/images/app/Grey_btn.png


BIN
src/main/webapp/develop/images/app/Grey_btn_pre.png


BIN
src/main/webapp/develop/images/app/Left_btn.png


BIN
src/main/webapp/develop/images/app/Left_btn_pre.png


BIN
src/main/webapp/develop/images/app/Menu2_bg.png


BIN
src/main/webapp/develop/images/app/Menu_bg.png


BIN
src/main/webapp/develop/images/app/Right_btn.png


BIN
src/main/webapp/develop/images/app/Right_btn_pre.png


BIN
src/main/webapp/develop/images/app/Search03_btn.png


BIN
src/main/webapp/develop/images/app/Search_btn.png


BIN
src/main/webapp/develop/images/app/Search_btn_pre.png


BIN
src/main/webapp/develop/images/app/Selected2_btn_pre.png


BIN
src/main/webapp/develop/images/app/Selected3_btn_pre.png


BIN
src/main/webapp/develop/images/app/The-import_btn.png


BIN
src/main/webapp/develop/images/app/The-import_btn_pre.png


BIN
src/main/webapp/develop/images/app/Verification_btn.png


BIN
src/main/webapp/develop/images/app/Verification_btn_pre.png


BIN
src/main/webapp/develop/images/app/Verification_dis.png


BIN
src/main/webapp/develop/images/app/active.png


BIN
src/main/webapp/develop/images/app/active_pre.png


BIN
src/main/webapp/develop/images/app/add_btn.png


BIN
src/main/webapp/develop/images/app/add_btn_pre.png


BIN
src/main/webapp/develop/images/app/add_hui.png


BIN
src/main/webapp/develop/images/app/arrows.png


BIN
src/main/webapp/develop/images/app/bianji01_btn.png


BIN
src/main/webapp/develop/images/app/bianji_btn.png


BIN
src/main/webapp/develop/images/app/bianji_btn_pre.png


BIN
src/main/webapp/develop/images/app/btn_bg.png


BIN
src/main/webapp/develop/images/app/cancel_btn.png


BIN
src/main/webapp/develop/images/app/cancel_btn_pre.png


BIN
src/main/webapp/develop/images/app/confirm_btn.png


BIN
src/main/webapp/develop/images/app/confirm_btn_pre.png


BIN
src/main/webapp/develop/images/app/dangan_icon.png


BIN
src/main/webapp/develop/images/app/dashed.png


BIN
src/main/webapp/develop/images/app/dateeditor-btn-over.gif


BIN
src/main/webapp/develop/images/app/dateeditor-btn.gif


BIN
src/main/webapp/develop/images/app/delete_btn01.png


BIN
src/main/webapp/develop/images/app/delete_btn01_pre.png


BIN
src/main/webapp/develop/images/app/export_btn.png


BIN
src/main/webapp/develop/images/app/export_btn_pre.png


+ 0 - 0
src/main/webapp/develop/images/app/gouxuan.png


Some files were not shown because too many files changed in this diff