BioFlow Requirements
Software Requirements Specification

Software Requirements Specification

UID: DOC-SRS
SRS-001
reviewed 1. First-launch database initialisation
UID: SRS-001
RELATIONS (Parent): RELATIONS (Child):
STATEMENT:

On first launch, when no database file exists at the configured application data path, the software shall create the local database, apply the current schema version, and create a default local clinic record that serves as the container for locally-created patient records.

RATIONALE:

Refines SYS-001: the software-level mechanism that realises the device's first-launch readiness commitment. Establishes the minimum persistent state required for any subsequent clinical operation — without it, patient records cannot be stored and recording sessions cannot be attached to a patient.

TYPE:

functional

ACTIVE:

true

REVIEWED_HASH:

b2dacb9770834083552885f0b26dfd623390ebf0a0cfa890795079d5b9acb043

REVIEWED_BY:

@DougYoungberg

NOTES:

coverage-plan: ST-001 on clean install — fresh workstation, first launch, verify the local clinic is visible in the Patients menu.

SRS-002
unreviewed 2. Local database confidentiality at rest
UID: SRS-002
RELATIONS (Parent): RELATIONS (Child):
STATEMENT:

The software shall keep the local database file unreadable to any process that opens it without supplying the database credential, and shall reject database read and write operations when the credential is missing or incorrect.

RATIONALE:

Refines SYS-002. A workstation that is lost, stolen, imaged, or backed up off-site shall not yield PHI from the local database file alone. Tying readability to a credential held outside the database file ensures offline copies of the file cannot be opened independently of the BioFlow application's credential pathway.

TYPE:

security

STANDARD_REF:

NIST SP 800-111; IEC 81001-5-1 §5.5

THREAT_REF:

PHI exfiltration from a lost, stolen, or imaged Windows host

ACTIVE:

true

NOTES:

coverage-plan: IT-002 attempts to read the on-disk file without a credential and confirms the read does not yield plaintext records, then opens it through the application's pathway and confirms the records are readable.