Exemplo n.º 1
0
		private static DicomSequenceItem[] UpdateSourceImageSequence(IDicomAttributeProvider baseSop, IEnumerable<IDicomAttributeProvider> overlaySops)
		{
			var baseItem = new SourceImageSequence
			               	{
			               		ReferencedSopInstanceUid = baseSop[DicomTags.SopInstanceUid].ToString(),
			               		ReferencedSopClassUid = baseSop[DicomTags.SopClassUid].ToString(),
			               		SpatialLocationsPreserved = SpatialLocationsPreserved.Yes,
			               		PurposeOfReferenceCodeSequence = SourceImagePurposesOfReferenceContextGroup.SourceImageForImageProcessingOperation
			               	};
			var maskItems = overlaySops != null ? overlaySops.GroupBy(s => s[DicomTags.SopInstanceUid].ToString())
			                                      	.Select(s => s.First())
			                                      	.Select(s => new SourceImageSequence
			                                      	             	{
			                                      	             		ReferencedSopInstanceUid = s[DicomTags.SopInstanceUid].ToString(),
			                                      	             		ReferencedSopClassUid = s[DicomTags.SopClassUid].ToString(),
			                                      	             		SpatialLocationsPreserved = SpatialLocationsPreserved.Yes,
			                                      	             		PurposeOfReferenceCodeSequence = SourceImagePurposesOfReferenceContextGroup.SourceImageForImageProcessingOperation
			                                      	             	}) : Enumerable.Empty<SourceImageSequence>();
			return new[] {baseItem}.Concat(maskItems).Select(s => s.DicomSequenceItem).ToArray();
		}
		/// <summary>
		/// Creates a single instance of a SourceImageSequence item. Does not modify the SourceImageSequence in the underlying collection.
		/// </summary>
		public SourceImageSequence CreateSourceImageSequence()
		{
			var iodBase = new SourceImageSequence(new DicomSequenceItem());
			return iodBase;
		}