Пример #1
0
        public static void InitDb()
        {
            var settingsContext = ServiceProvider.GetService <SettingsContext>();
            var extractsContext = ServiceProvider.GetService <ExtractsContext>();

            settingsContext.Database.Migrate();
            settingsContext.EnsureSeeded();


            extractsContext.Database.Migrate();
            extractsContext.EnsureSeeded();


            Iqtools = settingsContext.EmrSystems
                      .Include(x => x.DatabaseProtocols)
                      .Include(x => x.Extracts)
                      .First(x => x.Id == new Guid("a62216ee-0e85-11e8-ba89-0ed5f89f718b"));

            Validator = extractsContext.Validator.First();


            var dbmanager = ServiceProvider.GetService <IAppDatabaseManager>();

            IqToolsDatabase = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString,
                                                       DatabaseProvider.MsSql);

            IQtoolsDbProtocol =
                Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            IQtoolsDbProtocol.Host     = IqToolsDatabase.Server;
            IQtoolsDbProtocol.Username = IqToolsDatabase.User;
            IQtoolsDbProtocol.Password = IqToolsDatabase.Password;
        }
Пример #2
0
        public static void InitMysQLDb()
        {
            var settingsContextMysql = ServiceProviderMysql.GetService <SettingsContext>();
            var extractsContextMysql = ServiceProviderMysql.GetService <ExtractsContext>();

            settingsContextMysql.Database.Migrate();
            settingsContextMysql.EnsureSeeded();

            extractsContextMysql.Database.Migrate();
            extractsContextMysql.EnsureSeeded();

            KenyaEmr = settingsContextMysql.EmrSystems
                       .Include(x => x.DatabaseProtocols)
                       .Include(x => x.Extracts)
                       .First(x => x.Id == new Guid("a6221856-0e85-11e8-ba89-0ed5f89f718b"));

            Validator = extractsContextMysql.Validator.First();


            var dbmanager = ServiceProvider.GetService <IAppDatabaseManager>();

            KenyaEmrDatabase = dbmanager.ReadConnection(settingsContextMysql.Database.GetDbConnection().ConnectionString, DatabaseProvider.MySql);


            KenyaEmrDbProtocol          = KenyaEmr.DatabaseProtocols.First();
            KenyaEmrDbProtocol.Host     = KenyaEmrDatabase.Server;
            KenyaEmrDbProtocol.Username = KenyaEmrDatabase.User;
            KenyaEmrDbProtocol.Password = KenyaEmrDatabase.Password;
        }
Пример #3
0
        public void Init()
        {
            _options = TestDbOptions.GetInMemoryOptions <SettingsContext>();
            var context = new SettingsContext(_options);

            context.Database.EnsureDeleted();
            context.Database.EnsureCreated();

            _emrs = Builder <EmrSystem> .CreateListOfSize(2).Build().ToList();

            _docket = Builder <Docket> .CreateNew().Build();

            _iqcareExtract = Builder <Extract> .CreateNew().With(x => x.DocketId = _docket.Id).With(x => x.EmrSystemId = _emrs.First().Id).Build();

            _iqcareExtract.ExtractSql = @"SELECT * FROM [AppAdmin]";
            _kenyaExtract             = Builder <Extract> .CreateNew().With(x => x.DocketId = _docket.Id).With(x => x.EmrSystemId = _emrs.Last().Id).Build();

            _kenyaExtract.ExtractSql = @"SELECT * FROM psmart";

            _mssql =
                new DatabaseProtocol(DatabaseType.MicrosoftSQL, @".\koske14", "sa", "maun", "iqcare");
            _mysql =
                new DatabaseProtocol(DatabaseType.MySQL, @"localhost", "root", "root", "openmrs");

            context.Add(_docket);
            context.AddRange(_emrs);
            context.AddRange(new List <Extract> {
                _iqcareExtract, _kenyaExtract
            });
            context.SaveChanges();
        }
Пример #4
0
        public IActionResult SaveProtocol([FromBody] DatabaseProtocol entity)
        {
            if (null == entity)
            {
                return(BadRequest());
            }

            if (entity.Id.IsNullOrEmpty())
            {
                entity.Id = LiveGuid.NewGuid();
            }

            try
            {
                _emrManagerService.SaveProtocol(entity);
                return(Ok(entity));
            }
            catch (Exception e)
            {
                var msg = $"Error saving {nameof(DatabaseProtocol)}";
                Log.Error(msg);
                Log.Error($"{e}");
                return(StatusCode(500, msg));
            }
        }
Пример #5
0
        public static void ClearDb()
        {
            var context = ServiceProvider.GetService <SettingsContext>();

            context.EnsureSeeded();

            var econtext = ServiceProvider.GetService <ExtractsContext>();

            econtext.EnsureSeeded();

            /*
             * econtext.Database.GetDbConnection().Execute($"DELETE FROM {nameof(ExtractsContext.TempPatientExtracts)}");
             * econtext.Database.GetDbConnection().Execute($"DELETE FROM {nameof(ExtractsContext.PatientExtracts)}");
             * econtext.Database.GetDbConnection().Execute($"DELETE FROM {nameof(ExtractsContext.TempHtsClientsExtracts)}");
             * econtext.Database.GetDbConnection().Execute($"DELETE FROM {nameof(ExtractsContext.HtsClientsExtracts)}");
             */
            SeedData(TestData.GenerateEmrSystems(EmrConnectionString));
            SeedData(TestData.GenerateData <AppMetric>());
            SeedData <ExtractsContext>(TestData.GenerateData <EmrMetric>());
            Protocol = context.DatabaseProtocols.AsNoTracking().First(x => x.DatabaseType == DatabaseType.Sqlite);
            Extracts = context.Extracts.AsNoTracking().Where(x => x.DatabaseProtocolId == Protocol.Id).ToList();
            LoadMpi();
            LoadHts();
            LoadCt();
            LoadMgs();
        }
Пример #6
0
        public bool VerifyQuery(Extract extract, DatabaseProtocol databaseProtocol)
        {
            var connection = GetConnection(databaseProtocol);

            if (null == connection)
            {
                throw new ArgumentException("connection not initialized");
            }

            if (connection.State != ConnectionState.Open)
            {
                try
                {
                    connection.Open();
                    connection.Execute(extract.ExtractSql);
                    return(true);
                }
                catch (Exception e)
                {
                    if (e is DbException)
                    {
                        _connectionError = e.Message;
                    }
                    Log.Debug($"{e}");
                    throw;
                }
            }

            return(false);
        }
Пример #7
0
        public void should_GetConnection(DatabaseProtocol databaseProtocol)
        {
            var connection = _databaseManager.GetConnection(databaseProtocol);

            Assert.NotNull(connection);

            Console.WriteLine($"connections Found:[{connection.ConnectionString}] | {databaseProtocol.DatabaseType}");
        }
Пример #8
0
        public void should_VerifyConnection(DatabaseProtocol databaseProtocol)
        {
            var connected = _databaseManager.VerifyConnection(databaseProtocol);

            Assert.True(connected);

            Console.WriteLine($"connection OK:[{databaseProtocol}] | {databaseProtocol.DatabaseType}");
        }
Пример #9
0
        public void SaveProtocol(DatabaseProtocol protocol)
        {
            _databaseProtocolRepository.CreateOrUpdate(protocol);
            _databaseProtocolRepository.SaveChanges();
            var extracts = _extractRepository.GetAllByEmr(protocol.EmrSystemId, "NDWH");

            if (!extracts.Any())
            {
                var databaseProtocol = _databaseProtocolRepository.GetAll().FirstOrDefault(p => p.EmrSystemId == protocol.EmrSystemId);
                AddDefaultExtracts(databaseProtocol);
            }
        }
Пример #10
0
        private void AddDefaultExtracts(DatabaseProtocol protocol)
        {
            var extracts = DefaultExtracts();
            var emrName  = _emrSystemRepository.Get(protocol.EmrSystemId).Name;

            foreach (var extract in extracts)
            {
                extract.EmrSystemId        = protocol.EmrSystemId;
                extract.DatabaseProtocolId = protocol.Id;
                extract.Emr = emrName;
                _extractRepository.CreateOrUpdate(extract);
                _extractRepository.SaveChanges();
            }
        }
Пример #11
0
        public static void InitDbMySql()
        {
            var settingsContext = ServiceProviderMysql.GetService <SettingsContext>();
            var dbmanager       = ServiceProviderMysql.GetService <IAppDatabaseManager>();

            KenyaEmr         = settingsContext.EmrSystems.Include(x => x.DatabaseProtocols).FirstOrDefault(x => x.Name == "KenyaEMR");
            KenyaEmrDatabase = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString,
                                                        DatabaseProvider.MySql);

            KenyaEmrDbProtocol          = KenyaEmr.DatabaseProtocols.First();
            KenyaEmrDbProtocol.Host     = KenyaEmrDatabase.Server;
            KenyaEmrDbProtocol.Username = KenyaEmrDatabase.User;
            KenyaEmrDbProtocol.Password = KenyaEmrDatabase.Password;
        }
Пример #12
0
        public static void SeedData(params IEnumerable <object>[] entities)
        {
            var context = ServiceProvider.GetService <Dwapi.SettingsManagement.Infrastructure.SettingsContext>();

            foreach (IEnumerable <object> t in entities)
            {
                context.AddRange(t);
            }

            context.SaveChanges();

            Protocol = context.DatabaseProtocols.AsNoTracking().First(x => x.DatabaseType == DatabaseType.Sqlite);
            Extracts = context.Extracts.AsNoTracking().Where(x => x.DatabaseProtocolId == Protocol.Id).ToList();
        }
Пример #13
0
        public void should_Post_Protocol()
        {
            var databaseProtocol = new DatabaseProtocol(DatabaseType.MicrosoftSQL, @".\koske14", "sa", "maun", "test", _kenyaEmr.Id);
            var response         = _emrManagerController.SaveProtocol(databaseProtocol);

            var result = response as OkObjectResult;

            Assert.IsNotNull(result);
            Assert.AreEqual(200, result.StatusCode);

            var protocol = _databaseProtocolRepository.Get(databaseProtocol.Id);

            Assert.NotNull(protocol);
            Console.WriteLine(protocol);
        }
Пример #14
0
        public static void InitDbMsSql()
        {
            var settingsContext = ServiceProvider.GetService <SettingsContext>();
            var dbmanager       = ServiceProvider.GetService <IAppDatabaseManager>();

            Iqtools = settingsContext.EmrSystems.Include(x => x.DatabaseProtocols).FirstOrDefault(x => x.Name == "IQCare");

            IqToolsDatabase = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString,
                                                       DatabaseProvider.MsSql);

            IQtoolsDbProtocol =
                Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            IQtoolsDbProtocol.Host     = IqToolsDatabase.Server;
            IQtoolsDbProtocol.Username = IqToolsDatabase.User;
            IQtoolsDbProtocol.Password = IqToolsDatabase.Password;
        }
Пример #15
0
        public IDbConnection GetConnection(DatabaseProtocol databaseProtocol)
        {
            var connectionString = databaseProtocol.GetConnectionString();

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

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

            return(null);
        }
Пример #16
0
        public void Setup()
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json")
                         .Build();

            var mysqlConfig = new ConfigurationBuilder()
                              .AddJsonFile("appsettings.mysql.json")
                              .Build();


            var serviceProvider = new ServiceCollection()
                                  .AddDbContext <SettingsContext>(x => x.UseSqlServer(config["ConnectionStrings:DwapiConnection"]))
                                  .AddTransient <IAppDatabaseManager, AppDatabaseManager>()
                                  .BuildServiceProvider();

            var serviceProviderMysql = new ServiceCollection()
                                       .AddDbContext <SettingsContext>(x => x.UseMySql(mysqlConfig["ConnectionStrings:DwapiConnection"]))
                                       .AddTransient <IAppDatabaseManager, AppDatabaseManager>()
                                       .BuildServiceProvider();

            var settingsContext      = serviceProvider.GetService <SettingsContext>();
            var settingsContextMysql = serviceProviderMysql.GetService <SettingsContext>();

            ServiceProvider      = serviceProvider;
            ServiceProviderMysql = serviceProviderMysql;

            var dbmanager = serviceProvider.GetService <IAppDatabaseManager>();

            IqToolsDatabase  = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString, DatabaseProvider.MsSql);
            KenyaEmrDatabase = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString, DatabaseProvider.MySql);

            IQtoolsDbProtocol          = Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            IQtoolsDbProtocol.Host     = IqToolsDatabase.Server;
            IQtoolsDbProtocol.Username = IqToolsDatabase.User;
            IQtoolsDbProtocol.Password = IqToolsDatabase.Password;
            //_iQtoolsDb.Password = TestInitializer.IqToolsDatabase.Database;

            KenyaEmrDbProtocol              = KenyaEmr.DatabaseProtocols.First();
            KenyaEmrDbProtocol.Host         = KenyaEmrDatabase.Server;
            KenyaEmrDbProtocol.Username     = KenyaEmrDatabase.User;
            KenyaEmrDbProtocol.Password     = KenyaEmrDatabase.Password;
            KenyaEmrDbProtocol.DatabaseName = KenyaEmrDatabase.Database;
        }
Пример #17
0
        public Task <DatabaseService> Locate(DatabaseProtocol protocol)
        {
            // lower-invariant protocol & service name
            string protocolName = protocol.ToString().ToLowerInvariant();
            string serviceName  = $"_{protocolName}";

            // get name of service to resolve
            ServiceDnsName name = new ServiceDnsName
            {
                Domain      = ServiceDomain,
                ServiceName = serviceName,
                Protocol    = protocolName,
                DnsName     = string.IsNullOrEmpty(ServiceDomain)
                    ? serviceName.ToLowerInvariant()
                    : $"{serviceName.ToLowerInvariant()}._tcp.{ServiceDomain}"
            };

            // locate and return
            return(Locate(name, _ => ServiceLookup.SrvTxt(name, DbServiceFactory)));
        }
Пример #18
0
        public static void SeedData(params IEnumerable <object>[] entities)
        {
            var context = ServiceProvider.GetService <SettingsContext>();

            if (entities.Any(x => x.First().GetType() == typeof(EmrSystem)))
            {
                context.EmrSystems.RemoveRange(context.EmrSystems);
                context.SaveChanges();
            }

            foreach (IEnumerable <object> t in entities)
            {
                context.AddRange(t);
            }

            context.SaveChanges();

            Protocol = context.DatabaseProtocols.AsNoTracking().First(x => x.DatabaseType == DatabaseType.Sqlite);
            Extracts = context.Extracts.AsNoTracking().Where(x => x.DatabaseProtocolId == Protocol.Id).ToList();
        }
Пример #19
0
        public static void ClearDb()
        {
            var context = ServiceProvider.GetService <SettingsContext>();

            context.EnsureSeeded();

            var econtext = ServiceProvider.GetService <ExtractsContext>();

            econtext.EnsureSeeded();

            SeedData(TestData.GenerateEmrSystems(EmrConnectionString));
            SeedData(TestData.GenerateData <AppMetric>());
            SeedData <ExtractsContext>(TestData.GenerateData <EmrMetric>());
            Protocol = context.DatabaseProtocols.AsNoTracking().First(x => x.DatabaseType == DatabaseType.Sqlite);
            Extracts = context.Extracts.AsNoTracking().Where(x => x.DatabaseProtocolId == Protocol.Id).ToList();
            LoadMpi();
            LoadHts();
            LoadCt();
            LoadMgs();
        }
Пример #20
0
        public IActionResult Verify([FromBody] DatabaseProtocol entity)
        {
            if (null == entity)
            {
                return(BadRequest());
            }

            try
            {
                var verified = _emrManagerService.VerifyConnection(entity);
                return(Ok(verified));
            }
            catch (Exception e)
            {
                var msg = $"Error veryfying {nameof(DatabaseProtocol)} {_emrManagerService.GetConnectionError()}";
                Log.Error(msg);
                Log.Error($"{e}");
                return(StatusCode(500, msg));
            }
        }
Пример #21
0
        public static void ClearDiffDb()
        {
            AllServices.RemoveService(typeof(UploadContext));
            AllServices.RemoveService(typeof(SettingsContext));
            AllServices.RemoveService(typeof(ExtractsContext));

            AllServices.RemoveService(typeof(DbContextOptions <UploadContext>));
            AllServices.RemoveService(typeof(DbContextOptions <SettingsContext>));
            AllServices.RemoveService(typeof(DbContextOptions <ExtractsContext>));

            var diffConnection = new SqliteConnection(DiffConnectionString);

            diffConnection.Open();

            AllServices.AddDbContext <UploadContext>(x => x.UseSqlite(diffConnection));
            AllServices.AddDbContext <SettingsContext>(x => x.UseSqlite(diffConnection));
            AllServices.AddDbContext <ExtractsContext>(x => x.UseSqlite(diffConnection));


            ServiceProvider = AllServices.BuildServiceProvider();

            var context = ServiceProvider.GetService <SettingsContext>();

            context.EnsureSeeded();

            var econtext = ServiceProvider.GetService <ExtractsContext>();

            econtext.EnsureSeeded();

            SeedData(TestData.GenerateEmrSystems(EmrDiffConnectionString));
            SeedData(TestData.GenerateData <AppMetric>());
            SeedData <ExtractsContext>(TestData.GenerateData <EmrMetric>());
            Protocol = context.DatabaseProtocols.AsNoTracking().First(x => x.DatabaseType == DatabaseType.Sqlite);
            Extracts = context.Extracts.AsNoTracking().Where(x => x.DatabaseProtocolId == Protocol.Id).ToList();

            LoadDiffs(DateTime.Now.Date.AddMonths(-1), DateTime.Now.Date.AddMonths(-1));

            LoadCt();
        }
Пример #22
0
 public Task <DatabaseService> Locate(string serviceName, DatabaseProtocol protocol)
 {
     return(Locate(serviceName, protocol.ToString()));
 }
Пример #23
0
 public void SetUp()
 {
     _databaseManager  = TestInitializer.ServiceProvider.GetService <IDatabaseManager>();
     _databaseProtocol = new DatabaseProtocol(DatabaseType.Sqlite, TestInitializer.EmrConnectionString);
 }
Пример #24
0
        public void Setup()
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json")
                         .Build();

            var mysqlConfig = new ConfigurationBuilder()
                              .AddJsonFile("appsettings.mysql.json")
                              .Build();


            var serviceProvider = new ServiceCollection()
                                  .AddDbContext <ExtractsContext>(x => x.UseSqlServer(config["ConnectionStrings:DwapiConnection"]))
                                  .AddDbContext <SettingsContext>(x => x.UseSqlServer(config["ConnectionStrings:DwapiConnection"]))
                                  .AddTransient <IExtractHistoryRepository, ExtractHistoryRepository>()
                                  .AddTransient <ITempMasterPatientIndexRepository, TempMasterPatientIndexRepository>()
                                  .AddTransient <IMasterPatientIndexRepository, MasterPatientIndexRepository>()
                                  .AddTransient <ITempPatientExtractRepository, TempPatientExtractRepository>()
                                  .AddTransient <ICleanCbsExtracts, CleanCbsExtracts>()
                                  .AddTransient <IClearDwhExtracts, ClearDwhExtracts>()
                                  .AddTransient <IMasterPatientIndexReader, MasterPatientIndexReader>()
                                  .AddTransient <IExtractSourceReader, ExtractSourceReader>()
                                  .AddTransient <IAppDatabaseManager, AppDatabaseManager>()
                                  .BuildServiceProvider();

            var serviceProviderMysql = new ServiceCollection()
                                       .AddDbContext <ExtractsContext>(x => x.UseMySql(mysqlConfig["ConnectionStrings:DwapiConnection"]))
                                       .AddDbContext <SettingsContext>(x => x.UseMySql(mysqlConfig["ConnectionStrings:DwapiConnection"]))
                                       .AddTransient <IExtractHistoryRepository, ExtractHistoryRepository>()
                                       .AddTransient <ITempMasterPatientIndexRepository, TempMasterPatientIndexRepository>()
                                       .AddTransient <IMasterPatientIndexRepository, MasterPatientIndexRepository>()
                                       .AddTransient <ITempPatientExtractRepository, TempPatientExtractRepository>()
                                       .AddTransient <ICleanCbsExtracts, CleanCbsExtracts>()
                                       .AddTransient <IClearDwhExtracts, ClearDwhExtracts>()
                                       .AddTransient <IMasterPatientIndexReader, MasterPatientIndexReader>()
                                       .AddTransient <IExtractSourceReader, ExtractSourceReader>()
                                       .AddTransient <IAppDatabaseManager, AppDatabaseManager>()
                                       .BuildServiceProvider();

            ServiceProvider      = serviceProvider;
            ServiceProviderMysql = serviceProviderMysql;

            var settingsContext      = serviceProvider.GetService <SettingsContext>();
            var settingsContextMysql = serviceProviderMysql.GetService <SettingsContext>();
            var extractsContext      = serviceProvider.GetService <ExtractsContext>();
            var extractsContextMysql = serviceProviderMysql.GetService <ExtractsContext>();

            settingsContext.Database.Migrate();
            settingsContext.EnsureSeeded();

            settingsContextMysql.Database.Migrate();
            settingsContextMysql.EnsureSeeded();

            extractsContext.Database.Migrate();
            extractsContext.EnsureSeeded();

            extractsContextMysql.Database.Migrate();
            extractsContextMysql.EnsureSeeded();

            Iqtools = settingsContextMysql.EmrSystems
                      .Include(x => x.DatabaseProtocols)
                      .Include(x => x.Extracts)
                      .First(x => x.Id == new Guid("a62216ee-0e85-11e8-ba89-0ed5f89f718b"));

            KenyaEmr = settingsContextMysql.EmrSystems
                       .Include(x => x.DatabaseProtocols)
                       .Include(x => x.Extracts)
                       .First(x => x.Id == new Guid("a6221856-0e85-11e8-ba89-0ed5f89f718b"));

            Validator = extractsContext.Validator.First();


            var dbmanager = serviceProvider.GetService <IAppDatabaseManager>();

            IqToolsDatabase  = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString, DatabaseProvider.MsSql);
            KenyaEmrDatabase = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString, DatabaseProvider.MySql);

            IQtoolsDbProtocol          = Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            IQtoolsDbProtocol.Host     = IqToolsDatabase.Server;
            IQtoolsDbProtocol.Username = IqToolsDatabase.User;
            IQtoolsDbProtocol.Password = IqToolsDatabase.Password;
            //_iQtoolsDb.Password = TestInitializer.IqToolsDatabase.Database;

            KenyaEmrDbProtocol              = KenyaEmr.DatabaseProtocols.First();
            KenyaEmrDbProtocol.Host         = KenyaEmrDatabase.Server;
            KenyaEmrDbProtocol.Username     = KenyaEmrDatabase.User;
            KenyaEmrDbProtocol.Password     = KenyaEmrDatabase.Password;
            KenyaEmrDbProtocol.DatabaseName = KenyaEmrDatabase.Database;
        }
Пример #25
0
        public void Setup()
        {
            // return;

            RegisterLicence();

            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json")
                         .Build();

            var mysqlConfig = new ConfigurationBuilder()
                              .AddJsonFile("appsettings.mysql.json")
                              .Build();


            var serviceProvider = new ServiceCollection()
                                  .AddDbContext <ExtractsContext>(x => x.UseSqlServer(config["ConnectionStrings:DwapiConnection"]))
                                  .AddDbContext <SettingsContext>(x => x.UseSqlServer(config["ConnectionStrings:DwapiConnection"]))
                                  .AddTransient <IExtractHistoryRepository, ExtractHistoryRepository>()
                                  .AddTransient <IValidatorRepository, ValidatorRepository>()
                                  .AddTransient <ITempMasterPatientIndexRepository, TempMasterPatientIndexRepository>()
                                  .AddTransient <IMasterPatientIndexRepository, MasterPatientIndexRepository>()

                                  .AddTransient <ITempPatientExtractRepository, TempPatientExtractRepository>()
                                  .AddTransient <ITempPatientArtExtractRepository, TempPatientArtExtractRepository>()
                                  .AddTransient <ITempPatientBaselinesExtractRepository, TempPatientBaselinesExtractRepository>()
                                  .AddTransient <ITempPatientLaboratoryExtractRepository, TempPatientLaboratoryExtractRepository>()
                                  .AddTransient <ITempPatientPharmacyExtractRepository, TempPatientPharmacyExtractRepository>()
                                  .AddTransient <ITempPatientStatusExtractRepository, TempPatientStatusExtractRepository>()
                                  .AddTransient <ITempPatientVisitExtractRepository, TempPatientVisitExtractRepository>()

                                  .AddTransient <IPatientExtractRepository, PatientExtractRepository>()
                                  .AddTransient <IPatientArtExtractRepository, PatientArtExtractRepository>()
                                  .AddTransient <IPatientBaselinesExtractRepository, PatientBaselinesExtractRepository>()
                                  .AddTransient <IPatientLaboratoryExtractRepository, PatientLaboratoryExtractRepository>()
                                  .AddTransient <IPatientPharmacyExtractRepository, PatientPharmacyExtractRepository>()
                                  .AddTransient <IPatientStatusExtractRepository, PatientStatusExtractRepository>()
                                  .AddTransient <IPatientVisitExtractRepository, PatientVisitExtractRepository>()

                                  .AddTransient <ITempHTSClientExtractRepository, TempHTSClientExtractRepository>()
                                  .AddTransient <ITempHTSClientLinkageExtractRepository, TempHTSClientLinkageExtractRepository>()
                                  .AddTransient <ITempHTSClientPartnerExtractRepository, TempHTSClientPartnerExtractRepository>()

                                  .AddTransient <IHTSClientExtractRepository, HTSClientExtractRepository>()
                                  .AddTransient <IHTSClientLinkageExtractRepository, HTSClientLinkageExtractRepository>()
                                  .AddTransient <IHTSClientPartnerExtractRepository, HTSClientPartnerExtractRepository>()

                                  .AddTransient <ICleanCbsExtracts, CleanCbsExtracts>()
                                  .AddTransient <IClearDwhExtracts, ClearDwhExtracts>()
                                  .AddTransient <ICleanHtsExtracts, CleanHtsExtracts>()

                                  .AddTransient <IMasterPatientIndexReader, MasterPatientIndexReader>()
                                  .AddTransient <IExtractSourceReader, ExtractSourceReader>()
                                  .AddTransient <IHTSExtractSourceReader, HTSExtractSourceReader>()

                                  .AddTransient <IPatientSourceExtractor, PatientSourceExtractor>()
                                  .AddTransient <IPatientStatusSourceExtractor, PatientStatusSourceExtractor>()
                                  .AddTransient <IPatientArtSourceExtractor, PatientArtSourceExtractor>()
                                  .AddTransient <IPatientBaselinesSourceExtractor, PatientBaselinesSourceExtractor>()
                                  .AddTransient <IPatientPharmacySourceExtractor, PatientPharmacySourceExtractor>()
                                  .AddTransient <IPatientVisitSourceExtractor, PatientVisitSourceExtractor>()
                                  .AddTransient <IPatientLaboratorySourceExtractor, PatientLaboratorySourceExtractor>()

                                  .AddTransient <IHTSClientSourceExtractor, HTSClientSourceExtractor>()
                                  .AddTransient <IHTSClientLinkageSourceExtractor, HTSClientLinkageSourceExtractor>()
                                  .AddTransient <IHTSClientPartnerSourceExtractor, HTSClientPartnerSourceExtractor>()

                                  .AddTransient <IMasterPatientIndexSourceExtractor, MasterPatientIndexSourceExtractor>()
                                  .AddTransient <IMasterPatientIndexLoader, MasterPatientIndexLoader>()

                                  .AddTransient <IPatientLoader, PatientLoader>()
                                  .AddTransient <IPatientArtLoader, PatientArtLoader>()
                                  .AddTransient <IPatientBaselinesLoader, PatientBaselinesLoader>()
                                  .AddTransient <IPatientLaboratoryLoader, PatientLaboratoryLoader>()
                                  .AddTransient <IPatientPharmacyLoader, PatientPharmacyLoader>()
                                  .AddTransient <IPatientStatusLoader, PatientStatusLoader>()
                                  .AddTransient <IPatientVisitLoader, PatientVisitLoader>()


                                  .AddTransient <IHTSClientLoader, HTSClientLoader>()
                                  .AddTransient <IHTSClientLinkageLoader, HTSClientLinkageLoader>()
                                  .AddTransient <IHTSClientPartnerLoader, HTSClientPartnerLoader>()

                                  .AddTransient <IEmrMetricRepository, EmrMetricRepository>()
                                  .AddTransient <IEmrMetricsService, EmrMetricsService>()
                                  .AddTransient <IAppDatabaseManager, AppDatabaseManager>()

                                  .AddMediatR(typeof(ExtractMasterPatientIndexHandler))
                                  .BuildServiceProvider();

            var serviceProviderMysql = new ServiceCollection()
                                       .AddDbContext <ExtractsContext>(x => x.UseMySql(mysqlConfig["ConnectionStrings:DwapiConnection"]))
                                       .AddDbContext <SettingsContext>(x => x.UseMySql(mysqlConfig["ConnectionStrings:DwapiConnection"]))
                                       .AddTransient <ExtractsContext>()
                                       .AddTransient <SettingsContext>()
                                       .AddTransient <IExtractHistoryRepository, ExtractHistoryRepository>()
                                       .AddTransient <IValidatorRepository, ValidatorRepository>()
                                       .AddTransient <ITempMasterPatientIndexRepository, TempMasterPatientIndexRepository>()
                                       .AddTransient <IMasterPatientIndexRepository, MasterPatientIndexRepository>()

                                       .AddTransient <ITempPatientExtractRepository, TempPatientExtractRepository>()
                                       .AddTransient <ITempPatientArtExtractRepository, TempPatientArtExtractRepository>()
                                       .AddTransient <ITempPatientBaselinesExtractRepository, TempPatientBaselinesExtractRepository>()
                                       .AddTransient <ITempPatientLaboratoryExtractRepository, TempPatientLaboratoryExtractRepository>()
                                       .AddTransient <ITempPatientPharmacyExtractRepository, TempPatientPharmacyExtractRepository>()
                                       .AddTransient <ITempPatientStatusExtractRepository, TempPatientStatusExtractRepository>()
                                       .AddTransient <ITempPatientVisitExtractRepository, TempPatientVisitExtractRepository>()

                                       .AddTransient <IPatientExtractRepository, PatientExtractRepository>()
                                       .AddTransient <IPatientArtExtractRepository, PatientArtExtractRepository>()
                                       .AddTransient <IPatientBaselinesExtractRepository, PatientBaselinesExtractRepository>()
                                       .AddTransient <IPatientLaboratoryExtractRepository, PatientLaboratoryExtractRepository>()
                                       .AddTransient <IPatientPharmacyExtractRepository, PatientPharmacyExtractRepository>()
                                       .AddTransient <IPatientStatusExtractRepository, PatientStatusExtractRepository>()
                                       .AddTransient <IPatientVisitExtractRepository, PatientVisitExtractRepository>()


                                       .AddTransient <ITempHTSClientExtractRepository, TempHTSClientExtractRepository>()
                                       .AddTransient <ITempHTSClientLinkageExtractRepository, TempHTSClientLinkageExtractRepository>()
                                       .AddTransient <ITempHTSClientPartnerExtractRepository, TempHTSClientPartnerExtractRepository>()

                                       .AddTransient <IHTSClientExtractRepository, HTSClientExtractRepository>()
                                       .AddTransient <IHTSClientLinkageExtractRepository, HTSClientLinkageExtractRepository>()
                                       .AddTransient <IHTSClientPartnerExtractRepository, HTSClientPartnerExtractRepository>()

                                       .AddTransient <ICleanCbsExtracts, CleanCbsExtracts>()
                                       .AddTransient <IClearDwhExtracts, ClearDwhExtracts>()
                                       .AddTransient <ICleanHtsExtracts, CleanHtsExtracts>()

                                       .AddTransient <IMasterPatientIndexReader, MasterPatientIndexReader>()
                                       .AddTransient <IExtractSourceReader, ExtractSourceReader>()
                                       .AddTransient <IHTSExtractSourceReader, HTSExtractSourceReader>()

                                       .AddTransient <IPatientSourceExtractor, PatientSourceExtractor>()
                                       .AddTransient <IPatientStatusSourceExtractor, PatientStatusSourceExtractor>()
                                       .AddTransient <IPatientArtSourceExtractor, PatientArtSourceExtractor>()
                                       .AddTransient <IPatientBaselinesSourceExtractor, PatientBaselinesSourceExtractor>()
                                       .AddTransient <IPatientPharmacySourceExtractor, PatientPharmacySourceExtractor>()
                                       .AddTransient <IPatientVisitSourceExtractor, PatientVisitSourceExtractor>()
                                       .AddTransient <IPatientLaboratorySourceExtractor, PatientLaboratorySourceExtractor>()

                                       .AddTransient <IHTSClientSourceExtractor, HTSClientSourceExtractor>()
                                       .AddTransient <IHTSClientLinkageSourceExtractor, HTSClientLinkageSourceExtractor>()
                                       .AddTransient <IHTSClientPartnerSourceExtractor, HTSClientPartnerSourceExtractor>()

                                       .AddMediatR(typeof(ExtractMasterPatientIndexHandler))
                                       .AddTransient <IMasterPatientIndexSourceExtractor, MasterPatientIndexSourceExtractor>()
                                       .AddTransient <IMasterPatientIndexLoader, MasterPatientIndexLoader>()

                                       .AddTransient <IPatientLoader, PatientLoader>()
                                       .AddTransient <IPatientArtLoader, PatientArtLoader>()
                                       .AddTransient <IPatientBaselinesLoader, PatientBaselinesLoader>()
                                       .AddTransient <IPatientLaboratoryLoader, PatientLaboratoryLoader>()
                                       .AddTransient <IPatientPharmacyLoader, PatientPharmacyLoader>()
                                       .AddTransient <IPatientStatusLoader, PatientStatusLoader>()
                                       .AddTransient <IPatientVisitLoader, PatientVisitLoader>()

                                       .AddTransient <IHTSClientLoader, HTSClientLoader>()
                                       .AddTransient <IHTSClientLinkageLoader, HTSClientLinkageLoader>()
                                       .AddTransient <IHTSClientPartnerLoader, HTSClientPartnerLoader>()

                                       .AddTransient <IEmrMetricRepository, EmrMetricRepository>()
                                       .AddTransient <IEmrMetricsService, EmrMetricsService>()
                                       .AddTransient <IAppDatabaseManager, AppDatabaseManager>()


                                       .BuildServiceProvider();

            ServiceProvider      = serviceProvider;
            ServiceProviderMysql = serviceProviderMysql;

            var settingsContext      = serviceProvider.GetService <SettingsContext>();
            var settingsContextMysql = serviceProviderMysql.GetService <SettingsContext>();
            var extractsContext      = serviceProvider.GetService <ExtractsContext>();
            var extractsContextMysql = serviceProviderMysql.GetService <ExtractsContext>();

            Iqtools = settingsContext.EmrSystems
                      .Include(x => x.DatabaseProtocols)
                      .Include(x => x.Extracts)
                      .First(x => x.Id == new Guid("a62216ee-0e85-11e8-ba89-0ed5f89f718b"));

            KenyaEmr = settingsContextMysql.EmrSystems
                       .Include(x => x.DatabaseProtocols)
                       .Include(x => x.Extracts)
                       .First(x => x.Id == new Guid("a6221856-0e85-11e8-ba89-0ed5f89f718b"));

            Validator = extractsContext.Validator.First();

            var dbmanager = ServiceProvider.GetService <IAppDatabaseManager>();

            IqToolsDatabase = dbmanager.ReadConnection(settingsContext.Database.GetDbConnection().ConnectionString,
                                                       DatabaseProvider.MsSql);

            IQtoolsDbProtocol =
                Iqtools.DatabaseProtocols.First(x => x.DatabaseName.ToLower().Contains("iqtools".ToLower()));
            IQtoolsDbProtocol.Host     = IqToolsDatabase.Server;
            IQtoolsDbProtocol.Username = IqToolsDatabase.User;
            IQtoolsDbProtocol.Password = IqToolsDatabase.Password;

            KenyaEmrDatabase = dbmanager.ReadConnection(settingsContextMysql.Database.GetDbConnection().ConnectionString, DatabaseProvider.MySql);


            KenyaEmrDbProtocol          = KenyaEmr.DatabaseProtocols.First();
            KenyaEmrDbProtocol.Host     = KenyaEmrDatabase.Server;
            KenyaEmrDbProtocol.Username = KenyaEmrDatabase.User;
            KenyaEmrDbProtocol.Password = KenyaEmrDatabase.Password;

            /*try
             * {
             *  settingsContext.Database.Migrate();
             *  settingsContext.EnsureSeeded();
             *
             *  settingsContextMysql.Database.Migrate();
             *  settingsContextMysql.EnsureSeeded();
             *
             *  extractsContext.Database.Migrate();
             *  extractsContext.EnsureSeeded();
             *
             *  extractsContextMysql.Database.Migrate();
             *  extractsContextMysql.EnsureSeeded();
             *
             *  Iqtools = settingsContext.EmrSystems
             *      .Include(x => x.DatabaseProtocols)
             *      .Include(x => x.Extracts)
             *      .First(x => x.Id == new Guid("a62216ee-0e85-11e8-ba89-0ed5f89f718b"));
             *
             *  KenyaEmr = settingsContextMysql.EmrSystems
             *      .Include(x => x.DatabaseProtocols)
             *      .Include(x => x.Extracts)
             *      .First(x => x.Id == new Guid("a6221856-0e85-11e8-ba89-0ed5f89f718b"));
             *
             *  Validator = extractsContext.Validator.First();
             * }
             * catch (Exception e)
             * {
             *  Console.WriteLine(e);
             * }*/


            Mapper.Initialize(cfg =>
            {
                cfg.AddDataReaderMapping();
                cfg.AddProfile <TempMasterPatientIndexProfile>();
                cfg.AddProfile <TempExtractProfile>();
                cfg.AddProfile <TempHtsExtractProfile>();
                cfg.AddProfile <EmrProfiles>();
            }
                              );
        }
Пример #26
0
 public bool VerifyConnection(DatabaseProtocol databaseProtocol)
 {
     return(_databaseManager.VerifyConnection(databaseProtocol));
 }
Пример #27
0
 public void SaveProtocol(DatabaseProtocol protocol)
 {
     _databaseProtocolRepository.CreateOrUpdate(protocol);
     _databaseProtocolRepository.SaveChanges();
 }
Пример #28
0
 public bool Verfiy(Extract extract, DatabaseProtocol databaseProtocol)
 {
     return(_databaseManager.VerifyQuery(extract, databaseProtocol));
 }
Пример #29
0
 public ExtractDbProtocolDTO(Extract extract, DatabaseProtocol databaseProtocol)
 {
     Extract          = extract;
     DatabaseProtocol = databaseProtocol;
 }