/// <summary>
 /// Instantiates new instance of <see cref="SeriesInfoProvider"/>.
 /// </summary>
 /// <param name="dicomQueryProvider">Provides method for creating new instance of <see cref="DicomQuery{SeriesInfo}" /></param>
 /// <exception cref="ArgumentNullException"><paramref name="dicomQueryProvider"/> is <see langword="null"/></exception>
 public SeriesInfoProvider([NotNull] IDicomQueryProvider<SeriesInfo> dicomQueryProvider)
 {
     if (dicomQueryProvider == null)
     {
         throw new ArgumentNullException(nameof(dicomQueryProvider));
     }
    
     mDicomQueryProvider = dicomQueryProvider;
 }
        /// <summary>
        /// Instantiates new instance of <see cref="StudyInfoProvider"/>
        /// </summary>
        /// <param name="dicomQueryProvider">Provides method for creating new instance of <see cref="DicomQuery{StudyInfo}" /></param>
        /// <param name="dicomDownloader">Provides method for downloading files from the DICOM server</param>
        /// <exception cref="ArgumentNullException"><paramref name="dicomQueryProvider"/> is <see langword="null"/> -or- <paramref name="dicomDownloader"/> is <see langword="null"/></exception>
        public StudyInfoProvider([NotNull] IDicomQueryProvider<StudyInfo> dicomQueryProvider, [NotNull] IDicomDownloader<StudyInfo> dicomDownloader)
        {
            if (dicomQueryProvider == null)
            {
                throw new ArgumentNullException(nameof(dicomQueryProvider));
            }
            if (dicomDownloader == null)
            {
                throw new ArgumentNullException(nameof(dicomDownloader));
            }

            mDicomQueryProvider = dicomQueryProvider;
            mDicomDownloader = dicomDownloader;
        }
        /// <summary>
        /// Initializes new instance of <see cref="PatientInfoProvider"/>.
        /// </summary>
        /// <param name="dicomQueryProvider">Provides method for creating new instance of <see cref="DicomQuery{PatientInfo}" /></param>
        /// <param name="studyInfoProvider">Provides ability to download images from the server</param>
        /// <param name="birthNumberParser">Service for parsing czech birth numbers</param>
        /// <exception cref="ArgumentNullException"><paramref name="dicomQueryProvider"/> is <see langword="null"/> -or- <paramref name="studyInfoProvider"/> is <see langword="null"/>-or- <paramref name="birthNumberParser"/> is <see langword="null"/></exception>
        public PatientInfoProvider([NotNull] IDicomQueryProvider<PatientInfo> dicomQueryProvider, [NotNull] IStudyInfoProvider studyInfoProvider, [NotNull] IBirthNumberParser birthNumberParser)
        {
            if (dicomQueryProvider == null)
            {
                throw new ArgumentNullException(nameof(dicomQueryProvider));
            }
            if (studyInfoProvider == null)
            {
                throw new ArgumentNullException(nameof(studyInfoProvider));
            }
            if (birthNumberParser == null)
            {
                throw new ArgumentNullException(nameof(birthNumberParser));
            }

            mDicomQueryProvider = dicomQueryProvider;
            mStudyInfoProvider = studyInfoProvider;
            mBirthNumberParser = birthNumberParser;
        }