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)); }
/// <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); }
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)); } }
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( )); }
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); }
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)); }