public SingleResultQueryCommand <InstanceMetadata> CreateGetMetadataCommand(IObjectId instance) { TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); TableKey seriesTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.SeriesTableName); TableKey instanceTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.ObjectInstanceTableName); QueryBuilder queryBuilder = CreateQueryBuilder( ); SingleValueMatching uidMatching = new SingleValueMatching( ); ColumnInfo metadataColumn = SchemaProvider.GetColumn(instanceTable.Name, StorageDbSchemaProvider.MetadataTable.MetadataColumn); queryBuilder.ProcessColumn(instanceTable, seriesTable.ModelKeyColumns[0], uidMatching, new string[] { instance.SeriesInstanceUID }); queryBuilder.ProcessColumn(instanceTable, studyTable.ModelKeyColumns[0], uidMatching, new string[] { instance.StudyInstanceUID }); queryBuilder.ProcessColumn(instanceTable, instanceTable.ModelKeyColumns[0], uidMatching, new string[] { instance.SOPInstanceUID }); queryBuilder.ProcessColumn(instanceTable, metadataColumn); return(new SingleResultQueryCommand <InstanceMetadata> (CreateCommand(queryBuilder.GetQueryText(instanceTable)), instanceTable, metadataColumn.ToString( ), CreateMetadata)); //IDbCommand command = CreateCommand ( ) ; //var sopParam = CreateParameter ( "@" + DB.Schema.StorageDbSchemaProvider.MetadataTable.SopInstanceColumn, instance.SOPInstanceUID ) ; // command.CommandText = string.Format ( "SELECT {0} FROM {1} WHERE {2}=@{2}", // DB.Schema.StorageDbSchemaProvider.MetadataTable.MetadataColumn, // DB.Schema.StorageDbSchemaProvider.MetadataTable.TableName, // DB.Schema.StorageDbSchemaProvider.MetadataTable.SopInstanceColumn ) ; //command.Parameters.Add ( sopParam ); //SetConnectionIfNull ( command ) ; //return command ; }
public virtual IDataAdapterCommand <long> CreateSelectStudyKeyCommand(IStudyId study) { TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); QueryBuilder queryBuilder = CreateQueryBuilder( ); ProcessSelectStudy(study, queryBuilder, studyTable, studyTable); return(new SingleResultQueryCommand <long> (CreateCommand(queryBuilder.GetQueryText(studyTable)), studyTable.Name, studyTable.KeyColumn.Name)); }
public virtual IDataAdapterCommand <long> CreateSelectStudyKeyCommand(IStudyId study) { TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); QueryBuilder queryBuilder = CreateQueryBuilder( ); SingleValueMatching uidMatching = new SingleValueMatching( ); queryBuilder.ProcessColumn(studyTable, studyTable.ModelKeyColumns [0], uidMatching, new string[] { study.StudyInstanceUID }); return(new SingleResultQueryCommand <long> (CreateCommand(queryBuilder.GetQueryText(studyTable)), studyTable.Name, studyTable.KeyColumn.Name)); }
public virtual IDataAdapterCommand <long> CreateSelectInstanceKeyCommand(IObjectId instance) { QueryBuilder queryBuilder = CreateQueryBuilder( ); TableKey sourceTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.ObjectInstanceTableName); SingleValueMatching sopUIDMatching = new SingleValueMatching( ); queryBuilder.ProcessColumn(sourceTable, sourceTable.ModelKeyColumns[0], sopUIDMatching, new string[] { instance.SOPInstanceUID }); return(new SingleResultQueryCommand <long> (CreateCommand(queryBuilder.GetQueryText(sourceTable)), sourceTable.Name, sourceTable.KeyColumn.Name)); }
public virtual IDataAdapterCommand <long> CreateSelectInstanceKeyCommand(IObjectId instance) { QueryBuilder queryBuilder = CreateQueryBuilder( ); TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); TableKey seriesTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.SeriesTableName); TableKey instanceTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.ObjectInstanceTableName); ProcessSelectObjectInstance(instance, queryBuilder, instanceTable, instanceTable); ProcessSelectSeries(instance, queryBuilder, seriesTable, instanceTable); ProcessSelectStudy(instance, queryBuilder, studyTable, seriesTable); return(new SingleResultQueryCommand <long> (CreateCommand(queryBuilder.GetQueryText(instanceTable)), instanceTable.Name, instanceTable.KeyColumn.Name)); }
public ResultSetQueryCommand <InstanceMetadata> CreateGetMetadataCommand(IStudyId study) { TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); TableKey sourceTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.ObjectInstanceTableName); QueryBuilder queryBuilder = CreateQueryBuilder( ); ColumnInfo metaDataColumn = SchemaProvider.GetColumn(sourceTable.Name, StorageDbSchemaProvider.MetadataTable.MetadataColumn); ProcessSelectStudy(study, queryBuilder, studyTable, sourceTable); queryBuilder.ProcessColumn(sourceTable, metaDataColumn, null, null); return(new ResultSetQueryCommand <InstanceMetadata> (CreateCommand(queryBuilder.GetQueryText(sourceTable)), sourceTable, new string [] { metaDataColumn.ToString( ) }, CreateMetadata)); }
public ResultSetQueryCommand <InstanceMetadata> CreateGetMetadataCommand(ISeriesId series) { TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); TableKey seriesTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.SeriesTableName); TableKey sourceTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.ObjectInstanceTableName); QueryBuilder queryBuilder = CreateQueryBuilder( ); SingleValueMatching uidMatching = new SingleValueMatching( ); ColumnInfo metadataColumn = SchemaProvider.GetColumn(sourceTable.Name, StorageDbSchemaProvider.MetadataTable.MetadataColumn); queryBuilder.ProcessColumn(sourceTable, seriesTable.ModelKeyColumns[0], uidMatching, new string[] { series.SeriesInstanceUID }); queryBuilder.ProcessColumn(sourceTable, studyTable.ModelKeyColumns[0], uidMatching, new string[] { series.StudyInstanceUID }); queryBuilder.ProcessColumn(sourceTable, metadataColumn); return(new ResultSetQueryCommand <InstanceMetadata> (CreateCommand(queryBuilder.GetQueryText(sourceTable)), sourceTable, new string [] { metadataColumn.ToString( ) }, CreateMetadata)); }
public SingleResultQueryCommand <InstanceMetadata> CreateGetMetadataCommand(IObjectId instance) { TableKey studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); TableKey seriesTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.SeriesTableName); TableKey instanceTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.ObjectInstanceTableName); QueryBuilder queryBuilder = CreateQueryBuilder( ); ColumnInfo metadataColumn = SchemaProvider.GetColumn(instanceTable.Name, StorageDbSchemaProvider.MetadataTable.MetadataColumn); ProcessSelectStudy(instance, queryBuilder, studyTable, instanceTable); ProcessSelectSeries(instance, queryBuilder, seriesTable, instanceTable); ProcessSelectObjectInstance(instance, queryBuilder, instanceTable, instanceTable); queryBuilder.ProcessColumn(instanceTable, metadataColumn); return(new SingleResultQueryCommand <InstanceMetadata> (CreateCommand(queryBuilder.GetQueryText(instanceTable)), instanceTable, metadataColumn.ToString( ), CreateMetadata)); }
public virtual string Sort(QueryBuilder queryBuilder, IQueryOptions options, TableKey queryLevelTable) { IEnumerable <ColumnInfo> orderByColumns = null; Direction = SortingDirection.ASC; if (queryLevelTable == StorageDbSchemaProvider.StudyTableName) { var studyTable = SchemaProvider.GetTableInfo(StorageDbSchemaProvider.StudyTableName); orderByColumns = new ColumnInfo [] { studyTable.KeyColumn }; Direction = SortingDirection.DESC; } else if (queryLevelTable == StorageDbSchemaProvider.SeriesTableName) { orderByColumns = SchemaProvider.GetColumnInfo((uint)DicomTag.SeriesNumber); } if (queryLevelTable == StorageDbSchemaProvider.ObjectInstanceTableName) { orderByColumns = SchemaProvider.GetColumnInfo((uint)DicomTag.InstanceNumber); } if (null != orderByColumns) { SortBy = string.Join(",", orderByColumns.Select(column => (string)column)); foreach (var column in orderByColumns) { if (!queryBuilder.ProcessedColumns.ContainsKey(queryLevelTable) || (queryBuilder.ProcessedColumns.ContainsKey(queryLevelTable) && !queryBuilder.ProcessedColumns[queryLevelTable].Contains(column))) { queryBuilder.ProcessColumn(queryLevelTable, column); } } string queryText = queryBuilder.GetQueryText(queryLevelTable, options); if (ApplyPagination && CanPaginate(queryBuilder, options, queryLevelTable)) { CountColumn = "TotalRows"; return(string.Format(Sorting_Template, queryText, CountColumn, string.Format(OrderBy_Template, SortBy, GetDirection()), string.Format(Pagination_Template, options.Offset, options.Limit))); } else { return(queryText + string.Format(OrderBy_Template, SortBy, GetDirection( ))); } } else { return(queryBuilder.GetQueryText(queryLevelTable, options)); } }