Пример #1
0
        protected virtual QueryBuilder BuildQuery
        (
            IEnumerable <IMatchingCondition> conditions,
            IQueryOptions options,
            TableKey queryLeveTable
        )
        {
            QueryBuilder queryBuilder = CreateQueryBuilder( );


            if (null != conditions && conditions.Count( ) > 0)
            {
                foreach (var condition in conditions)
                {
                    if (condition.VR == fo.DicomVR.PN)
                    {
                        List <PersonNameData> pnValues = new List <PersonNameData> ( );


                        pnValues = condition.GetPNValues( );

                        foreach (var values in pnValues)
                        {
                            int           index        = -1;
                            string[]      stringValues = values.ToArray( );
                            List <string> pnConditions = new List <string> ( );

                            foreach (var column in SchemaProvider.GetColumnInfo(condition.KeyTag))
                            {
                                var columnValues = new string [] { stringValues[++index] };

                                queryBuilder.ProcessColumn(queryLeveTable, column, condition, columnValues);
                            }
                        }
                    }
                    else
                    {
                        IList <string> columnValues = GetValues(condition);

                        foreach (var column in SchemaProvider.GetColumnInfo(condition.KeyTag))
                        {
                            queryBuilder.ProcessColumn(queryLeveTable, column, condition, columnValues);
                        }
                    }
                }
            }
            else
            {
                foreach (var column in SchemaProvider.GetTableInfo(queryLeveTable).Columns)
                {
                    queryBuilder.ProcessColumn(queryLeveTable, column);
                }
            }

            return(queryBuilder);
        }
        public void BuildQuery(IEnumerable <IMatchingCondition> conditions, string queryLevel)
        {
            TableKey sourceTable = base.SchemaProvider.GetTableInfo(queryLevel);


            if (sourceTable == null)
            {
                throw new ArgumentException("querylevel not supported");
            }

            if (null != conditions)
            {
                _returns    = new List <string>   ( );
                _conditions = new List <string>   ( );
                _joins      = new SqlJoinBuilder( );

                foreach (var condition in conditions)
                {
                    //string[] values = GetValues ( condition ) ;

                    if (condition.VR == DicomVr.PNvr)
                    {
                        List <PersonNameData> pnValues = new List <PersonNameData> ( );


                        pnValues = condition.GetPNValues( );

                        foreach (var values in pnValues)
                        {
                            int           index        = -1;
                            string[]      stringValues = values.ToArray( );
                            List <string> pnConditions = new List <string> ( );

                            foreach (var column in SchemaProvider.GetColumnInfo(condition.KeyTag))
                            {
                                var columnValues = new string [] { stringValues[++index] };

                                ProcessColumn(sourceTable, condition, column, columnValues);
                            }
                        }
                    }
                    else
                    {
                        IList <string> columnValues = GetValues(condition);

                        foreach (var column in SchemaProvider.GetColumnInfo(condition.KeyTag))
                        {
                            ProcessColumn(sourceTable, condition, column, columnValues);
                        }
                    }
                }
            }
        }
Пример #3
0
        protected virtual void FillInsertParameters
        (
            IEnumerable <IDicomDataParameter> dicomParameters,
            InstanceMetadata data,
            IDbCommand insertCommad,
            ObjectArchieveStorageBuilder stroageBuilder
        )
        {
            foreach (var dicomParam in dicomParameters)
            {
                if (dicomParam.VR == fo.DicomVR.PN)
                {
                    List <PersonNameData> pnValues;


                    pnValues = dicomParam.GetPNValues( );

                    foreach (var values in pnValues)
                    {
                        string[]      stringValues = values.ToArray( );
                        int           index        = -1;
                        List <string> pnConditions = new List <string> ( );

                        foreach (var column in SchemaProvider.GetColumnInfo(dicomParam.KeyTag))
                        {
                            column.Values = new string [] { stringValues[++index] };

                            stroageBuilder.ProcessColumn(column, insertCommad, Database.CreateParameter);
                        }
                    }

                    continue;
                }


                foreach (var column in SchemaProvider.GetColumnInfo(dicomParam.KeyTag))
                {
                    column.Values = GetValues(dicomParam);

                    stroageBuilder.ProcessColumn(column, insertCommad, Database.CreateParameter);
                }
            }
        }
        protected virtual void FillParameters
        (
            IEnumerable <IDicomDataParameter> dicomParameters,
            IDbCommand insertCommad
        )
        {
            foreach (var dicomParam in dicomParameters)
            {
                if (dicomParam.VR == DicomVr.PNvr)
                {
                    List <PersonNameData> pnValues;


                    pnValues = dicomParam.GetPNValues( );

                    foreach (var values in pnValues)
                    {
                        string[]      stringValues = values.ToArray( );
                        int           index        = -1;
                        List <string> pnConditions = new List <string> ( );

                        foreach (var column in SchemaProvider.GetColumnInfo(dicomParam.KeyTag))
                        {
                            column.Values = new string [] { stringValues[++index] };

                            InsertColumnValue(column, dicomParam, insertCommad);
                        }
                    }

                    continue;
                }


                foreach (var column in SchemaProvider.GetColumnInfo(dicomParam.KeyTag))
                {
                    column.Values = GetValues(dicomParam);

                    InsertColumnValue(column, dicomParam, insertCommad);
                }
            }
        }