STD: Inhibition - Serum Quantitative Rule (PICQUANT_SERUM)
Version: v1.0.2
Status: Draft
SRS Source: docusaurus/docs/srs/rules/rule-inhibition-serum-quantitative.md
Rule Name: PICQUANT_SERUM
Domain: RULES-INHSERUMQUANT
Overview
This document specifies tests for the Inhibition - Serum Quantitative rule using decision tables and test vectors. The rule evaluates Internal Control (IC) inhibition for serum quantitative samples by assessing IC CT values against thresholds and evaluating non-IC observation quantification levels.
Rule Characteristics:
- Pure business logic (no UI)
- Specimen type filtering (Serum only)
- Three-threshold decision tree (IC CT, LoD, high quantification)
- Boundary-sensitive (inclusive vs. exclusive thresholds)
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 ID | Title | Conditions | Test Vectors | Coverage | Gaps |
|---|
| REQ-RULES-INHSERUMQUANT-001 | Evaluate IC Inhibition for Serum Quantitative Samples | 18 | 21 | 100% | None |
Totals: 1 REQ, 18 Conditions, 21 Test Vectors, 100% Coverage
REQ-RULES-INHSERUMQUANT-001: Evaluate IC Inhibition for Serum Quantitative Samples
| Variable | Type | Valid Values | Description |
|---|
specimen_type | string | Serum, Plasma, Urine, ... | Sample specimen type |
ic_ct | float | null, numeric | Internal Control CT value |
ic_present | bool | true, false | Whether IC observation exists in well |
non_ic_obs | array | [], [{qty: N}, ...] | Non-IC observations with quantities |
lod | float | null, numeric | Limit of Detection threshold (per mix/target) |
Output Variables
| Variable | Type | Description |
|---|
result | string | Pass, Error, Skip |
error_code | string? | Error code if result is Error (null otherwise) |
Constants
| Constant | Value | Description |
|---|
IC_CT_THRESHOLD | 35 | CT value threshold (inclusive: <= passes) |
HIGH_QUANT_THRESHOLD | 10,000 | Quantity threshold for elevated IC compensation (inclusive: >= required) |
Decision Table: Specimen Type Filtering
| TV | specimen_type | ic_ct | non_ic_qty | result | Covers |
|---|
| TV-001-001 | Serum | 30 | 500 | Pass | AC: Serum specimen triggers rule |
| TV-001-002 | Plasma | 38 | 500 | Skip | AC: Non-serum skips rule |
| TV-001-003 | Urine | 38 | 500 | Skip | AC: Non-serum skips rule |
Decision Table: Normal IC CT Path (IC CT <= 35)
| TV | specimen_type | ic_ct | non_ic_qty | result | Covers |
|---|
| TV-001-004 | Serum | 30 | 500 | Pass | AC: IC CT well below threshold |
| TV-001-005 | Serum | 34.9 | 500 | Pass | AC: IC CT just below threshold |
| TV-001-006 | Serum | 35 | 500 | Pass | AC: Boundary - IC CT exactly at threshold (inclusive) |
Decision Table: Elevated IC CT Decision Path
| TV | specimen_type | ic_ct | qty_above_lod | qty_above_10k | result | Covers |
|---|
| TV-001-007 | Serum | 36 | false | false | Error | AC: Elevated IC, no qty > LoD |
| TV-001-008 | Serum | 36 | true | false | Error | AC: Elevated IC, qty > LoD but < 10,000 |
| TV-001-009 | Serum | 36 | true | true | Pass | AC: Elevated IC, high quantification compensates |
| TV-001-010 | Serum | 40 | false | false | Error | AC: High IC CT, insufficient detection |
| TV-001-011 | Serum | 38 | true | true | Pass | AC: Elevated IC, high quantification |
Decision Table: Quantification Boundary Conditions
| TV | specimen_type | ic_ct | non_ic_qty | lod | qty_vs_lod | qty_vs_10k | result | Covers |
|---|
| TV-001-012 | Serum | 36 | 10,000 | 100 | above | at | Pass | AC: Boundary - qty exactly 10,000 (>= 10,000, passes) |
| TV-001-013 | Serum | 36 | 10,001 | 100 | above | above | Pass | AC: Qty just above 10,000 threshold |
| TV-001-014 | Serum | 36 | 5,000 | 100 | above | below | Error | AC: Moderate qty insufficient |
| TV-001-015 | Serum | 36 | 100 | 100 | at | below | Error | AC: Qty at LoD, not above |
| TV-001-016 | Serum | 36 | 101 | 100 | above | below | Error | AC: Qty just above LoD, still insufficient |
Decision Table: Error Handling / Edge Cases
| TV | specimen_type | ic_present | ic_ct | non_ic_obs | lod | result | Covers |
|---|
| TV-001-017 | Serum | false | N/A | [{qty: 500}] | 100 | Skip | AC: No IC observation in well |
| TV-001-018 | Serum | true | null | [{qty: 500}] | 100 | Skip | AC: IC CT value is null |
| TV-001-019 | Serum | true | 38 | [] | 100 | Skip | AC: No non-IC observations |
| TV-001-020 | Serum | true | 38 | [{qty: 500}] | null | Pass* | AC: LoD unavailable, use default |
| TV-001-021 | Serum | true | invalid | [{qty: 500}] | 100 | Skip | AC: IC CT value is invalid |
*Note: TV-001-020 uses default LoD when configuration unavailable; actual result depends on default LoD value vs. quantity.
Full Path Coverage Matrix
| TV | specimen_type | ic_ct | ic_ct_cond | qty_vs_lod | qty_vs_10k | result | Path |
|---|
| TV-001-002 | Non-Serum | Any | N/A | N/A | N/A | Skip | P1: Not applicable |
| TV-001-006 | Serum | 35 | <= 35 | N/A | N/A | Pass | P2: Normal IC |
| TV-001-007 | Serum | 36 | > 35 | false | N/A | Error | P3: Insufficient detection |
| TV-001-008 | Serum | 36 | > 35 | true | false | Error | P4: Moderate qty insufficient |
| TV-001-009 | Serum | 36 | > 35 | true | true | Pass | P5: High qty compensates |
Automation Status
| REQ ID | Test Vectors | Automation Status | Notes |
|---|
| REQ-RULES-INHSERUMQUANT-001 | TV-001-001 to TV-001-021 | Automated | Data-driven parameterized tests |
Traceability to Existing Tests
| Requirement | Jira Tests | Status |
|---|
| REQ-RULES-INHSERUMQUANT-001 | BT-5194, BT-5665 | Partial |
Gap Analysis
Identified Gaps
| Gap | Requirement | Description | Priority | Owner |
|---|
| GAP-001 | REQ-RULES-INHSERUMQUANT-001 | BT-5194/BT-5665 cover 6 TVs; remaining TVs need coverage | Medium | TBD |
- GAP-001: Extend BT-5194/BT-5665 fixtures to cover remaining TVs (serum-specific boundary conditions)
Test Data Requirements
Specimen Type Test Data
| ID | Description | specimen_type |
|---|
| TD-SPEC-001 | Serum specimen | Serum |
| TD-SPEC-002 | Plasma specimen | Plasma |
| TD-SPEC-003 | Urine specimen | Urine |
IC CT Test Values
| ID | Description | ic_ct |
|---|
| TD-CT-001 | Normal range | 30 |
| TD-CT-002 | Just below threshold | 34.9 |
| TD-CT-003 | At threshold (boundary) | 35 |
| TD-CT-004 | Just above threshold | 35.1 |
| TD-CT-005 | Moderately elevated | 38 |
| TD-CT-006 | Highly elevated | 40 |
| TD-CT-007 | Null value | null |
Quantification Test Values
| ID | Description | qty | lod | qty_vs_lod | qty_vs_10k |
|---|
| TD-QTY-001 | Below LoD | 50 | 100 | below | below |
| TD-QTY-002 | At LoD | 100 | 100 | at | below |
| TD-QTY-003 | Above LoD, below high | 5,000 | 100 | above | below |
| TD-QTY-004 | At high threshold | 10,000 | 100 | above | at |
| TD-QTY-005 | Just above high | 10,001 | 100 | above | above |
| TD-QTY-006 | Well above high | 15,000 | 100 | above | above |