public DicomFile(DicomDataset dataset) { Dataset = dataset; FileMetaInfo = new DicomFileMetaInformation(Dataset); Format = DicomFileFormat.DICOM3; IsPartial = false; }
/// <summary> /// Initializes a new instance of the <see cref="DicomFileMetaInformation"/> class. /// </summary> /// <param name="metaInfo">DICOM file meta information to be updated.</param> public DicomFileMetaInformation(DicomFileMetaInformation metaInfo) { this.Version = new byte[] { 0x00, 0x01 }; if (metaInfo.Contains(DicomTag.MediaStorageSOPClassUID)) { this.MediaStorageSOPClassUID = metaInfo.MediaStorageSOPClassUID; } if (metaInfo.Contains(DicomTag.MediaStorageSOPInstanceUID)) { this.MediaStorageSOPInstanceUID = metaInfo.MediaStorageSOPInstanceUID; } if (metaInfo.Contains(DicomTag.TransferSyntaxUID)) { this.TransferSyntax = metaInfo.TransferSyntax; } this.ImplementationClassUID = DicomImplementation.ClassUID; this.ImplementationVersionName = DicomImplementation.Version; var aet = CreateSourceApplicationEntityTitle(); if (aet != null) { this.SourceApplicationEntityTitle = aet; } }
public void BeginSave(string fileName, AsyncCallback callback, object state) { if (Format == DicomFileFormat.ACRNEMA1 || Format == DicomFileFormat.ACRNEMA2) { throw new DicomFileException(this, "Unable to save ACR-NEMA file"); } if (Format == DicomFileFormat.DICOM3NoFileMetaInfo) { // create file meta information from dataset FileMetaInfo = new DicomFileMetaInformation(Dataset); } File = new FileReference(fileName); File.Delete(); OnSave(); FileByteTarget target = new FileByteTarget(File); EventAsyncResult result = new EventAsyncResult(callback, state); DicomFileWriter writer = new DicomFileWriter(DicomWriteOptions.Default); writer.BeginWrite(target, FileMetaInfo, Dataset, OnWriteComplete, new Tuple <DicomFileWriter, EventAsyncResult>(writer, result)); }
public void Constructor_FromFileMetaInformation_ShouldNotThrow() { var metaInfo = new DicomFileMetaInformation(); var exception = Record.Exception(() => new DicomFileMetaInformation(metaInfo)); Assert.Null(exception); }
public DicomFile() { FileMetaInfo = new DicomFileMetaInformation(); Dataset = new DicomDataset(); Format = DicomFileFormat.DICOM3; IsPartial = false; }
public void Invalid_UI_values_for_meta_information_should_throw_on_set_when_validation_is_enabled(string sopInstanceUid) { var metaInfo = new DicomFileMetaInformation() { ValidateItems = true }; Assert.Throws <DicomValidationException>(() => metaInfo.MediaStorageSOPInstanceUID = new DicomUID(sopInstanceUid, "test", DicomUidType.SOPInstance)); }
public void SourceApplicationEntityTitle_GetterWhenAttributeIncluded_ReturnsValue() { var metaInfo = new DicomFileMetaInformation( new DicomDataset( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3"))); var exception = Record.Exception(() => { Assert.NotNull(metaInfo.SourceApplicationEntityTitle); }); Assert.Null(exception); }
public void ImplementationVersionName_GetterWhenAttributeMissing_ReturnsNull() { var metaInfo = new DicomFileMetaInformation( new DicomDataset( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3"))); metaInfo.Remove(DicomTag.ImplementationVersionName); var exception = Record.Exception(() => { Assert.Null(metaInfo.ImplementationVersionName); }); Assert.Null(exception); }
/// <summary> /// Initializes a new instance of the <see cref="DicomFileMetaInformation"/> class. /// </summary> /// <param name="metaInfo">DICOM file meta information to be updated.</param> public DicomFileMetaInformation(DicomFileMetaInformation metaInfo) { this.Version = new byte[] { 0x00, 0x01 }; if (metaInfo.Contains(DicomTag.MediaStorageSOPClassUID)) this.MediaStorageSOPClassUID = metaInfo.MediaStorageSOPClassUID; if (metaInfo.Contains(DicomTag.MediaStorageSOPInstanceUID)) this.MediaStorageSOPInstanceUID = metaInfo.MediaStorageSOPInstanceUID; if (metaInfo.Contains(DicomTag.TransferSyntaxUID)) this.TransferSyntax = metaInfo.TransferSyntax; this.ImplementationClassUID = DicomImplementation.ClassUID; this.ImplementationVersionName = DicomImplementation.Version; this.SourceApplicationEntityTitle = CreateSourceApplicationEntityTitle(); }
public void ImplementationVersionName_GetterWhenAttributeIncluded_ReturnsValue() { var metaInfo = new DicomFileMetaInformation( new DicomDataset( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3"))); var exception = Record.Exception(() => { Assert.NotNull(metaInfo.ImplementationVersionName); }); Assert.Null(exception); }
public void SourceApplicationEntityTitle_GetterWhenAttributeAlreadyExists_ReturnsValue() { var metaInfo = new DicomFileMetaInformation( new DicomDataset( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3")) .Add(DicomTag.SourceApplicationEntityTitle, "ABCDEFG")); var exception = Record.Exception(() => { Assert.Equal(metaInfo.SourceApplicationEntityTitle, "ABCDEFG"); }); Assert.Null(exception); }
public void Invalid_UI_values_for_meta_information_should_not_throw_on_creation(string sopInstanceUid) { var dataset = new DicomDataset { AutoValidate = false }; dataset.Add( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, sopInstanceUid)); var metaInfo = new DicomFileMetaInformation(dataset); Assert.Equal(sopInstanceUid, metaInfo.MediaStorageSOPInstanceUID.UID); }
public void SourceApplicationEntityTitle_GetterWhenAttributeMissing_ReturnsNull() { var metaInfo = new DicomFileMetaInformation( new DicomDataset( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3"))); metaInfo.Remove(DicomTag.SourceApplicationEntityTitle); var exception = Record.Exception(() => { Assert.Null(metaInfo.SourceApplicationEntityTitle); }); Assert.Null(exception); }
public void Construction_sets_validation_to_dataset_value_using_dataset_constructor(bool validate) { var dataset = new DicomDataset { ValidateItems = validate }; dataset.Add( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3.456")); var metaInfo = new DicomFileMetaInformation(dataset); Assert.Equal(validate, metaInfo.AutoValidate); Assert.Equal(validate, metaInfo.ValidateItems); Assert.Equal("1.2.3.456", metaInfo.MediaStorageSOPInstanceUID.UID); }
public void Save(Stream stream) { if (Format == DicomFileFormat.ACRNEMA1 || Format == DicomFileFormat.ACRNEMA2) throw new DicomFileException(this, "Unable to save ACR-NEMA file"); if (Format == DicomFileFormat.DICOM3NoFileMetaInfo) { // create file meta information from dataset FileMetaInfo = new DicomFileMetaInformation(Dataset); } OnSave(); using (var target = new StreamByteTarget(stream)) { DicomFileWriter writer = new DicomFileWriter(DicomWriteOptions.Default); writer.Write(target, FileMetaInfo, Dataset); } }
/// <summary> /// Initializes a new instance of the <see cref="DicomFileMetaInformation"/> class. /// </summary> /// <param name="metaInfo">DICOM file meta information to be updated.</param> public DicomFileMetaInformation(DicomFileMetaInformation metaInfo) { Version = new byte[] { 0x00, 0x01 }; if (metaInfo.Contains(DicomTag.MediaStorageSOPClassUID)) { MediaStorageSOPClassUID = metaInfo.MediaStorageSOPClassUID; } if (metaInfo.Contains(DicomTag.MediaStorageSOPInstanceUID)) { MediaStorageSOPInstanceUID = metaInfo.MediaStorageSOPInstanceUID; } if (metaInfo.Contains(DicomTag.TransferSyntaxUID)) { TransferSyntax = metaInfo.TransferSyntax; } ImplementationClassUID = DicomImplementation.ClassUID; ImplementationVersionName = DicomImplementation.Version; var aet = CreateSourceApplicationEntityTitle(); if (aet != null) { SourceApplicationEntityTitle = aet; } if (metaInfo.Contains(DicomTag.SendingApplicationEntityTitle)) { SendingApplicationEntityTitle = metaInfo.SendingApplicationEntityTitle; } if (metaInfo.Contains(DicomTag.ReceivingApplicationEntityTitle)) { ReceivingApplicationEntityTitle = metaInfo.ReceivingApplicationEntityTitle; } if (metaInfo.Contains(DicomTag.PrivateInformationCreatorUID)) { PrivateInformationCreatorUID = metaInfo.PrivateInformationCreatorUID; } if (metaInfo.Contains(DicomTag.PrivateInformation)) { PrivateInformation = metaInfo.PrivateInformation; } }
public void Save(string fileName) { if (Format == DicomFileFormat.ACRNEMA1 || Format == DicomFileFormat.ACRNEMA2) throw new DicomFileException(this, "Unable to save ACR-NEMA file"); if (Format == DicomFileFormat.DICOM3NoFileMetaInfo) { // create file meta information from dataset FileMetaInfo = new DicomFileMetaInformation(Dataset); } File = new FileReference(fileName); File.Delete(); OnSave(); using (var target = new FileByteTarget(File)) { DicomFileWriter writer = new DicomFileWriter(DicomWriteOptions.Default); writer.Write(target, FileMetaInfo, Dataset); } }
public void Save(Stream stream) { if (Format == DicomFileFormat.ACRNEMA1 || Format == DicomFileFormat.ACRNEMA2) { throw new DicomFileException(this, "Unable to save ACR-NEMA file"); } if (Format == DicomFileFormat.DICOM3NoFileMetaInfo) { // create file meta information from dataset FileMetaInfo = new DicomFileMetaInformation(Dataset); } OnSave(); using (var target = new StreamByteTarget(stream)) { DicomFileWriter writer = new DicomFileWriter(DicomWriteOptions.Default); writer.Write(target, FileMetaInfo, Dataset); } }
public void Save(string fileName) { if (Format == DicomFileFormat.ACRNEMA1 || Format == DicomFileFormat.ACRNEMA2) { throw new DicomFileException(this, "Unable to save ACR-NEMA file"); } if (Format == DicomFileFormat.DICOM3NoFileMetaInfo) { // create file meta information from dataset FileMetaInfo = new DicomFileMetaInformation(Dataset); } File = new FileReference(fileName); File.Delete(); using (var target = new FileByteTarget(File)) { DicomFileWriter writer = new DicomFileWriter(DicomWriteOptions.Default); writer.Write(target, FileMetaInfo, Dataset); } }
public void Construction_sets_validation_to_false_copy_constructor(bool validate, string sopInstanceUid, bool expectedError) { DicomFileMetaInformation existing, metaInfo; var dataset = new DicomDataset { ValidateItems = validate }; if (expectedError) { // we test the dataset as well here Assert.Throws <DicomValidationException>(() => dataset.Add( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, sopInstanceUid))); // such that we can construct it dataset.ValidateItems = false; dataset.AddOrUpdate( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, sopInstanceUid)); dataset.ValidateItems = validate; Assert.Throws <DicomValidationException>(() => new DicomFileMetaInformation(dataset)); return; } else { dataset.Add( new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage), new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, sopInstanceUid)); existing = new DicomFileMetaInformation(dataset); } metaInfo = new DicomFileMetaInformation(existing); Assert.Equal(validate, metaInfo.ValidateItems); Assert.Equal(validate, metaInfo.AutoValidate); Assert.Equal(sopInstanceUid, metaInfo.MediaStorageSOPInstanceUID.UID); }
public void Construction_sets_validation_to_false_default_constructor() { var metaInfo = new DicomFileMetaInformation(); Assert.False(metaInfo.ValidateItems); }
public DicomFile() { FileMetaInfo = new DicomFileMetaInformation(); Dataset = new DicomDataset(); Format = DicomFileFormat.DICOM3; }
public DicomFile() { FileMetaInfo = new DicomFileMetaInformation(); Dataset = new DicomDataset(); }
public DicomFile(DicomDataset dataset) { Dataset = dataset; FileMetaInfo = new DicomFileMetaInformation(Dataset); }
public void BeginSave(string fileName, AsyncCallback callback, object state) { if (Format == DicomFileFormat.ACRNEMA1 || Format == DicomFileFormat.ACRNEMA2) throw new DicomFileException(this, "Unable to save ACR-NEMA file"); if (Format == DicomFileFormat.DICOM3NoFileMetaInfo) { // create file meta information from dataset FileMetaInfo = new DicomFileMetaInformation(Dataset); } File = new FileReference(fileName); File.Delete(); OnSave(); FileByteTarget target = new FileByteTarget(File); EventAsyncResult result = new EventAsyncResult(callback, state); DicomFileWriter writer = new DicomFileWriter(DicomWriteOptions.Default); writer.BeginWrite(target, FileMetaInfo, Dataset, OnWriteComplete, new Tuple<DicomFileWriter, EventAsyncResult>(writer, result)); }