예제 #1
0
 private static Attribute ConvertToValid(XmlNhvmRuleConverterArgs rule)
 {
     ValidAttribute validAttribute = new ValidAttribute();
     return validAttribute;
 }
예제 #2
0
파일: SetMethod.cs 프로젝트: ewcasas/DVTK
        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);
        }
예제 #3
0
파일: SetMethod.cs 프로젝트: ewcasas/DVTK
        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);
            }
        }
예제 #4
0
        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);
            }
        }