Skip to main content
Version: 3.0.1

Software Design Specification: System Context

Document Type: System-Level (Tier 1) Status: Draft Last Updated: 2026-01-25


1. Purpose

This document defines the system boundaries of PCR.AI, identifying what is inside the system scope versus external, the actors that interact with the system, and the integration points with external systems.

As a Tier 1 document, this provides synthesis and context. It does not satisfy individual requirements directly.


2. System Boundaries

2.1 What PCR.AI Is

PCR.AI is a cloud-based SaaS platform that automates PCR analysis, quality control, and result classification for clinical diagnostic laboratories.

In Scope:

CapabilityDescription
Run file importAutomated (S3 monitored folder) and manual (web upload)
Data normalizationConvert thermocycler-specific formats to standard JSON
Rules-based classificationApply configurable rules to classify results
Westgard QCStatistical quality control for control samples
Review and amendmentInteractive error resolution with audit trail
LIMS exportExport classified results to external systems
User managementRole-based access control, authentication, MFA
Multi-site operationSite-scoped data isolation and access
Audit loggingImmutable record of all significant actions
Configuration managementKit, rule, control, and system configuration

2.2 What PCR.AI Is Not

Out of Scope:

ExclusionRationale
PCR instrument operationThermocyclers are external; PCR.AI processes their output files
Sample preparationPhysical laboratory operations precede PCR.AI
Patient identity managementNo PII/PHI stored; all data anonymized before analysis
LIMS functionalityPCR.AI exports to LIMS; it does not replace LIMS
Result interpretationClinical decisions remain with laboratory personnel

3. System Context Diagram

This diagram illustrates the high-level system context. It does not specify all implementation details.


4. External Actors

4.1 Human Actors

ActorRolePrimary Interactions
Junior ScientistBasic userView runs, review results, apply resolutions
Senior ScientistAdvanced userAll Junior actions plus reanalysis, comments
ManagerOversightAll Senior actions plus trends, reports, QC review
Client AdminSite administratorUser management, configuration, all operational features
Super AdminSystem administratorAll Client Admin actions plus cross-client access, system configuration

4.2 External Systems

SystemIntegration TypeData Flow
ThermocyclersFile-based (S3)Inbound: Run files (.sds, .pcrd, .eds, .ixo)
LIMS/LISFile-based (S3)Outbound: Classified results (CSV, Excel, custom)
Corporate IdPSAML 2.0 / OIDCBidirectional: Authentication federation

5. Integration Points

5.1 Amazon S3 (File Storage)

Purpose: Primary storage for run files and exports.

FolderDirectionTrigger
toPcrai/InboundS3 event triggers SQS for automated import
Processing/InternalTemporary during import
Problem_Files/InternalFailed imports with error logs
LIMS_Reports/OutboundExport destination for LIMS integration
archive/InternalSuccessfully processed files

Integration Pattern: Event-driven via S3 notifications to SQS, processed by Lambda.

5.2 AWS Cognito (Authentication)

Purpose: User identity management, authentication, and federation.

CapabilityImplementation
Native loginADMIN_USER_PASSWORD_AUTH flow
Federated loginSAML 2.0 / OpenID Connect
MFASoftware TOTP
Session managementGlobalSignOut for single-device enforcement
Custom attributescustom:UserGroup, custom:VisibleSites

Integration Pattern: Direct API calls from Laravel via AWS SDK.

5.3 Pusher (Real-time Communication)

Purpose: WebSocket-based real-time notifications and progress updates.

Channel TypeUse Case
PublicRun import progress, export status
PrivateUser-specific notifications, comment mentions

Integration Pattern: Laravel Broadcasting driver with Pusher backend.

5.4 Amazon SES / SendGrid (Email)

Purpose: Transactional email delivery.

Email TypeTrigger
Account notificationsUser creation, password reset
Comment mentions@-tag in comments
Alert notificationsThreshold violations
Export linksAudit data export

Integration Pattern: Laravel Mail driver; SendGrid primary, SES fallback.

5.5 Amazon SQS (Message Queue)

Purpose: Decouple asynchronous processing from synchronous requests.

QueuePurpose
Import queueRun file processing from S3 events
Export queueBackground export generation

Integration Pattern: Laravel Queue driver with SQS backend.


6. Deployment Context

6.1 Environment Topology

EnvironmentPurposeDatabase
DevelopmentFeature developmentAurora Serverless v2 (dev cluster)
QATesting and validationAurora Serverless v2 (QA cluster)
ProductionLive client useAurora Serverless v2 (production cluster)

6.2 Multi-Tenancy Model

PCR.AI uses single-codebase, multi-deployment tenancy:

  • Each client has their own AWS account resources (S3, Cognito)
  • All clients share the same application codebase
  • Data isolation via site-scoped access control
  • Configuration isolation via client-specific settings

6.3 Data Privacy

PropertyValue
PII StorageNone - all data anonymized before analysis
PHI StorageNone - no protected health information stored
Data ResidencyConfigurable per client (AWS region selection)

7. User Roles at System Boundary

7.1 Role Hierarchy

7.2 Boundary Permissions

CapabilityJuniorSeniorManagerClient AdminSuper Admin
View assigned site dataYesYesYesYesYes
View all client sitesNoNoYesYesYes
Manage usersNoNoNoYesYes
Manage configurationNoNoNoYesYes
Cross-client accessNoNoNoNoYes
System administrationNoNoNoNoYes

DocumentRelationship
SDS: Architecture OverviewComponent decomposition within system boundary
SDS: Security ArchitectureAuthentication and authorization design
SDD: ArchitectureLegacy architecture documentation
SDD: SecurityLegacy security documentation