public bool ReferencesFrame(string seriesInstanceUid, string sopInstanceUid, int frameNumber)
 {
     if (_dictionary.ContainsKey(seriesInstanceUid))
     {
         ImageSopInstanceReferenceDictionary sopDictionary = _dictionary[seriesInstanceUid];
         if (sopDictionary == null || sopDictionary.ReferencesFrame(sopInstanceUid, frameNumber))
         {
             return(true);
         }
     }
     return(false);
 }
 public bool ReferencesAllSegments(string seriesInstanceUid, string sopInstanceUid)
 {
     if (_dictionary.ContainsKey(seriesInstanceUid))
     {
         ImageSopInstanceReferenceDictionary sopDictionary = _dictionary[seriesInstanceUid];
         if (sopDictionary == null || sopDictionary.ReferencesAllSegments(sopInstanceUid))
         {
             return(true);
         }
     }
     return(false);
 }
        public SeriesReferenceDictionary(IEnumerable <IReferencedSeriesSequence> seriesReferences)
        {
            foreach (IReferencedSeriesSequence seriesReference in seriesReferences)
            {
                ImageSopInstanceReferenceDictionary imageSopDictionary = null;
                ImageSopInstanceReferenceMacro[]    imageSopReferences = seriesReference.ReferencedImageSequence;

                if (imageSopReferences != null && imageSopReferences.Length > 0)
                {
                    imageSopDictionary = new ImageSopInstanceReferenceDictionary(imageSopReferences);
                }

                _dictionary.Add(seriesReference.SeriesInstanceUid, imageSopDictionary);
            }
        }
		public SeriesReferenceDictionary(IEnumerable<IReferencedSeriesSequence> seriesReferences)
		{
			foreach (IReferencedSeriesSequence seriesReference in seriesReferences)
			{
				ImageSopInstanceReferenceDictionary imageSopDictionary = null;
				ImageSopInstanceReferenceMacro[] imageSopReferences = seriesReference.ReferencedImageSequence;

				if (imageSopReferences != null && imageSopReferences.Length > 0)
				{
					imageSopDictionary = new ImageSopInstanceReferenceDictionary(imageSopReferences);
				}

				_dictionary.Add(seriesReference.SeriesInstanceUid, imageSopDictionary);
			}
		}
		public static DicomGraphicAnnotation CreateGraphicAnnotation(Frame frame, GraphicAnnotationSequenceItem sequenceItem, RectangleF displayedArea, bool interactive = false)
		{
			ImageSopInstanceReferenceDictionary dictionary = new ImageSopInstanceReferenceDictionary(sequenceItem.ReferencedImageSequence, true);
			return dictionary.ReferencesFrame(frame.ParentImageSop.SopInstanceUid, frame.FrameNumber) ? DicomGraphicAnnotation.Create(sequenceItem, displayedArea) : null;
		}
Exemple #6
0
		public static IEnumerable<DicomGraphicAnnotation> CreateGraphicAnnotations(Frame frame, GraphicAnnotationModuleIod annotationsFromPresentationState, RectangleF displayedArea)
		{
			List<DicomGraphicAnnotation> list = new List<DicomGraphicAnnotation>();

			GraphicAnnotationSequenceItem[] annotationSequences = annotationsFromPresentationState.GraphicAnnotationSequence;
			if (annotationSequences != null)
			{
				foreach (GraphicAnnotationSequenceItem sequenceItem in annotationSequences)
				{
					ImageSopInstanceReferenceDictionary dictionary = new ImageSopInstanceReferenceDictionary(sequenceItem.ReferencedImageSequence, true);
					if (dictionary.ReferencesFrame(frame.ParentImageSop.SopInstanceUid, frame.FrameNumber))
					{
						list.Add(new DicomGraphicAnnotation(sequenceItem, displayedArea));
					}
				}
			}

			return list.AsReadOnly();
		}