Пример #1
0
        protected override fo.DicomDataset GetMediaDataset(fo.DicomDataset data, DicomMediaProperties mediaInfo)
        {
            //TODO: this is still not working with when images BPP are not compatible from one Transfer to the other (12/16-bit -> 8-bit)
            if (!string.IsNullOrWhiteSpace(mediaInfo.TransferSyntax))
            {
                return(data.Clone(fo.DicomTransferSyntax.Parse(mediaInfo.TransferSyntax)));
            }
            else if (data.InternalTransferSyntax != fo.DicomTransferSyntax.JPEGProcess1)
            {
                return(data.Clone(fo.DicomTransferSyntax.JPEGProcess1));
            }

            return(base.GetMediaDataset(data, mediaInfo));
        }
Пример #2
0
        /// <summary>Clones and anonymizes a dataset</summary>
        /// <param name="dataset">The dataset to be cloned and anonymized</param>
        /// <returns>Anonymized dataset.</returns>
        public DicomDataset Anonymize(DicomDataset dataset)
        {
            var clone = dataset.Clone();

            AnonymizeInPlace(clone);
            return(clone);
        }
Пример #3
0
        protected override fo.DicomDataset GetMediaDataset(fo.DicomDataset data, DicomMediaProperties mediaInfo)
        {
            if (mediaInfo.MediaType != MediaType)
            {
                throw new InvalidOperationException(string.Format("Invalid media type. Supported media type is:{0} and provided media type is:{1}",
                                                                  MediaType, mediaInfo.MediaType));
            }

            if (!string.IsNullOrWhiteSpace(mediaInfo.TransferSyntax) && mediaInfo.TransferSyntax != "*")
            {
                var transfer = fo.DicomTransferSyntax.Parse(mediaInfo.TransferSyntax);

                if (transfer == data.InternalTransferSyntax)
                {
                    return(data);
                }

                var ds = data.Clone(transfer);

                ds.AddOrUpdate(fo.DicomTag.TransferSyntaxUID, transfer.UID.UID);

                return(ds);
            }
            else
            {
                return(base.GetMediaDataset(data, mediaInfo));
            }
        }
Пример #4
0
        protected virtual DicomMediaLocations[] SaveDicomMedia
        (
            fo.DicomDataset dicomObject
        )
        {
            List <DicomMediaLocations> mediaLocations = new List <DicomMediaLocations> ( );

            fo.DicomDataset storageDataset = dicomObject.Clone(fo.DicomTransferSyntax.ExplicitVRLittleEndian);


            foreach (var mediaType in Settings.MediaTypes)
            {
                CreateMedia(mediaLocations, storageDataset, mediaType);
            }

            var mediaInfo = Settings.MediaTypes.Where(n => n.MediaType == MimeMediaTypes.DICOM &&
                                                      n.TransferSyntax == dicomObject.InternalTransferSyntax.UID.UID).FirstOrDefault( );

            if (mediaInfo == null)
            {
                CreateMedia(mediaLocations, dicomObject, new DicomMediaProperties(MimeMediaTypes.DICOM, dicomObject.InternalTransferSyntax.UID.UID));
            }

            return(mediaLocations.ToArray( ));
        }
Пример #5
0
        public UncompressedPixelDataWrapper(fo.DicomDataset ds)
        {
            if (ds.InternalTransferSyntax.IsEncapsulated)
            {
                Dataset = ds.Clone(DicomTransferSyntax.ImplicitVRLittleEndian);
            }
            else
            {
                // pull uncompressed frame from source pixel data
                Dataset = ds;
            }

            PixelData = DicomPixelData.Create(Dataset);
        }
Пример #6
0
        protected override fo.DicomDataset GetMediaDataset(fo.DicomDataset data, DicomMediaProperties mediaInfo)
        {
            if (mediaInfo.MediaType != MediaType)
            {
                throw new InvalidOperationException(string.Format("Invalid media type. Supported media type is:{0} and provided media type is:{1}",
                                                                  MediaType, mediaInfo.MediaType));
            }

            if (!string.IsNullOrWhiteSpace(mediaInfo.TransferSyntax))
            {
                return(data.Clone(fo.DicomTransferSyntax.Parse(mediaInfo.TransferSyntax)));
            }

            return(base.GetMediaDataset(data, mediaInfo));
        }