AdapterScheme.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.yihu.hos.crawler.format;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.yihu.hos.standard.model.adapter.AdapterDatasetModel;
  5. import com.yihu.hos.standard.model.adapter.AdapterMetadataModel;
  6. import com.yihu.hos.standard.model.adapter.AdapterSchemeVersionModel;
  7. import com.yihu.hos.standard.service.adapter.AdapterDatasetService;
  8. import com.yihu.hos.web.framework.model.standard.AdapterVersion;
  9. import javax.annotation.Resource;
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 适配方案
  16. * 一个适配方案可能有一到多个机构要采集数据
  17. *
  18. * @created Created by Air on 2015/6/3.
  19. */
  20. public class AdapterScheme extends AdapterBase{
  21. @Resource(name = AdapterDatasetService.BEAN_ID)
  22. private AdapterDatasetService adapterDatasetService;
  23. private HashMap<String, List<AdapterMetadataModel>> adapterMetaDataMap;
  24. public AdapterScheme() {
  25. }
  26. public synchronized HashMap<String, List<AdapterMetadataModel>> getAdapterMetaDataMap() {
  27. if (adapterMetaDataMap ==null){
  28. AdapterSchemeVersionModel adapterSchemeVersionModel = getAdapterSchemeVersionService().getEhrAdapterVersionLasted();
  29. if (adapterSchemeVersionModel == null) {
  30. adapterSchemeVersionModel=new AdapterSchemeVersionModel();
  31. }
  32. String version = adapterSchemeVersionModel.getVersion();
  33. AdapterVersion adapterVersion = new AdapterVersion(version);
  34. adapterMetaDataMap =new HashMap<>();
  35. Map<String, String> condition = new HashMap<>();
  36. condition.put("column", "adapter_dataset_code");
  37. String conditionStr ="";
  38. ObjectMapper mapper = new ObjectMapper();
  39. try {
  40. conditionStr = mapper.writeValueAsString(condition);
  41. } catch (JsonProcessingException e) {
  42. e.printStackTrace();
  43. }
  44. List<AdapterDatasetModel> adapterDataSets = adapterDatasetService.getAdapterDatasetNotNullList(adapterVersion, conditionStr);
  45. for (AdapterDatasetModel adapterDataSet:adapterDataSets){
  46. List<AdapterMetadataModel> adapterMetaDataTList = getAdapterMetadataService().getAdapterMetadataByDataset(version, adapterDataSet.getId());
  47. if (adapterMetaDataTList!=null && adapterMetaDataTList.size()>0){
  48. adapterMetaDataMap.put(adapterDataSet.getStdDatasetCode(), adapterMetaDataTList);
  49. }
  50. }
  51. }
  52. return adapterMetaDataMap;
  53. }
  54. public List<AdapterMetadataModel> getAdapterMetaDatas(String dataSetCode){
  55. if (dataSetCode==null){
  56. return new ArrayList<>();
  57. }
  58. return getAdapterMetaDataMap().get(dataSetCode);
  59. }
  60. }