SecurityPractices

Security Practices

How RadPro AI protects patient information in your reports.

Last Updated: October 4, 2026

01Our Security Commitment

Radiology reports contain Protected Health Information (PHI). RadPro AI is designed with the requirements of these laws in mind:

  • PHIPA (Personal Health Information Protection Act) - Ontario health privacy law
  • HIPAA (Health Insurance Portability and Accountability Act) - US healthcare privacy law
  • PIPEDA (Personal Information Protection and Electronic Documents Act) - Canadian privacy law
  • GDPR (General Data Protection Regulation) - European Union data protection law

Where Your Data Is Stored and Processed:

  • The application servers and database are hosted by Fly.io in Toronto, Canada. Saved reports, templates and the audit log are stored there.
  • The AI steps run on Amazon Web Services Bedrock in the United States, under Amazon Web Services' Business Associate Addendum. With identifier protection on, the text sent there carries placeholders instead of the identifiers RadPro AI detected. Text in which our server finds identifiers is processed only there.
  • Advanced differential diagnosis and the literature review search the web, using Bedrock Web Search on Amazon Web Services in the United States (us-east-1), which searches Amazon's own index and cached pages. We have not yet confirmed that Bedrock Web Search is covered by our Business Associate Addendum, so these two features run only on text in which our server finds no identifiers, and their instructions tell the model to keep report details out of search queries.
  • The prompt-injection check (Google Cloud Model Armor) runs in Toronto, only on text in which our server finds no identifiers.
  • The current list of companies that receive data from RadPro AI, and where each processes it, is available on request at admin@radpro.ai.

This page describes the safeguards in the product today.

02Data Encryption

RadPro AI encrypts every connection to the site, and encrypts the stored text of every report.

Encryption in Transit:

The site and its API are served over HTTPS only, and browsers are told to keep using HTTPS on later visits (HSTS). This covers:

  • Web pages
  • API calls
  • The live connection that streams report results
  • File uploads and downloads

Encryption at Rest (AES-256-GCM):

In every report, the text you submitted, any findings added to it, the result of each report step, the literature review and the identifier map are encrypted with AES-256-GCM before they are saved, whether or not identifiers were detected (detection can miss one). If encryption fails, the report is not saved.

The same encryption protects the secret behind two-step sign-in and the templates you save in My Templates. Passwords are never stored: only argon2id hashes of them are.

Key Management:

The encryption key is held as a server secret, separate from the database, and each stored value is encrypted with its own key derived from it. The server will not start in production without the key.

03Access Controls

RadPro AI limits who can sign in and what each account can reach.

Two-Step Sign-In (TOTP):

Two-step sign-in with an authenticator app is available on every account. With it on, each sign-in session must also enter a code from the app before it can open or process reports. Administrator accounts and paid plans must turn it on before they can open or process reports.

Role-Based Access Control (RBAC):

Users are assigned roles that determine their access permissions:

  • Standard Users: Can create and manage their own radiology reports
  • Admin Users: Additional access to system administration, user management, and audit logs
  • Future roles: Department Admin, Radiologist, Resident, etc.

Access is granted on a principle of least privilege: users receive only the minimum access necessary for their role.

Session Timeout:

To protect against unauthorized access from unattended workstations, RadPro AI signs out idle sessions:

  • Each sign-in has its own idle clock, moved only by what you do in that browser: typing, clicking, scrolling, touching, or starting a run. Background checks by an open page do not count, and activity on another device does not keep this one signed in
  • The limit is 24 hours, or 15, 30 or 60 minutes if you choose a shorter one on the Account page (15 minutes suits a shared reading-room workstation). It applies to every account, administrators included
  • A warning appears 5 minutes before the limit, with an option to stay signed in
  • Closing the browser ends the sign-in, unless the browser is set to reopen your previous session
  • Signing out from the account menu ends every session on the account, reloads the page and empties the clipboard where the browser allows
  • Timeouts are recorded in the audit log

Account Lockout:

  • After 5 wrong passwords, each within 30 minutes of the one before, password sign-in to the account is locked for 30 minutes
  • The account owner is emailed when the lock starts
  • Wrong passwords and lockouts are recorded in the audit log
  • Repeated failed sign-ins from one address raise a security alert for administrators

Password Requirements:

  • At least 12 characters
  • Mix of uppercase, lowercase, numbers, and symbols
  • No keyboard runs, sequences or repeated characters (abc, 123, aaa), and passwords that appear in known data breaches are refused when the breach check is reachable
  • Changing your password in the app refuses your current password and up to five earlier ones
  • Passwords are stored only as argon2id hashes, never in plain text or reversible encryption

04PHI Protection

RadPro AI looks for patient identifiers in your text and replaces them before the text is sent for processing.

Identifier Detection:

RadPro AI looks for the kinds of identifiers that appear in report text, such as names, dates, phone numbers, email addresses, medical record, health card and account numbers, addresses and postal codes, and other ID numbers. Detection is pattern based. It can miss an identifier or flag a word that is not one, which is why every detected item is shown to you for review.

Detection Technology:

Pattern matching with radiology-specific rules (eponyms, exam names and comparison dates are not treated as identifiers), run in your browser, with the same rules on the server.

Replacing Identifiers Before Processing:

  • Detected names, numbers and other identifiers are replaced with placeholder codes
  • Detected birth dates are replaced with a placeholder code that holds no part of the date
  • Other detected dates are cut back to month and year (to the year alone when the server makes the replacement)
  • Clinical text is left as written
  • You review each detected item and can dismiss a false positive before processing
  • Your results come back with the original details put back in place

Highlighting Detected Identifiers:

When identifiers are detected, each one is highlighted in a color for its type and listed under "Detected PHI review", where you can dismiss it. This allows radiologists to:

  • Quickly identify what PHI exists in their reports
  • Verify detection accuracy
  • Make informed decisions about AI processing

Stored Identifier Information:

The identifier map used to put your details back is stored with the report, encrypted under its own derived key, and is deleted when the report is deleted.

PHI Handling Options:

PHI Redaction is on by default for every account. You can switch it off in the input panel; the choice is saved to your account until you switch it back on. You can review and edit your text before processing.

Processing with Placeholders:

When redaction is on, the identifiers that were found are replaced before processing, so the text sent for processing carries placeholders instead of those details. Automated detection assists your review. It does not replace it.

Server Check Before Text Leaves the Business Associate Addendum:

Before any report text is sent to a service that we have not confirmed is covered by a Business Associate Agreement (the web-search features and the prompt-injection check), our server scans the exact text that would be sent. If it finds an identifier, including one you dismissed as a false positive, the text is processed only on Amazon Web Services Bedrock and the web-search features do not run on that report.

05Audit Logging

RadPro AI keeps an audit log for security monitoring and incident investigation.

What Is Recorded:

  • Sign-ins, wrong passwords and account lockouts
  • Sign-outs from the account menu and session timeouts
  • Two-step sign-in refusals
  • Creating, processing, viewing, editing, exporting and deleting reports
  • Dismissed identifiers (the entry keeps a keyed hash, not the text)
  • Security alerts and administrator actions

Log Data Captured:

Each audit log entry includes:

  • Timestamp (UTC with millisecond precision)
  • User identifier and email address
  • Action performed
  • Resource affected (report ID, user ID, etc.)
  • IP address of the request
  • User agent (browser/device information)
  • Session identifier
  • Result (success/failure)
  • Additional context (error messages, data changes)

6-Year Retention (HIPAA Requirement):

Audit logs are retained for 6 years to comply with HIPAA's documentation retention requirements (45 CFR § 164.316). This ensures:

  • Long-term compliance verification
  • Historical investigation capabilities
  • Legal and regulatory support
  • Breach investigation evidence

Export Capability for Compliance Reviews:

Authorized users (typically compliance officers or administrators) can export audit logs:

  • Filter by date range, user, action type, or resource
  • Export to CSV format for analysis in spreadsheet tools
  • Export to JSON for programmatic analysis
  • Includes all log fields for comprehensive review
  • Useful for internal audits, compliance reviews, and regulatory inspections

Hash-Linked Audit Log:

Each audit entry stores a hash that links it to the entry before it, so a later change to the chain can be detected. Entries are also copied to a separate storage archive outside the application database.

Security Alerts:

Repeated failed sign-ins from one address raise a security alert. Alerts are recorded in the audit log, and the more serious ones are emailed to administrators.

Admin Audit Dashboard:

Administrators can search, filter and export the audit log (CSV or JSON) at /admin/audit.

06Breach Notification Policy

RadPro AI has a written incident response procedure. Our breach notification commitments under PHIPA, PIPEDA, the HIPAA Breach Notification Rule and the GDPR are set out below.

72-Hour Internal Assessment:

Upon discovery of a suspected security incident or data breach, we will:

  • Immediately activate the incident response plan
  • Contain the breach to prevent further unauthorized access
  • Conduct a thorough investigation to determine:
    • What data was involved (PHI, personal data, system data)
    • How many individuals are affected
    • How the breach occurred (root cause)
    • What systems or controls failed
    • What immediate remediation is needed
  • Complete initial assessment within 72 hours of discovery
  • Document all findings, timeline, and response actions

Incident Classification:

We classify incidents based on severity and data involved:

  • Critical: PHI breach affecting >500 individuals or high sensitivity data
  • High: PHI breach affecting <500 individuals
  • Medium: Security incident with no confirmed PHI exposure
  • Low: Security event with no data exposure

Notice to the Custodian (PHIPA):

When RadPro AI handles personal health information as the agent of an Ontario health information custodian, we notify the custodian at the first reasonable opportunity if that information is stolen, lost, or used or disclosed without authority. The custodian notifies the patients affected and, where PHIPA requires, the Information and Privacy Commissioner of Ontario, and we help it do so.

Notice to the Covered Entity (HIPAA):

For a breach of unsecured PHI we handle for a HIPAA covered entity under a Business Associate Agreement, we notify the covered entity as that agreement sets out, and never later than the 60 days after discovery that 45 CFR § 164.410 allows. The notice includes, as far as we know it:

  • What happened and when
  • The individuals affected and the types of information involved
  • What RadPro AI is doing to investigate and prevent recurrence
  • Contact information for further questions

The covered entity notifies affected individuals and the HHS Office for Civil Rights, and we help it do so.

Notice to Other Customers (GDPR and Data Processing Agreement):

For a breach of personal data we process on behalf of a customer (the "Controller") under the GDPR, we notify the Controller without undue delay after we become aware of it. Any other customer is notified as our Data Processing Agreement sets out. The notice gives the details the Controller needs for its own breach notification obligations.

Notification to Regulatory Authorities:

Where RadPro AI is itself responsible for the information (for example, our users' account information):

  • Office of the Privacy Commissioner of Canada: for a breach of security safeguards under PIPEDA that creates a real risk of significant harm, as soon as feasible, together with notice to the individuals affected
  • Data Protection Authorities: for GDPR breaches likely to result in a risk to individuals, without undue delay and within 72 hours where the GDPR requires it

Post-Breach Actions:

Following any breach, RadPro AI commits to:

  • Conduct a comprehensive root cause analysis
  • Implement additional safeguards to prevent recurrence
  • Provide affected individuals with credit monitoring or identity theft protection services if warranted
  • Cooperate fully with regulatory investigations
  • Publish a transparency report (for significant incidents)
  • Update security training and policies as needed

No Breach Too Small:

We take all security incidents seriously, even minor ones. Every incident is investigated, documented, and used as a learning opportunity to strengthen our security posture.

07Responsible Disclosure Program

RadPro AI welcomes and encourages responsible disclosure of security vulnerabilities by the security research community.

How to Report Security Vulnerabilities:

If you discover a security vulnerability in RadPro AI, please report it to:

  • Email: security@radpro.ai
  • Subject line: "Security Vulnerability Report"
  • Include:
    • Detailed description of the vulnerability
    • Steps to reproduce the issue
    • Potential impact and severity assessment
    • Any proof-of-concept code (if applicable)
    • Your contact information for follow-up

48-Hour Response Commitment:

We commit to:

  • Acknowledge receipt of your vulnerability report within 48 hours
  • Provide an initial assessment of severity and impact within 5 business days
  • Keep you informed of our progress in addressing the vulnerability
  • Notify you when the vulnerability has been remediated
  • Publicly credit you (if desired) for responsible disclosure

Safe Harbor for Good-Faith Security Research:

RadPro AI will not pursue legal action against security researchers who:

  • Make a good-faith effort to avoid privacy violations, data destruction, and service interruption
  • Report vulnerabilities to security@radpro.ai and allow reasonable time for remediation before public disclosure
  • Do not exploit the vulnerability beyond what is necessary to demonstrate it
  • Do not access, modify, or delete data belonging to others
  • Comply with all applicable laws

We consider the following activities to be good-faith security research:

  • Vulnerability testing and proof-of-concept development
  • Security scanning and automated testing (at reasonable volume)
  • Attempting to access your own test accounts
  • Reverse engineering or decompiling application code to discover vulnerabilities

Out of Scope:

The following are outside the scope of our responsible disclosure program:

  • Social engineering attacks (phishing, etc.)
  • Physical attacks against RadPro AI facilities or personnel
  • Denial of service attacks
  • Spam or bulk email testing
  • Issues in third-party services (please report to those vendors)
  • Issues affecting outdated browsers (we support current versions only)

Vulnerability Disclosure Timeline:

We aim to remediate vulnerabilities according to severity:

  • Critical vulnerabilities: 7 days
  • High vulnerabilities: 30 days
  • Medium vulnerabilities: 60 days
  • Low vulnerabilities: 90 days

We request that researchers allow us reasonable time to address vulnerabilities before public disclosure. We will coordinate with researchers on responsible public disclosure timing.

08Compliance Alignment

RadPro AI is built to align with major healthcare and data protection regulations. (Note: HHS does not certify HIPAA compliance for any vendor, so be wary of anyone claiming a "HIPAA certification".)

HIPAA-Aligned Architecture:

RadPro AI's infrastructure and operations are designed to align with the Health Insurance Portability and Accountability Act (HIPAA) requirements:

  • Technical Safeguards (45 CFR § 164.312):
    • Access control with unique user identification and automatic logoff
    • Audit controls: an audit log of sign-ins, report actions and administrator actions
    • Integrity controls: a hash-linked audit log
    • Transmission security: HTTPS only, with HSTS
  • Physical Safeguards (45 CFR § 164.310):
    • Application servers and the database are hosted in Toronto, Canada
    • Workstation security policies
    • Device and media controls
  • Administrative Safeguards (45 CFR § 164.308):
    • Security management process with risk analysis
    • Assigned security responsibility
    • Information access management
    • Business Associate Agreements with the providers that host the application and store its data
    • Contingency planning and disaster recovery

RadPro AI signs a Business Associate Agreement (BAA) with a HIPAA covered entity on request, on the Enterprise plan or by separate agreement. Our Data Processing Agreement is not a BAA by itself, and an account without a signed BAA has none.

PHIPA (Ontario):

Under Ontario's Personal Health Information Protection Act, RadPro AI acts as an agent and electronic service provider of the health information custodian only where the custodian has authorized use of RadPro AI. The custodian is the hospital or community health services centre operator, or, in private practice, the radiologist or radiology group, who gives that authorization by accepting our Terms of Service. RadPro AI uses personal health information only to provide the service, as the custodian permits, and never for its own purposes. Hospital radiologists need their hospital's approval before using RadPro AI with patient information. Patients make access and correction requests to the custodian, and RadPro AI helps the custodian answer them. RadPro AI notifies the custodian at the first reasonable opportunity if personal health information it handles for that custodian is stolen, lost, or used or disclosed without authority. A PHIPA agent agreement is available on request.

PIPEDA (Canadian Privacy):

As a Canadian company, RadPro AI follows these principles of Canada's Personal Information Protection and Electronic Documents Act (PIPEDA):

  • Accountability: the Privacy Officer of Radiology Pro AI Corp. is responsible for compliance; contact RadPro AI at admin@radpro.ai
  • Identifying Purposes: Clear communication about why personal information is collected
  • Consent: Obtaining appropriate consent for data collection and use
  • Limiting Collection: Collecting only information necessary for identified purposes
  • Limiting Use, Disclosure, and Retention: Using data only for stated purposes
  • Accuracy: Ensuring personal information is accurate and up-to-date
  • Safeguards: Security measures described in this document
  • Openness: Transparent policies and practices
  • Individual Access: Providing individuals access to their information
  • Challenging Compliance: Process for addressing privacy concerns

GDPR (EU Data Protection):

For customers subject to the General Data Protection Regulation, RadPro AI provides:

  • Legal Basis: Processing based on contract performance or consent
  • Data Subject Rights: Tools to support access, rectification, erasure, portability, and objection rights
  • Data Protection by Design: Privacy built into system architecture
  • Data Protection Impact Assessments: Help with the controller's assessment on request
  • Data Processing Agreements: Standard Contractual Clauses (SCCs) for international transfers
  • Privacy Officer: for data protection inquiries, contact RadPro AI at admin@radpro.ai
  • Breach Notification: notice to the controller without undue delay
  • Data Minimization: Processing only necessary data
  • Storage Limitation: Reports stay in your account until you delete them or delete your account

Available Documentation:

Upon request, RadPro AI can provide:

  • HIPAA compliance documentation and self-assessment
  • PIPEDA compliance statement
  • GDPR Data Processing Agreement with Standard Contractual Clauses
  • Security architecture diagrams
  • Incident response and breach notification procedures

The current subprocessor list, with each provider's role, data, location and agreement, is available on request. Customers with a signed Data Processing Agreement, Business Associate Agreement or PHIPA agent agreement are told of a new subprocessor before it starts processing personal information.

Contact our compliance team at admin@radpro.ai to request documentation or discuss specific compliance requirements.

Security Highlights

  • Encryption

    HTTPS for every connection, and AES-256-GCM for the stored text of every report.

  • Automatic PHI Detection

    Identifiers in your text are found as you paste, highlighted by type, and replaced before processing. You review every item.

  • Safeguards

    Idle sign-out after 24 hours or as little as 15 minutes, account lockout after repeated wrong passwords, an audit log of sign-ins and report actions, and a Business Associate Agreement or PHIPA agent agreement on request.

  • Audit Log

    Sign-ins and report actions are recorded in a hash-linked log that administrators can export.

Security Questions or Concerns?

We take security seriously. Contact our security team with any questions or to report vulnerabilities:

Security Team:
security@radpro.ai
Compliance Team:
admin@radpro.ai
Company:
Radiology Pro AI Corp. (RadPro AI)
Privacy Officer:
Contact RadPro AI (admin@radpro.ai)
Location:
Ontario, Canada

This page describes the safeguards in RadPro AI today. If anything here is unclear, write to security@radpro.ai.