Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatic Hit Selection #6123

Merged
merged 37 commits into from
Dec 20, 2024
Merged

Automatic Hit Selection #6123

merged 37 commits into from
Dec 20, 2024

Conversation

labkey-nicka
Copy link
Contributor

@labkey-nicka labkey-nicka commented Dec 4, 2024

Rationale

This introduces the capability for automatic plate-based assay result hit selection based on filter criteria. Filter criteria are specified on assay result domain properties and are subsequently utilized to filter upon assay results when inserted/updated to determine if any should be marked as hits.

Related Pull Requests

Changes

  • Introduce filterCriteria to property descriptors and add CRUD support for them
  • Add endpoint assay-filterCriteriaColumns.api to assist with retreival of column metadata for columns that are/to be generated
  • Assay schema update to create the assay.FilterCriteria table
  • Utilize Lombok to generated getters, setters, equals and hashCode for domain GWT POJOs
  • Bump @labkey/components

}

@Override
public Map<String, List<GWTPropertyDescriptor>> previewFilterCriteriaColumns(@NotNull ExpProtocol protocol, List<String> columnNames)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list of column names passed in assume that they are candidates for replicate stats (numeric measures). Does the list get filtered / validated on the client side, or is it possible to create replicate stats for a string field?

Copy link
Contributor

@labkey-jeckels labkey-jeckels left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks fine to me from me in terms of Lombok usage.

.stream()
.filter(state -> !stateManager.isOperationPermitted(state, PlateDataStateManager.DataOperation.hitSelection))
.map(DataState::getRowId)
.toList();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can probably just get the set of the DataState row IDs.

@labkey-nicka labkey-nicka merged commit f7eb779 into develop Dec 20, 2024
1 of 8 checks passed
@labkey-nicka labkey-nicka deleted the fb_auto_hits branch December 20, 2024 01:20
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.

4 participants