Example #1
0
		public IList<DicomAttributeCollection> SetupMRSeries(int seriesCount, int instancesPerSeries, string studyInstanceUid)
		{
			List<DicomAttributeCollection> instanceList = new List<DicomAttributeCollection>();

			DicomAttributeCollection baseCollection = new DicomAttributeCollection();

			SetupMR(baseCollection);

			baseCollection[DicomTags.StudyInstanceUid].SetStringValue(studyInstanceUid);
			
			int acquisitionNumber = 1;
			int instanceNumber = 100;

			float positionX = -61.7564f;
			float positionY = -212.04848f;
			float positionZ = -99.6208f;

			float orientation1 = 0.861f;
			float orientation2 = 0.492f;
			float orientation3 = 0.126f;
			float orientation4 = -0.2965f;


			for (int i = 0; i < seriesCount; i++)
			{
				string seriesInstanceUid = DicomUid.GenerateUid().UID;

				for (int j = 0; j < instancesPerSeries; j++)
				{
					string sopInstanceUid = DicomUid.GenerateUid().UID;
					DicomAttributeCollection instanceCollection = baseCollection.Copy();
					instanceCollection[DicomTags.SopInstanceUid].SetStringValue(sopInstanceUid);
					instanceCollection[DicomTags.SeriesInstanceUid].SetStringValue(seriesInstanceUid);

					instanceCollection[DicomTags.SeriesNumber].SetStringValue((i + 1).ToString());
                    instanceCollection[DicomTags.SeriesDescription].SetStringValue("Series" + (i + 1).ToString());
					
                    instanceCollection[DicomTags.AcquisitionNumber].SetStringValue(acquisitionNumber++.ToString());
					instanceCollection[DicomTags.InstanceNumber].SetStringValue(instanceNumber++.ToString());

					instanceCollection[DicomTags.ImagePositionPatient].SetFloat32(0, positionX);
					instanceCollection[DicomTags.ImagePositionPatient].SetFloat32(1, positionY);
					instanceCollection[DicomTags.ImagePositionPatient].SetFloat32(2, positionZ);
					positionY += 0.1f;

					instanceCollection[DicomTags.ImageOrientationPatient].SetFloat32(0, orientation1);
					instanceCollection[DicomTags.ImageOrientationPatient].SetFloat32(1, orientation2);
					instanceCollection[DicomTags.ImageOrientationPatient].SetFloat32(2, orientation3);
					instanceCollection[DicomTags.ImageOrientationPatient].SetFloat32(2, orientation4);
					orientation2 += 0.01f;

					instanceList.Add(instanceCollection);
				}
			}

			return instanceList;
		}
Example #2
0
			public void TestAttributesEqual()
			{
				DicomAttributeCollection collection = new DicomAttributeCollection();
				foreach (DicomTag tag in _tags)
					TrySetValue(0, collection[tag]);

				DicomAttributeCollection copy = collection.Copy(true, true, true);
				foreach(DicomAttribute attribute in collection)
				{
					DicomAttribute copyAttribute = copy[attribute.Tag];
					Assert.AreEqual(attribute, copyAttribute);
				}

				Assert.AreEqual(collection, copy);
			}
Example #3
0
			public void TestEmptyAttributesEqual()
			{
				DicomAttributeCollection collection = new DicomAttributeCollection();
				foreach (DicomTag tag in _tags)
				{
					object ignore = collection[tag].Values;
				}

				DicomAttributeCollection copy = collection.Copy(true, true, true);
				foreach(DicomAttribute attribute in collection)
				{
					DicomAttribute copyAttribute = copy[attribute.Tag];
					Assert.AreEqual(attribute, copyAttribute);
				}

				Assert.AreEqual(collection, copy);
			}
Example #4
0
		public void TestCopy()
		{
			DicomAttributeCollection collection = new DicomAttributeCollection();
			SetupMR(collection);
			DicomAttributeCollection copy = collection.Copy(true, true, true);
			Assert.AreEqual(collection.Count, copy.Count);

			foreach(DicomAttribute attribute in collection)
			{
				DicomAttribute attribute2 = copy[attribute.Tag];
				Assert.AreEqual(attribute2, attribute);
			}

			Assert.AreEqual(collection, copy);

			collection = new DicomAttributeCollection();
			SetupMultiframeXA(collection, 512, 512, 5);
			copy = collection.Copy(true, true, true);
			Assert.AreEqual(collection.Count, copy.Count);

			foreach (DicomAttribute attribute in collection)
			{
				DicomAttribute attribute2 = copy[attribute.Tag];
				Assert.AreEqual(attribute2, attribute);
			}

			Assert.AreEqual(collection, copy);
		}
		private static DicomFile CreateInstance(int number, string description, SopClass sopClass, DicomAttributeCollection baseDataSet)
		{
			DateTime now = DateTime.Now;
			DicomUid sopInstanceUid = DicomUid.GenerateUid();
			DicomFile dicomFile = new DicomFile(string.Empty, new DicomAttributeCollection(), baseDataSet.Copy(true, true, true));

			//meta info
			dicomFile.MediaStorageSopInstanceUid = sopInstanceUid.UID;
			dicomFile.MediaStorageSopClassUid = sopClass.Uid;

			//Series
			dicomFile.DataSet[DicomTags.Modality].SetStringValue("OT");
			dicomFile.DataSet[DicomTags.SeriesInstanceUid].SetStringValue(DicomUid.GenerateUid().UID);
			dicomFile.DataSet[DicomTags.SeriesNumber].SetInt32(0, number);
			dicomFile.DataSet[DicomTags.SeriesDescription].SetStringValue(description);

			//General Image
			dicomFile.DataSet[DicomTags.InstanceNumber].SetInt32(0, 1);

			//SC Image
			dicomFile.DataSet[DicomTags.DateOfSecondaryCapture].SetDateTime(0, now);
			dicomFile.DataSet[DicomTags.TimeOfSecondaryCapture].SetDateTime(0, now);

			//Sop Common
			dicomFile.DataSet[DicomTags.InstanceCreationDate].SetDateTime(0, now);
			dicomFile.DataSet[DicomTags.InstanceCreationTime].SetDateTime(0, now);
			dicomFile.DataSet[DicomTags.SopClassUid].SetStringValue(sopClass.Uid);
			dicomFile.DataSet[DicomTags.SopInstanceUid].SetStringValue(sopInstanceUid.UID);

			return dicomFile;
		}