|  | @ -2,6 +2,9 @@ package com.yihu.ehr.crawler.service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.JsonNode;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.dao.CrawlerDatasetDao;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.dao.CrawlerFlowDao;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.dao.CrawlerFlowHeadDao;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.adapter.AdapterDataSet;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.config.SysConfig;
 | 
	
		
			
				|  |  | import com.yihu.ehr.crawler.model.flow.CrawlerDataSetModel;
 | 
	
	
		
			
				|  | @ -35,6 +38,7 @@ public class CrawlerFlowManager {
 | 
	
		
			
				|  |  |     private Boolean adapterFlg;
 | 
	
		
			
				|  |  |     private List<Patient> patientList;
 | 
	
		
			
				|  |  |     public CrawlerFlowManager() {
 | 
	
		
			
				|  |  |         adapterFlg = false;
 | 
	
		
			
				|  |  |         dispatch = DataCollectDispatcher.getInstance();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -181,53 +185,66 @@ public class CrawlerFlowManager {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Boolean getDataForPrepare() {
 | 
	
		
			
				|  |  |         if (!adapterFlg) {
 | 
	
		
			
				|  |  |             /**
 | 
	
		
			
				|  |  |              * 获取适配数据集
 | 
	
		
			
				|  |  |              */
 | 
	
		
			
				|  |  |             adapterDataSetMap = new HashMap<>();
 | 
	
		
			
				|  |  |             AdapterSchemeVersionService adapterSchemeVersionService = SpringBeanUtil.getService(AdapterSchemeVersionService.BEAN_ID);
 | 
	
		
			
				|  |  |             AdapterSchemeVersionModel adapterSchemeVersionModel = adapterSchemeVersionService.getEhrAdapterVersionLasted();
 | 
	
		
			
				|  |  |             if (adapterSchemeVersionModel == null) {
 | 
	
		
			
				|  |  |                 return false;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             List<CrawlerDataSetModel> crawlerDataSetModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |             List<Integer> datasetIdList = new ArrayList<>();
 | 
	
		
			
				|  |  |             for (CrawlerDataSetModel crawlerDataSetModel : crawlerDataSetModelList) {
 | 
	
		
			
				|  |  |                 datasetIdList.add(crawlerDataSetModel.getDatasetId());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String version = adapterSchemeVersionModel.getVersion();
 | 
	
		
			
				|  |  |             AdapterVersion adapterVersion = new AdapterVersion(version);
 | 
	
		
			
				|  |  |             AdapterDatasetService adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID);
 | 
	
		
			
				|  |  |             List<AdapterDatasetModel> adapterDataSetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, datasetIdList);
 | 
	
		
			
				|  |  |             for (AdapterDatasetModel adapterDatasetModel : adapterDataSetModelList) {
 | 
	
		
			
				|  |  |                 adapterDataSetMap.put(adapterDatasetModel.getStdDatasetCode(), new AdapterDataSet(adapterDatasetModel, adapterVersion));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             /**
 | 
	
		
			
				|  |  |              * 获取采集流程表头
 | 
	
		
			
				|  |  |              */
 | 
	
		
			
				|  |  |             crawlerFlowHeadModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |             List<CrawlerFlowModel> crawlerFlowModelList = new ArrayList<>();
 | 
	
		
			
				|  |  |             crawlerFlowDatasetMap = new HashMap<>();
 | 
	
		
			
				|  |  |             crawlerFlowMetadataMap = new HashMap<>();
 | 
	
		
			
				|  |  |             for (CrawlerFlowModel crawlerFlowModel : crawlerFlowModelList) {
 | 
	
		
			
				|  |  |                 List<CrawlerFlowModel> datasetList = new ArrayList<>();
 | 
	
		
			
				|  |  |                 List<CrawlerFlowModel> metadataList = new ArrayList<>();
 | 
	
		
			
				|  |  |                 String inputDatasetCode = crawlerFlowModel.getInputDatasetCode();
 | 
	
		
			
				|  |  |                 String datasetCode = crawlerFlowModel.getDatasetCode();
 | 
	
		
			
				|  |  |                 if (StringUtil.isEmpty(inputDatasetCode)) {
 | 
	
		
			
				|  |  |                     continue;
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 /**
 | 
	
		
			
				|  |  |                  * 获取EHR最新发布版本
 | 
	
		
			
				|  |  |                  */
 | 
	
		
			
				|  |  |                 adapterDataSetMap = new HashMap<>();
 | 
	
		
			
				|  |  |                 AdapterSchemeVersionService adapterSchemeVersionService = SpringBeanUtil.getService(AdapterSchemeVersionService.BEAN_ID);
 | 
	
		
			
				|  |  |                 AdapterSchemeVersionModel adapterSchemeVersionModel = adapterSchemeVersionService.getEhrAdapterVersionLasted();
 | 
	
		
			
				|  |  |                 if (adapterSchemeVersionModel == null) {
 | 
	
		
			
				|  |  |                     return false;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if (crawlerFlowDatasetMap.containsKey(inputDatasetCode)) {
 | 
	
		
			
				|  |  |                     datasetList = crawlerFlowDatasetMap.get(inputDatasetCode);
 | 
	
		
			
				|  |  |                 /**
 | 
	
		
			
				|  |  |                  * 获取该版本下数据集
 | 
	
		
			
				|  |  |                  */
 | 
	
		
			
				|  |  |                 CrawlerDatasetDao crawlerDatasetDao = SpringBeanUtil.getService(CrawlerDatasetDao.BEAN_ID);
 | 
	
		
			
				|  |  |                 List<CrawlerDataSetModel> crawlerDataSetModelList = crawlerDatasetDao.getCrawlerDatasetList(adapterSchemeVersionModel.getId());
 | 
	
		
			
				|  |  |                 if (CollectionUtil.isEmpty(crawlerDataSetModelList)) {
 | 
	
		
			
				|  |  |                     return false;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 List<Integer> datasetIdList = new ArrayList<>();
 | 
	
		
			
				|  |  |                 for (CrawlerDataSetModel crawlerDataSetModel : crawlerDataSetModelList) {
 | 
	
		
			
				|  |  |                     datasetIdList.add(crawlerDataSetModel.getDatasetId());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 datasetList.add(crawlerFlowModel);
 | 
	
		
			
				|  |  |                 crawlerFlowMetadataMap.put(datasetCode, datasetList);
 | 
	
		
			
				|  |  |                 if (crawlerFlowDatasetMap.containsKey(datasetCode)) {
 | 
	
		
			
				|  |  |                     metadataList = crawlerFlowDatasetMap.get(datasetCode);
 | 
	
		
			
				|  |  |                 String version = adapterSchemeVersionModel.getVersion();
 | 
	
		
			
				|  |  |                 AdapterVersion adapterVersion = new AdapterVersion(version);
 | 
	
		
			
				|  |  |                 AdapterDatasetService adapterDatasetService = SpringBeanUtil.getService(AdapterDatasetService.BEAN_ID);
 | 
	
		
			
				|  |  |                 List<AdapterDatasetModel> adapterDataSetModelList = adapterDatasetService.getListByAdapterDatasetIdList(adapterVersion, datasetIdList);
 | 
	
		
			
				|  |  |                 for (AdapterDatasetModel adapterDatasetModel : adapterDataSetModelList) {
 | 
	
		
			
				|  |  |                     adapterDataSetMap.put(adapterDatasetModel.getStdDatasetCode(), new AdapterDataSet(adapterDatasetModel, adapterVersion));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 /**
 | 
	
		
			
				|  |  |                  * 获取采集流程表头
 | 
	
		
			
				|  |  |                  */
 | 
	
		
			
				|  |  |                 CrawlerFlowHeadDao crawlerFlowHeadDao = SpringBeanUtil.getService(CrawlerFlowHeadDao.BEAN_ID);
 | 
	
		
			
				|  |  |                 CrawlerFlowDao crawlerFlowDao = SpringBeanUtil.getService(CrawlerFlowDao.BEAN_ID);
 | 
	
		
			
				|  |  |                 crawlerFlowHeadModelList = crawlerFlowHeadDao.getCrawlerFlowHeadList(adapterSchemeVersionModel.getId());
 | 
	
		
			
				|  |  |                 List<CrawlerFlowModel> crawlerFlowModelList = crawlerFlowDao.getCrawlerFlowList(adapterSchemeVersionModel.getId());
 | 
	
		
			
				|  |  |                 crawlerFlowDatasetMap = new HashMap<>();
 | 
	
		
			
				|  |  |                 crawlerFlowMetadataMap = new HashMap<>();
 | 
	
		
			
				|  |  |                 for (CrawlerFlowModel crawlerFlowModel : crawlerFlowModelList) {
 | 
	
		
			
				|  |  |                     List<CrawlerFlowModel> datasetList = new ArrayList<>();
 | 
	
		
			
				|  |  |                     List<CrawlerFlowModel> metadataList = new ArrayList<>();
 | 
	
		
			
				|  |  |                     String inputDatasetCode = crawlerFlowModel.getInputDatasetCode();
 | 
	
		
			
				|  |  |                     String datasetCode = crawlerFlowModel.getDatasetCode();
 | 
	
		
			
				|  |  |                     if (StringUtil.isEmpty(inputDatasetCode)) {
 | 
	
		
			
				|  |  |                         continue;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (crawlerFlowDatasetMap.containsKey(inputDatasetCode)) {
 | 
	
		
			
				|  |  |                         datasetList = crawlerFlowDatasetMap.get(inputDatasetCode);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     datasetList.add(crawlerFlowModel);
 | 
	
		
			
				|  |  |                     crawlerFlowMetadataMap.put(datasetCode, datasetList);
 | 
	
		
			
				|  |  |                     if (crawlerFlowDatasetMap.containsKey(datasetCode)) {
 | 
	
		
			
				|  |  |                         metadataList = crawlerFlowDatasetMap.get(datasetCode);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     metadataList.add(crawlerFlowModel);
 | 
	
		
			
				|  |  |                     crawlerFlowDatasetMap.put(datasetCode, metadataList);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 metadataList.add(crawlerFlowModel);
 | 
	
		
			
				|  |  |                 crawlerFlowDatasetMap.put(datasetCode, metadataList);
 | 
	
		
			
				|  |  |             } catch (Exception e) {
 | 
	
		
			
				|  |  |                 return false;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 |