Ejemplo n.º 1
0
        public ParquetDataProcessor(
            IFhirSchemaManager <FhirParquetSchemaNode> fhirSchemaManager,
            IOptions <ArrowConfiguration> arrowConfiguration,
            ILogger <ParquetDataProcessor> logger)
        {
            EnsureArg.IsNotNull(fhirSchemaManager, nameof(fhirSchemaManager));
            EnsureArg.IsNotNull(arrowConfiguration, nameof(arrowConfiguration));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _fhirSchemaManager  = fhirSchemaManager;
            _arrowConfiguration = arrowConfiguration.Value;
            _logger             = logger;

            try
            {
                _parquetConverterWrapper = new ParquetConverterWrapper(_fhirSchemaManager.GetAllSchemas(), arrowConfiguration.Value);
            }
            catch (Exception ex)
            {
                _logger.LogError("Create ParquetConverterWrapper failed.");
                throw new ParquetDataProcessorException("Create ParquetConverterWrapper failed. " + ex.Message, ex);
            }

            _logger.LogInformation($"ParquetDataProcessor initialized successfully with ArrowConfiguration: {JsonConvert.SerializeObject(arrowConfiguration.Value)}.");
        }
 // TODO: Refine TaskExecutor here, current TaskExecutor is more like a manager class.
 public TaskExecutor(
     IFhirDataClient dataClient,
     IFhirDataWriter dataWriter,
     IColumnDataProcessor parquetDataProcessor,
     IFhirSchemaManager <FhirParquetSchemaNode> fhirSchemaManager,
     ILogger <TaskExecutor> logger)
 {
     _dataClient           = EnsureArg.IsNotNull(dataClient, nameof(dataClient));
     _dataWriter           = EnsureArg.IsNotNull(dataWriter, nameof(dataWriter));
     _parquetDataProcessor = EnsureArg.IsNotNull(parquetDataProcessor, nameof(parquetDataProcessor));
     _fhirSchemaManager    = EnsureArg.IsNotNull(fhirSchemaManager, nameof(fhirSchemaManager));
     _logger = EnsureArg.IsNotNull(logger, nameof(logger));
 }