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); } } } } }
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); } } }