Browse Source

Merge branch 'master' of zlf/esb into master

esb 9 years ago
parent
commit
584e2c3d8b
21 changed files with 261 additions and 251 deletions
  1. 1 0
      Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/Constants.java
  2. 4 2
      Hos-resource/src/main/java/com/yihu/ehr/crawler/controller/CrawlerController.java
  3. 20 4
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerManager.java
  4. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/AdapterVersionController.java
  5. 1 2
      Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardController.java
  6. 0 12
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/AdapterSchemeDispatchModel.java
  7. 0 20
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/AdapterSchemeModel.java
  8. 0 17
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/AdapterSchemeVersionModel.java
  9. 0 17
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StandardModel.java
  10. 0 20
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StandardVersionModel.java
  11. 0 3
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StdCDACatalogModel.java
  12. 0 2
      Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StdDatasetCatalogModel.java
  13. 58 0
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeVersionService.java
  14. 45 71
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardService.java
  15. 27 21
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardVersionService.java
  16. 29 50
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDACatalogService.java
  17. 0 9
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdPublisherService.java
  18. 20 0
      Hos-resource/src/main/resources/hbm/resource/AdapterScheme.hbm.xml
  19. 18 0
      Hos-resource/src/main/resources/hbm/resource/AdapterSchemeVersion.hbm.xml
  20. 18 0
      Hos-resource/src/main/resources/hbm/resource/Standard.hbm.xml
  21. 19 0
      Hos-resource/src/main/resources/hbm/resource/StandardVersion.hbm.xml

+ 1 - 0
Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/Constants.java

@ -67,6 +67,7 @@ public class Constants {
    public static final String CODE_STR = "code";
    public static final String VALUE_STR = "value";
    public static final String STANDARD = "standard";
    public static final String STANDARD_EHR = "standard_ehr";
    public static final String OK = "ok";
    public static final String NO = "no";
    public static final Integer NUMBER_ZREO = 0;

+ 4 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/controller/CrawlerController.java

@ -5,7 +5,10 @@ import com.yihu.ehr.crawler.service.CrawlerManager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
@ -30,5 +33,4 @@ public class CrawlerController {
        }
        return false;
    }
}

+ 20 - 4
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerManager.java

@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.crawler.model.adapter.AdapterDataSet;
import com.yihu.ehr.crawler.model.config.SysConfig;
import com.yihu.ehr.crawler.model.patient.Patient;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.util.log.LogService;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
@ -12,8 +13,10 @@ import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.springutil.SpringBeanUtil;
import com.yihu.ehr.standard.model.adapter.AdapterDatasetModel;
import com.yihu.ehr.standard.service.adapter.AdapterDatasetService;
import com.yihu.ehr.standard.service.adapter.AdapterSchemeVersionService;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import net.sf.json.JSONObject;
import org.hibernate.Query;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@ -27,6 +30,7 @@ public class CrawlerManager {
    private static volatile CrawlerManager instance;
    private static DataCollectDispatcher dispatch;
    private List<AdapterDataSet> adapterDataSetList;
    private String version;
    private List<Patient> patientList;
    public CrawlerManager() {
        dispatch = DataCollectDispatcher.getInstance();
@ -72,7 +76,10 @@ public class CrawlerManager {
    public Boolean collectProcess(Patient patient) {
        SysConfig.getInstance().setOrgCode(patient.getOrgCode());
        getAdapterDataSetList();
        if (!getAdapterDataSetList()) {
            LogService.getLogger().error("适配数据尚未准备");
            return false;
        }
        patient.setReUploadFlg(StringUtil.toString(false));
        LogService.getLogger().trace("采集->注册->打包上传,任务ID:,patient_id:" + patient.getPatientId() + ", event_no:" + patient.getEventNo());
        try {
@ -118,10 +125,14 @@ public class CrawlerManager {
        return true;
    }
    public void getAdapterDataSetList() {
        if (CollectionUtil.isEmpty(adapterDataSetList)) {
    public Boolean getAdapterDataSetList() {
        if (StringUtil.isEmpty(version)) {
            adapterDataSetList = new ArrayList<>();
            String version = "569f253c1cb3";
            AdapterSchemeVersionService adapterSchemeVersionService = SpringBeanUtil.getService(AdapterSchemeVersionService.BEAN_ID);
            version = adapterSchemeVersionService.getEhrAdapterVersionLasted();
            if (StringUtil.isEmpty(version)) {
                return false;
            }
            AdapterVersion adapterVersion = new AdapterVersion(version);
            AdapterDatasetService adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID);
            Map<String, String> condition = new HashMap<>();
@ -132,6 +143,7 @@ public class CrawlerManager {
                adapterDataSetList.add(new AdapterDataSet(adapterDatasetModel, adapterVersion));
            }
        }
        return true;
    }
    /**
@ -150,4 +162,8 @@ public class CrawlerManager {
            return null;
        }
    }
    public void setVersion(String version) {
        this.version = version;
    }
}

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

@ -80,7 +80,7 @@ public class AdapterVersionController extends BaseController {
    public AdapterSchemeVersionModel publishVersion(
            @ApiParam(name = "version", value = "标准版本")
            @RequestParam(value = "version") String version) {
        return adapterSchemeVersion.update(version);
        return adapterSchemeVersion.publish(version);
    }
    /**

+ 1 - 2
Hos-resource/src/main/java/com/yihu/ehr/standard/controller/StandardController.java

@ -44,8 +44,7 @@ public class StandardController extends BaseController {
    @RequestMapping("/getSysParamList")
    @ApiOperation(value = "获取集成标准系统参数", response = String.class, notes = "获取集成标准系统参数")
    public String getSysParamList() {
        List<Object[]> list = standardService.getSysParamList();
        String code = StringUtil.toString(list.get(0)[0]);
        String code = standardService.getSysParamList();
        return code;
    }

+ 0 - 12
Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/AdapterSchemeDispatchModel.java

@ -1,8 +1,5 @@
package com.yihu.ehr.standard.model.adapter;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
/**
@ -10,22 +7,13 @@ import java.io.Serializable;
 *
 * @Created by lingfeng 2015/12/23.
 */
@Entity
@Table(name = "adapter_scheme_dispatch")
public class AdapterSchemeDispatchModel implements Serializable {
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "scheme_id")
    private Integer schemeId;
    @Column(name = "org_code")
    private String orgCode;
    @Column(name = "org_name")
    private String orgName;
    public Integer getId() {

+ 0 - 20
Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/AdapterSchemeModel.java

@ -1,8 +1,5 @@
package com.yihu.ehr.standard.model.adapter;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
/**
@ -10,44 +7,27 @@ import java.io.Serializable;
 *
 * @Created by lingfeng 2015/12/23.
 */
@Entity
@Table(name="adapter_scheme")
public class AdapterSchemeModel implements Serializable {
    public static final String TABLE_NAME = "ADAPTER_SCHEME";
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "parent_id")
    private Integer parentId;
    @Column(name = "name")
    private String name;
    @Column(name = "type")
    private String type;
    @Column(name = "description")
    private String description;
    @Column(name = "status")
    private Integer status;
    @Column(name = "std_id")
    private Integer stdId;
    @Column(name = "std_version")
    private String stdVersion;
    @Column(name = "adapter_std_id")
    private Integer adapterStdId;
    @Column(name = "adapter_std_version")
    private String adapterStdVersion;
    @Column(name = "adapter_publisher_org_code")
    private String adapterPublisherOrgCode;
    public Integer getId() {

+ 0 - 17
Hos-resource/src/main/java/com/yihu/ehr/standard/model/adapter/AdapterSchemeVersionModel.java

@ -1,8 +1,5 @@
package com.yihu.ehr.standard.model.adapter;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@ -11,37 +8,23 @@ import java.util.Date;
 *
 * @created lingfeng 2015/12/23.
 */
@Entity
@Table(name = "adapter_scheme_version")
public class AdapterSchemeVersionModel implements Serializable {
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "scheme_id")
    private Integer schemeId;
    @Column(name = "name")
    private String name;
    @Column(name = "version")
    private String version;
    @Column(name = "publish_time")
    private Date publishTime;
    @Column(name = "publish_user")
    private String publishUser;
    @Column(name = "base_version")
    private String baseVersion;
    @Column(name = "publish_status")
    private Integer publishStatus;
    @Column(name = "path")
    private String path;
    public AdapterSchemeVersionModel(){

+ 0 - 17
Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StandardModel.java

@ -1,8 +1,5 @@
package com.yihu.ehr.standard.model.standard;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
/**
@ -10,38 +7,24 @@ import java.io.Serializable;
 *
 * @created Airhead 2015/12/23.
 */
@Entity
@Table(name = "std_info")
public class StandardModel implements Serializable {
    public static final String TABLE_NAME = "STD_INFO";
    @Id
    @GenericGenerator(name = "generator", strategy = "")
    @Column(name = "id")
    private Integer id;
    @Column(name = "name")
    private String name;
    @Column(name = "code")
    private String code;
    @Column(name = "publisher")
    private String publisher;
    @Column(name = "publisher_org_code")
    private String publisherOrgCode;
    @Column(name = "summary")
    private String summary;
    @Column(name = "ref_standard")
    private String refStandard;
    @Column(name = "ref_standard_version")
    private String refStandardVersion;
    @Column(name = "version_status")
    private Integer versionStatus;
    public StandardModel(){

+ 0 - 20
Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StandardVersionModel.java

@ -11,42 +11,26 @@ import java.util.Date;
 *
 * @created Airhead 2015/12/23.
 */
@Entity
@Table(name = "std_version")
public class StandardVersionModel implements Serializable {
    public static final String TABLE_NAME = "STD_VERSION";
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")
    private Integer id;
    @Column(name = "version")
    private String version;
    @Column(name = "std_id")
    private Integer standardId;
    @Column(name = "name")
    private String name;
    @Column(name = "publish_time")
    private Date publishTime;
    @Column(name = "publish_user")
    private String publishUser;
    @Column(name = "base_version")
    private String baseVersion;
    @Column(name = "primary_version")
    private String primaryVersion;
    @Column(name = "publish_status")
    private Integer publishStatus;
    @Column(name = "path")
    private String path;
    public StandardVersionModel(){
@ -66,10 +50,6 @@ public class StandardVersionModel implements Serializable {
        this.path = standardVersionModel.path;
    }
    public static String getTableName() {
        return TABLE_NAME;
    }
    public Integer getId() {
        return id;
    }

+ 0 - 3
Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StdCDACatalogModel.java

@ -10,10 +10,7 @@ import java.io.Serializable;
 *
 * @created Airhead 2015/12/23.
 */
@Entity
@Table(name = "std_cda_catalog")
public class StdCDACatalogModel implements Serializable {
    public static String TABLE_NAME="STD_CDA_CATALOG";
    @Id
    @GenericGenerator(name = "generator", strategy = "increment")
    @Column(name = "id")

+ 0 - 2
Hos-resource/src/main/java/com/yihu/ehr/standard/model/standard/StdDatasetCatalogModel.java

@ -10,8 +10,6 @@ import java.io.Serializable;
 *
 * @created Airhead 2015/12/23.
 */
@Entity
@Table(name = "std_dataset_catalog")
public class StdDatasetCatalogModel implements Serializable {
    public static String TABLE_NAME = "STD_DATASET_CATALOG";

+ 58 - 0
Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeVersionService.java

@ -1,6 +1,7 @@
package com.yihu.ehr.standard.service.adapter;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.crawler.service.CrawlerManager;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.constrant.ErrorCode;
@ -11,6 +12,7 @@ import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.model.adapter.resultModel.SchemeVersionResultDetailModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StdMetaDataModel;
import com.yihu.ehr.standard.service.bo.AdapterVersion;
import com.yihu.ehr.standard.service.bo.StandardVersion;
@ -75,6 +77,22 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
        return false;
    }
    public AdapterSchemeVersionModel publish(String version) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterSchemeVersionModel versionModel = objectMapper.readValue(version, AdapterSchemeVersionModel.class);
            AdapterSchemeModel adapterSchemeModel = getEhrAdapter();
            if (adapterSchemeModel != null) {
                if (versionModel.getSchemeId() == adapterSchemeModel.getId()) {
                    CrawlerManager.getInstance().setVersion(Constants.EMPTY);
                }
            }
        } catch (Exception e) {
            throw new ApiException(ErrorCode.UpdateSchemeVersionFailed);
        }
        return update(version);
    }
    public AdapterSchemeVersionModel update(String version) {
        Boolean existFlg = false;
        try {
@ -175,6 +193,12 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
        try {
            AdapterSchemeVersionModel adapterSchemeVersionModel = getEntity(AdapterSchemeVersionModel.class, versionId);
            //TODO:generate standard version file;
            AdapterSchemeModel adapterSchemeModel = getEhrAdapter();
            if (adapterSchemeModel != null) {
                if (adapterSchemeVersionModel.getSchemeId() == adapterSchemeModel.getId()) {
                    CrawlerManager.getInstance().setVersion(Constants.EMPTY);
                }
            }
            adapterSchemeVersionModel.setPublishTime(new Date());
            adapterSchemeVersionModel.setPublishUser(publisher);
            adapterSchemeVersionModel.setPublishStatus(1);
@ -352,5 +376,39 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
        sql.append(Constants.RIGHT_BRACKET);
        return sql.toString();
    }
    public String getEhrAdapterVersionLasted() {
        AdapterSchemeModel adapterSchemeModel = getEhrAdapter();
        if (adapterSchemeModel == null) {
            return Constants.EMPTY;
        }
        String adapterSchemeVersionHql = "SELECT VERSION FROM ADAPTER_SCHEME_VERSION WHERE PUBLISH_TIME=(select max(PUBLISH_TIME) from ADAPTER_SCHEME_VERSION WHERE SCHEME_ID = :schemeId)";
        Query adapterSchemeVersionQuery = getCurrentSession().createSQLQuery(adapterSchemeVersionHql);
        adapterSchemeVersionQuery.setParameter("schemeId", adapterSchemeModel.getId());
        String version = (String) adapterSchemeVersionQuery.uniqueResult();
        return version;
    }
    public AdapterSchemeModel getEhrAdapter() {
        String paramSql = "select s.param_value from system_param s where s.param_key = '"+Constants.STANDARD_EHR+"'";
        Query paramQuery = getCurrentSession().createSQLQuery(paramSql);
        String code = (String) paramQuery.uniqueResult();
        if (StringUtil.isEmpty(code)) {
            return null;
        }
        String standardHql = "FROM StandardModel WHERE code = :code";
        Query standardQuery = getCurrentSession().createQuery(standardHql);
        standardQuery.setParameter("code", code);
        StandardModel standardModel = (StandardModel) standardQuery.uniqueResult();
        if (standardModel == null) {
            return null;
        }
        String adapterSchemeHql = "FROM AdapterSchemeModel WHERE adapterStdId = :adapterStdId";
        Query adapterSchemeQuery = getCurrentSession().createQuery(adapterSchemeHql);
        adapterSchemeQuery.setParameter("adapterStdId", standardModel.getId());
        AdapterSchemeModel adapterSchemeModel = (AdapterSchemeModel) adapterSchemeQuery.uniqueResult();
        return adapterSchemeModel;
    }
}

+ 45 - 71
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardService.java

@ -9,16 +9,15 @@ import com.yihu.ehr.framework.exception.ApiException;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.model.standard.resultModel.StandardResultDetailModel;
import com.yihu.ehr.system.dao.intf.IOrganizationDao;
import com.yihu.ehr.system.model.SystemOrganization;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -61,7 +60,7 @@ public class StandardService extends SQLGeneralDAO {
                this.add(standardModel);
                return standardModel;
            }
        } catch (IOException e) {
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (existCodeFlg) {
@ -110,11 +109,7 @@ public class StandardService extends SQLGeneralDAO {
            }
            existFlg = existStandardVersionValid(standardModel.getId());
            if (!publishedFlg && !existFlg) {
                Session session = getCurrentSession();
                String sql = "delete from " + StandardModel.TABLE_NAME + " where id = :id";
                Query query = session.createSQLQuery(sql);
                query.setLong("id", standardId);
                query.executeUpdate();
                deleteEntity(StandardModel.class, standardId);
                return;
            }
        } catch (Exception e) {
@ -167,7 +162,7 @@ public class StandardService extends SQLGeneralDAO {
            }
            return standardModel;
        } catch (IOException e) {
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (existCodeFlg) {
@ -181,23 +176,19 @@ public class StandardService extends SQLGeneralDAO {
    public StandardModel get(Integer standardId) {
        try {
            SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
            sqlCreator.equalCondition("id", standardId);
            String sql = sqlCreator.selectData(StandardModel.TABLE_NAME);
            Query query = getQuery(sqlCreator, sql);
            return (StandardModel) query.uniqueResult();
        } catch (DataAccessException e) {
            return getEntity(StandardModel.class, standardId);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardGetFailed);
    }
    public List<Object[]> getSysParamList() {
        String paramSql = "select s.param_value,s.org_id from system_param s where s.param_key = '"+ Constants.STANDARD+"'";
    public String getSysParamList() {
        String paramSql = "select s.param_value from system_param s where s.param_key = '"+ Constants.STANDARD +"'";
        Query paramQuery = getCurrentSession().createSQLQuery(paramSql);
        List<Object[]> list = paramQuery.list();
        return list;
        String code = (String) paramQuery.uniqueResult();
        return code;
    }
    public List<StandardResultDetailModel> getStandardListFormat(List<SystemOrganization> publisherModelList,
@ -296,25 +287,21 @@ public class StandardService extends SQLGeneralDAO {
                e.printStackTrace();
            }
        }
        List<Object[]> list = getSysParamList();
        String code = StringUtil.toString(list.get(0)[0]);
        String publishOrgCode = StringUtil.toString(list.get(0)[1]);
        String code = getSysParamList();
        String publisherHql = "FROM SystemOrganization";
        SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
        if (type == 0) {
            sqlCreator.equalCondition("code", code);
            publisherHql = publisherHql + " WHERE code = :code";
        } else {
            sqlCreator.neCondition("code", code);
            publisherHql = publisherHql + " WHERE code != :code";
        }
        Query query = getCurrentSession().createQuery(publisherHql);
        query.setParameter("code", publishOrgCode);
        List<SystemOrganization> publisherModelList = query.list();
        String sql = sqlCreator.selectData(StandardModel.TABLE_NAME);
        Query sessionQuery = getQuery(sqlCreator, sql);
        List<StandardModel> standardModelList = sessionQuery.list();
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardModel.class);
        if (type == 0) {
            criteria.add(Restrictions.eq("code", code));
        } else if (type == 1) {
            criteria.add(Restrictions.ne("code", code));
        }
        List<StandardModel> standardModelList = criteria.list();
        Map<String, String> codeToIdMap = new HashMap<>();
        List<Integer> idList = new ArrayList<>();
        for (StandardModel standardModel : standardModelList) {
@ -358,60 +345,47 @@ public class StandardService extends SQLGeneralDAO {
        throw new ApiException(ErrorCode.StandardForkFailed);
    }
    private void update(StandardModel standardModel) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(standardModel));
        SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
        String sql = sqlCreator.updateDataByTableKey(StandardModel.TABLE_NAME, jsonNode);
        Query query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    private void update(StandardModel standardModel) throws Exception {
        updateEntity(standardModel);
    }
    private void add(StandardModel standardModel) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        Session session = getCurrentSession();
        String sql = "select max(id) from " + StandardModel.TABLE_NAME;
        Query query = session.createSQLQuery(sql);
        Object object = query.uniqueResult();
        standardModel.setId(object == null ? 1 : Integer.parseInt(object.toString()) + 1);
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(standardModel));
        SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
        sql = sqlCreator.insertData(StandardModel.TABLE_NAME, jsonNode);
        query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    private void add(StandardModel standardModel) throws Exception {
        saveEntity(standardModel);
    }
    private List<StandardModel> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StandardModel.class);
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardModel.class);
        for (String key : query.keySet()) {
            if (key.equals("type")) {
                Integer type = Integer.parseInt(query.get(key));
                List<Object[]> list = getSysParamList();
                String code = StringUtil.toString(list.get(0)[0]);
                String code = getSysParamList();
                if (type == 0) {
                    sqlCreator.equalCondition("code", code);
                    criteria.add(Restrictions.eq("code", code));
                } else if (type == 1) {
                    sqlCreator.neCondition("code", code);
                    criteria.add(Restrictions.ne("code", code));
                }
            } else {
                sqlCreator.equalCondition(key, query.get(key));
                criteria.add(Restrictions.eq(key, query.get(key)));
            }
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
        }
        String sql = sqlCreator.selectData(StandardModel.TABLE_NAME);
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
            sessionQuery.setMaxResults(limit);
            criteria.setMaxResults(limit);
            if (offset != null) {
                sessionQuery.setFirstResult((offset - 1) * limit);
                criteria.setFirstResult((offset - 1) * limit);
            }
        }
        if (order != null) {
            for (String key : order.keySet()) {
                if (order.get(key).equals(Constants.ASC)) {
                    criteria.addOrder(Order.asc(key));
                } else if (order.get(key).equals(Constants.DESC)) {
                    criteria.addOrder(Order.desc(key));
                }
            }
        }
        return (List<StandardModel>) sessionQuery.list();
        return (List<StandardModel>) criteria.list();
    }
    public boolean existStandardVersionValid(Integer standardId) {

+ 27 - 21
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StandardVersionService.java

@ -10,9 +10,14 @@ import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.standard.service.bo.StandardVersion;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -209,11 +214,12 @@ public class StandardVersionService extends SQLGeneralDAO {
    }
    private StandardVersionModel myGet(Integer versionId) {
        SqlCreator sqlCreator = new SqlCreator(StandardVersionModel.class);
        sqlCreator.equalCondition("id", versionId);
        String sql = sqlCreator.selectData(StandardVersionModel.TABLE_NAME);
        Query query = getQuery(sqlCreator, sql);
        return (StandardVersionModel) query.uniqueResult();
        try {
            return (StandardVersionModel) getEntity(StandardVersionModel.class, versionId);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    private void delete(StandardVersionModel standardVersionModel) throws Exception {
@ -242,26 +248,27 @@ public class StandardVersionService extends SQLGeneralDAO {
    }
    private List<StandardVersionModel> getList(Integer standardId, Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StandardVersionModel.class);
        sqlCreator.equalCondition("standardId", standardId);
        sqlCreator.equalCondition("publishStatus", 1);
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardVersionModel.class);
        criteria.add(Restrictions.eq("standardId", standardId));
        criteria.add(Restrictions.eq("publishStatus", 1));
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
        }
        String sql = sqlCreator.selectData(StandardVersionModel.TABLE_NAME);
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
            sessionQuery.setMaxResults(limit);
            criteria.setMaxResults(limit);
            if (offset != null) {
                sessionQuery.setFirstResult((offset - 1) * limit);
                criteria.setFirstResult((offset - 1) * limit);
            }
        }
        return (List<StandardVersionModel>) sessionQuery.list();
        if (order != null) {
            for (String key : order.keySet()) {
                if (order.get(key).equals(Constants.ASC)) {
                    criteria.addOrder(Order.asc(key));
                } else if (order.get(key).equals(Constants.DESC)) {
                    criteria.addOrder(Order.desc(key));
                }
            }
        }
        return (List<StandardVersionModel>) criteria.list();
    }
    private void deleteVersionTables(StandardVersion version) {
@ -323,7 +330,6 @@ public class StandardVersionService extends SQLGeneralDAO {
        }
        for (int i = 0; i < baseTables.length; ++i) {
            String baseTable = baseTables[i];
            String newTable = newTables[i];
            updateSql.add(Constants.UPDATE + newTable + Constants.SET + " STD_ID = " + standardId);
        }

+ 29 - 50
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDACatalogService.java

@ -1,22 +1,21 @@
package com.yihu.ehr.standard.service.standard;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.exception.ApiException;
import com.yihu.ehr.framework.util.operator.NumberUtil;
import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StdCDACatalogModel;
import org.hibernate.Query;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.springframework.dao.DataAccessException;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@ -58,7 +57,7 @@ public class StdCDACatalogService extends SQLGeneralDAO {
            this.add(standardModel);
            return standardModel.getId();
        } catch (IOException e) {
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -71,7 +70,7 @@ public class StdCDACatalogService extends SQLGeneralDAO {
                StdCDACatalogModel stdCdaCatalogModel = get(catalogId);
                deleteEntity(stdCdaCatalogModel);
            }
        } catch (DataAccessException e) {
        } catch (Exception e) {
            throw new ApiException(ErrorCode.StandardCDACatalogDeleteFailed);
        }
    }
@ -83,7 +82,7 @@ public class StdCDACatalogService extends SQLGeneralDAO {
            this.update(standardModel);
            return standardModel;
        } catch (IOException e) {
        } catch (Exception e) {
            e.printStackTrace();
        }
@ -92,64 +91,44 @@ public class StdCDACatalogService extends SQLGeneralDAO {
    public StdCDACatalogModel get(Integer catalogId) {
        try {
            Integer id = NumberUtil.toInteger(catalogId);
            if (id != null) {
                SqlCreator sqlCreator = new SqlCreator(StdCDACatalogModel.class);
                sqlCreator.equalCondition("id",catalogId);
                String sql = sqlCreator.selectData(StdCDACatalogModel.TABLE_NAME);
                Query query = getQuery(sqlCreator, sql);
                return (StdCDACatalogModel) query.uniqueResult();
            }
        } catch (DataAccessException e) {
            return getEntity(StdCDACatalogModel.class, catalogId);
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new ApiException(ErrorCode.StandardCDACatalogGetFailed);
    }
    private void update(StdCDACatalogModel stdCDACatalogModel) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(stdCDACatalogModel));
        SqlCreator sqlCreator = new SqlCreator(StdCDACatalogModel.class);
        String sql = sqlCreator.updateDataByTableKey(StdCDACatalogModel.TABLE_NAME, jsonNode);
        Query query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    private void update(StdCDACatalogModel stdCDACatalogModel) throws Exception {
        updateEntity(stdCDACatalogModel);
    }
    private void add(StdCDACatalogModel stdCDACatalogModel) throws IOException {
        ObjectMapper objectMapper = new ObjectMapper();
        Session session = getCurrentSession();
        String sql = "select max(id) from " + StdCDACatalogModel.TABLE_NAME;
        Query query = session.createSQLQuery(sql);
        Object object = query.uniqueResult();
        stdCDACatalogModel.setId(object == null ? 1 : Integer.parseInt(object.toString()) + 1);
        JsonNode jsonNode = objectMapper.readTree(objectMapper.writeValueAsString(stdCDACatalogModel));
        SqlCreator sqlCreator = new SqlCreator(StdCDACatalogModel.class);
        sql = sqlCreator.insertData(StdCDACatalogModel.TABLE_NAME, jsonNode);
        query = getExeuteQuery(sqlCreator, sql);
        query.executeUpdate();
    private void add(StdCDACatalogModel stdCDACatalogModel) throws Exception {
        saveEntity(stdCDACatalogModel);
    }
    private List<StdCDACatalogModel> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdCDACatalogModel.class);
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));
        }
        for (String key : order.keySet()) {
            sqlCreator.order(key, order.get(key));
            criteria.add(Restrictions.eq(key, query.get(key)));
        }
        String sql = sqlCreator.selectData(StdCDACatalogModel.TABLE_NAME);
        Query sessionQuery = getQuery(sqlCreator, sql);
        if (limit != null) {
            sessionQuery.setMaxResults(limit);
            criteria.setMaxResults(limit);
            if (offset != null) {
                sessionQuery.setFirstResult((offset - 1) * limit);
                criteria.setFirstResult((offset - 1) * limit);
            }
        }
        if (order != null) {
            for (String key : order.keySet()) {
                if (order.get(key).equals(Constants.ASC)) {
                    criteria.addOrder(Order.asc(key));
                } else if (order.get(key).equals(Constants.DESC)) {
                    criteria.addOrder(Order.desc(key));
                }
            }
        }
        return (List<StdCDACatalogModel>) sessionQuery.list();
        return (List<StdCDACatalogModel>) criteria.list();
    }
}

+ 0 - 9
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdPublisherService.java

@ -1,21 +1,12 @@
package com.yihu.ehr.standard.service.standard;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.ehr.framework.common.dao.SQLGeneralDAO;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.constrant.ErrorCode;
import com.yihu.ehr.framework.exception.ApiException;
import com.yihu.ehr.framework.util.operator.CollectionUtil;
import com.yihu.ehr.framework.util.operator.StringUtil;
import com.yihu.ehr.framework.util.sql.RequestParamTransformer;
import com.yihu.ehr.framework.util.sql.SqlCreator;
import com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel;
import com.yihu.ehr.standard.model.standard.StandardModel;
import com.yihu.ehr.standard.model.standard.StandardVersionModel;
import com.yihu.ehr.system.model.SystemOrganization;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

+ 20 - 0
Hos-resource/src/main/resources/hbm/resource/AdapterScheme.hbm.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.yihu.ehr.standard.model.adapter.AdapterSchemeModel" table="adapter_scheme">
        <id name="id" column="id">
            <generator class="increment"/>
        </id>
        <property name="parentId" column="parent_id"/>
        <property name="name" column="name"/>
        <property name="type" column="type"/>
        <property name="description" column="description"/>
        <property name="status" column="status"/>
        <property name="stdId" column="std_id"/>
        <property name="stdVersion" column="std_version"/>
        <property name="adapterStdId" column="adapter_std_id"/>
        <property name="adapterStdVersion" column="adapter_std_version"/>
        <property name="adapterPublisherOrgCode" column="adapter_publisher_org_code"/>
    </class>
</hibernate-mapping>

+ 18 - 0
Hos-resource/src/main/resources/hbm/resource/AdapterSchemeVersion.hbm.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.yihu.ehr.standard.model.adapter.AdapterSchemeVersionModel" table="adapter_scheme_version">
        <id name="id" column="id">
            <generator class="increment"/>
        </id>
        <property name="schemeId" column="scheme_id"/>
        <property name="name" column="name"/>
        <property name="version" column="version"/>
        <property name="publishTime" column="publish_time"/>
        <property name="publishUser" column="publish_user"/>
        <property name="baseVersion" column="base_version"/>
        <property name="publishStatus" column="publish_status"/>
        <property name="path" column="path"/>
    </class>
</hibernate-mapping>

+ 18 - 0
Hos-resource/src/main/resources/hbm/resource/Standard.hbm.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.yihu.ehr.standard.model.standard.StandardModel" table="std_info">
        <id name="id" column="id">
            <generator class="increment"/>
        </id>
        <property name="name" column="name"/>
        <property name="code" column="code"/>
        <property name="publisher" column="publisher"/>
        <property name="publisherOrgCode" column="publisher_org_code"/>
        <property name="summary" column="summary"/>
        <property name="refStandard" column="ref_standard"/>
        <property name="refStandardVersion" column="ref_standard_version"/>
        <property name="versionStatus" column="version_status"/>
    </class>
</hibernate-mapping>

+ 19 - 0
Hos-resource/src/main/resources/hbm/resource/StandardVersion.hbm.xml

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.yihu.ehr.standard.model.standard.StandardVersionModel" table="std_version">
        <id name="id" column="id">
            <generator class="increment"/>
        </id>
        <property name="name" column="name"/>
        <property name="version" column="version"/>
        <property name="standardId" column="std_id"/>
        <property name="publishTime" column="publish_time"/>
        <property name="publishUser" column="publish_user"/>
        <property name="baseVersion" column="base_version"/>
        <property name="primaryVersion" column="primary_version"/>
        <property name="publishStatus" column="publish_status"/>
        <property name="path" column="path"/>
    </class>
</hibernate-mapping>