Skip to main content
Version: 3.0.1

STD: WC Rule (Cross Talk) - DEPRECATED

DEPRECATED

This rule has been deprecated as of 2026-02-02.

The WC (Cross-Talk) rule was never implemented in the application codebase (no WCRule.php exists). This test specification is retained for historical reference only. No test coverage is required.

Version: v1.0.0 Status: Draft DEPRECATED SRS Source: docusaurus/docs/rules/rule-wc.md Rule Name: WC (Cross Talk) Domain: RULES-WC


Overview

This document specifies tests for the WC (Cross Talk) rule using decision tables and test vectors. The rule detects cross-talk conditions in PCR wells where multiple non-IC targets test positive, marking affected samples for re-extraction.

Rule Characteristics:

  • Pure business logic (no UI)
  • Assay-specific (HSV, HTLV only)
  • Sample-type filtering (patient samples only)
  • Extraction status filtering (first extraction only)
  • Target type filtering (non-IC targets only)

Test Method: TM-API (per Test Plan §3.3 - Rules use automated API tests)

Verification Approach: Rule verification is performed using data-driven test vectors. Each row in a decision table represents a complete verification scenario with defined inputs and expected outputs. This format enables exhaustive condition coverage while remaining concise and auditable.


Coverage Summary

REQ IDTitleConditionsTest VectorsCoverageGaps
REQ-RULES-WC-001Cross-Talk Detection718100%None

Totals: 1 REQ, 7 Conditions, 18 Test Vectors, 100% Coverage


REQ-RULES-WC-001: Cross-Talk Detection

Input Variables

VariableTypeValid ValuesDescription
assay_typestringHSV, HTLV, OtherAssay type from kit configuration
sample_typestringPatient, ControlSample classification (patient vs control)
extraction_statusstringFirst, Re-extractionWhether this is first extraction or re-extraction
positive_non_ic_countint0, 1, 2+Count of positive non-IC targets in well
ic_positivebooltrue, falseWhether IC (Internal Control) target is positive
sample_type_determinablebooltrue, falseWhether sample type can be determined
extraction_status_determinablebooltrue, falseWhether extraction status can be determined

Output Variables

VariableTypeDescription
lims_resultstring?LIMS export result code (RXT when triggered, null otherwise)
warning_generatedboolWhether a well warning was generated
warning_messagestring?Warning message content when generated
rule_appliedboolWhether the rule was evaluated (vs skipped)

Decision Table: Assay Type Filtering

Tests that the rule only applies to HSV and HTLV assays.

TVassay_typesample_typeextraction_statuspositive_non_ic_countrule_appliedlims_resultCovers
TV-001-001HSVPatientFirst2trueRXTAC: HSV assay triggers rule
TV-001-002HTLVPatientFirst2trueRXTAC: HTLV assay triggers rule
TV-001-003OtherPatientFirst2falsenullAC: Non-HSV/HTLV assays excluded

Decision Table: Sample Type Filtering

Tests that the rule only applies to patient samples.

TVassay_typesample_typeextraction_statuspositive_non_ic_countrule_appliedlims_resultCovers
TV-001-004HSVPatientFirst2trueRXTAC: Patient samples processed
TV-001-005HSVControlFirst2falsenullAC: Control samples excluded

Decision Table: Extraction Status Filtering

Tests that the rule only applies to first-time extraction.

TVassay_typesample_typeextraction_statuspositive_non_ic_countrule_appliedlims_resultCovers
TV-001-006HSVPatientFirst2trueRXTAC: First extraction processed
TV-001-007HSVPatientRe-extraction2falsenullAC: Re-extractions excluded

Decision Table: Positive Target Count Threshold

Tests the threshold condition (more than 1 positive non-IC target required).

TVassay_typesample_typeextraction_statuspositive_non_ic_countrule_appliedlims_resultwarning_generatedCovers
TV-001-008HSVPatientFirst0truenullfalseAC: Zero positives - no trigger
TV-001-009HSVPatientFirst1truenullfalseAC: One positive - no trigger
TV-001-010HSVPatientFirst2trueRXTtrueAC: Two positives - trigger
TV-001-011HSVPatientFirst3trueRXTtrueAC: Three+ positives - trigger

Decision Table: IC Target Exclusion

Tests that IC (Internal Control) targets are excluded from the positive count.

TVpositive_non_ic_countic_positiveeffective_countlims_resultCovers
TV-001-0121false1nullAC: Single non-IC, IC negative - no trigger
TV-001-0131true1nullAC: Single non-IC, IC positive - IC excluded from count
TV-001-0142false2RXTAC: Two non-IC, IC negative - trigger
TV-001-0152true2RXTAC: Two non-IC, IC positive - IC excluded, still triggers

Decision Table: Warning Message Generation

Tests the warning message format when cross-talk is detected.

TVtarget_atarget_bexpected_warningCovers
TV-001-016HSV-1HSV-2"HSV-1 and HSV-2 are both positive. Re-extract sample"AC: Warning format with target names

Decision Table: Error Handling (Skip Conditions)

Tests error handling when required data is undeterminable.

TVsample_type_determinableextraction_status_determinableassay_typerule_appliedactionCovers
TV-001-017falsetrueHSVfalseSkip + LogAC: Sample type undeterminable - skip
TV-001-018truefalseHSVfalseSkip + LogAC: Extraction status undeterminable - skip

Test File Locations

RequirementTest FileAutomation Status
REQ-RULES-WC-001tests/Unit/Rules/WCRuleTest.phpAutomated

Traceability to Existing Tests

RequirementJira TestsStatus
REQ-RULES-WC-001Gap

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
GAP-001REQ-RULES-WC-001No Behat tests cover WC (cross-talk) rule; all 18 TVs are gapsHighTBD

Note: WC rule is specific to HSV/HTLV assays detecting multi-positive non-IC targets. Existing tests (BT-5576, BT-5842, BT-5183, BT-5837, BT-5300) test other rules, not WC.

Coverage Verification

All acceptance criteria from REQ-RULES-WC-001 are traced to test vectors:

Acceptance CriteriaTest Vectors
Multiple non-IC positive → RXTTV-001-010, TV-001-011
HSV/HTLV assays onlyTV-001-001, TV-001-002, TV-001-003
First extraction onlyTV-001-006, TV-001-007
Patient samples onlyTV-001-004, TV-001-005
IC targets excludedTV-001-012 through TV-001-015
Zero positives no triggerTV-001-008
One positive no triggerTV-001-009
Warning message formatTV-001-016
Sample type undeterminable handlingTV-001-017
Extraction status undeterminable handlingTV-001-018