Skip to main content
Version: 3.0.0

STD: Positive Sigmoid Control Rule (POSSIGMOIDCTRL)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/rules/rule-positive-sigmoid-control.md Rule Name: POSITIVE_SIGMOID_CONTROL Domain: RULES-POSSIGMOIDCTRL


Overview

This document specifies tests for the Positive Sigmoid Control rule using decision tables and test vectors. The rule validates that control wells classified as positive exhibit the expected upward sigmoid amplification curve pattern, flagging inconsistencies when a positive-classified control well displays a downward sigmoid curve.

Rule Characteristics:

  • Pure business logic (validation rule)
  • Control well scope restriction (patient wells excluded)
  • Dual error code assignment (well + target)
  • Skip conditions via resolution code or manual classification

Test Method: TM-API (per Test Plan - 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-POSSIGMOIDCTRL-001Detect Incorrect Sigmoid Curve Direction716100%None
REQ-RULES-POSSIGMOIDCTRL-002Display Errors in Assay Summary33100%None

Totals: 2 REQs, 10 Conditions, 19 Test Vectors, 100% Coverage


REQ-RULES-POSSIGMOIDCTRL-001: Detect Incorrect Sigmoid Curve Direction

Input Variables

VariableTypeValid ValuesDescription
well.typestringControl, PatientWell type classification
sigmoid.directionstringUpward, DownwardSigmoid curve direction from analytics
well.final_clsstringPositive, NegativeFinal classification result
well.resolution_codestring?null, POSITIVE_SIGMOID_CONTROLApplied resolution code
well.manual_clsbooltrue, falseWhether manual classification is assigned

Output Variables

VariableTypeDescription
well.error_codestring?INCORRECT_POSITIVE_SIGMOID or null
target.error_codestring?INCORRECT_POSITIVE_SIGMOID_TARGET or null
rule_executedboolWhether the rule executed (not skipped)

Decision Table: Scope Restriction (Well Type)

TVwell.typerule_executedwell.error_codetarget.error_codeCovers
TV-001-001Controltrue(depends on other conditions)(depends on other conditions)AC: Rule executes for control wells
TV-001-002PatientfalsenullnullAC: Rule does NOT execute for patient wells

Decision Table: Skip Conditions

TVwell.typeresolution_codemanual_clsrule_executedCovers
TV-001-003ControlPOSITIVE_SIGMOID_CONTROLfalsefalseAC: Skip when resolution code applied
TV-001-004ControlnulltruefalseAC: Skip when manual classification assigned
TV-001-005ControlnullfalsetrueAC: Execute when no skip conditions

Decision Table: Error Assignment Logic

TVwell.typesigmoid.directionfinal_clsresolution_codemanual_clswell.error_codetarget.error_codeCovers
TV-001-006ControlDownwardPositivenullfalseINCORRECT_POSITIVE_SIGMOIDINCORRECT_POSITIVE_SIGMOID_TARGETAC: Error condition - downward sigmoid with positive classification
TV-001-007ControlDownwardNegativenullfalsenullnullAC: No error - downward sigmoid with negative classification
TV-001-008ControlUpwardNegativenullfalsenullnullAC: No error - upward sigmoid with negative classification
TV-001-009ControlUpwardPositivenullfalsenullnullAC: No error - upward sigmoid with positive classification (valid)

Decision Table: Combined Skip + Error Scenarios

TVwell.typesigmoid.directionfinal_clsresolution_codemanual_clsrule_executederror_assignedCovers
TV-001-010PatientDownwardPositivenullfalsefalsefalseAC: Patient well exclusion (error condition inputs ignored)
TV-001-011ControlDownwardPositivePOSITIVE_SIGMOID_CONTROLfalsefalsefalseAC: Resolution code skip (error condition inputs)
TV-001-012ControlDownwardPositivenulltruefalsefalseAC: Manual classification skip (error condition inputs)

Decision Table: Gap Coverage — Skip Conditions and Patient Exclusion

TVwell.typesigmoid.directionresolution_codemanual_clsrule_executederror_assignedCovers
TV-POSSIGMOIDCTRL-GAP-001ControlDownward (Pos cls)Applied via resolutionfalsefalse (resolved)falseAC: Resolution code bypass clears error
TV-POSSIGMOIDCTRL-GAP-002ControlDownward (Pos cls)Applied via manual clstruefalse (resolved)falseAC: Manual classification bypass clears error
TV-POSSIGMOIDCTRL-GAP-003ControlDownward (Pos cls)Applied (Neg cls)falsefalse (resolved)falseAC: Combined resolution + re-analysis clears error
TV-POSSIGMOIDCTRL-GAP-004PatientDownward (Pos cls)nullfalsefalsefalseAC: Patient well exclusion — POSSIGMOIDCTRL does not fire on patients

Automation Status

Test Vector RangeMethodStatus
TV-001-001 to TV-001-012TM-APIAutomated

REQ-RULES-POSSIGMOIDCTRL-002: Display Errors in Assay Summary

Input Variables

VariableTypeDescription
well.error_codestringINCORRECT_POSITIVE_SIGMOID (from REQ-001)
well.mixstringMix identifier (e.g., Mix A, Mix B)
observation.targetstringTarget identifier

Output Variables

VariableTypeDescription
assay_summary.displayboolWhether error is displayed
assay_summary.error_textstringINCORRECT_POSITIVE_SIGMOID_TARGET
assay_summary.mix_contextstringMix identifier in display
assay_summary.target_contextstringTarget identifier in display

Decision Table: Assay Summary Display

TVwell.error_codewell.mixobservation.targetdisplayerror_textmix_showntarget_shownCovers
TV-002-001INCORRECT_POSITIVE_SIGMOIDMix ATarget AtrueINCORRECT_POSITIVE_SIGMOID_TARGETMix ATarget AAC: Error displayed with mix and target identifiers
TV-002-002INCORRECT_POSITIVE_SIGMOIDMix BTarget BtrueINCORRECT_POSITIVE_SIGMOID_TARGETMix BTarget BAC: Display for different mix/target combination
TV-002-003nullMix ATarget AfalsenullN/AN/AAC: No display when no error assigned

Automation Status

Test Vector RangeMethodStatus
TV-002-001 to TV-002-003TM-APIAutomated

Traceability to Existing Tests

RequirementJira TestsTest CasesStatus
REQ-RULES-POSSIGMOIDCTRL-001BT-5044TC-001 through TC-007Existing
REQ-RULES-POSSIGMOIDCTRL-002BT-5044TC-008Existing

Gap Analysis

Identified Gaps

GapRequirementDescriptionPriorityOwner
None-All conditions covered by test vectors--

Coverage Verification

All acceptance criteria from REQ-RULES-POSSIGMOIDCTRL-001 are mapped:

  • Error Assignment (downward + positive + control): TV-001-006
  • Valid Conditions (no error): TV-001-007, TV-001-008, TV-001-009
  • Scope Restrictions (control only): TV-001-001, TV-001-002, TV-001-010
  • Skip Conditions: TV-001-003, TV-001-004, TV-001-011, TV-001-012

All acceptance criteria from REQ-RULES-POSSIGMOIDCTRL-002 are mapped:

  • Display with mix identifier: TV-002-001, TV-002-002
  • Display with target identifier: TV-002-001, TV-002-002
  • Error code shown: TV-002-001, TV-002-002