Skip to content

Implement Generalized Filtering and Sorting for the Prod Server#17

Open
jloux-brapi wants to merge 7 commits into
epic/BI-2862from
feature/BI-2861
Open

Implement Generalized Filtering and Sorting for the Prod Server#17
jloux-brapi wants to merge 7 commits into
epic/BI-2862from
feature/BI-2861

Conversation

@jloux-brapi
Copy link
Copy Markdown

@jloux-brapi jloux-brapi commented May 29, 2026

Description

Story: BI-2861

To support the removal of the cache for TrialEntities, a generalized implementation of filtering and sorting was created for the prod server.

Many changes were made to support this, including:

  • New filter/sort models available to all search requests
  • Removal of old sort implementation on Study and Trial endpoints. These now utilize the new models
  • Implementation example for Trials and Studies. The available filter columns are now configurable via a base Map in parent SearchRequest, sortFilterEntityColumnNamesByRequestName . Entities that wish to be sortable must implement the get method for this map.
  • Support for invalid sort/filter requests that do not contain valid sortable/filterable column names
  • Generalized custom sql code for filtering and sorting. This code should be safe from SQL injection as it uses hibernate parameterization for queries generated from user input.
  • @formula entity columns made to capture important sorting/filtering columns from additionalInfo columns in Trials. These seem to work very well with the filtering and sorting implementation, and should be replicated for other entities.

Dependencies

Testing

  • Test filtering and sorting of Trials by messing around with the different functionalities of the data table in the Experiments tab of a Program. Mess with filtering, testing case insensitivity, and different data types. For sorting, test the order of different columns and ASC vs DESC order. Mess with paging, try selecting different pages, and different number of records per page

Checklist:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant