Exemplo n.º 1
0
        /// <summary>
        /// Creates an instance of <see cref="BaseInstanceXml"/> based on the specified <see cref="DicomAttributeCollection"/>.
        /// </summary>
        /// <param name="collect1"></param>
        /// <param name="collect2"></param>
        public BaseInstanceXml(DicomAttributeCollection collect1, DicomAttributeCollection collect2)
            : this()
        {
            Platform.CheckForNullReference(collect1, "collect1");
            Platform.CheckForNullReference(collect2, "collect2");

            foreach (DicomAttribute attrib1 in collect1)
            {
                DicomAttribute attrib2;
                if ((attrib1 is DicomAttributeOB) ||
                    (attrib1 is DicomAttributeOW) ||
                    (attrib1 is DicomAttributeOF) ||
                    (attrib1 is DicomAttributeOD) ||
                    (attrib1 is DicomFragmentSequence))
                {
                    if (collect2.TryGetAttribute(attrib1.Tag, out attrib2))
                    {
                        ((IPrivateInstanceXmlDicomAttributeCollection)Collection).ExcludedTagsHelper.Add(attrib1.Tag);
                    }
                    continue;
                }

                if (collect2.TryGetAttribute(attrib1.Tag, out attrib2))
                {
                    if (!attrib1.IsEmpty && attrib1.Equals(attrib2))                     //don't store empty tags in the base collection.
                    {
                        Collection[attrib1.Tag] = attrib1.Copy();
                    }
                }
            }

            if (collect1 is IInstanceXmlDicomAttributeCollection && collect2 is IInstanceXmlDicomAttributeCollection)
            {
                IInstanceXmlDicomAttributeCollection collection2 = (IInstanceXmlDicomAttributeCollection)collect2;
                foreach (DicomTag tag in ((IInstanceXmlDicomAttributeCollection)collect1).ExcludedTags)
                {
                    if (collection2.ExcludedTags.Contains(tag))
                    {
                        PrivateCollection.ExcludedTagsHelper.Add(tag);
                    }
                }
            }
        }
 public ExcludedTagsHelper(IInstanceXmlDicomAttributeCollection parent)
 {
     _parent       = parent;
     _excludedTags = new SortedList <DicomTag, DicomTag>();
 }