public void AddingRegularTag_ToMetaInformation_ShouldThrow()
        {
            var metaInfo  = new DicomFileMetaInformation();
            var exception = Record.Exception(() => metaInfo.AddOrUpdate(DicomTag.PatientName, "Doe^John"));

            Assert.IsType <DicomDataException>(exception);
        }
        public void Constructor_FromFileMetaInformation_ShouldNotThrow()
        {
            var metaInfo  = new DicomFileMetaInformation();
            var exception = Record.Exception(() => new DicomFileMetaInformation(metaInfo));

            Assert.Null(exception);
        }
Example #3
0
        private void AddNewRecord(DicomFileMetaInformation metaFileInfo, DicomDataset dataset, string referencedFileId)
        {
            var patientRecord = this.CreatePatientRecord(dataset);
            var studyRecord   = this.CreateStudyRecord(dataset, patientRecord);
            var seriesRecord  = this.CreateSeriesRecord(dataset, studyRecord);

            CreateImageRecord(metaFileInfo, dataset, seriesRecord, referencedFileId);
        }
        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));
        }
Example #5
0
        private void AddNewRcord(DicomFileMetaInformation metaFileInfo, DicomDataset dataset, string referencedFileId)
        {
            DicomDirectoryRecord patientRecord, studyRecord, seriesRecord;

            patientRecord = CreatePatientRecord(dataset);
            studyRecord   = CreateStudyRecord(dataset, patientRecord);
            seriesRecord  = CreateSeriesRecord(dataset, studyRecord);
            CreateImageRecord(metaFileInfo, dataset, seriesRecord, referencedFileId);
        }
Example #6
0
        public string GetDicomTagValueByDicomMetaInfo(DicomFileMetaInformation dicomMetaInfo, DicomTag dicomTag)
        {
            string TagValue = "";

            if (dicomMetaInfo.TryGetString(dicomTag, out TagValue))
            {
                TagValue = dicomMetaInfo.GetString(dicomTag);
            }
            return(TagValue);
        }
 public static IAsyncResult BeginWrite(
     this DicomFileWriter @this,
     IByteTarget target,
     DicomFileMetaInformation fileMetaInfo,
     DicomDataset dataset,
     AsyncCallback callback,
     object state)
 {
     return(AsyncFactory.ToBegin(@this.WriteAsync(target, fileMetaInfo, dataset), callback, state));
 }
 public static IAsyncResult BeginWrite(
     this DicomFileWriter @this,
     IByteTarget target,
     DicomFileMetaInformation fileMetaInfo,
     DicomDataset dataset,
     AsyncCallback callback,
     object state)
 {
     return AsyncFactory.ToBegin(@this.WriteAsync(target, fileMetaInfo, dataset), callback, state);
 }
        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);
        }
Example #10
0
 public DicomFileWriterTest()
 {
     _metaInfo = new DicomFileMetaInformation
     {
         MediaStorageSOPClassUID = DicomUID.RTDoseStorage,
         TransferSyntax          = DicomTransferSyntax.JPEG2000Lossless
     };
     _dataset = new DicomDataset(
         new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.RTDoseStorage),
         new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3"),
         new DicomLongString(_doseCommentTag, _comment));
 }
Example #11
0
        public DicomFileMetaInformation GetDicomMetaInfoByDicomFile(DicomFile dicomFile)
        {
            DicomFileMetaInformation dicominfo = null;

            try
            {
                dicominfo = dicomFile.FileMetaInfo;
            }
            catch (Exception ex)
            { }
            return(dicominfo);
        }
        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 DicomFileWriterTest()
        {
            this.metaInfo = new DicomFileMetaInformation
                               {
                                   MediaStorageSOPClassUID = DicomUID.RTDoseStorage,
                                   TransferSyntax = DicomTransferSyntax.JPEG2000Lossless
                               };
            this.dataset = new DicomDataset(
                new DicomUniqueIdentifier(DicomTag.SOPClassUID, DicomUID.RTDoseStorage),
                new DicomUniqueIdentifier(DicomTag.SOPInstanceUID, "1.2.3"),
                new DicomLongString(DoseCommentTag, Comment));

            this.locker = new object();
        }
        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.ValidateItems);
            Assert.Equal("1.2.3.456", metaInfo.MediaStorageSOPInstanceUID.UID);
        }
Example #17
0
		public IAsyncResult BeginWrite(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset, AsyncCallback callback, object state) {
			_target = target;
			_fileMetaInfo = fileMetaInfo;
			_dataset = dataset;

			_async = new EventAsyncResult(callback, state);

			byte[] preamble = new byte[132];
			preamble[128] = (byte)'D';
			preamble[129] = (byte)'I';
			preamble[130] = (byte)'C';
			preamble[131] = (byte)'M';

			_target.Write(preamble, 0, 132, OnCompletePreamble, null);

			return _async;
		}
Example #18
0
        private void CreateImageRecord(
            DicomFileMetaInformation metaFileInfo,
            DicomDataset dataset,
            DicomDirectoryRecord seriesRecord,
            string referencedFileId)
        {
            var currentImage     = seriesRecord.LowerLevelDirectoryRecord;
            var imageInstanceUid = dataset.Get <string>(DicomTag.SOPInstanceUID);


            while (currentImage != null)
            {
                if (currentImage.Get <string>(DicomTag.ReferencedSOPInstanceUIDInFile) == imageInstanceUid)
                {
                    return;
                }

                if (currentImage.NextDirectoryRecord != null)
                {
                    currentImage = currentImage.NextDirectoryRecord;
                }
                else
                {
                    //no more patient records, break the loop
                    break;
                }
            }
            var newImage = CreateRecordSequenceItem(DicomDirectoryRecordType.Image, dataset);

            newImage.AddOrUpdate(DicomTag.ReferencedFileID, referencedFileId);
            newImage.AddOrUpdate(DicomTag.ReferencedSOPClassUIDInFile, metaFileInfo.MediaStorageSOPClassUID.UID);
            newImage.AddOrUpdate(DicomTag.ReferencedSOPInstanceUIDInFile, metaFileInfo.MediaStorageSOPInstanceUID.UID);
            newImage.AddOrUpdate(DicomTag.ReferencedTransferSyntaxUIDInFile, metaFileInfo.TransferSyntax.UID);

            if (currentImage != null)
            {
                //study not found under patient record
                currentImage.NextDirectoryRecord = newImage;
            }
            else
            {
                //no studies record found under patient record
                seriesRecord.LowerLevelDirectoryRecord = newImage;
            }
        }
Example #19
0
        public IAsyncResult BeginWrite(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset, AsyncCallback callback, object state)
        {
            _target       = target;
            _fileMetaInfo = fileMetaInfo;
            _dataset      = dataset;

            _async = new EventAsyncResult(callback, state);

            byte[] preamble = new byte[132];
            preamble[128] = (byte)'D';
            preamble[129] = (byte)'I';
            preamble[130] = (byte)'C';
            preamble[131] = (byte)'M';

            _target.Write(preamble, 0, 132, OnCompletePreamble, null);

            return(_async);
        }
Example #20
0
        public void Read_CompressedImage_RecognizeTransferSyntax()
        {
            using var stream = File.OpenRead(TestData.Resolve("CT1_J2KI"));
            var source = new StreamByteSource(stream);
            var reader = new DicomFileReader();

            var fileMetaInfo = new DicomFileMetaInformation();
            var dataset      = new DicomDataset();

            reader.Read(
                source,
                new DicomDatasetReaderObserver(fileMetaInfo),
                new DicomDatasetReaderObserver(dataset));

            var expected = DicomTransferSyntax.JPEG2000Lossy;
            var actual   = reader.Syntax;

            Assert.Equal(expected, actual);
        }
Example #21
0
        public void Read_CompressedImage_RecognizeTransferSyntax()
        {
            using (var stream = File.OpenRead(@".\Test Data\CT1_J2KI"))
            {
                var source = new StreamByteSource(stream);
                var reader = new DicomFileReader();

                var fileMetaInfo = new DicomFileMetaInformation();
                var dataset = new DicomDataset();

                reader.Read(
                    source,
                    new DicomDatasetReaderObserver(fileMetaInfo),
                    new DicomDatasetReaderObserver(dataset));

                var expected = DicomTransferSyntax.JPEG2000Lossy;
                var actual = reader.Syntax;
                Assert.Equal(expected, actual);
            }
        }
Example #22
0
        public void Read_ValidSource_ReturnsSuccess()
        {
            using var stream = File.OpenRead(TestData.Resolve("CT1_J2KI"));
            var source = new StreamByteSource(stream);
            var reader = new DicomFileReader();

            var fileMetaInfo = new DicomFileMetaInformation();
            var dataset      = new DicomDataset();

            const DicomReaderResult expected = DicomReaderResult.Success;
            var actual = reader.Read(
                source,
                new DicomDatasetReaderObserver(fileMetaInfo),
                new DicomDatasetReaderObserver(dataset));

            Assert.Equal(expected, actual);

            var modality = dataset.GetString(DicomTag.Modality);

            Assert.Equal("CT", modality);
        }
Example #23
0
        public async Task ReadAsync_CompressedImage_RecognizeTransferSyntax()
        {
            using (var stream = File.OpenRead(@".\Test Data\CT1_J2KI"))
            {
                var source = new StreamByteSource(stream);
                var reader = new DicomFileReader();

                var fileMetaInfo = new DicomFileMetaInformation();
                var dataset      = new DicomDataset();

                await
                reader.ReadAsync(
                    source,
                    new DicomDatasetReaderObserver(fileMetaInfo),
                    new DicomDatasetReaderObserver(dataset));

                var expected = DicomTransferSyntax.JPEG2000Lossy;
                var actual   = reader.Syntax;
                Assert.Equal(expected, actual);
            }
        }
Example #24
0
        public void Read_ValidSource_ReturnsSuccess()
        {
            using (var stream = File.OpenRead(@".\Test Data\CT1_J2KI"))
            {
                var source = new StreamByteSource(stream);
                var reader = new DicomFileReader();

                var fileMetaInfo = new DicomFileMetaInformation();
                var dataset = new DicomDataset();

                const DicomReaderResult expected = DicomReaderResult.Success;
                var actual = reader.Read(
                    source,
                    new DicomDatasetReaderObserver(fileMetaInfo),
                    new DicomDatasetReaderObserver(dataset));

                Assert.Equal(expected, actual);

                var modality = dataset.Get<string>(DicomTag.Modality);
                Assert.Equal("CT", modality);
            }
        }
        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);
        }
Example #26
0
		private void AddNewRcord(DicomFileMetaInformation metaFileInfo, DicomDataset dataset, string referencedFileId) {
			DicomDirectoryRecord patientRecord, studyRecord, seriesRecord;

			patientRecord = CreatePatientRecord(dataset);
			studyRecord = CreateStudyRecord(dataset, patientRecord);
			seriesRecord = CreateSeriesRecord(dataset, studyRecord);
			CreateImageRecord(metaFileInfo, dataset, seriesRecord, referencedFileId);
		}
Example #27
0
 /// <summary>
 /// Write DICOM Part 10 object to <paramref name="target"/> asynchronously.
 /// </summary>
 /// <param name="target">Byte target subject to writing.</param>
 /// <param name="fileMetaInfo">File meta information.</param>
 /// <param name="dataset">Dataset.</param>
 /// <returns>Awaitable <see cref="Task"/>.</returns>
 public async Task WriteAsync(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset)
 {
     await WritePreambleAsync(target).ConfigureAwait(false);
     await WriteFileMetaInfoAsync(target, fileMetaInfo, _options).ConfigureAwait(false);
     await WriteDatasetAsync(target, fileMetaInfo.TransferSyntax, dataset, _options).ConfigureAwait(false);
 }
Example #28
0
 public void Write(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset)
 {
     EndWrite(BeginWrite(target, fileMetaInfo, dataset, null, null));
 }
Example #29
0
        /// <summary>
        /// Load all of the Elements in the DCM Meta
        /// </summary>
        /// <param name="dcm">the DICOM file</param>
        private void LoadAndShowDCMMetaInfo(DicomFile dcm)
        {
            //Show the message of DCM file to the listview in the dialog.
            DicomDataset             dcmDataset  = dcm.Dataset;
            DicomFileMetaInformation dcmMetaInfo = dcm.FileMetaInfo;

            listView1.BeginUpdate();
            //DICOM MetaInfo
            if (!String.IsNullOrWhiteSpace(dcmMetaInfo.MediaStorageSOPClassUID == null?"":dcmMetaInfo.MediaStorageSOPClassUID.ToString()))
            {
                //Insert the ImplementationClassUID
                ListViewItem newItem = new ListViewItem("0002");
                newItem.SubItems.Add("0002");
                newItem.SubItems.Add(dcmMetaInfo.MediaStorageSOPClassUID.ToString());
                listView1.Items.Add(newItem);
            }
            if (!String.IsNullOrWhiteSpace(dcmMetaInfo.MediaStorageSOPInstanceUID == null?"":dcmMetaInfo.MediaStorageSOPInstanceUID.ToString()))
            {
                //Insert the ImplementationClassUID
                ListViewItem newItem = new ListViewItem("0002");
                newItem.SubItems.Add("0003");
                newItem.SubItems.Add(dcmMetaInfo.MediaStorageSOPInstanceUID.ToString());
                listView1.Items.Add(newItem);
            }
            if (!String.IsNullOrWhiteSpace(dcmMetaInfo.TransferSyntax == null?"":dcmMetaInfo.TransferSyntax.ToString()))
            {
                //Insert the ImplementationClassUID
                ListViewItem newItem = new ListViewItem("0002");
                newItem.SubItems.Add("0010");
                newItem.SubItems.Add(dcmMetaInfo.TransferSyntax.ToString());
                listView1.Items.Add(newItem);
            }
            if (!String.IsNullOrWhiteSpace(dcmMetaInfo.ImplementationClassUID == null?"":dcmMetaInfo.ImplementationClassUID.ToString()))
            {
                //Insert the ImplementationClassUID
                ListViewItem newItem = new ListViewItem("0002");
                newItem.SubItems.Add("0012");
                newItem.SubItems.Add(dcmMetaInfo.ImplementationClassUID.ToString());
                listView1.Items.Add(newItem);
            }
            if (!String.IsNullOrWhiteSpace(dcmMetaInfo.ImplementationVersionName == null?"":dcmMetaInfo.ImplementationVersionName.ToString()))
            {
                //Insert the ImplementationClassUID
                ListViewItem newItem = new ListViewItem("0002");
                newItem.SubItems.Add("0013");
                newItem.SubItems.Add(dcmMetaInfo.ImplementationVersionName.ToString());
                listView1.Items.Add(newItem);
            }

            //Patient Info
            string patientName = dcmDataset.Get <string>(DicomTag.PatientName, "");

            if (!String.IsNullOrWhiteSpace(patientName))
            {
                ListViewItem newItem = new ListViewItem("0010");
                newItem.SubItems.Add("0010");
                newItem.SubItems.Add(patientName);
                listView1.Items.Add(newItem);
            }
            string patientID = dcmDataset.Get <string>(DicomTag.PatientID, "");

            if (!String.IsNullOrWhiteSpace(patientID))
            {
                ListViewItem newItem = new ListViewItem("0010");
                newItem.SubItems.Add("0020");
                newItem.SubItems.Add(patientID);
                listView1.Items.Add(newItem);
            }
            string patientBirth = dcmDataset.Get <string>(DicomTag.PatientBirthDate);

            if (!String.IsNullOrWhiteSpace(patientBirth))
            {
                ListViewItem newItem = new ListViewItem("0010");
                newItem.SubItems.Add("0030");
                newItem.SubItems.Add(patientBirth);
                listView1.Items.Add(newItem);
            }
            string patientSex = dcmDataset.Get <string>(DicomTag.PatientSex);

            if (!String.IsNullOrWhiteSpace(patientSex))
            {
                ListViewItem newItem = new ListViewItem("0010");
                newItem.SubItems.Add("0040");
                newItem.SubItems.Add(patientSex);
                listView1.Items.Add(newItem);
            }
            string patientAge = dcmDataset.Get <string>(DicomTag.PatientAge);

            if (!String.IsNullOrWhiteSpace(patientAge))
            {
                ListViewItem newItem = new ListViewItem("0010");
                newItem.SubItems.Add("1010");
                newItem.SubItems.Add(patientAge);
                listView1.Items.Add(newItem);
            }
            //Study & Series Info
            string studyDate = dcmDataset.Get <string>(DicomTag.StudyDate);

            if (!String.IsNullOrWhiteSpace(studyDate))
            {
                ListViewItem newItem = new ListViewItem("0008");
                newItem.SubItems.Add("0020");
                newItem.SubItems.Add(studyDate);
                listView1.Items.Add(newItem);
            }
            string studyTime = dcmDataset.Get <string>(DicomTag.StudyTime);

            if (!String.IsNullOrWhiteSpace(studyTime))
            {
                ListViewItem newItem = new ListViewItem("0008");
                newItem.SubItems.Add("0030");
                newItem.SubItems.Add(studyTime);
                listView1.Items.Add(newItem);
            }
            string studyInstanceID = dcmDataset.Get <string>(DicomTag.StudyInstanceUID);

            if (!String.IsNullOrWhiteSpace(studyInstanceID))
            {
                ListViewItem newItem = new ListViewItem("0020");
                newItem.SubItems.Add("000D");
                newItem.SubItems.Add(studyInstanceID);
                listView1.Items.Add(newItem);
            }
            string seriesInstanceID = dcmDataset.Get <string>(DicomTag.SeriesInstanceUID);

            if (!String.IsNullOrWhiteSpace(seriesInstanceID))
            {
                ListViewItem newItem = new ListViewItem("0020");
                newItem.SubItems.Add("000E");
                newItem.SubItems.Add(seriesInstanceID);
                listView1.Items.Add(newItem);
            }
            string studyID = dcmDataset.Get <string>(DicomTag.StudyID);

            if (!String.IsNullOrWhiteSpace(studyID))
            {
                ListViewItem newItem = new ListViewItem("0020");
                newItem.SubItems.Add("0010");
                newItem.SubItems.Add(studyID);
                listView1.Items.Add(newItem);
            }
            //Image Info
            string imageHeight = dcmDataset.Get <string>(DicomTag.Rows);

            if (!String.IsNullOrWhiteSpace(imageHeight))
            {
                ListViewItem newItem = new ListViewItem("0028");
                newItem.SubItems.Add("0010");
                newItem.SubItems.Add(imageHeight);
                listView1.Items.Add(newItem);
            }
            string imageWidth = dcmDataset.Get <string>(DicomTag.Columns);

            if (!String.IsNullOrWhiteSpace(imageWidth))
            {
                ListViewItem newItem = new ListViewItem("0028");
                newItem.SubItems.Add("0011");
                newItem.SubItems.Add(imageWidth);
                listView1.Items.Add(newItem);
            }
            string bitsAlloctaed = dcmDataset.Get <string>(DicomTag.BitsAllocated);

            if (!String.IsNullOrWhiteSpace(bitsAlloctaed))
            {
                ListViewItem newItem = new ListViewItem("0028");
                newItem.SubItems.Add("0100");
                newItem.SubItems.Add(bitsAlloctaed);
                listView1.Items.Add(newItem);
            }
            string bitsStored = dcmDataset.Get <string>(DicomTag.BitsStored);

            if (!String.IsNullOrWhiteSpace(bitsStored))
            {
                ListViewItem newItem = new ListViewItem("0028");
                newItem.SubItems.Add("0101");
                newItem.SubItems.Add(bitsStored);
                listView1.Items.Add(newItem);
            }
            string highBits = dcmDataset.Get <string>(DicomTag.HighBit);

            if (!String.IsNullOrWhiteSpace(highBits))
            {
                ListViewItem newItem = new ListViewItem("0028");
                newItem.SubItems.Add("0102");
                newItem.SubItems.Add(highBits);
                listView1.Items.Add(newItem);
            }
            listView1.EndUpdate();
        }
Example #30
0
 /// <summary>
 /// Write DICOM Part 10 object to <paramref name="target"/>.
 /// </summary>
 /// <param name="target">Byte target subject to writing.</param>
 /// <param name="fileMetaInfo">File meta information.</param>
 /// <param name="dataset">Dataset.</param>
 public void Write(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset)
 {
     WritePreamble(target);
     WriteFileMetaInfo(target, fileMetaInfo, this.options);
     WriteDataset(target, fileMetaInfo.TransferSyntax, dataset, this.options);
 }
Example #31
0
		private void CreateImageRecord(DicomFileMetaInformation metaFileInfo, DicomDataset dataset, DicomDirectoryRecord seriesRecord, string referencedFileId) {
			var currentImage = seriesRecord.LowerLevelDirectoryRecord;
			var imageInstanceUid = dataset.Get<string>(DicomTag.SOPInstanceUID);


			while (currentImage != null) {
				if (currentImage.Get<string>(DicomTag.ReferencedSOPInstanceUIDInFile) == imageInstanceUid) {
					return;
				}

				if (currentImage.NextDirectoryRecord != null) {
					currentImage = currentImage.NextDirectoryRecord;
				} else {
					//no more patient records, break the loop
					break;
				}
			}
			var newImage = CreateRecordSequenceItem(DicomDirectoryRecordType.Image, dataset);
			newImage.Add(DicomTag.ReferencedFileID, referencedFileId);
			newImage.Add(DicomTag.ReferencedSOPClassUIDInFile, metaFileInfo.MediaStorageSOPClassUID.UID);
			newImage.Add(DicomTag.ReferencedSOPInstanceUIDInFile, metaFileInfo.MediaStorageSOPInstanceUID.UID);
			newImage.Add(DicomTag.ReferencedTransferSyntaxUIDInFile, metaFileInfo.TransferSyntax.UID);

			if (currentImage != null) {
				//study not found under patient record
				currentImage.NextDirectoryRecord = newImage;
			} else {
				//no studies record found under patient record
				seriesRecord.LowerLevelDirectoryRecord = newImage;
			}
		}
Example #32
0
 private void AddNewRecord(DicomFileMetaInformation metaFileInfo, DicomDataset dataset, string referencedFileId)
 {
     var patientRecord = this.CreatePatientRecord(dataset);
     var studyRecord = this.CreateStudyRecord(dataset, patientRecord);
     var seriesRecord = this.CreateSeriesRecord(dataset, studyRecord);
     CreateImageRecord(metaFileInfo, dataset, seriesRecord, referencedFileId);
 }
        public void Construction_sets_validation_to_false_default_constructor()
        {
            var metaInfo = new DicomFileMetaInformation();

            Assert.False(metaInfo.ValidateItems);
        }
Example #34
0
 public void Write(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset)
 {
     EndWrite(BeginWrite(target, fileMetaInfo, dataset, null, null));
 }
Example #35
0
 /// <summary>
 /// Write DICOM Part 10 object to <paramref name="target"/>.
 /// </summary>
 /// <param name="target">Byte target subject to writing.</param>
 /// <param name="fileMetaInfo">File meta information.</param>
 /// <param name="dataset">Dataset.</param>
 public void Write(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset)
 {
     WritePreamble(target);
     WriteFileMetaInfo(target, fileMetaInfo, this.options);
     WriteDataset(target, fileMetaInfo.TransferSyntax, dataset, this.options);
 }
Example #36
0
 private void LoadAndShowDCMMetaInfo(DicomFile dcm)
 {
     DicomDataset             dcmDataset  = dcm.Dataset;
     DicomFileMetaInformation dcmMetaInfo = dcm.FileMetaInfo;
 }
Example #37
0
 /// <summary>
 /// Write DICOM Part 10 object to <paramref name="target"/> asynchronously.
 /// </summary>
 /// <param name="target">Byte target subject to writing.</param>
 /// <param name="fileMetaInfo">File meta information.</param>
 /// <param name="dataset">Dataset.</param>
 /// <returns>Awaitable <see cref="Task"/>.</returns>
 public async Task WriteAsync(IByteTarget target, DicomFileMetaInformation fileMetaInfo, DicomDataset dataset)
 {
     await WritePreambleAsync(target).ConfigureAwait(false);
     await WriteFileMetaInfoAsync(target, fileMetaInfo, this.options).ConfigureAwait(false);
     await WriteDatasetAsync(target, fileMetaInfo.TransferSyntax, dataset, this.options).ConfigureAwait(false);
 }