Example #1
0
        public virtual IDicomDataParameter CreateParameter( )
        {
            IDicomDataParameter dicomParam = (IDicomDataParameter)Activator.CreateInstance(this.GetType( ));

            dicomParam.KeyTag            = KeyTag;
            dicomParam.VR                = VR;
            dicomParam.AllowExtraElement = AllowExtraElement;

            foreach (var tag in SupportedTags)
            {
                dicomParam.SupportedTags.Add(tag);
            }

            return(dicomParam);
        }
        public virtual void ProcessElement(fo.DicomItem element)
        {
            for (int index = ProcessingList.Count - 1; index >= 0; index--)
            {
                IDicomDataParameter currentCondition = ProcessingList[index];


                if (currentCondition.IsSupported(element))
                {
                    currentCondition.SetElement(element);

                    if (!currentCondition.AllowExtraElement)
                    {
                        ProcessingList.RemoveAt(index);
                    }

                    return;
                }
            }

            foreach (var condition in ParametersTemplate)
            {
                if (condition.IsSupported(element))
                {
                    IDicomDataParameter dedicatedCondition = condition.CreateParameter( );


                    dedicatedCondition.SetElement(element);

                    InternalResult.Add((T)dedicatedCondition);

                    if (dedicatedCondition.AllowExtraElement)
                    {
                        ProcessingList.Add(dedicatedCondition);
                    }

                    return;
                }
            }
        }
        protected virtual void InsertColumnValue
        (
            ColumnInfo column,
            IDicomDataParameter dicomParam,
            IDbCommand insertCommand
        )
        {
            InsertSections insert = GetTableInsert(column.Table);

            insert.ColumnNames.Add(column.Name);
            insert.ParametersValueNames.Add("@" + column.Name);     //TODO: add a parameter name to the column class
            //insert.ParametersValueNames.Add ( column.Values[0] ) ;


            System.Data.SqlClient.SqlParameter param;

            object value = DBNull.Value;

            if (null != column.Values && column.Values.Count != 0)
            {
                value = column.Values [0];

                if (null == value)
                {
                    value = DBNull.Value;
                }
            }

            param = new System.Data.SqlClient.SqlParameter("@" + column.Name, value);

            Parameters.Add(param);

            if (null != insertCommand)
            {
                insertCommand.Parameters.Add(param);
            }
        }
        protected virtual IList <string> GetValues(IDicomDataParameter condition)
        {
            if (condition is RangeMatching)
            {
                RangeMatching rangeCondition = (RangeMatching)condition;
                fo.DicomItem  dateElement    = rangeCondition.DateElement;
                fo.DicomItem  timeElement    = rangeCondition.TimeElement;


                return(GetDateTimeValues((fo.DicomElement)dateElement, (fo.DicomElement)timeElement));
            }
            else if (condition.VR.Equals(fo.DicomVR.DA) || condition.VR.Equals(fo.DicomVR.DT))
            {
                fo.DicomElement dateElement = null;
                fo.DicomElement timeElement = null;

                foreach (var element in condition.Elements)
                {
                    if (element.ValueRepresentation.Equals(fo.DicomVR.DA))
                    {
                        dateElement = (fo.DicomElement)element;
                        continue;
                    }

                    if (element.ValueRepresentation.Equals(fo.DicomVR.TM))
                    {
                        timeElement = (fo.DicomElement)element;
                    }
                }

                return(GetDateTimeValues(dateElement, timeElement));
            }
            else
            {
                return(condition.GetValues( ));
            }
        }
        protected virtual IList <string> GetValues(IDicomDataParameter condition)
        {
            if (condition is RangeMatching)
            {
                RangeMatching  rangeCondition = (RangeMatching)condition;
                DicomAttribute dateElement    = rangeCondition.DateElement;
                DicomAttribute timeElement    = rangeCondition.TimeElement;


                return(GetDateTimeValues(dateElement, timeElement));
            }
            else if (condition.VR.Equals(DicomVr.DAvr) || condition.VR.Equals(DicomVr.DTvr))
            {
                DicomAttribute dateElement = null;
                DicomAttribute timeElement = null;

                foreach (var element in condition.Elements)
                {
                    if (element.Tag.VR.Equals(DicomVr.DAvr))
                    {
                        dateElement = element;
                        continue;
                    }

                    if (element.Tag.VR.Equals(DicomVr.TMvr))
                    {
                        timeElement = element;
                    }
                }

                return(GetDateTimeValues(dateElement, timeElement));
            }
            else
            {
                return(condition.GetValues( ));
            }
        }