|
@ -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;
|