Beispiel #1
0
 public void Init()
 {
     _settingsContext      = TestInitializer.ServiceProvider.GetService <SettingsContext>();
     _settingsContextMysql = TestInitializer.ServiceProviderMysql.GetService <SettingsContext>();
     _iQtoolsDb            = TestInitializer.IQtoolsDbProtocol;
     _kenyaEmrDb           = TestInitializer.KenyaEmrDbProtocol;
 }
        public int Find(DbProtocol protocol, DbExtract extract)
        {
            Log.Debug($"Finding {nameof(PsmartSource)}...");

            _mapper = GetMapper(extract.Emr);
            int extractCount = 0;
            var connection   = GetConnection(protocol);


            using (connection)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }

                using (var command = connection.CreateCommand())
                {
                    //Extract SQL
                    command.CommandText = extract.GetCountSQL();
                    int.TryParse(command.ExecuteScalar().ToString(), out extractCount);
                }
            }

            Log.Debug($"Finding {nameof(PsmartSource)} Completed");
            return(extractCount);
        }
        public void Init()
        {
            var extractIds = TestInitializer.Iqtools.Extracts.Where(x => x.DocketId.IsSameAs("NDWH")).Select(x => x.Id)
                             .ToList();
            var cleaner = TestInitializer.ServiceProvider.GetService <IClearDwhExtracts>();

            cleaner.Clear(extractIds);

            var extractIdsMySql = TestInitializer.KenyaEmr.Extracts.Where(x => x.DocketId.IsSameAs("NDWH")).Select(x => x.Id)
                                  .ToList();
            var cleanerMySql = TestInitializer.ServiceProviderMysql.GetService <IClearDwhExtracts>();

            cleanerMySql.Clear(extractIdsMySql);

            _extractsContext      = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            _extractsContextMySql = TestInitializer.ServiceProviderMysql.GetService <ExtractsContext>();

            _iQtoolsDb          = TestInitializer.Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            _iQtoolsDb.Host     = ".\\Koske14";
            _iQtoolsDb.Username = "******";
            _iQtoolsDb.Password = "******";

            _kenyaEmrDb              = TestInitializer.KenyaEmr.DatabaseProtocols.First();
            _kenyaEmrDb.Host         = "127.0.0.1";
            _kenyaEmrDb.Username     = "******";
            _kenyaEmrDb.Password     = "******";
            _kenyaEmrDb.DatabaseName = "openmrs";
        }
 public void Init()
 {
     TestInitializer.ClearDb();
     TestInitializer.SeedData(TestData.GenerateEmrSystems(TestInitializer.EmrConnectionString));
     _protocol = TestInitializer.Protocol;
     _extracts = TestInitializer.Extracts.Where(x => x.DocketId.IsSameAs("NDWH")).ToList();
 }
Beispiel #5
0
        public IDbConnection GetConnection(DbProtocol databaseProtocol)
        {
            var connectionString = databaseProtocol.GetConnectionString();

            Log.Debug(new string('+', 40));
            Log.Debug(connectionString);
            Log.Debug(new string('+', 40));

            if (databaseProtocol.DatabaseType == DatabaseType.Sqlite)
            {
                return(new SqliteConnection(connectionString));
            }

            if (databaseProtocol.DatabaseType == DatabaseType.MicrosoftSQL)
            {
                return(new System.Data.SqlClient.SqlConnection(connectionString));
            }

            if (databaseProtocol.DatabaseType == DatabaseType.MySQL)
            {
                return(new MySqlConnection(connectionString));
            }

            return(null);
        }
Beispiel #6
0
 public void SetUp()
 {
     _extractsContext      = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
     _extractsContextMySql = TestInitializer.ServiceProviderMysql.GetService <ExtractsContext>();
     _iQtoolsDb            = TestInitializer.IQtoolsDbProtocol;
     _kenyaEmrDb           = TestInitializer.KenyaEmrDbProtocol;
 }
        public void Init()
        {
            var extractId = TestInitializer.Iqtools.Extracts.First(x => x.Name.IsSameAs(nameof(MasterPatientIndex))).Id;
            var cleaner   = TestInitializer.ServiceProvider.GetService <ICleanCbsExtracts>();

            cleaner.Clean(extractId);

            var extractIdMySql = TestInitializer.KenyaEmr.Extracts.First(x => x.Name.IsSameAs(nameof(MasterPatientIndex))).Id;
            var cleanerMySql   = TestInitializer.ServiceProviderMysql.GetService <ICleanCbsExtracts>();

            cleanerMySql.Clean(extractIdMySql);

            _extractsContext      = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            _extractsContextMySql = TestInitializer.ServiceProviderMysql.GetService <ExtractsContext>();

            _iQtoolsDb          = TestInitializer.Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            _iQtoolsDb.Host     = ".\\Koske14";
            _iQtoolsDb.Username = "******";
            _iQtoolsDb.Password = "******";

            _kenyaEmrDb              = TestInitializer.KenyaEmr.DatabaseProtocols.First();
            _kenyaEmrDb.Host         = "127.0.0.1";
            _kenyaEmrDb.Username     = "******";
            _kenyaEmrDb.Password     = "******";
            _kenyaEmrDb.DatabaseName = "openmrs";
        }
Beispiel #8
0
        public virtual Task <IDataReader> ExecuteReader(DbProtocol protocol, DbExtract extract)
        {
            var sourceConnection = GetConnection(protocol);

            if (null == sourceConnection)
            {
                throw new Exception("Data connection not initialized");
            }

            if (null == extract)
            {
                throw new Exception("Extract settings not configured");
            }

            if (sourceConnection.State != ConnectionState.Open)
            {
                sourceConnection.Open();
            }

            Connection = sourceConnection;
            var commandDefinition = new CommandDefinition(extract.ExtractSql, null, null, 0);

            if (sourceConnection is SqliteConnection)
            {
                return(Task.FromResult <IDataReader>(sourceConnection.ExecuteReader(commandDefinition)));
            }

            return(sourceConnection.ExecuteReaderAsync(commandDefinition, CommandBehavior.CloseConnection));
        }
Beispiel #9
0
        public void Init()
        {
            var extractId = TestInitializer.Iqtools.Extracts.First(x => x.Name.IsSameAs(nameof(PatientVisitExtract))).Id;
            var cleaner   = TestInitializer.ServiceProvider.GetService <ICleanCbsExtracts>();

            cleaner.Clean(extractId);

            var extractIdMySql = TestInitializer.KenyaEmr.Extracts.First(x => x.Name.IsSameAs(nameof(PatientVisitExtract))).Id;
            var cleanerMySql   = TestInitializer.ServiceProviderMysql.GetService <ICleanCbsExtracts>();

            cleanerMySql.Clean(extractIdMySql);

            _extractsContext      = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            _extractsContextMySql = TestInitializer.ServiceProviderMysql.GetService <ExtractsContext>();

            var tempMpis = Builder <TempPatientVisitExtract> .CreateListOfSize(2).All().With(x => x.CheckError = false).Build().ToList();

            _extractsContext.TempPatientVisitExtracts.AddRange(tempMpis);
            _extractsContext.SaveChanges();

            _extractsContextMySql.TempPatientVisitExtracts.AddRange(tempMpis);
            _extractsContextMySql.SaveChanges();

            _iQtoolsDb          = TestInitializer.Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            _iQtoolsDb.Host     = ".";
            _iQtoolsDb.Username = "******";
            _iQtoolsDb.Password = "******";

            _kenyaEmrDb              = TestInitializer.KenyaEmr.DatabaseProtocols.First();
            _kenyaEmrDb.Host         = "127.0.0.1";
            _kenyaEmrDb.Username     = "******";
            _kenyaEmrDb.Password     = "******";
            _kenyaEmrDb.DatabaseName = "openmrs";
        }
 public void Init()
 {
     TestInitializer.ClearDb();
     TestInitializer.SeedData(TestData.GenerateEmrSystems(TestInitializer.EmrConnectionString));
     _protocol        = TestInitializer.Protocol;
     _extracts        = TestInitializer.Extracts.Where(x => Extentions.IsSameAs(x.DocketId, "HTS")).ToList();
     _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
 }
Beispiel #11
0
 public void SetUp()
 {
     _dbManager           = new DbManager();
     _dbProtocol          = new DbProtocol();
     _dbProtocol.Database = "iqcare";
     _dbProtocol.Password = "******";
     _dbProtocol.User     = "******";
     _dbProtocol.Server   = @"192.168.1.10\sqlexpress";
 }
        public async Task <int> Extract(DbExtract extract, DbProtocol dbProtocol)
        {
            int batch = 500;

            var list = new List <TempPatientAdverseEventExtract>();

            int count  = 0;
            int loaded = 0;

            using (var rdr = await _reader.ExecuteReader(dbProtocol, extract))
            {
                while (rdr.Read())
                {
                    count++;

                    // AutoMapper profiles
                    var extractRecord = Mapper.Map <IDataRecord, TempPatientAdverseEventExtract>(rdr);
                    extractRecord.Id = LiveGuid.NewGuid();
                    if (extractRecord.HasData())
                    {
                        loaded++;
                        list.Add(extractRecord);
                    }

                    if (count == batch)
                    {
                        _extractRepository.BatchInsert(list);

                        count = 0;


                        DomainEvents.Dispatch(
                            new ExtractActivityNotification(extract.Id, new DwhProgress(
                                                                nameof(PatientAdverseEventExtract),
                                                                nameof(ExtractStatus.Finding),
                                                                loaded, 0, 0, 0, 0)));
                        list = new List <TempPatientAdverseEventExtract>();
                    }
                }

                if (count > 0)
                {
                    // save remaining list;
                    _extractRepository.BatchInsert(list);
                }
                _extractRepository.CloseConnection();
            }

            // TODO: Notify Completed;
            DomainEvents.Dispatch(
                new ExtractActivityNotification(extract.Id, new DwhProgress(
                                                    nameof(PatientAdverseEventExtract),
                                                    nameof(ExtractStatus.Found),
                                                    loaded, 0, 0, 0, 0)));

            return(loaded);
        }
Beispiel #13
0
        public Task <int> Extract(DbExtract extract, DbProtocol dbProtocol)
        {
            var mapper = dbProtocol.SupportsDifferential ? ExtractDiffMapper.Instance : ExtractMapper.Instance;

            int batch = 500;

            var list = new List <TempCwcVisitExtract>();

            int count  = 0;
            int loaded = 0;

            using (var rdr = _reader.ExecuteReaderSync(dbProtocol, extract))
            {
                while (rdr.Read())
                {
                    count++;
                    loaded++;
                    // AutoMapper profiles
                    var extractRecord = mapper.Map <IDataRecord, TempCwcVisitExtract>(rdr);
                    extractRecord.Id = LiveGuid.NewGuid();
                    list.Add(extractRecord);

                    if (count == batch)
                    {
                        _extractRepository.BatchInsert(list);

                        count = 0;


                        DomainEvents.Dispatch(
                            new MnchExtractActivityNotification(extract.Id, new DwhProgress(
                                                                    nameof(CwcVisitExtract),
                                                                    nameof(ExtractStatus.Finding),
                                                                    loaded, 0, 0, 0, 0)));
                        list = new List <TempCwcVisitExtract>();
                    }
                }

                if (count > 0)
                {
                    // save remaining list;
                    _extractRepository.BatchInsert(list);
                }
                _extractRepository.CloseConnection();
            }

            // TODO: Notify Completed;
            DomainEvents.Dispatch(
                new MnchExtractActivityNotification(extract.Id, new DwhProgress(
                                                        nameof(CwcVisitExtract),
                                                        nameof(ExtractStatus.Found),
                                                        loaded, 0, 0, 0, 0)));

            return(Task.FromResult(loaded));
        }
        private void InitExtractor()
        {
            _protocol        = TestInitializer.Protocol;
            _extracts        = TestInitializer.Extracts.Where(x => Extentions.IsSameAs(x.DocketId, "NDWH")).ToList();
            _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();

            var patientExtract         = _extracts.First(x => x.Name.IsSameAs(nameof(PatientExtract)));
            var patientLoader          = TestInitializer.ServiceProvider.GetService <IPatientLoader>();
            var patientSourceExtractor = TestInitializer.ServiceProvider.GetService <IPatientSourceExtractor>();
            var tempCount    = patientSourceExtractor.Extract(patientExtract, _protocol).Result;
            var patientCount = patientLoader.Load(patientExtract.Id, tempCount, false).Result;
        }
 public void SetUp()
 {
     _mssql    = new DbProtocol(DatabaseType.MicrosoftSQL, @".\koske14", "sa", "maun", "IQTools_KeHMIS");
     _extractA = new DbExtract {
         ExtractSql = @"select [Id],[shr],[date_created],[status],[status_date],[uuid] FROM psmart_store", Emr = "IQCare"
     };
     _mysql    = new DbProtocol(DatabaseType.MySQL, @"localhost", "root", "test", "openmrs");
     _extractB = new DbExtract {
         ExtractSql = @"select id,shr,date_created,status,status_date,uuid FROM psmart_store", Emr = "KenyaEMR"
     };
     _psmartSourceReader = new PsmartSourceReader();
 }
        public IEnumerable <PsmartSource> Read(DbProtocol protocol, DbExtract extract)
        {
            _mapper = GetMapper(extract.Emr);
            IList <PsmartSource> extracts = new List <PsmartSource>();
            var connection = GetConnection(protocol);

            using (connection)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }

                using (var command = connection.CreateCommand())
                {
                    //Extract SQL
                    command.CommandText = extract.ExtractSql;

                    extracts = _mapper.Map <IDataReader, IList <PsmartSource> >(command.ExecuteReader());
                }
            }

            if (extracts.Count > 0)
            {
                using (connection = GetConnection(protocol))
                {
                    if (connection.State != ConnectionState.Open)
                    {
                        connection.Open();
                    }

                    using (var updateCommand = connection.CreateCommand())
                    {
                        StringBuilder stringBuilder = new StringBuilder();
                        for (int i = 0; i < extracts.Count; i++)
                        {
                            if (i == extracts.Count - 1)
                            {
                                stringBuilder.Append($"'{extracts[i].Uuid}'");
                            }
                            else
                            {
                                stringBuilder.Append($"'{extracts[i].Uuid}',");
                            }
                        }
                        updateCommand.CommandText = $"update psmart_store set Status = 'Collected', Status_date = '{DateTime.Now.Date:yyyy-MM-dd HH:mm:ss}' where UUID in ({stringBuilder.ToString()})";
                        updateCommand.ExecuteNonQuery();
                    }
                }
            }
            return(extracts);
        }
Beispiel #17
0
        public string BuildConncetion(DbProtocol dbProtocol)
        {
            var sb = new SqlConnectionStringBuilder();

            sb.DataSource               = dbProtocol.Server;
            sb.UserID                   = dbProtocol.User;
            sb.Password                 = dbProtocol.Password;
            sb.InitialCatalog           = dbProtocol.Database;
            sb.MultipleActiveResultSets = true;
            sb.Pooling                  = true;
            sb.PersistSecurityInfo      = true;
            return(sb.ConnectionString);
        }
Beispiel #18
0
        public void Init()
        {
            TestInitializer.ClearDb();
            TestInitializer.SeedData(TestData.GenerateEmrSystems(TestInitializer.EmrConnectionString));
            _protocol        = TestInitializer.Protocol;
            _extracts        = TestInitializer.Extracts.Where(x => x.DocketId.IsSameAs("MNCH")).ToList();
            _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();

            var patientExtract         = _extracts.First(x => x.Name.IsSameAs(nameof(PatientMnchExtract)));
            var patientLoader          = TestInitializer.ServiceProvider.GetService <IPatientMnchLoader>();
            var patientSourceExtractor = TestInitializer.ServiceProvider.GetService <IPatientMnchSourceExtractor>();
            var tempCount    = patientSourceExtractor.Extract(patientExtract, _protocol).Result;
            var patientCount = patientLoader.Load(patientExtract.Id, tempCount, false).Result;
        }
Beispiel #19
0
        public void Init()
        {
            TestInitializer.ClearDb();
            TestInitializer.SeedData(TestData.GenerateEmrSystems(TestInitializer.EmrConnectionString));
            _protocol        = TestInitializer.Protocol;
            _extracts        = TestInitializer.Extracts.Where(x => x.DocketId.IsSameAs("HTS")).ToList();
            _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();

            var clientExtract          = _extracts.First(x => x.Name.IsSameAs("HtsClient"));
            var clientLoader           = TestInitializer.ServiceProvider.GetService <IHtsClientsLoader>();
            var clientsSourceExtractor = TestInitializer.ServiceProvider.GetService <IHtsClientsSourceExtractor>();
            var tempCount    = clientsSourceExtractor.Extract(clientExtract, _protocol).Result;
            var patientCount = clientLoader.Load(clientExtract.Id, tempCount).Result;
        }
Beispiel #20
0
        public bool CheckDiffSupport(DbProtocol protocol)
        {
            if (!protocol.DiffSupport)
            {
                return(false);
            }

            var sourceConnection = GetConnection(protocol);

            if (null == sourceConnection)
            {
                throw new Exception("Data connection not initialized");
            }

            using (sourceConnection)
            {
                if (sourceConnection.State != ConnectionState.Open)
                {
                    sourceConnection.Open();
                }
                var commandDefinition = new CommandDefinition(protocol.DiffSqlCheck, null, null, 0);

                try
                {
                    if (sourceConnection is SqliteConnection)
                    {
                        using (var diffReader = sourceConnection.ExecuteReader(commandDefinition))
                        {
                            diffReader.Read();
                        }
                    }
                    else
                    {
                        using (var diffReader = sourceConnection.ExecuteReader(commandDefinition, CommandBehavior.CloseConnection))
                        {
                            diffReader.Read();
                        }
                    }

                    return(true);
                }
                catch (Exception e)
                {
                    Log.Warning("Missing differential upload feature in EMR");
                }
            }
            return(false);
        }
Beispiel #21
0
        public IActionResult SaveConnection([FromBody] DbProtocol dbProtocol)
        {
            if (null == dbProtocol)
            {
                return(BadRequest());
            }
            try
            {
                _options.Update(opt =>
                {
                    opt.HapiConnection = _dbManager.BuildConncetion(dbProtocol);
                });

                return(Ok(true));
            }
            catch (Exception e)
            {
                Log.Error($"{e}");
                return(StatusCode(500, $"{e.Message}"));
            }
        }
        public void SetUp()
        {
            _context = new ExtractsContext(_options);
            _context.Database.EnsureDeleted();
            _context.Database.EnsureCreated();

            _dbExtractProtocolDtos = new List <DbExtractProtocolDTO>();
            _mssql    = new DbProtocol(DatabaseType.MicrosoftSQL, @".\koske14", "sa", "maun", "IQTools_KeHMIS");
            _extractA = new DbExtract {
                Id = _iqcareId, Emr = "IQCare", ExtractSql = @" select [Id],[shr],[date_created],[status],[status_date],[uuid] FROM [psmart_store]"
            };
            _mysql    = new DbProtocol(DatabaseType.MySQL, @"localhost", "root", "test", "openmrs");
            _extractB = new DbExtract {
                Id = _kenyaEmrId, Emr = "KenyaEMR", ExtractSql = @" select id,shr,date_created,status,status_date,uuid FROM psmart_store"
            };
            _dbExtractProtocolDtos.Add(new DbExtractProtocolDTO(_extractA, _mssql));
            _dbExtractProtocolDtos.Add(new DbExtractProtocolDTO(_extractB, _mysql));
            _extractHistoryRepository = new ExtractHistoryRepository(_context);
            _psmartExtractService     =
                new PsmartExtractService(new PsmartSourceReader(), new PsmartStageRepository(_context), _extractHistoryRepository);
        }
        public void Init()
        {
            var extractIds = TestInitializer.Iqtools.Extracts.Where(x => x.DocketId.IsSameAs("NDWH")).Select(x => x.Id)
                             .ToList();
            var cleaner = TestInitializer.ServiceProvider.GetService <IClearDwhExtracts>();

            cleaner.Clear(extractIds);

            var extractIdsMySql = TestInitializer.KenyaEmr.Extracts.Where(x => x.DocketId.IsSameAs("NDWH")).Select(x => x.Id)
                                  .ToList();
            var cleanerMySql = TestInitializer.ServiceProviderMysql.GetService <IClearDwhExtracts>();

            cleanerMySql.Clear(extractIdsMySql);

            _extractsContext      = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            _extractsContextMySql = TestInitializer.ServiceProviderMysql.GetService <ExtractsContext>();

            var patients = Builder <PatientExtract> .CreateListOfSize(1).All().With(x => x.SiteCode = 1).With(x => x.PatientPK = 1).Build().ToList();

            var tempMpis = Builder <TempPatientPharmacyExtract> .CreateListOfSize(1).All().With(x => x.SiteCode = 1).With(x => x.PatientPK = 1).With(x => x.CheckError = false).Build().ToList();

            _extractsContext.PatientExtracts.AddRange(patients);
            _extractsContext.TempPatientPharmacyExtracts.AddRange(tempMpis);
            _extractsContext.SaveChanges();

            _extractsContextMySql.PatientExtracts.AddRange(patients);
            _extractsContextMySql.TempPatientPharmacyExtracts.AddRange(tempMpis);
            _extractsContextMySql.SaveChanges();

            _iQtoolsDb          = TestInitializer.Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            _iQtoolsDb.Host     = ".";
            _iQtoolsDb.Username = "******";
            _iQtoolsDb.Password = "******";

            _kenyaEmrDb              = TestInitializer.KenyaEmr.DatabaseProtocols.First();
            _kenyaEmrDb.Host         = "127.0.0.1";
            _kenyaEmrDb.Username     = "******";
            _kenyaEmrDb.Password     = "******";
            _kenyaEmrDb.DatabaseName = "openmrs";
        }
Beispiel #24
0
        public bool VerfiyServer(DbProtocol dbProtocol)
        {
            bool isConnected = false;

            var sb = new SqlConnectionStringBuilder();

            sb.DataSource               = dbProtocol.Server;
            sb.UserID                   = dbProtocol.User;
            sb.Password                 = dbProtocol.Password;
            sb.InitialCatalog           = "master";
            sb.MultipleActiveResultSets = true;
            sb.PersistSecurityInfo      = true;
            sb.Pooling                  = true;

            using (var cn = new SqlConnection(sb.ConnectionString))
            {
                cn.Open();
                isConnected = cn.State == ConnectionState.Open;
            }

            return(isConnected);
        }
Beispiel #25
0
        public IActionResult VerifyDb([FromBody] DbProtocol dbProtocol)
        {
            if (null == dbProtocol)
            {
                return(BadRequest());
            }

            try
            {
                var connected = _dbManager.Verfiy(dbProtocol);

                if (connected)
                {
                    return(Ok(true));
                }

                throw new Exception("Database could not connect");
            }
            catch (Exception e)
            {
                Log.Error($"{e}");
                return(StatusCode(500, $"{e.Message}"));
            }
        }
Beispiel #26
0
        public async Task <int> Extract(DbExtract extract, DbProtocol dbProtocol)
        {
            int batch = 500;

            DomainEvents.Dispatch(new MgsNotification(new ExtractProgress(nameof(MetricMigrationExtract), "extracting...")));
            //DomainEvents.Dispatch(new CbsStatusNotification(extract.Id,ExtractStatus.Loading));

            var list = new List <TempMetricMigrationExtract>();

            int count      = 0;
            int totalCount = 0;

            using (var rdr = await _reader.ExecuteReader(dbProtocol, extract))
            {
                while (rdr.Read())
                {
                    totalCount++;
                    count++;
                    // AutoMapper profiles
                    var extractRecord = Mapper.Map <IDataRecord, TempMetricMigrationExtract>(rdr);
                    extractRecord.Id = LiveGuid.NewGuid();
                    list.Add(extractRecord);

                    if (count == batch)
                    {
                        // TODO: batch and save
                        _extractRepository.BatchInsert(list);

                        try
                        {
                            DomainEvents.Dispatch(new  MgsNotification(new ExtractProgress(nameof(MetricMigrationExtract), "extracting...", totalCount, count, 0, 0, 0)));
                        }
                        catch (Exception e)
                        {
                            Log.Error(e, "Notification error");
                        }
                        count = 0;
                        list  = new List <TempMetricMigrationExtract>();
                    }

                    // TODO: Notify progress...
                }

                if (count > 0)
                {
                    _extractRepository.BatchInsert(list);
                }
                _extractRepository.CloseConnection();
            }

            try
            {
                DomainEvents.Dispatch(new MgsNotification(new ExtractProgress(nameof(MetricMigrationExtract), "extracted", totalCount, 0, 0, 0, 0)));
                DomainEvents.Dispatch(new MgsStatusNotification(extract.Id, ExtractStatus.Found, totalCount));
                DomainEvents.Dispatch(new MgsStatusNotification(extract.Id, ExtractStatus.Loaded, totalCount));
            }
            catch (Exception e)
            {
                Log.Error(e, "Notification error");
            }

            return(totalCount);
        }
 public int Find(DbProtocol protocol, DbExtract extract)
 {
     throw new NotImplementedException();
 }
Beispiel #28
0
 public Task <int> ReadExtract(DbExtract extract, DbProtocol dbProtocol)
 {
     throw new NotImplementedException();
 }
 public IEnumerable <PsmartSource> Extract(DbProtocol protocol, DbExtract extract)
 {
     _emr = extract.Emr;
     return(_psmartSourceReader.Read(protocol, extract));
 }
 public bool CheckDiffSupport(DbProtocol protocol)
 {
     throw new NotImplementedException();
 }