private static Attribute ConvertToValid(XmlNhvmRuleConverterArgs rule) { ValidAttribute validAttribute = new ValidAttribute(); return validAttribute; }
private static void SetSequenceAttribute(AttributeSet attributeSet, SetParameterGroup setParameterGroup) { foreach(Object parameter in setParameterGroup.values) { // Check if all parameters are of type sequence item. if (!(parameter is SequenceItem)) { DvtkHighLevelInterfaceException.Throw("Error while setting the Sequence attribute with tag " + setParameterGroup.tagAsString + ". Only sequence items are allowed as parameters."); } } ValidAttribute sequenceAttribute = new ValidAttribute(setParameterGroup.tagAsUInt32, VR.SQ); foreach(SequenceItem sequenceItem in setParameterGroup.values) { sequenceAttribute.AddItem(sequenceItem); } attributeSet.Set(sequenceAttribute); }
private static void SetSimpleAttribute(AttributeSet attributeSet, SetParameterGroup setParameterGroup) { ArrayList attributeValuesAsStrings = new ArrayList(); bool validStringValues = true; foreach(Object parameter in setParameterGroup.values) { if (parameter is ValidValues) { ValidValues validValues = parameter as ValidValues; for (int valueIndex = 1; valueIndex <= validValues.Count; valueIndex++) { attributeValuesAsStrings.Add(validValues.GetString(valueIndex)); } } else if (parameter is InvalidValues) { InvalidValues invalidValues = parameter as InvalidValues; // InterfaceLogging.WriteError("Setting an attribute with tag " + setParameterGroup.tagAsString + " fails because one of the supplied values is from a non-existing attribute with tag " + invalidValues.TagSequence); validStringValues = false; break; } else { attributeValuesAsStrings.Add(parameter.ToString()); } } if (validStringValues) { ValidAttribute validAttribute = new ValidAttribute(setParameterGroup.tagAsUInt32, setParameterGroup.vR, attributeValuesAsStrings.ToArray()); attributeSet.Set(validAttribute); } }
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); } }