filtering using 'equals on of', where it's 1 of 700 things

LabKey Support Forum (Inactive)
filtering using 'equals on of', where it's 1 of 700 things Ben Bimber  2011-06-24 06:11
Status: Closed
 
a lot of EHR searches involve finding some set of participants, then doing some other query based on those X number of IDs. we give the users a number of ways to do this. the guts of this process looks like:

1. user finds set of IDs by filtering a grid
2. code identifies all the distinct IDs
3. code sends user to other page (usually a query) applying a filter like "query.Id~in=x,y,z"

that works great, unless your like of IDs is enormous. are there any tricks to support a really big list of IDs? i have tried posting the data, on the theory that it was too long for the URL, but still got a 'bad request' error.

thanks.
 
 
trent responded:  2011-07-10 22:05
Hi bimber,

I don't have any suggestions for you - but I wonder if you can share how you tackled this? Did you figure out a solution for your above problem?

For collecting the id's did you just do like:

var output;
var array = editorGrid.getSelectionModel().selections.items;
for(i=0;i<array.length;i++){
output += arrayi.data.someId +',';
}

or is there a simpler way?

 
Ben Bimber responded:  2011-07-11 10:29
i dont know the full context of your code, but if you're just talking about getting a list of the IDs based on a store, then yes, that's probably about as simple as you'll get. however, you should probably technically do:

getSelectionModel().getSelections()

I have come to like Ext.each() instead of the for loop, but that's not really consequential one way or the other.

 
trent responded:  2011-07-13 21:11
I decided to go with the Query Web Part over the Editor Grid Panel to maintain a consistent interface.

As to the original problem, the best thing I can come up with is for you to increase the max http header size in the tomcat connector config.

<Connector port="8080" maxHttpHeaderSize="32000"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" />

i.e. increasing the maxHttpHeaderSize. By default it's 8k I believe.

http://tomcat.apache.org/tomcat-5.5-doc/config/http.html