/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="attrib"></param>
        internal DicomPixelData(DicomPixelData attrib)
        {
            SopClass = attrib.SopClass;

            NumberOfFrames              = attrib.NumberOfFrames;
            ImageWidth                  = attrib.ImageWidth;
            ImageHeight                 = attrib.ImageHeight;
            HighBit                     = attrib.HighBit;
            BitsStored                  = attrib.BitsStored;
            BitsAllocated               = attrib.BitsAllocated;
            SamplesPerPixel             = attrib.SamplesPerPixel;
            PixelRepresentation         = attrib.PixelRepresentation;
            PlanarConfiguration         = attrib.PlanarConfiguration;
            PhotometricInterpretation   = attrib.PhotometricInterpretation;
            LossyImageCompression       = attrib.LossyImageCompression;
            DerivationDescription       = attrib.DerivationDescription;
            LossyImageCompressionRatio  = attrib.LossyImageCompressionRatio;
            LossyImageCompressionMethod = attrib.LossyImageCompressionMethod;
            RescaleSlope                = attrib.RescaleSlope;
            RescaleIntercept            = attrib.RescaleIntercept;

            _hasDataModalityLut = attrib.HasDataModalityLut;
            _hasDataVoiLuts     = attrib.HasDataVoiLuts;
            _hasPaletteColorLut = attrib.HasPaletteColorLut;
            _paletteColorLut    = attrib.PaletteColorLut;

            foreach (Window window in attrib.LinearVoiLuts)
            {
                _linearVoiLuts.Add(window);
            }
        }
Beispiel #2
0
        static public void Insert(StudyStorageLocation storageLocation, string studyInstanceUId, string seriesInstanceUid, string sopInstanceUid,  DicomPixelData pixeldata)
        {
            lock (_cache)
            {
                string key =
                    String.Format("{0}/{1}/{2}/{3}", storageLocation.GetKey().Key, studyInstanceUId, seriesInstanceUid, sopInstanceUid);

                _cache.Add(key, pixeldata, null, Cache.NoAbsoluteExpiration, _retentionTime, CacheItemPriority.Normal, null);
            }
        }
Beispiel #3
0
        public ImageStreamingContext(HttpListenerContext context)
        {
            Request = context.Request;
            Response = context.Response;
            NameValueCollection query = Request.QueryString;

            #region INIT STUFF FOR PERFORMANCE TESTING
            #if DEBUG 

            if (query["testcompressed"] != null)
            {
                testCompressed= true;
            }
            else if (query["testuncompressed"] != null)
            {
                testUncompressed = true;
            }
            if (_testCompressedImage == null)
            {
                using (Stream stream = typeof(ImageStreamingContext).Assembly.GetManifestResourceStream("ClearCanvas.ImageServer.Services.Streaming.ImageStreaming.Test.TestSamples.compressed.dcm"))
                {
                    DicomFile file = new DicomFile();
                    file.Load(stream);

                    _testCompressedImage = DicomPixelData.CreateFrom(file);
                }
                
            }

            if (_testUncompressedImage == null)
            {
                using (Stream stream = typeof(ImageStreamingContext).Assembly.GetManifestResourceStream("ClearCanvas.ImageServer.Services.Streaming.ImageStreaming.Test.TestSamples.uncompressed.dcm"))
                {
                    DicomFile file = new DicomFile();
                    file.Load(stream);

                    _testUncompressedImage = DicomPixelData.CreateFrom(file);
                }
                
            }
            #endif

            #endregion

            _frameNumber = 0;
            if (query["FrameNumber"] != null)
                int.TryParse(query["FrameNumber"], out _frameNumber);

            _nextSeriesUid = query["nextSeriesUid"];
            _nextSopUid = query["nextObjectUid"];

        }
Beispiel #4
0
		/// <summary>
		/// Constructor.
		/// </summary>
		/// <param name="attrib"></param>
		internal DicomPixelData(DicomPixelData attrib)
		{
			SopClass = attrib.SopClass;

			NumberOfFrames = attrib.NumberOfFrames;
			ImageWidth = attrib.ImageWidth;
			ImageHeight = attrib.ImageHeight;
			HighBit = attrib.HighBit;
			BitsStored = attrib.BitsStored;
			BitsAllocated = attrib.BitsAllocated;
			SamplesPerPixel = attrib.SamplesPerPixel;
			PixelRepresentation = attrib.PixelRepresentation;
			PlanarConfiguration = attrib.PlanarConfiguration;
			PhotometricInterpretation = attrib.PhotometricInterpretation;
			LossyImageCompression = attrib.LossyImageCompression;
			DerivationDescription = attrib.DerivationDescription;
			LossyImageCompressionRatio = attrib.LossyImageCompressionRatio;
			LossyImageCompressionMethod = attrib.LossyImageCompressionMethod;
			RescaleSlope = attrib.RescaleSlope;
			RescaleIntercept = attrib.RescaleIntercept;

			_hasDataModalityLut = attrib.HasDataModalityLut;
			_hasDataVoiLuts = attrib.HasDataVoiLuts;
			_hasPaletteColorLut = attrib.HasPaletteColorLut;
			_paletteColorLut = attrib.PaletteColorLut;

			foreach (Window window in attrib.LinearVoiLuts)
				_linearVoiLuts.Add(new Window(window));
		}