public StoreService(
     IStoreResponseBuilder storeResponseBuilder,
     IStoreDatasetValidator dicomDatasetValidator,
     IStoreOrchestrator storeOrchestrator,
     ILogger <StoreService> logger)
 {
     _storeResponseBuilder  = EnsureArg.IsNotNull(storeResponseBuilder, nameof(storeResponseBuilder));
     _dicomDatasetValidator = EnsureArg.IsNotNull(dicomDatasetValidator, nameof(dicomDatasetValidator));
     _storeOrchestrator     = EnsureArg.IsNotNull(storeOrchestrator, nameof(storeOrchestrator));
     _logger = EnsureArg.IsNotNull(logger, nameof(logger));
 }
Exemple #2
0
        public StoreDatasetValidatorTests()
        {
            var featureConfiguration = Options.Create(new FeatureConfiguration()
            {
                EnableFullDicomItemValidation = false
            });
            var minValidator = new ElementMinimumValidator();

            _queryTagService = Substitute.For <IQueryTagService>();
            _queryTags       = new List <QueryTag>(QueryTagService.CoreQueryTags);
            _queryTagService.GetQueryTagsAsync(Arg.Any <CancellationToken>()).Returns(_queryTags);
            _dicomDatasetValidator = new StoreDatasetValidator(featureConfiguration, minValidator, _queryTagService);
        }
Exemple #3
0
        public async Task GivenDatasetWithInvalidVrValue_WhenValidatingWithFullValidation_ThenDatasetValidationExceptionShouldBeThrown()
        {
            var featureConfiguration = Substitute.For <IOptions <FeatureConfiguration> >();

            featureConfiguration.Value.Returns(new FeatureConfiguration
            {
                EnableFullDicomItemValidation = true,
            });
            var minValidator = new ElementMinimumValidator();

            _dicomDatasetValidator = new StoreDatasetValidator(featureConfiguration, minValidator, _queryTagService);

            // LO VR, invalid characters
            _dicomDataset.Add(DicomTag.SeriesDescription, "CT1 abdomen\u0000");

            await ExecuteAndValidateException <DatasetValidationException>(ValidationFailedFailureCode);
        }
Exemple #4
0
        public async Task GivenDicomTagWithDifferentVR_WhenValidated_ThenShouldThrowException()
        {
            var featureConfiguration = Options.Create(new FeatureConfiguration()
            {
                EnableFullDicomItemValidation = false
            });
            DicomTag     tag     = DicomTag.Date;
            DicomElement element = new DicomDateTime(tag, DateTime.Now);

            _dicomDataset.AddOrUpdate(element);

            _queryTags.Clear();
            _queryTags.Add(new QueryTag(tag.BuildExtendedQueryTagStoreEntry()));
            IElementMinimumValidator validator = Substitute.For <IElementMinimumValidator>();

            _dicomDatasetValidator = new StoreDatasetValidator(featureConfiguration, validator, _queryTagService);
            await Assert.ThrowsAsync <ElementValidationException>(
                () => _dicomDatasetValidator.ValidateAsync(_dicomDataset, requiredStudyInstanceUid: null));

            validator.DidNotReceive().Validate(Arg.Any <DicomElement>());
        }