Esempio n. 1
0
        public async Task <bool> Handle(ExtractPatientAdverseEvent request, CancellationToken cancellationToken)
        {
            //Extract
            int found = await _patientAdverseEventSourceExtractor.Extract(request.Extract, request.DatabaseProtocol);

            //Validate
            await _extractValidator.Validate(request.Extract.Id, found, nameof(PatientAdverseEventExtract),
                                             $"{nameof(TempPatientAdverseEventExtract)}s");

            //Load
            int loaded = await _patientAdverseEventLoader.Load(request.Extract.Id, found);

            int rejected =
                _extractHistoryRepository.ProcessRejected(request.Extract.Id, found - loaded, request.Extract);

            _extractHistoryRepository.ProcessExcluded(request.Extract.Id, rejected, request.Extract);

            //notify loaded
            DomainEvents.Dispatch(
                new ExtractActivityNotification(request.Extract.Id, new DwhProgress(
                                                    nameof(PatientAdverseEventExtract),
                                                    nameof(ExtractStatus.Loaded),
                                                    found, loaded, rejected, loaded, 0)));

            return(true);
        }
        public void should_Load()
        {
            Assert.True(_count > 0);
            Assert.False(_extractsContext.PatientAdverseEventExtracts.Any());

            var count = _loader.Load(_extract.Id, _count, false).Result;

            Assert.True(count > 0);
            _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            Assert.AreEqual(count, _extractsContext.PatientAdverseEventExtracts.Count());
            Log.Debug($"Temp {_count} Main {_extractsContext.PatientAdverseEventExtracts.Count()}");
        }
        public void should_Log_Send()
        {
            var count = _loader.Load(_extract.Id, _count, false).Result;

            Assert.True(count > 0);

            _mediator.Publish(new DocketExtractSent("NDWH", nameof(PatientAdverseEventExtract))).Wait();

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

            var sql = $"select * from {nameof(DiffLog)}s where {nameof(DiffLog.Docket)}=@Docket and {nameof(DiffLog.Extract)}=@Extract";

            var extractDiffLog = _extractsContext.Database.GetDbConnection()
                                 .QueryFirst <DiffLog>(sql, new { Docket = "NDWH", Extract = $"{nameof(PatientAdverseEventExtract)}" });

            Assert.AreEqual(extractDiffLog.LastCreated, extractDiffLog.MaxCreated);
            Assert.AreEqual(extractDiffLog.LastModified, extractDiffLog.MaxModified);
            Assert.False(extractDiffLog.LastSent.IsNullOrEmpty());
        }
Esempio n. 4
0
        public void should_Log_Load()
        {
            var count = _loader.Load(_extract.Id, _count, false).Result;

            Assert.True(count > 0);

            _extractsContext = TestInitializer.ServiceProvider.GetService <ExtractsContext>();
            var patientDiffLog =
                _extractsContext.DiffLogs.First(x => x.Docket == "NDWH" && x.Extract == nameof(PatientExtract));
            var extractDiffLog = _extractsContext.DiffLogs.First(x =>
                                                                 x.Docket == "NDWH" && x.Extract == nameof(PatientAdverseEventExtract));

            Assert.False(patientDiffLog.MaxCreated.IsNullOrEmpty());
            Assert.False(patientDiffLog.MaxModified.IsNullOrEmpty());
            Assert.True(patientDiffLog.LastCreated.IsNullOrEmpty());
            Assert.True(patientDiffLog.LastModified.IsNullOrEmpty());
            Assert.True(patientDiffLog.LastSent.IsNullOrEmpty());

            Assert.False(extractDiffLog.MaxCreated.IsNullOrEmpty());
            Assert.False(extractDiffLog.MaxModified.IsNullOrEmpty());
            Assert.True(extractDiffLog.LastCreated.IsNullOrEmpty());
            Assert.True(extractDiffLog.LastModified.IsNullOrEmpty());
            Assert.True(extractDiffLog.LastSent.IsNullOrEmpty());
        }