Editing and Filtering Data Tables

Quick Index

Once you have a table of data, as an output of a search or a listing, XNAT provides you with several tools to either expand or narrow down your search results. To expand your search and cross-reference against another data type, perform a Join. This page of documentation focuses on how to filter your data table. 

Sorting by Column

I have created a stored search on XNAT Central that joins APARC data with Clinical evaluations, just to have something to work with. Let's say, in this example, that I want to sort my data by MMSE scores, descending from the highest. A simple left-click on the column header brings up a contextual menu that allows me to do just that. 

However, the resulting data table doesn't look right - because I have a set of NULL data floating to the top of my list. 


Filtering Data by Column

To exclude NULL entries in the MMSE scores from this data table, I need to create a filter. Clicking on the column header brings my contextual menu back, and I select "Filter". 


In the Filter dialog, I can select from a number of mathematical operators, including IS NOT NULL. Creating this filter immediately narrows down my search, and brings the data I want to the top of the table. 

Removing Filters

Removing an established filter is easy. Simply click on the column header that has a filter applied to bring the filter dialog back up. 

Clicking on the Scissors "cut" icon  will remove that filter from that data set. 

Filtering Tip: "AND" vs "OR" filters

If you place a filter on multiple columns of data, you can quickly narrow down your search results even further. For example, this table has three different column filters applied, which has narrowed an original data set of nearly 500 rows down to a 33-row data set. 

You can see the filters specified in the table header - Filter(s):  (MMSE IS NOT NULL) AND (NumVert > 130000) AND (rating = 0.0)

These filters work in combination as "AND" filters, where the only data sets that are displayed are those that meet all three conditions. However, placing multiple filters on a single column of data does not work like this. For example, if I wanted to show only MMSE scores between 14 and 20, I would like to apply two filters like the following: 

  • MMSE <= 20 
  • MMSE >= 14
However, as you can see from the following example, these filters combine as "OR" filters, which gives me a data set where rows are  either less than 20 OR greater than 14 ... which returns my entire set of non-NULL data. This is a known issue that will be addressed in future versions of XNAT.