πŸ₯ ORHub HIPAA Compliance & Security Whitepaper

Version: 1.0 Date: May 19, 2026 Classification: Public

1. Executive Summary

ORHub is an AI-powered surgical coordination agent designed for Ambulatory Surgery Centers (ASCs). Staff interact with ORHub via SMS to coordinate OR scheduling, turnover tracking, and case preparation. A web-based supervisor dashboard provides read-only operational visibility.

This document provides a transparent assessment of ORHub's security posture, HIPAA compliance controls, and infrastructure architecture. It is intended for hospital CISOs, IT directors, and compliance officers evaluating ORHub for pilot deployment.

Our approach: We distinguish clearly between controls that are implemented today, those actively in progress, and those on our roadmap. Every architectural decision β€” from choosing AWS Bedrock over direct API calls, to minimizing PHI in SMS β€” was made with HIPAA in mind from day one.

13
Controls Implemented
3
In Progress
4
Planned
365d
Log Retention

Key Security Highlights

2. Architecture Overview

ComponentTechnologyPurpose
Application ServerNode.js / ExpressCore application logic
InfrastructureAWS EC2 (us-east-1)Compute
DatabaseGoogle Cloud FirestoreData storage, audit logs
AuthenticationFirebase AuthDashboard user auth
AI EngineAWS Bedrock (Claude Sonnet)NLP, coordination logic
SMS GatewayTextMagicSMS communication
Web ServerNginxReverse proxy, TLS termination
MonitoringAWS CloudWatchLog aggregation

Architecture Diagram

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   AWS Cloud (us-east-1)                   β”‚
β”‚                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚           EC2 Instance (Encrypted EBS)             β”‚  β”‚
β”‚  β”‚                                                    β”‚  β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚  β”‚
β”‚  β”‚  β”‚  Nginx   │───▢│  Node.js Express App        β”‚   β”‚  β”‚
β”‚  β”‚  β”‚  (TLS)   β”‚    β”‚     (localhost:3000)         β”‚   β”‚  β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚          β”‚          β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”   β”‚                   β”‚
β”‚          β”‚          β”‚ AWS Bedrock β”‚   β”‚                   β”‚
β”‚          β”‚          β”‚ (Claude)    β”‚   β”‚                   β”‚
β”‚          β”‚          β”‚ [BAA βœ…]    β”‚   β”‚                   β”‚
β”‚          β”‚          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚                   β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚   β”‚ CloudWatch [BAAβœ…]β”‚   β”‚ Security Group       β”‚       β”‚
β”‚   β”‚ (365-day logs)    β”‚   β”‚ 22 / 80 / 443 only  β”‚       β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ HTTPS                         β”‚ HTTPS
         β–Ό                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Google Firebase  β”‚          β”‚   TextMagic      β”‚
β”‚ / Firestore      β”‚          β”‚  (SMS Gateway)   β”‚
β”‚ [BAA πŸ”„]         β”‚          β”‚  [BAA πŸ“‹]        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚ SMS
         HTTPS                         β–Ό
         β–Ό                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚   ASC Staff      β”‚
β”‚ Supervisor       β”‚          β”‚  (Mobile Phone)  β”‚
β”‚ Dashboard        β”‚          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ (Firebase Auth)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. Data Flow

SMS Interaction Flow

Staff Phone              ORHub                        AWS Bedrock
    β”‚                      β”‚                              β”‚
    │── SMS (TextMagic) ──▢│                              β”‚
    β”‚                      │── Log inbound ──────────────▢│ Firestore
    β”‚                      │── Process context ──────────▢│ Bedrock
    β”‚                      │◀── AI response ──────────────│ (not retained)
    β”‚                      │── Log response ─────────────▢│ Firestore + CW
    │◀── SMS Reply ────────│                              β”‚
    β”‚ (first name,         β”‚                              β”‚
    β”‚  room, time only)    β”‚                              β”‚

PHI Data Locations

LocationPHI PresentEncrypted at RestEncrypted in TransitBAA
AWS EC2 / EBSYes (in memory)AES-256N/Aβœ…
Google FirestoreYesAES-256TLS 1.2+πŸ”„ In Progress
AWS BedrockTransient onlyNot storedTLS 1.2+βœ…
AWS CloudWatchYes (logs)AES-256TLS 1.2+βœ…
TextMagicMinimizedProvider-managedTLSπŸ“‹ Investigating
SMS (staff phones)MinimizedDevice-dependentCarrier-dependentN/A
Web dashboardDisplay onlyN/ATLS 1.2+N/A

4. Security Controls

Server Hardening

ControlDescriptionStatus
OS UpdatesUnattended security updates (automatic)βœ… Implemented
SSH HardeningKey-only auth; password disabled; root login disabledβœ… Implemented
Brute Force ProtectionFail2ban: 3 failed attempts β†’ 1-hour IP banβœ… Implemented
Minimal Attack SurfaceSecurity Group: ports 22, 80, 443 onlyβœ… Implemented
App IsolationNode.js on localhost only; Nginx reverse proxyβœ… Implemented
Privilege SeparationDedicated deploy user, no root for app opsβœ… Implemented
Process Managementsystemd with automatic restart on failureβœ… Implemented
Penetration TestingThird-party pen testπŸ“‹ Planned

5. Access Controls

Server Access

RoleAccess MethodPermissions
App DeploymentSSH (deploy user)Deploy code only; no sudo
System AdminSSH (ubuntu user, .pem key)Full admin; founding team only

Dashboard Access

ControlDescriptionStatus
AuthenticationFirebase Auth (email/password + Google SSO)βœ… Implemented
Data ScopingFirestore rules enforce facility-level isolationβœ… Implemented
Access LoggingAll read operations loggedβœ… Implemented
MFAMulti-factor authenticationπŸ“‹ Planned
Session TimeoutAutomatic session expirationπŸ“‹ Planned

Multi-Tenancy

Data isolation is enforced at the database layer β€” every Firestore document is scoped to a facilityId. Security rules prevent cross-facility access. This is logical isolation within a shared database; single-tenant deployment is available for organizations requiring physical separation.

6. Encryption

At Rest

LayerMethodKey Management
AWS EBS VolumesAES-256AWS-managed
Google FirestoreAES-256Google-managed
AWS CloudWatchAES-256AWS-managed

In Transit

PathProtocolCertificate
Client ↔ NginxTLS 1.2+Let's Encrypt (auto-renewing)
App ↔ FirestoreTLS 1.2+Google-managed
App ↔ BedrockTLS 1.2+AWS-managed
App ↔ TextMagicTLS 1.2+TextMagic-managed
App ↔ CloudWatchTLS 1.2+AWS-managed

7. Audit & Monitoring

ORHub maintains a comprehensive, tamper-resistant audit trail across two independent storage systems:

Firestore Audit Collection

AWS CloudWatch Logs

Tamper resistance: Audit logs exist in two independent systems (Firestore and CloudWatch), neither on the application server. Compromising the app server does not grant ability to modify or delete audit records.

Logs can be exported from Firestore filtered by date range, facility, user, action type, or case identifier.

8. AI/ML Data Handling

How ORHub Uses AI

ORHub uses Anthropic's Claude Sonnet via AWS Bedrock β€” a fully managed AWS service covered under the AWS BAA. The AI coordinates surgical operations; it does not make clinical decisions.

Data Retention by the AI Model

AWS Bedrock does not retain, log, or use customer inputs or outputs to train models. Input prompts are processed and discarded. No customer data is shared with Anthropic. This is contractually guaranteed under the AWS BAA and Bedrock service terms.

Authentication

ORHub authenticates to Bedrock using an IAM instance role. No API keys or credentials are stored on disk or in environment variables. Credentials rotate automatically via AWS STS.

No Third-Party AI Providers

ORHub does not send patient data to OpenAI, Anthropic directly, Google AI, or any AI provider outside BAA coverage. All AI processing occurs within the AWS BAA perimeter.

9. Subprocessors & Third Parties

SubprocessorServicePHI AccessBAASOC 2Location
AWSEC2, EBS, Bedrock, CloudWatchYesβœ… SignedYesus-east-1
Google Cloud / FirebaseFirestore, AuthYesπŸ”„ In ProgressYesus-central1
TextMagicSMS GatewayMinimizedπŸ“‹ InvestigatingVariesEU/US
Anthropic (via Bedrock)AI ModelTransientCovered by AWS BAAYesus-east-1

10. Compliance Status Matrix

Administrative Safeguards (Β§164.308)

RequirementHIPAA RefORHub ControlStatus
Security Management ProcessΒ§164.308(a)(1)Risk assessment; controls per this documentβœ…
Assigned Security ResponsibilityΒ§164.308(a)(2)Founding team; dedicated officer plannedπŸ”„
Workforce SecurityΒ§164.308(a)(3)Key-based auth; limited accessβœ…
Information Access MgmtΒ§164.308(a)(4)Facility-scoped access; deploy user separationβœ…
Security Awareness TrainingΒ§164.308(a)(5)Formal training programπŸ“‹
Security Incident ProceduresΒ§164.308(a)(6)Process exists; formal docs in progressπŸ”„
Contingency PlanΒ§164.308(a)(7)EBS snapshots; DR plan in developmentπŸ”„
EvaluationΒ§164.308(a)(8)Internal review; pen testing plannedπŸ“‹
BAAs with SubprocessorsΒ§164.308(b)(1)AWS signed; Firebase/TextMagic in progressπŸ”„

Physical Safeguards (Β§164.310)

RequirementHIPAA RefORHub ControlStatus
Facility Access ControlsΒ§164.310(a)(1)AWS SOC-certified data centersβœ… (via AWS)
Workstation Use/SecurityΒ§164.310(b-c)Cloud-only; no on-premiseβœ… N/A
Device & Media ControlsΒ§164.310(d)(1)EBS encryption; no removable mediaβœ…

Technical Safeguards (Β§164.312)

RequirementHIPAA RefORHub ControlStatus
Access ControlΒ§164.312(a)(1)Firebase Auth; Firestore rules; SSH keysβœ…
Unique User IDΒ§164.312(a)(2)(i)Individual accounts and SSH keysβœ…
Emergency AccessΒ§164.312(a)(2)(ii)SSH admin access; formal procedure plannedπŸ“‹
Automatic LogoffΒ§164.312(a)(2)(iii)Session timeout enforcementπŸ“‹
EncryptionΒ§164.312(a)(2)(iv)AES-256 at rest; TLS 1.2+ in transitβœ…
Audit ControlsΒ§164.312(b)Full trail in Firestore + CloudWatch (365d)βœ…
Integrity ControlsΒ§164.312(c)(1)Tamper-resistant off-box dual loggingβœ…
AuthenticationΒ§164.312(d)Firebase Auth + SSH key-pairβœ…
Transmission SecurityΒ§164.312(e)(1)TLS 1.2+ on all pathsβœ…

11. Risk Assessment

RiskSeverityMitigationRemediation
Firebase BAA not yet signedHighMigration to Google Workspace org in progressQ2 2026
TextMagic BAA not signedMediumPHI minimized in SMS (first name, room, time only)Q2-Q3 2026
No MFA on dashboardMediumFirebase Auth + access loggingQ2-Q3 2026
Single EC2 instance (no HA)Mediumsystemd auto-restart; EBS snapshots2027
No formal pen testingMediumHardening, minimal surface, fail2banQ3-Q4 2026
No session timeoutLowAccess logging; Firebase session mgmtQ2-Q3 2026
No formal IRPMediumInformal process existsQ2-Q3 2026

Transparency note: We are an early-stage company. Certain enterprise controls (SOC 2, pen testing, HA) are on our roadmap. We mitigate through security-first architecture, PHI minimization, dual audit logging, and honesty about our current state.

12. Incident Response

  1. Detection: CloudWatch alerting; Fail2ban; audit log monitoring
  2. Containment: Immediate server access termination, Firebase session revocation, SMS integration shutdown
  3. Notification: Covered entity notified within 72 hours; affected individuals within 60 days per HIPAA (45 CFR Β§164.404-408)
  4. Investigation: Full forensic trail from Firestore + CloudWatch dual logs
  5. Remediation: Root cause analysis and control updates

13. Frequently Asked Questions

Where exactly is PHI stored?
Google Firestore (patient/schedule data, audit logs) and AWS CloudWatch (app logs). Both encrypted at rest. AWS BAA signed; Google Cloud BAA in progress.
Is the AI model seeing PHI?
Yes β€” it processes patient context for coordination through AWS Bedrock (BAA-covered). It does not retain or learn from the data.
Does the AI retain or learn from our data?
No. Bedrock does not store inputs/outputs or use customer data for training. Contractually guaranteed under AWS BAA.
Who has access to the production server?
A deploy user (no sudo) and an ubuntu admin user (SSH key only). Password auth and root login disabled.
What happens if the server goes down?
systemd auto-restarts the process. No HA/failover yet β€” planned for scale phase.
Can we get an audit log export?
Yes β€” Firestore audit collection, filterable by date, facility, user, action type, or case ID.
Penetration testing results?
Not yet β€” third-party pen test is on near-term roadmap.
Is our data isolated from other facilities?
Yes β€” all data scoped by facilityId with Firestore security rules. Logical isolation; single-tenant available on request.
What about physical security?
No on-premise infrastructure. AWS us-east-1 data centers maintain SOC 1/2/3 and ISO 27001 with 24/7 physical security.
Is there a mobile app?
No. SMS-based staff interface + web dashboard. No MDM/MAM concerns.

14. Roadmap

Immediate (Q2–Q3 2026)

InitiativePriority
Google Cloud / Firebase BAACritical
TextMagic BAA or HIPAA-compliant SMS migrationHigh
Formal Incident Response PlanHigh
MFA for dashboard loginHigh
Session timeout enforcementMedium

Near-Term (Q3–Q4 2026)

InitiativePriority
Third-party penetration testingHigh
Formal data retention/deletion policyMedium
DR runbook testingMedium
HIPAA training programMedium
Dedicated security officerMedium

Scale Phase (2027)

InitiativePriority
SOC 2 Type II certificationHigh
High-availability architectureMedium
Business continuity planMedium
Cyber liability insuranceMedium