From 7c3dfd53a0940014ff8f45a025079b2c2c8c6604 Mon Sep 17 00:00:00 2001 From: lwark Date: Mon, 16 Sep 2024 09:51:28 -0500 Subject: [PATCH] Added regex exclusion for KitTypeReagentRole to trim down Bacteria Positive Control list. --- CHANGELOG.md | 1 + .../frontend/widgets/submission_widget.py | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3d8d3b..7402c15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 202409.04 - Fixed wastewater sample writing bug. +- Added regex exclusion for KitTypeReagentRole to trim down Bacteria Positive Control list. ## 202409.03 diff --git a/src/submissions/frontend/widgets/submission_widget.py b/src/submissions/frontend/widgets/submission_widget.py index 51e9bb0..50f8235 100644 --- a/src/submissions/frontend/widgets/submission_widget.py +++ b/src/submissions/frontend/widgets/submission_widget.py @@ -1,6 +1,7 @@ ''' Contains all submission related frontend functions ''' +import re import sys from PyQt6.QtWidgets import ( QWidget, QPushButton, QVBoxLayout, @@ -723,9 +724,14 @@ class SubmissionFormWidget(QWidget): super().__init__(scrollWidget=scrollWidget) self.setEditable(True) # logger.debug(f"Attempting lookup of reagents by type: {reagent.type}") - # NOTE: below was lookup_reagent_by_type_name_and_kit_name, but I couldn't get it to work. lookup = Reagent.query(reagent_role=reagent.role) - relevant_reagents = [str(item.lot) for item in lookup] + looked_up_rt = KitTypeReagentRoleAssociation.query(reagent_role=reagent.role, + kit_type=extraction_kit) + try: + regex = re.compile(rf"{looked_up_rt.uses['exclude_regex']}") + except KeyError: + regex = re.compile(r"^$") + relevant_reagents = [str(item.lot) for item in lookup if not regex.match(str(item.lot))] output_reg = [] for rel_reagent in relevant_reagents: # NOTE: extract strings from any sets. @@ -741,8 +747,8 @@ class SubmissionFormWidget(QWidget): if check_not_nan(reagent.lot): relevant_reagents.insert(0, str(reagent.lot)) else: - looked_up_rt = KitTypeReagentRoleAssociation.query(reagent_role=reagent.role, - kit_type=extraction_kit) + # looked_up_rt = KitTypeReagentRoleAssociation.query(reagent_role=reagent.role, + # kit_type=extraction_kit) try: looked_up_reg = Reagent.query(lot_number=looked_up_rt.last_used) except AttributeError: