Quellcode durchsuchen

资源注册:导入数据集时,数据集和数据元列表应该是只取集成标准各版本的并集去重

yingjie vor 9 Jahren
Ursprung
Commit
63e27ad46a

+ 1 - 0
Hos-Framework/src/main/java/com/yihu/ehr/framework/util/sql/SqlCreator.java

@ -97,6 +97,7 @@ public class SqlCreator {
    public String selectData(String tabelName) {
        setTableName(tabelName);
        itemList.clear();
        for(Object key : transformer.columnToProperty.keySet()){
            itemList.add(StringUtil.toString(key));
        }

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/resource/controller/RsResourceController.java

@ -663,7 +663,7 @@ public class RsResourceController extends BaseController {
    public Result getMetaDataByDatasetId(HttpServletRequest request) {
        try {
            String datasetCode = request.getParameter("datasetCode");
            String datasetId = request.getParameter("datasetId");
                String datasetId = request.getParameter("datasetId");
            return resourceService.getMetaDataByDatasetId(datasetCode, datasetId);
        } catch (Exception e) {
            e.printStackTrace();

+ 22 - 7
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDatasetService.java

@ -14,16 +14,17 @@ import com.yihu.ehr.framework.util.sql.BeanTransformer;
import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.Select2;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdDictionaryModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import com.yihu.ehr.standard.model.standard.*;
import com.yihu.ehr.standard.model.standard.resultModel.StandardParamResultModel;
import com.yihu.ehr.standard.service.bo.StandardVersion;
import jxl.Sheet;
import jxl.Workbook;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -31,6 +32,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -45,6 +47,8 @@ import java.util.*;
public class StdDatasetService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdDatasetService";
    @Autowired
    StandardService standardService;
    public StdDatasetService() {
    }
@ -339,10 +343,21 @@ public class StdDatasetService extends SQLGeneralDAO {
    }
    public List getAllVersionDatasetList() {
        // 导入的数据集列表应该只取集成标准已发布各版本的并集去重 @modify by yingjie chen
        Criteria criteria = getCurrentSession().createCriteria(StandardModel.class);
        StandardParamResultModel standardParam = standardService.getStandardParam(Constants.STANDARD);
        String code = standardParam.getCode();
        criteria.add(Restrictions.eq("code", code));
        List<StandardModel> standardModelList = criteria.list();
        List<Integer> idList = standardModelList.stream().map(StandardModel::getId).collect(Collectors.toList());
        try {
            String hql = "FROM StandardVersionModel WHERE publishTime is not null order by publishTime";
            Query query = getCurrentSession().createQuery(hql);
            List<StandardVersionModel> versionModelList = query.list();
            List<StandardVersionModel> versionModelList = new ArrayList<>();
            if (!CollectionUtil.isEmpty(idList)) {
                String hql = "FROM StandardVersionModel WHERE publishTime is not null AND standardId IN :idList order by publishTime";
                Query query = getCurrentSession().createQuery(hql);
                query.setParameterList("idList", idList);
                versionModelList = query.list();
            }
            String sql = Constants.EMPTY;
            BeanTransformer transformer = new BeanTransformer(StdDataSetModel.class);
            for (StandardVersionModel versionModel : versionModelList) {

+ 35 - 20
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdMetadataService.java

@ -2,7 +2,6 @@ package com.yihu.ehr.standard.service.standard;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.common.ReflectUtil;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.constrant.ErrorCode;
@ -16,20 +15,21 @@ import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.Select2;
import com.yihu.ehr.standard.model.adapter.AdapterMetadataModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.model.standard.StdDataSetModel;
import com.yihu.ehr.standard.model.standard.StdDictionaryEntryModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import com.yihu.ehr.standard.model.standard.*;
import com.yihu.ehr.standard.model.standard.resultModel.StandardParamResultModel;
import com.yihu.ehr.standard.service.bo.StandardVersion;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 数据元管理接口实现。
@ -43,6 +43,8 @@ import java.util.*;
public class StdMetadataService extends SQLGeneralDAO {
    public static final String BEAN_ID = "StdMetadataService";
    @Autowired
    StandardService standardService;
    public StdMetadataService() {
    }
@ -323,8 +325,9 @@ public class StdMetadataService extends SQLGeneralDAO {
    }
    public List getAllVersionMetadataList(String condition) {
        //数据元列表应该是所选择的数据集列表的数据元并集去重 @modify by yingjie chen
        try {
            Map<Integer, String> versionMap = new HashMap<>();
            List<String>  versionList = new ArrayList<>();
            String sql = Constants.EMPTY;
            ObjectMapper objectMapper = new ObjectMapper();
            String code = Constants.EMPTY;
@ -333,17 +336,26 @@ public class StdMetadataService extends SQLGeneralDAO {
                code = jsonNode.get("code").asText();
            }
            String hql = "FROM StandardVersionModel WHERE publishTime is not null order by publishTime";
            Query query = getCurrentSession().createQuery(hql);
            List<StandardVersionModel> versionModelList = query.list();
            for (StandardVersionModel versionModel : versionModelList) {
                SqlCreator sqlDatasetCreator = new SqlCreator(StdDataSetModel.class);
                StandardVersion version = new StandardVersion(versionModel.getVersion());
                versionMap.put(versionModel.getStandardId(), versionModel.getVersion());
                sqlDatasetCreator.equalCondition("code", code);
                sql = sql + sqlDatasetCreator.selectData(version.getDataSetTableName()) + Constants.UNION;
            Criteria criteria = getCurrentSession().createCriteria(StandardModel.class);
            StandardParamResultModel standardParam = standardService.getStandardParam(Constants.STANDARD);
            String VersionCode = standardParam.getCode();
            criteria.add(Restrictions.eq("code", VersionCode));
            List<StandardModel> standardModelList = criteria.list();
            List<Integer> idList = standardModelList.stream().map(StandardModel::getId).collect(Collectors.toList());
            List<StandardVersionModel> versionModelList;
            if (!CollectionUtil.isEmpty(idList)) {
                String hql = "FROM StandardVersionModel WHERE publishTime is not null AND standardId IN :idList order by publishTime";
                Query query = getCurrentSession().createQuery(hql);
                query.setParameterList("idList", idList);
                versionModelList = query.list();
                for (StandardVersionModel versionModel : versionModelList) {
                    SqlCreator sqlDatasetCreator = new SqlCreator(StdDataSetModel.class);
                    StandardVersion version = new StandardVersion(versionModel.getVersion());
                    versionList.add(versionModel.getVersion());
                    sqlDatasetCreator.equalCondition("code", code);
                    sql = sql + sqlDatasetCreator.selectData(version.getDataSetTableName()) + Constants.UNION;
                }
            }
            BeanTransformer datasetTransformer = new BeanTransformer(StdDataSetModel.class);
            if (!StringUtil.isEmpty(sql)) {
                sql = sql.substring(0, sql.length() - Constants.UNION.length());
@ -354,12 +366,15 @@ public class StdMetadataService extends SQLGeneralDAO {
                sql = Constants.EMPTY;
                Integer count = 1;
                Map<Integer, String> datasetIdMap = new HashMap<>();
                for (StdDataSetModel model : modelList) {
                    SqlCreator sqlMetadataCreator = new SqlCreator(StdMetaDataModel.class);
                    StandardVersion version = new StandardVersion(versionMap.get(model.getstandardId()));
                    datasetIdMap.put(count++, StringUtil.toString(model.getId()));
                    sqlMetadataCreator.equalConditionQue("datasetId", model.getId());
                    sql = sql + sqlMetadataCreator.selectData(version.getMetaDataTableName()) + Constants.UNION;
                    for (String versionKey : versionList) {
                        datasetIdMap.put(count++, StringUtil.toString(model.getId()));
                        StandardVersion version = new StandardVersion(versionKey);
                        sql = sql + sqlMetadataCreator.selectData(version.getMetaDataTableName()) + Constants.UNION;
                    }
                }
                BeanTransformer metadataTransformer = new BeanTransformer(StdMetaDataModel.class);