소스 검색

esb拉模式采集逻辑修改

lingfeng 9 년 전
부모
커밋
4290b45381
31개의 변경된 파일192개의 추가작업 그리고 194개의 파일을 삭제
  1. 2 1
      Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java
  2. 4 0
      Hos-Framework/src/main/java/com/yihu/ehr/framework/constrant/Constants.java
  3. 27 0
      Hos-Framework/src/main/java/com/yihu/ehr/framework/util/DateUtil.java
  4. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/crawler/format/DataSetTransformer.java
  5. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/crawler/format/DocumentTransformer.java
  6. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/crawler/format/IDataTransformer.java
  7. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/crawler/model/adapter/AdapterDataSet.java
  8. 4 4
      Hos-resource/src/main/java/com/yihu/ehr/crawler/model/adapter/AdapterDict.java
  9. 7 33
      Hos-resource/src/main/java/com/yihu/ehr/crawler/model/config/SysConfig.java
  10. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/crawler/origin/FileSystemOrigin.java
  11. 0 2
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerFlowManager.java
  12. 11 5
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerManager.java
  13. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerService.java
  14. 13 11
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/DataCollectDispatcher.java
  15. 7 8
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/EsbHttp.java
  16. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/OldPatientCDAUpload.java
  17. 5 5
      Hos-resource/src/main/java/com/yihu/ehr/crawler/service/PatientCDAUpload.java
  18. 7 17
      Hos-resource/src/main/java/com/yihu/ehr/crawler/storage/DocumentStorage.java
  19. 0 5
      Hos-resource/src/main/java/com/yihu/ehr/crawler/storage/IDataStorage.java
  20. 25 43
      Hos-resource/src/main/java/com/yihu/ehr/crawler/storage/MongodbStorage.java
  21. 12 8
      Hos-resource/src/main/java/com/yihu/ehr/job/service/ArchiveUploadJob.java
  22. 41 25
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/adapter/AdapterSchemeVersionService.java
  23. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDACatalogService.java
  24. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDADatasetService.java
  25. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDAService.java
  26. 1 1
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDatasetCatalogService.java
  27. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDatasetService.java
  28. 3 3
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDictEntryService.java
  29. 3 3
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDictService.java
  30. 3 3
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdMetadataService.java
  31. 2 2
      Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdPublisherService.java

+ 2 - 1
Hos-Framework/src/main/java/com/yihu/ehr/framework/common/dao/SQLGeneralDAO.java

@ -2,6 +2,7 @@ package com.yihu.ehr.framework.common.dao;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.JsonNodeType;
import com.yihu.ehr.framework.constrant.Constants;
import com.yihu.ehr.framework.model.DataGridResult;
import com.yihu.ehr.framework.util.log.LogService;
@ -339,7 +340,7 @@ public class SQLGeneralDAO implements XSQLGeneralDAO {
                while (fieldNames.hasNext()) {
                    String fieldName = fieldNames.next();
                    String value = jsonNode.get(fieldName).asText();
                    if (NumberUtil.isInteger(value)) {
                    if (jsonNode.get(fieldName).getNodeType().equals(JsonNodeType.NUMBER)) {
                        sqlCreator.equalCondition(fieldName, Integer.parseInt(value));
                    } else {
                        sqlCreator.equalCondition(fieldName, value);

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

@ -74,6 +74,10 @@ public class Constants {
    public static final Integer NUMBER_ZREO = 0;
    public static final Integer NUMBER_ONE = 1;
    public static final String PATIENT_ID = "patient_id";
    public static final String EVENT_NO = "event_no";
    public static final String EVENT_TIME = "event_time";
    public static final String ORG_CODE = "rscom_org_code";
    public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
    public static final String ORACLE_DRIVER = "oracle.jdbc.driver.OracleDriver";
    public static final String SQLSERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

+ 27 - 0
Hos-Framework/src/main/java/com/yihu/ehr/framework/util/DateUtil.java

@ -2,6 +2,7 @@ package com.yihu.ehr.framework.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@ -9,6 +10,7 @@ import java.util.GregorianCalendar;
public class DateUtil {
    public static final String DEFAULT_DATE_YMD_FORMAT = "yyyy-MM-dd";
    /**
     * 日期比较,判断endDate - fromDate 是否超过expiresIn,是则返回true,否则返回false.
     *
@ -128,4 +130,29 @@ public class DateUtil {
        }
    }
    public static java.sql.Date formatCharDateYMD(String str) {
        return formatCharDateYMD(str, DEFAULT_DATE_YMD_FORMAT);
    }
    public static java.sql.Date formatCharDateYMD(String str, String format) {
        if (str == null || str.trim().length() == 0) {
            return null;
        }
        if (format == null) {
            throw new IllegalArgumentException("The value of an argument is inaccurate.");
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        ParsePosition pos = new ParsePosition(0);
        java.util.Date date = sdf.parse(str, pos);
        if (date == null) {
            return null;
        }
        return new java.sql.Date(date.getTime());
    }
}  

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/format/DataSetTransformer.java

@ -68,9 +68,9 @@ public class DataSetTransformer implements IDataTransformer {
    }
    @Override
    public String getData() {
    public String getData(String orgCode) {
        //确保文档有版本信息
        String version=EsbHttp.getRemoteVersion(SysConfig.getInstance().getOrgCode());
        String version = EsbHttp.getRemoteVersion(orgCode);
        jsonObject.put("inner_version", version);//TODO 获取远程版本号
        return jsonObject.asText();
    }

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/format/DocumentTransformer.java

@ -39,7 +39,7 @@ public class DocumentTransformer implements IDataTransformer  {
    }
    @Override
    public String getData() {
    public String getData(String orgCode) {
        return jsonObject.asText();
    }

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/format/IDataTransformer.java

@ -13,7 +13,7 @@ public interface IDataTransformer {
    boolean transfer();
    String getData();
    String getData(String orgCode);
    void setData(String data);

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/adapter/AdapterDataSet.java

@ -39,8 +39,8 @@ public class AdapterDataSet {
    public List<AdapterMetaData> getAdapterMetaDataList() {
        if (CollectionUtil.isEmpty(adapterMetaDataList)) {
            adapterMetaDataList = new ArrayList<>();
            Map<String,String> condition = new HashMap<String,String>();
            condition.put("stdDatasetId", StringUtil.toString(adapterDatasetModel.getStdDatasetId()));
            Map<String, Object> condition = new HashMap<>();
            condition.put("stdDatasetId", adapterDatasetModel.getStdDatasetId());
            JSONObject jsonpObject = JSONObject.fromObject(condition);
            AdapterMetadataService metadataService = SpringBeanUtil.getService(AdapterMetadataService.BEAN_ID);
            List<AdapterMetadataModel> adapterMetaDataModelList = metadataService.getList(AdapterMetadataModel.class, adapterVersion.getMetaDataTableName(), jsonpObject.toString(), null, null, null);

+ 4 - 4
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/adapter/AdapterDict.java

@ -42,8 +42,8 @@ public class AdapterDict extends AdapterBase {
    public String getEhrDictEntryCodeByValue(String esbDictEntryValue) {
        Map<String,String> condition = new HashMap<String,String>();
        condition.put("stdDictId", StringUtil.toString(adapterDictModel.getStdDictId()));
        Map<String, Object> condition = new HashMap<>();
        condition.put("stdDictId", adapterDictModel.getStdDictId());
        condition.put("stdEntryValue", esbDictEntryValue);
        JSONObject jsonpObject = JSONObject.fromObject(condition);
        AdapterDictEntryService adapterDictEntryService = SpringBeanUtil.getService(AdapterDictEntryService.BEAN_ID);
@ -58,8 +58,8 @@ public class AdapterDict extends AdapterBase {
    }
    public String getEhrDictEntryValueByCode(String esbDictEntryCode) {
        Map<String,String> condition = new HashMap<String,String>();
        condition.put("stdDictId", StringUtil.toString(adapterDictModel.getStdDictId()));
        Map<String, Object> condition = new HashMap<>();
        condition.put("stdDictId", adapterDictModel.getStdDictId());
        condition.put("stdEntryCode", esbDictEntryCode);
        JSONObject jsonpObject = JSONObject.fromObject(condition);
        AdapterDictEntryService adapterDictEntryService = SpringBeanUtil.getService(AdapterDictEntryService.BEAN_ID);

+ 7 - 33
Hos-resource/src/main/java/com/yihu/ehr/crawler/model/config/SysConfig.java

@ -17,19 +17,18 @@ import java.util.Map;
public class SysConfig {
    public static final String HOS_RESOURCES_CONFIG = "/config/sys.config.xml";
    public static String publicKey;
    public static String orgCode;
    public static Map<String, String> publicKeyMap;
    public static String tempFile;
    public static String registerDataSet;
    public static String registerIdCardNo;
    private static volatile SysConfig instance = null;
    private HashMap<String, PatientIdentity> patientIdentityHashMap;
    private String storagePattern;
    private Map<String, PatientIndex> patientIndexMap;//病人摘要信息内容
    private SysConfig() {
        patientIdentityHashMap = new HashMap<>();
        patientIndexMap = new HashMap<>();
        publicKeyMap = new HashMap<>();
        init();
    }
@ -54,14 +53,6 @@ public class SysConfig {
    }
    public IDataStorage.StorageMode getStoragePattern() {
        if ("0".equals(storagePattern)) {
            return IDataStorage.StorageMode.DISTRIBUTE;
        }
        return IDataStorage.StorageMode.CENTRALIZATION;
    }
    public String getTempFile() {
        return this.tempFile;
    }
@ -70,14 +61,6 @@ public class SysConfig {
        this.tempFile = tempFile;
    }
    public String getPublicKey() {
        return publicKey;
    }
    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }
    public PatientIdentity getPatientIdentity(String dataSetCode) {
        return patientIdentityHashMap.get(dataSetCode);
    }
@ -98,6 +81,10 @@ public class SysConfig {
        return patientIndexMap;
    }
    public static Map<String, String> getPublicKeyMap() {
        return publicKeyMap;
    }
    private Document getDocument() throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = null;
@ -125,11 +112,7 @@ public class SysConfig {
            this.initCrawler(rootElement);
            this.initEventNo(rootElement);
            this.initPatientIndex(rootElement);
            String pattern = rootElement.elementTextTrim("storage_pattern");
            if (!StringUtil.isEmpty(pattern)) {
                this.storagePattern = pattern;
            }
//            this.initPatientIndex(rootElement);
        } catch (Exception e) {
            LogService.getLogger().error(e.getCause().toString());
        }
@ -198,13 +181,4 @@ public class SysConfig {
            }
        }
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getOrgCode() {
        return orgCode;
    }
}//end SysConfig

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/origin/FileSystemOrigin.java

@ -55,7 +55,7 @@ public class FileSystemOrigin implements IDataOrigin {
    public String fecthData(Patient patient, SystemDatasource orgAgencyOrigin, AdapterDataSet adapterDataSet) {
        try {
            String data = null;
            String innerVersion= EsbHttp.getRemoteVersion(SysConfig.getInstance().getOrgCode());
            String innerVersion= EsbHttp.getRemoteVersion(patient.getOrgCode());
            List<String> datas = null;
            String agencyCode = patient.getOrgCode();
            String ftpConfig = orgAgencyOrigin.getConfig();

+ 0 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerFlowManager.java

@ -67,7 +67,6 @@ public class CrawlerFlowManager {
        Integer count = 0;
        Integer totalCount = 0;
        Map<String, Object> condition = new HashMap<>();
        condition.put("orgCode", SysConfig.getInstance().orgCode);
        patientList = dispatch.getPatientList(condition, adapterDataSetMap);
        if (!CollectionUtil.isEmpty(patientList)) {
            totalCount = patientList.size();
@ -81,7 +80,6 @@ public class CrawlerFlowManager {
    }
    public String collectProcess(Patient patient) {
        SysConfig.getInstance().setOrgCode(patient.getOrgCode());
        String message;
        if (!getDataForPrepare()) {
            message = "适配数据尚未准备";

+ 11 - 5
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerManager.java

@ -53,11 +53,15 @@ public class CrawlerManager {
        return instance;
    }
    public String dataCrawler() {
    public String dataCrawler(Map<String, Object> condition) {
        Integer count = 0;
        Integer totalCount = 0;
        Map<String, Object> condition = new HashMap<>();
        condition.put("orgCode", SysConfig.getInstance().orgCode);
        String message;
        if (!getDataForPrepare()) {
            message = "适配数据尚未准备";
            LogService.getLogger().error(message);
            return message;
        }
        List<Patient> patientList = dispatch.getPatientList(condition, adapterDataSetMap);
        if (!CollectionUtil.isEmpty(patientList)) {
            totalCount = patientList.size();
@ -65,14 +69,13 @@ public class CrawlerManager {
                collectProcess(patient);
            }
        }
        String message = "本次采集病人共" + totalCount + "条,成功采集信息"+ count + "条";
        message = "本次采集病人共" + totalCount + "条,成功采集信息"+ count + "条";
        LogService.getLogger().info(message);
        return message;
    }
    //单个病人采集上传
    public String collectProcess(Patient patient) {
        SysConfig.getInstance().setOrgCode(patient.getOrgCode());
        String message;
        if (!getDataForPrepare()) {
            message = "适配数据尚未准备";
@ -95,6 +98,9 @@ public class CrawlerManager {
                 * 获取数据
                 */
                AdapterDataSet adapterDataSet = adapterDataSetMap.get(key);
                if (patient.getEventNo().equals("1001000001")) {
                    System.out.println("123");
                }
                String data = dispatch.fecthData(patient, adapterDataSet);
                if (StringUtil.isEmpty(data)) {
                    continue;

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/CrawlerService.java

@ -177,7 +177,7 @@ public class CrawlerService {
                    AdapterVersion adapterVersion = new AdapterVersion(versionModel.getVersion());
                    //删除已存在的数据集
                    crawlerDatasetDao.deleteCrawlerDatasetList(versionModel.getId());
                    List<AdapterDatasetModel> adapterDatasetModelList = new ArrayList<>();
                    List<AdapterDatasetModel> adapterDatasetModelList;
                    //根据id字符串获取编排数据集
                    if (obj.containsKey("dataSets")) {
                        List<Integer> newDatasetIdList = new ArrayList<>();

+ 13 - 11
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/DataCollectDispatcher.java

@ -96,14 +96,16 @@ public class DataCollectDispatcher {
                    Iterator<JsonNode> array = patientNode.iterator();
                    while (array.hasNext()) {
                        JsonNode node = array.next();
                        Patient patientT = new Patient();
                        String patientId = node.path(propertyMap.get("patient_id")).asText();
                        String eventNo = node.path(propertyMap.get("event_no")).asText();
                        String refTime = node.path(propertyMap.get("event_time")).asText();
                        patientT.setPatientId(patientId);
                        patientT.setEventNo(eventNo);
                        patientT.setReferenceTime(refTime);
                        patientList.add(patientT);
                        Patient patient = new Patient();
                        String patientId = node.path(propertyMap.get(Constants.PATIENT_ID)).asText();
                        String eventNo = node.path(propertyMap.get(Constants.EVENT_NO)).asText();
                        String refTime = node.path(propertyMap.get(Constants.EVENT_TIME)).asText();
                        String orgCode = node.path(Constants.ORG_CODE.toUpperCase()).asText();
                        patient.setPatientId(patientId);
                        patient.setEventNo(eventNo);
                        patient.setReferenceTime(refTime);
                        patient.setOrgCode(orgCode);
                        patientList.add(patient);
                    }
                }
            } catch (Exception e) {
@ -120,7 +122,7 @@ public class DataCollectDispatcher {
        if (adapterDataSet.isHavePatientID()) {
            AdapterMetaData adapterMetaData = adapterDataSet.getAdapterMetaDataMap().get(PatientIdentity.getPatientIDCode());
            propertyMap.put("patient_id", adapterMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
            propertyMap.put(Constants.PATIENT_ID, adapterMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
        } else {
            LogService.getLogger().error("", new Exception("采集病人列表数据集必须有patient_id."));
@ -129,7 +131,7 @@ public class DataCollectDispatcher {
        if (adapterDataSet.isHaveEventNo()) {
            AdapterMetaData adapterMetaData = adapterDataSet.getAdapterMetaDataMap().get(patientIdentity.getEventNoCode());
            propertyMap.put("event_no",  adapterMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
            propertyMap.put(Constants.EVENT_NO,  adapterMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
        } else {
            LogService.getLogger().error("采集病人列表数据集必须有event_no.");
            return null;
@ -141,7 +143,7 @@ public class DataCollectDispatcher {
            return null;
        }
        propertyMap.put("event_time", adapterRefMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
        propertyMap.put(Constants.EVENT_TIME, adapterRefMetaData.getAdapterMetadataModel().getStdMetadataCode().toUpperCase());
        return propertyMap;
    }

+ 7 - 8
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/EsbHttp.java

@ -177,13 +177,12 @@ public class EsbHttp {
        /**
         * 获取公钥
         */
    public static String getPublicKey(){
    public static String getPublicKey(String orgCode){
        try {
            String token = getToken();
            if (SysConfig.getInstance().getPublicKey() != null) {
                return SysConfig.getInstance().getPublicKey();
            if (!StringUtil.isEmpty(SysConfig.getInstance().getPublicKeyMap().get(orgCode))) {
                return SysConfig.getInstance().getPublicKeyMap().get(orgCode);
            }
            String orgCode = SysConfig.getInstance().getOrgCode();
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);
            Map<String, Object> paramMap = new HashMap<>();
@ -195,9 +194,9 @@ public class EsbHttp {
                JSONObject json = new JSONObject(response.getBody());
                if(json.has("publicKey"))
                {
                    String key = json.getString("publicKey");
                    SysConfig.getInstance().setPublicKey(key);
                    return key;
                    String publicKey = json.getString("publicKey");
                    SysConfig.getInstance().getPublicKeyMap().put(orgCode, publicKey);
                    return publicKey;
                }
                else{
                    LogService.getLogger().info("获取公钥失败,返回未包含publicKey。");
@ -322,7 +321,7 @@ public class EsbHttp {
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", SysConfig.getInstance().getOrgCode()));
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);

+ 2 - 2
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/OldPatientCDAUpload.java

@ -75,7 +75,7 @@ public class OldPatientCDAUpload {
            String filePath = patientCDAIndex.createIndex(PatientCDAIndex.IndexType.ZIP, PatientCDAIndex.FileType.ZIP);
            UUID uuidPwd = UUID.randomUUID();
            String pwd = uuidPwd.toString();
            Key key = RSA.genPublicKey(SysConfig.getInstance().getPublicKey());
            Key key = RSA.genPublicKey(SysConfig.getInstance().getPublicKeyMap().get(patient.getOrgCode()));
            if (key == null) {
                LogService.getLogger().info("压缩文件错误,无公钥信息.");
                FileUtil.deleteDirectory(new File( patientCDAIndex.getDirectory()));
@ -106,7 +106,7 @@ public class OldPatientCDAUpload {
            List<NameValuePair> formParams = new ArrayList<>();
            formParams.add(new BasicNameValuePair("md5", fileMd5));
            formParams.add(new BasicNameValuePair("package_crypto", zipFile.encryptPwd));
            formParams.add(new BasicNameValuePair("org_code", SysConfig.getInstance().getOrgCode()));
            formParams.add(new BasicNameValuePair("org_code", patient.getOrgCode()));
            formParams.add(new BasicNameValuePair("token", token));
            Map<String, Object> header = new HashMap<>();
            header.put("Authorization", "Basic " + HttpHelper.clientKey);

+ 5 - 5
Hos-resource/src/main/java/com/yihu/ehr/crawler/service/PatientCDAUpload.java

@ -67,13 +67,13 @@ public class PatientCDAUpload {
            String filePath = patientCDAIndex.createIndex(PatientCDAIndex.IndexType.ZIP, PatientCDAIndex.FileType.ZIP);
            UUID uuidPwd = UUID.randomUUID();
            String pwd = uuidPwd.toString();
            String PublicKey = SysConfig.getInstance().getPublicKey();
            if(PublicKey== null ||  PublicKey.length() == 0) {
                PublicKey = EsbHttp.getPublicKey();
                SysConfig.getInstance().setPublicKey(PublicKey);
            String publicKey = SysConfig.getInstance().getPublicKeyMap().get(patient.getOrgCode());
            if(publicKey== null ||  publicKey.length() == 0) {
                publicKey = EsbHttp.getPublicKey(patient.getOrgCode());
                SysConfig.getInstance().getPublicKeyMap().put(patient.getOrgCode(), publicKey);
            }
            Key key = RSA.genPublicKey(PublicKey);
            Key key = RSA.genPublicKey(publicKey);
            if (key == null) {
                LogService.getLogger().info("压缩文件错误,获取公钥错误.");
                return null;

+ 7 - 17
Hos-resource/src/main/java/com/yihu/ehr/crawler/storage/DocumentStorage.java

@ -46,8 +46,6 @@ public class DocumentStorage extends MongodbStorage {
    public boolean save(IDataTransformer dataTransformer) {
        DocumentTransformer documentTransformer = (DocumentTransformer) dataTransformer;
        ObjectNode jsonObject = documentTransformer.getJsonObject();
        StorageMode storagePattern = SysConfig.getInstance().getStoragePattern();//模式类型
        if (jsonObject != null) {
            String dataSetCode = jsonObject.get(getKey()).asText();
@ -71,22 +69,14 @@ public class DocumentStorage extends MongodbStorage {
                String url = createUrl(dataSetCode, patientId, eventNo);
                if (storagePattern == StorageMode.DISTRIBUTE) {
                    Document updateDoc = new Document();
                    updateDoc.put("resource.url", url);
                    updateDoc.put("resource.expiry_date", null);
                    collection.updateOne(filter, new Document("$set", updateDoc));
                } else {
                    Date expiryDate = DateUtil.setDateTime(new Date(), getExpireDays().intValue());
                    SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
                    String date = sdf.format(expiryDate);
                    Document updateDoc = new Document(CREATE_AT, new Date());
                    updateDoc.put("resource.url", url);
                    updateDoc.put("resource.expiry_date", date);
                    collection.updateMany(filter, new Document("$set", updateDoc));
                }
                Date expiryDate = DateUtil.setDateTime(new Date(), getExpireDays().intValue());
                SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
                String date = sdf.format(expiryDate);
                Document updateDoc = new Document(CREATE_AT, new Date());
                updateDoc.put("resource.url", url);
                updateDoc.put("resource.expiry_date", date);
                collection.updateMany(filter, new Document("$set", updateDoc));
            } catch (Exception e) {
                //DebugLogger.fatal("保存病人档案信息至MongoDB异常:", e);
                return false;

+ 0 - 5
Hos-resource/src/main/java/com/yihu/ehr/crawler/storage/IDataStorage.java

@ -33,9 +33,4 @@ public interface IDataStorage {
        MONGODB,
        FILE_SYSTEM
    }
    enum StorageMode {
        DISTRIBUTE,
        CENTRALIZATION
    }
}

+ 25 - 43
Hos-resource/src/main/java/com/yihu/ehr/crawler/storage/MongodbStorage.java

@ -66,8 +66,6 @@ public class MongodbStorage implements IDataStorage {
    public boolean save(IDataTransformer dataTransformer) {
        DataSetTransformer dataSetTransformer = (DataSetTransformer) dataTransformer;
        ObjectNode jsonObject = dataSetTransformer.getJsonObject();
        StorageMode storagePattern = SysConfig.getInstance().getStoragePattern();//模式类型
        if (jsonObject != null) {
            String dataSetCode = jsonObject.get(getKey()).asText();
@ -86,24 +84,15 @@ public class MongodbStorage implements IDataStorage {
                updateOptions.upsert(true);
                collection.replaceOne(filter, Document.parse(jsonObject.toString()), updateOptions);
                String url = createUrl(dataSetCode, patientId, eventNo);
                Date expiryDate = DateUtil.setDateTime(new Date(), getExpireDays().intValue());
                SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
                String date = sdf.format(expiryDate);
                if (storagePattern == StorageMode.DISTRIBUTE) {
                    Document updateDoc = new Document();
                    updateDoc.put("resource.url", url);
                    updateDoc.put("resource.expiry_date", null);
                    collection.updateOne(filter, new Document("$set", updateDoc));
                } else {
                    Date expiryDate = DateUtil.setDateTime(new Date(), getExpireDays().intValue());
                    SimpleDateFormat sdf = new SimpleDateFormat(DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
                    String date = sdf.format(expiryDate);
                    Document updateDoc = new Document(CREATE_AT, new Date());
                    updateDoc.put("resource.url", url);
                    updateDoc.put("resource.expiry_date", date);
                    collection.updateMany(filter, new Document("$set", updateDoc));
                }
                Document updateDoc = new Document(CREATE_AT, new Date());
                updateDoc.put("resource.url", url);
                updateDoc.put("resource.expiry_date", date);
                collection.updateMany(filter, new Document("$set", updateDoc));
            } catch (Exception e) {
                //DebugLogger.fatal("保存病人档案信息至MongoDB异常:", e);
@ -125,8 +114,6 @@ public class MongodbStorage implements IDataStorage {
    public boolean toFile(Patient patient) {
        boolean result = true;
        PatientCDAIndex patientCDAIndex = new PatientCDAIndex(patient);
        StorageMode storagePattern = SysConfig.getInstance().getStoragePattern();
        Document datasetDoc = new Document();
        Document resultDoc = new Document();
        try {
@ -152,19 +139,14 @@ public class MongodbStorage implements IDataStorage {
                                }
                            }
                            Map<String, String> resource = (Map<String, String>) doc.get("resource");
                            if (storagePattern == StorageMode.DISTRIBUTE) {
                                //分布式 dataset 数据调阅URL生成
                                datasetDoc.put(name, resource.get("url"));
                                resultDoc.put("expiry_date", "");
                            } else {
                                datasetDoc.put(name, "");
                                resultDoc.put("expiry_date", resource.get("expiry_date"));
                                boolean writeFile = FileUtil.writeFile(filePath, doc.toJson(), "UTF-8");
                                if (!writeFile) {
                                    //DebugLogger.fatal("存储临时文件失败:" + cursor.next().toJson());
                                    result = false;
                                }
                            datasetDoc.put(name, "");
                            resultDoc.put("expiry_date", resource.get("expiry_date"));
                            boolean writeFile = FileUtil.writeFile(filePath, doc.toJson(), "UTF-8");
                            if (!writeFile) {
                                //DebugLogger.fatal("存储临时文件失败:" + cursor.next().toJson());
                                result = false;
                            }
                        } catch (IOException e) {
                            //DebugLogger.fatal("存储临时文件失败.", e);
                            result = false;
@ -176,17 +158,17 @@ public class MongodbStorage implements IDataStorage {
            }
            //摘要信息生成
            Document indexData = genPatientIndexData(patient);
            if (indexData != null) {
                resultDoc.put("dataset", datasetDoc);
                resultDoc.put("sumary", indexData);
                String indexPath = patientCDAIndex.createDataSetIndex("index", PatientCDAIndex.FileType.JSON);
                boolean writeFile = FileUtil.writeFile(indexPath, resultDoc.toJson(), "UTF-8");
                if (!writeFile) {
                    //DebugLogger.fatal("存储索引临时文件失败:" + resultDoc.toJson());
                    result = false;
                }
            }
//            Document indexData = genPatientIndexData(patient);
//            if (indexData != null) {
//                resultDoc.put("dataset", datasetDoc);
//                resultDoc.put("sumary", indexData);
//                String indexPath = patientCDAIndex.createDataSetIndex("index", PatientCDAIndex.FileType.JSON);
//                boolean writeFile = FileUtil.writeFile(indexPath, resultDoc.toJson(), "UTF-8");
//                if (!writeFile) {
//                    //DebugLogger.fatal("存储索引临时文件失败:" + resultDoc.toJson());
//                    result = false;
//                }
//            }
        } catch (Exception e) {
            //DebugLogger.fatal("", e);

+ 12 - 8
Hos-resource/src/main/java/com/yihu/ehr/job/service/ArchiveUploadJob.java

@ -1,27 +1,31 @@
package com.yihu.ehr.job.service;
import com.yihu.ehr.common.Services;
import com.yihu.ehr.datacollect.service.intf.IDatacollectService;
import com.yihu.ehr.crawler.service.CrawlerManager;
import com.yihu.ehr.datacollect.model.RsJobConfig;
import com.yihu.ehr.datacollect.service.intf.IDatacollectManager;
import com.yihu.ehr.framework.constrant.DateConvert;
import com.yihu.ehr.framework.util.springutil.SpringBeanUtil;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by hzp on 2016/5/11.
 */
public class ArchiveUploadJob implements IBaseJob {
    @Resource(name = Services.DatacollectService)
    IDatacollectService service;
    @Override
    public void execute(String jobId) throws Exception{
        
        System.out.println("档案上传quartz:"+DateConvert.toString(new Date()) + ":"+jobId);
        IDatacollectManager datacollect = SpringBeanUtil.getService(Services.Datacollect);
        RsJobConfig job = datacollect.getJobById(jobId);
        Map<String, Object> condition = new HashMap<>();
        condition.put("beginDate", job.getRepeatStartTime());
        condition.put("endDate", job.getRepeatEndTime());
        CrawlerManager.getInstance().dataCrawler(condition);
        return;
    }
}

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

@ -111,9 +111,13 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            AdapterSchemeVersionModel versionModel = objectMapper.readValue(version, AdapterSchemeVersionModel.class);
            AdapterSchemeModel adapterSchemeModel = getEhrAdapter();
            if (adapterSchemeModel != null) {
                if (versionModel.getSchemeId() == adapterSchemeModel.getId()) {
            List<AdapterSchemeModel> adapterSchemeModelList = getEhrAdapterSchemeList();
            if (!CollectionUtil.isEmpty(adapterSchemeModelList)) {
                List<Integer> schemeIdList = new ArrayList<>();
                for (AdapterSchemeModel adapterSchemeModel : adapterSchemeModelList) {
                    schemeIdList.add(adapterSchemeModel.getId());
                }
                if (schemeIdList.contains(versionModel.getSchemeId())) {
                    CrawlerManager.getInstance().setAdapterFlg(false);
                }
            }
@ -227,9 +231,13 @@ 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()) {
            List<AdapterSchemeModel> adapterSchemeModelList = getEhrAdapterSchemeList();
            if (!CollectionUtil.isEmpty(adapterSchemeModelList)) {
                List<Integer> schemeIdList = new ArrayList<>();
                for (AdapterSchemeModel adapterSchemeModel : adapterSchemeModelList) {
                    schemeIdList.add(adapterSchemeModel.getId());
                }
                if (schemeIdList.contains(adapterSchemeVersionModel.getSchemeId())) {
                    CrawlerManager.getInstance().setAdapterFlg(false);
                }
            }
@ -414,27 +422,35 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
    }
    public AdapterSchemeVersionModel getEhrAdapterVersionLasted() {
        AdapterSchemeModel adapterSchemeModel = getEhrAdapter();
        if (adapterSchemeModel == null) {
            return null;
        }
        String adapterSchemeVersionHql = "SELECT ID AS id,VERSION AS version,SCHEME_ID AS schemeId,NAME AS name 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());
        Object[] object = (Object[]) adapterSchemeVersionQuery.uniqueResult();
        if (object != null) {
            AdapterSchemeVersionModel adapterSchemeVersionModel = new AdapterSchemeVersionModel();
            adapterSchemeVersionModel.setId((Integer) object[0]);
            adapterSchemeVersionModel.setVersion((String) object[1]);
            adapterSchemeVersionModel.setSchemeId((Integer) object[2]);
            adapterSchemeVersionModel.setName((String) object[3]);
            return adapterSchemeVersionModel;
        } else {
        try {
            List<AdapterSchemeModel> adapterSchemeModelList = getEhrAdapterSchemeList();
            if (CollectionUtil.isEmpty(adapterSchemeModelList)) {
                return null;
            }
            String schemeIdListStr = Constants.EMPTY;
            for (AdapterSchemeModel adapterSchemeModel : adapterSchemeModelList) {
                schemeIdListStr = schemeIdListStr + adapterSchemeModel.getId() + Constants.COMMA;
            }
            schemeIdListStr = Constants.LEFT_BRACKET + schemeIdListStr.substring(0, schemeIdListStr.length() - 1) + Constants.RIGHT_BRACKET;
            String adapterSchemeVersionHql = "SELECT ID AS id,VERSION AS version,SCHEME_ID AS schemeId,NAME AS name FROM ADAPTER_SCHEME_VERSION WHERE PUBLISH_TIME=(select max(PUBLISH_TIME) from ADAPTER_SCHEME_VERSION WHERE SCHEME_ID in "+schemeIdListStr+")";
            Query adapterSchemeVersionQuery = getCurrentSession().createSQLQuery(adapterSchemeVersionHql);
            Object[] object = (Object[]) adapterSchemeVersionQuery.uniqueResult();
            if (object != null) {
                AdapterSchemeVersionModel adapterSchemeVersionModel = new AdapterSchemeVersionModel();
                adapterSchemeVersionModel.setId((Integer) object[0]);
                adapterSchemeVersionModel.setVersion((String) object[1]);
                adapterSchemeVersionModel.setSchemeId((Integer) object[2]);
                adapterSchemeVersionModel.setName((String) object[3]);
                return adapterSchemeVersionModel;
            } else {
                return null;
            }
        } catch (Exception e) {
            return null;
        }
    }
    public AdapterSchemeModel getEhrAdapter() {
    public List<AdapterSchemeModel> getEhrAdapterSchemeList() {
        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();
@ -451,9 +467,9 @@ public class AdapterSchemeVersionService extends SQLGeneralDAO {
        String adapterSchemeHql = "FROM AdapterSchemeModel WHERE adapterStdId = :adapterStdId";
        Query adapterSchemeQuery = getCurrentSession().createQuery(adapterSchemeHql);
        adapterSchemeQuery.setParameter("adapterStdId", standardModel.getId());
        AdapterSchemeModel adapterSchemeModel = (AdapterSchemeModel) adapterSchemeQuery.uniqueResult();
        List<AdapterSchemeModel> adapterSchemeModelList = adapterSchemeQuery.list();
        return adapterSchemeModel;
        return adapterSchemeModelList;
    }
    public DataGridResult getVersion() throws Exception {

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

@ -107,7 +107,7 @@ public class StdCDACatalogService extends SQLGeneralDAO {
        saveEntity(stdCDACatalogModel);
    }
    private List<StdCDACatalogModel> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdCDACatalogModel> getList(Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(StandardModel.class);

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDADatasetService.java

@ -179,7 +179,7 @@ public class StdCDADatasetService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdCDADatasetModel> getList(StandardVersion standardVersion, Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdCDADatasetModel> getList(StandardVersion standardVersion, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdCDADatasetModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdCDAService.java

@ -154,7 +154,7 @@ public class StdCDAService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdCDAModel> getList(StandardVersion standardVersion, Map<String, String> query,  Map<String, String> order, Integer limit, Integer offset) {
    private List<StdCDAModel> getList(StandardVersion standardVersion, Map<String, Object> query,  Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdCDAModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));

+ 1 - 1
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDatasetCatalogService.java

@ -126,7 +126,7 @@ public class StdDatasetCatalogService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdDatasetCatalogModel> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdDatasetCatalogModel> getList(Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdDatasetCatalogModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));

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

@ -92,7 +92,7 @@ public class StdDatasetService extends SQLGeneralDAO {
    }
    public Boolean datasetCodeValidate(StandardVersion standardVersion, String code) {
        Map<String, String> query = new HashMap<>();
        Map<String, Object> query = new HashMap<>();
        Map<String, String> order = new HashMap<>();
        query.put("code", code);
@ -220,7 +220,7 @@ public class StdDatasetService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdDataSetModel> getList(StandardVersion standardVersion, Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdDataSetModel> getList(StandardVersion standardVersion, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdDataSetModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));

+ 3 - 3
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDictEntryService.java

@ -40,7 +40,7 @@ public class StdDictEntryService extends SQLGeneralDAO {
    public void finalize() throws Throwable {
    }
    public List<StdDictionaryEntryModel> getList(String stdVersion,Integer dictId, String condition, String order, Integer limit, Integer offset) {
    public List<StdDictionaryEntryModel> getList(String stdVersion, Integer dictId, String condition, String order, Integer limit, Integer offset) {
        try {
            Map queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map orderMap = RequestParamTransformer.parseJsonToMap(order);
@ -77,7 +77,7 @@ public class StdDictEntryService extends SQLGeneralDAO {
    }
    public Boolean dictEntryCodeValidate(StandardVersion standardVersion, Integer dictId, String code) {
        Map<String, String> query = new HashMap<>();
        Map<String, Object> query = new HashMap<>();
        Map<String, String> order = new HashMap<>();
        query.put("code", code);
@ -202,7 +202,7 @@ public class StdDictEntryService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdDictionaryEntryModel> getList(StandardVersion standardVersion, Integer dictId, Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdDictionaryEntryModel> getList(StandardVersion standardVersion, Integer dictId, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdDictionaryEntryModel.class);
        sqlCreator.equalCondition("dictId", dictId);
        for (String key : query.keySet()) {

+ 3 - 3
Hos-resource/src/main/java/com/yihu/ehr/standard/service/standard/StdDictService.java

@ -49,7 +49,7 @@ public class StdDictService extends SQLGeneralDAO {
    public List<StdDictionaryModel> getList(String stdVersion, String condition, String order, Integer limit, Integer offset) {
        try{
            Map<String, String> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, Object> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, String> orderMap = RequestParamTransformer.parseJsonToMap(order);
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            return this.getList(standardVersion, queryMap, orderMap, limit, offset);
@ -85,7 +85,7 @@ public class StdDictService extends SQLGeneralDAO {
    }
    public Boolean dictCodeValidate(StandardVersion standardVersion, String code) {
        Map<String, String> query = new HashMap<>();
        Map<String, Object> query = new HashMap<>();
        Map<String, String> order = new HashMap<>();
        query.put("code", code);
@ -216,7 +216,7 @@ public class StdDictService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdDictionaryModel> getList(StandardVersion standardVersion, Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdDictionaryModel> getList(StandardVersion standardVersion, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdDictionaryModel.class);
        for (String key : query.keySet()) {
            sqlCreator.equalCondition(key, query.get(key));

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

@ -50,7 +50,7 @@ public class StdMetadataService extends SQLGeneralDAO {
    public List<StdMetaDataModel> getList(String stdVersion, Integer datasetId, String condition, String order, Integer limit, Integer offset) {
        try {
            Map<String, String> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, Object> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, String> orderMap = RequestParamTransformer.parseJsonToMap(order);
            StandardVersion standardVersion = new StandardVersion(stdVersion);
            return this.getList(standardVersion, datasetId, queryMap, orderMap, limit, offset);
@ -85,7 +85,7 @@ public class StdMetadataService extends SQLGeneralDAO {
    }
    public Boolean metadataCodeValidate(StandardVersion standardVersion, Integer datasetId, String code) {
        Map<String, String> query = new HashMap<>();
        Map<String, Object> query = new HashMap<>();
        Map<String, String> order = new HashMap<>();
        query.put("code", code);
@ -203,7 +203,7 @@ public class StdMetadataService extends SQLGeneralDAO {
        query.executeUpdate();
    }
    private List<StdMetaDataModel> getList(StandardVersion standardVersion, Integer datasetId, Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<StdMetaDataModel> getList(StandardVersion standardVersion, Integer datasetId, Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        SqlCreator sqlCreator = new SqlCreator(StdMetaDataModel.class);
        sqlCreator.equalCondition("datasetId", datasetId);
        for (String key : query.keySet()) {

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

@ -53,7 +53,7 @@ public class StdPublisherService extends SQLGeneralDAO {
    public List<SystemOrganization> getList(String condition, String order, Integer limit, Integer offset) {
        try{
            Map<String, String> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, Object> queryMap = RequestParamTransformer.parseJsonToMap(condition);
            Map<String, String> orderMap = RequestParamTransformer.parseJsonToMap(order);
            return this.getList(queryMap, orderMap, limit, offset);
        } catch (Exception e) {
@ -63,7 +63,7 @@ public class StdPublisherService extends SQLGeneralDAO {
        throw new ApiException(ErrorCode.GetPublisherListFaield);
    }
    private List<SystemOrganization> getList(Map<String, String> query, Map<String, String> order, Integer limit, Integer offset) {
    private List<SystemOrganization> getList(Map<String, Object> query, Map<String, String> order, Integer limit, Integer offset) {
        Session session = getCurrentSession();
        Criteria criteria = session.createCriteria(SystemOrganization.class);
        if (query != null) {