Minimum Fluorescence Rule
Version: v3.0.0 Status: Normative (text), Illustrative (diagrams only) Scope: MINIMUM_FL rule for validating well fluorescence readings against minimum thresholds Domain: RULES-MINFL Precedence: Standard rule pipeline position Also Known As: ROX Check (for Merck)
Statement
The system shall validate well fluorescence readings against configured minimum thresholds for each target and apply appropriate error codes when readings fall below the threshold.
Control well failures propagate to target level for Assay Summary reporting. Users with appropriate permissions can skip this rule via resolution code application.
Quick Reference
| ID | Core Behavior | Priority | Status |
|---|---|---|---|
| REQ-RULES-MINFL-001 | Validates well fluorescence against configured minimum thresholds | HIGH | Draft |
| REQ-RULES-MINFL-002 | Propagates control well failures to target level and Assay Summary | HIGH | Draft |
| REQ-RULES-MINFL-003 | Allows users to skip rule via resolution code MIN_FLUORESCENCE | MEDIUM | Draft |
Key Integration Points: Kit Configuration (thresholds), Rule Engine, Error Handling Framework, Assay Summary, Error Resolution Page
Rule Summary
| Property | Value |
|---|---|
| Name | MINIMUM_FL |
| Triggers | When minimum_fluorescence threshold is configured for target |
| Output | Sets LOW_FLUORESCENCE_WELL on well, LOW_FLUORESCENCE_TARGET on run target |
Rule Flowchart (Illustrative)
This diagram illustrates the core validation and propagation logic. It does not specify UI layout, styling, or interaction details.
Definitions
| Term | Definition |
|---|---|
| Minimum Fluorescence | The lowest acceptable fluorescence reading for a target, configured per target |
| Control Well | A well with observation role type of Positive Control (PC), Negative Control (NC), or Quantification |
| Sample Well | A well with observation role type of Sample, excluded from target-level error propagation |
| Resolution Code | A code applied to a well to skip specific rule evaluations |
| Assay Summary | A display showing aggregated results and errors for a run, including target-level errors |
Assumptions
- Minimum fluorescence thresholds are configured at the target level prior to rule execution
- Users applying resolution codes have appropriate permissions via the Error Resolution Page
- The rule engine executes this rule as part of the standard analysis pipeline
- Error codes are configured in the system and mapped to display messages
Requirements
Fluorescence Validation (REQ-RULES-MINFL-001)
FR-MINFL-001: Validate Well Fluorescence Against Minimum Thresholds
The system shall validate well fluorescence readings against configured minimum thresholds for each target and apply appropriate error codes when readings fall below the threshold.
Acceptance Criteria
Threshold Comparison:
- Compare the obtained minimum fluorescence for each observation against the configured minimum_fluorescence threshold for that target
- When a reading is below the threshold (reading < threshold), set error code LOW_FLUORESCENCE_WELL on the well
- When a reading equals the threshold (reading = threshold), do not apply an error
- When a reading exceeds the threshold (reading > threshold), do not apply an error
- Comparison shall be based on the minimum fluorescence reading from all observations for that target
Configuration Handling:
- When minimum_fluorescence is not configured (null), the rule shall not apply and no error shall be generated
- When the rule cannot execute due to missing configuration (minimum_fluorescence = null in observation config), set error code MINIMUM_FLUORESCENCE_MISSED on the well
Error Handling
- Reading below threshold: Set error code LOW_FLUORESCENCE_WELL on the well
- Configuration missing when rule executes: Set error code MINIMUM_FLUORESCENCE_MISSED on the well
Trace: Source: 3.0.0-Minimum Fluorescence Rule (Row 1), 3.0.0-MINIMUM_FL rule - add MINIMUM_FLUORESCENCE_MISSED error (Row 1) | Jira: BT-3551, BT-4154 | Tests: BT-4167, See scenarios
Error Propagation (REQ-RULES-MINFL-002)
FR-MINFL-002: Propagate Control Well Fluorescence Failures to Target Level
The system shall propagate fluorescence failures from control-type wells to the target level and indicate the failure in the Assay Summary.
Acceptance Criteria
Control Well Detection:
- When a control well (role type PC, NC, or Quantification) has a low fluorescence reading, set error code LOW_FLUORESCENCE_WELL on the well
- Propagate errors for wells with role types PC (Positive Control), NC (Negative Control), or Quantification
- Wells with Sample role type shall not trigger target-level errors
- Wells with Ignore role type shall not trigger target-level errors
Target-Level Propagation:
- When a control well fails the minimum fluorescence check, the corresponding run target shall receive error code LOW_FLUORESCENCE_TARGET
- When a control well fails, the Assay Summary shall display the configured error message for the affected target
- Derive the Assay Summary message format from the error codes configuration for LOW_FLUORESCENCE_TARGET
- Error propagation shall occur automatically upon rule evaluation
Trace: Source: 3.0.0-Minimum Fluorescence Rule (Row 2) | Jira: BT-3551 | Tests: See scenarios
Resolution (REQ-RULES-MINFL-003)
FR-MINFL-003: Allow Users to Skip Minimum Fluorescence Rule via Resolution Code
The system shall support skipping the minimum fluorescence rule when resolution code MIN_FLUORESCENCE is applied to a well.
Acceptance Criteria
Resolution Behavior:
- When resolution code MIN_FLUORESCENCE is applied to a well, the well error code shall be null (no LOW_FLUORESCENCE_WELL)
- When resolution code MIN_FLUORESCENCE is applied, the target error code shall be null (no LOW_FLUORESCENCE_TARGET)
- Resolution shall apply to individual wells, not globally
- Previously applied errors shall be cleared when resolution is applied
Trace: Source: 3.0.0-Minimum Fluorescence Rule (Row 3) | Jira: BT-3821 | Tests: See scenarios
Configuration Options
| Option | Default | Description | Affects |
|---|---|---|---|
minimum_fluorescence | null (per target) | Threshold value for minimum acceptable fluorescence; when null, rule is disabled for that target | REQ-RULES-MINFL-001 |
UI Notes (Illustrative)
FR-MINFL-002 UI Specifications
Assay Summary Display:
- When a control well fails, the Assay Summary shows the error message configured for LOW_FLUORESCENCE_TARGET
- Format:
{target name}: low fluorescence target - Example:
Target A: low fluorescence target
FR-MINFL-003 UI Specifications
- Resolution code MIN_FLUORESCENCE is applied via the Error Resolution Page
- Resolution applies to individual wells through the Error Resolution interface
Implementation (Illustrative)
| Component | Location |
|---|---|
| MinFluorescenceRule | Analyzer/Rules/MinFluorescenceRule.php |
Traceability Matrix
| Requirement | Title | Verification | Implementation | Test Cases | Status |
|---|---|---|---|---|---|
| REQ-RULES-MINFL-001 | Validate Well Fluorescence Against Minimum Thresholds | Test | MinFluorescenceRule | BT-4167 | Draft |
| REQ-RULES-MINFL-002 | Propagate Control Well Fluorescence Failures to Target Level | Test | MinFluorescenceRule | [Pending] | Draft |
| REQ-RULES-MINFL-003 | Allow Users to Skip Minimum Fluorescence Rule via Resolution Code | Test | MinFluorescenceRule | [Pending] | Draft |
Notes
- Error code LOW_FLUORESCENCE_WELL is set at well level
- Error code LOW_FLUORESCENCE_TARGET is set at run target level
- Error code MINIMUM_FLUORESCENCE_MISSED indicates rule cannot execute due to missing configuration
- Resolution code MIN_FLUORESCENCE clears both well and target errors
- This rule is also known as "ROX Check" for Merck assays
- Related Epic: BT-3536 - Minimum fl rule (aka ROX check for Merck)
- Related Epic: BT-4148 - Phase 2A: Verify Rules have needed well/config info to run
Acceptance Tests
Test: REQ-RULES-MINFL-001
Test: Below Threshold - Error Applied
Given:
target:
name: Target A
minimum fluorescence: 100,000
well:
observation:
target: Target A
readings: [ 99,999 ]
When:
Rule evaluates well
Then:
well:
error code: LOW_FLUORESCENCE_WELL
Test: At Threshold - No Error
Given:
target:
name: Target A
minimum fluorescence: 100,000
well:
observation:
target: Target A
readings: [ 100,000 ]
When:
Rule evaluates well
Then:
well:
error code: null
Test: Above Threshold - No Error
Given:
target:
name: Target A
minimum fluorescence: 100,000
well:
observation:
target: Target A
readings: [ 100,001 ]
When:
Rule evaluates well
Then:
well:
error code: null
Test: No Threshold Configured - Rule Disabled
Given:
target:
name: Target A
minimum fluorescence: null
well:
observation:
target: Target A
readings: [ 100,001 ]
When:
Rule evaluates well
Then:
well:
error code: null
Test: Missing Configuration Error
Given:
Well
Observation
minimum_fluorescence = null
When:
Analyze observation on MINIMUM_FL
Then:
Well has MINIMUM_FLUORESCENCE_MISSED error
Test: REQ-RULES-MINFL-002
Test: Control Well Failure Propagates to Target and Assay Summary
Given:
error codes:
error code:
code: LOW_FLUORESCENCE_TARGET
message: low fluorescence target
target:
name: Target A
minimum fluorescence: 100,000
well:
observation:
target: Target A
role:
type: < PC / NC / Quantification >
readings: [ 99,999 ]
When:
Rule evaluates well
Then:
well:
error code: LOW_FLUORESCENCE_WELL
run target:
error code: LOW_FLUORESCENCE_TARGET
assay summary:
target A: low fluorescence target
Test: REQ-RULES-MINFL-003
Test: Resolution Code Clears Errors
Given:
error codes:
error code:
code: LOW_FLUORESCENCE_TARGET
message: low fluorescence target
target:
name: Target A
minimum fluorescence: 100,000
well:
observation:
target: Target A
role:
type: < PC / NC / Quantification >
readings: [ 99,999 ]
resolution code: MIN_FLUORESCENCE
When:
Rule evaluates well
Then:
well:
error code: <null>
run target:
error code: <null>
Related Design Documents
| Design Document | Relevant Sections |
|---|---|
| SDD Algorithms | Minimum Fluorescence Algorithm |
Appendix: Process Artifacts
Completion Checklist
- All requirements are capability-level (describe behavior, not UI)
- Requirement variants consolidated (no requirement explosion) - N/A, distinct capabilities preserved
- UI details are fully demoted to Illustrative section
- Configuration options are not encoded as requirements
- Acceptance criteria describe behavior, not UI mechanics
- Every requirement has acceptance criteria and source traceability
- Error handling addressed for I/O, validation, and external system requirements
- Open questions documented with owners assigned - N/A, no open questions
- Consolidations documented in Reviewer Notes with reversibility info
- Module can survive a full UI redesign unchanged
- Refinements folded into acceptance criteria
- Traceability matrix is complete
Reviewer Notes
No Consolidation Required
The three requirements in this domain (REQ-RULES-MINFL-001, REQ-RULES-MINFL-002, REQ-RULES-MINFL-003) represent distinct system capabilities:
| Requirement | Capability | Rationale for Preservation |
|---|---|---|
| REQ-RULES-MINFL-001 | Well-level fluorescence validation | Core rule logic - validates readings against thresholds |
| REQ-RULES-MINFL-002 | Control failure propagation to target | Distinct propagation behavior affecting target and Assay Summary |
| REQ-RULES-MINFL-003 | Resolution code skip mechanism | User override capability with different scope and behavior |
Rationale: These requirements cannot be consolidated as they describe different phases of rule execution:
- Validation (checking readings)
- Propagation (escalating control failures)
- Resolution (user override mechanism)
Merging would obscure the distinct behaviors and make testing less precise.
Reversibility: Original structure preserved. Reference:
- Source:
output/pilot/rules/rule-minimum-fluorescence/rule-minimum-fluorescence-restructured.md - Confluence: 3.0.0-Minimum Fluorescence Rule (Rows 1-3)