private void AddSequenceAttributesContentInformation(AttributeList attributeList) { // // Determine the maximum amount of sequence items for all supplied sequence attributes // that have the include_sequence_items flag enabled. // int maxItemCount = attributeList.DicomMaxItemCount; // // Fill the table with the information. // for (int itemIndex = 1; itemIndex <= maxItemCount; itemIndex++) { // // Add begin item row. // AddSequenceItemRow(attributeList, itemIndex, true); // // Add the comparison of attributes within the sequence items. // AttributeCollections attributeCollections = new AttributeCollections(); for (int attributeIndex = 0; attributeIndex < attributeList.Count; attributeIndex++) { if (attributeList[attributeIndex] == null) { attributeCollections.AddNull(); } else if (attributeList[attributeIndex] is Hl7Attribute) { attributeCollections.AddNull(); } else if (attributeList[attributeIndex] is DicomAttribute) { DicomAttribute dicomAttribute = attributeList[attributeIndex] as DicomAttribute; if ((dicomAttribute.ValidationRule.Flags & FlagsBase.Include_sequence_items) == FlagsBase.Include_sequence_items) { if (dicomAttribute.AttributeOnly is ValidAttribute) // Attribute is valid attribute. { ValidAttribute validAttribute = dicomAttribute.AttributeOnly as ValidAttribute; if (validAttribute.VR == VR.SQ) // Attribute is valid SQ attribute. { if (validAttribute.ItemCount < itemIndex) { // Item index to high for actual item count. attributeCollections.Add(new DicomAttributeCollection(new SequenceItem(), dicomAttribute.ValidationRule.Flags)); } else // Item exists. { attributeCollections.Add(new DicomAttributeCollection(validAttribute.GetItem(itemIndex), dicomAttribute.ValidationRule.Flags)); } } else // Attribute is valid attribute but not a SQ attribute. { attributeCollections.Add(new DicomAttributeCollection(new SequenceItem(), dicomAttribute.ValidationRule.Flags)); } } else // Attribute does not exist. { attributeCollections.Add(new DicomAttributeCollection(new SequenceItem(), dicomAttribute.ValidationRule.Flags)); } } else // Flags specify sequence items must not be included. { attributeCollections.AddNull(); } } } AddAttributeCollectionsInformationUsingStaticDicomCompare(attributeCollections); // // Add end item row. // AddSequenceItemRow(attributeList, itemIndex, false); } }