Skip to main content
Version: 3.0.0

STD: Qualitative Reporting Rule (RQUAL)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-reporting-qual.md Rule Name: RQUAL Domain: RULES-RQUAL


Overview

This document specifies tests for the Qualitative Reporting (RQUAL) rule using decision tables and test vectors. The rule determines qualitative reporting outcomes (Detected/Not Detected) by comparing sample CT values against configured cutoff thresholds, with support for specimen-type-specific configurations.

Rule Characteristics:

  • Pure business logic (no UI)
  • CT threshold comparison (CT < CutOff = Detected, CT >= CutOff = Not Detected)
  • Specimen-type-specific configuration selection when enabled
  • Last-modified fallback when sample type mode disabled

Test Method: TM-API (per Test Plan section 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-RQUAL-001Qualitative Threshold Evaluation68100%None
REQ-RULES-RQUAL-002Specimen-Specific Configuration Selection810100%None

Totals: 2 REQs, 14 Conditions, 18 Test Vectors, 100% Coverage


REQ-RULES-RQUAL-001: Qualitative Threshold Evaluation

Input Variables

VariableTypeValid ValuesDescription
sample.ctfloatnumeric (positive)Sample CT (cycle threshold) value
config.upper_boundaryfloatnumeric (positive)CutOff threshold from reporting configuration
sample.reporting_typestringQualitative, QuantitativeSample reporting configuration

Output Variables

VariableTypeDescription
outcomestringDetected, Not Detected, Error
rule_appliedboolWhether RQUAL rule was executed

Decision Table: CT vs CutOff Comparison

TVsample.ctconfig.upper_boundaryoutcomeCovers
TV-001-0012530DetectedAC: CT < CutOff = Detected (low CT = strong signal)
TV-001-0023030Not DetectedAC: CT >= CutOff = Not Detected (boundary)
TV-001-0033530Not DetectedAC: CT >= CutOff = Not Detected
TV-001-0041010Not DetectedAC: CT >= CutOff at minimum boundary
TV-001-0059.9910DetectedAC: CT < CutOff = Detected (just below boundary)
TV-001-0060.530DetectedAC: Very low CT value = strong signal = Detected

Decision Table: Rule Scope Filter

TVsample.reporting_typerule_appliedCovers
TV-001-007QualitativetrueAC: Rule applied to qualitative samples
TV-001-008QuantitativefalseAC: Rule skipped for quantitative samples

REQ-RULES-RQUAL-002: Specimen-Specific Configuration Selection

Input Variables

VariableTypeValid ValuesDescription
setting.use_sample_typebooltrue, falseSystem setting for specimen-type matching
sample.specimen_typestringPlasma, Serum, ...Sample specimen type
sample.mixstringidentifierSample mix identifier
sample.targetstringidentifierSample target identifier
configs[]arrayreporting configurationsAvailable reporting configurations
config.specimen_typestringPlasma, Serum, ...Configuration specimen type
config.last_modifieddatetimetimestampConfiguration modification timestamp
config.upper_boundaryfloatnumericCutOff threshold

Output Variables

VariableTypeDescription
selected_configobjectThe reporting configuration used for evaluation
outcomestringDetected, Not Detected based on selected config

Decision Table: Sample Type Mode Enabled

TVuse_sample_typesample.specimensample.ctplasma.upper_boundaryserum.upper_boundaryselected_configoutcomeCovers
TV-002-001truePlasma253010PlasmaDetectedAC: Match specimen to config (CT 25 < Plasma cutoff 30 = Detected)
TV-002-002trueSerum253010SerumNot DetectedAC: Match specimen to config (CT 25 >= Serum cutoff 10 = Not Detected)
TV-002-003truePlasma353010PlasmaNot DetectedAC: Plasma specimen CT >= cutoff = Not Detected
TV-002-004trueSerum53010SerumDetectedAC: Serum specimen CT < cutoff = Detected

Decision Table: Sample Type Mode Disabled (Last Modified Fallback)

TVuse_sample_typesample.specimensample.ctplasma.last_modserum.last_modserum.upper_boundaryselected_configoutcomeCovers
TV-002-005falsePlasma252023-11-08 00:002023-11-08 00:0110Serum (last mod)Not DetectedAC: Uses most recent config (CT 25 >= cutoff 10 = Not Detected)
TV-002-006falseSerum252023-11-08 00:002023-11-08 00:0110Serum (last mod)Not DetectedAC: Uses most recent config regardless of specimen (CT 25 >= 10)
TV-002-007falsePlasma52023-11-08 00:002023-11-08 00:0110Serum (last mod)DetectedAC: Last modified fallback, CT < cutoff = Detected

Decision Table: Configuration Match by Mix/Target/Specimen

TVsample.mixsample.targetsample.specimenconfig.mixconfig.targetconfig.specimenmatchCovers
TV-002-008HEVHEVPlasmaHEVHEVPlasmatrueAC: Full match on Mix, Target, Specimen
TV-002-009HEVHEVPlasmaHEVHEVSerumfalseAC: Specimen mismatch
TV-002-010HEVHAVPlasmaHEVHEVPlasmafalseAC: Target mismatch

Error Handling

Decision Table: Configuration Errors

TVConditionExpected BehaviorCovers
TV-ERR-001No matching reporting config for specimen typeFall through to subsequent rules or raise configuration errorAC: Error handling - missing config
TV-ERR-002Sample type mode enabled, no specimen type matchUse fallback selection logicAC: Error handling - no specimen match

Traceability to Existing Tests

RequirementSRS Test CasesJiraStatus
REQ-RULES-RQUAL-001TV-001-001 to TV-001-008BT-5241Partial
REQ-RULES-RQUAL-002TC-RQUAL-002-01, TC-RQUAL-002-02BT-5204, BT-5191Partial

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityAutomation Status
GAP-001REQ-RULES-RQUAL-001No dedicated test cases for core CT threshold comparisonHighAutomated

Remediation Plan

  1. GAP-001: Create test coverage for TV-001-001 through TV-001-008 covering:
    • CT < CutOff boundary conditions
    • CT >= CutOff boundary conditions
    • Rule scope filter (qualitative vs quantitative samples)

Existing Coverage

REQ-RULES-RQUAL-002 has existing test cases (TC-RQUAL-002-01, TC-RQUAL-002-02) documented in the SRS that cover specimen-type-specific configuration selection with sample type mode enabled and disabled scenarios.


Test Data Reference

Standard Test Configuration

Based on SRS example configuration:

Reportings:

Config NameMixTargetSpecimen TypeUpper BoundaryLast Modified
Plasma ConfigHEVHEVPlasma302023-11-08 00:00:00
Serum ConfigHEVHEVSerum102023-11-08 00:01:00

Rule Mappings:

MixTargetSpecimen TypeRule
HEVHEVPlasmaRQUAL
HEVHEVSerumRQUAL