Overview

OpenSpecimen is a Java Spring and REST API-based application. It is designed to handle highly sensitive data such as patient identifiers, demographics, clinical information, images, test results, etc. This document explains the security considerations used in OpenSpecimen to achieve this.

Latest technology stack

OpenSpecimen is built using the latest versions of all the technology platforms used internally. This includes Tomcat, Apache, Oracle, MySQL, Java, etc.

HTTPS/SSL

OpenSpecimen uses TLS2/3 SSL-enabled webserver to encrypt data over the network.

Authentication

OpenSpecimen has an in-built user management module. Customers can integrate OpenSpecimen with their institution's identity provider (e.g., Active Directory) via SAML or LDAP for tighter security. This will also avoid users having to remember multiple user names and passwords.

Password protection

Note: This does not apply if user accounts are integrated with the Customer's Identity Providers (IdP).

Where N is configured as per the Customer's needs. 

Account Protection

Where N is configured as per the Customer's needs. 

PHI Handling

PHI data is displayed only to users who have specific privileges.

Audit

Login Audit

Every login and logout session is recorded, including failed login attempts. 

Data Audit

Every action resulting in changed data is audited (i.e., create, edit, delete). The audit information contains:

  1. Timestamp
  2. User id
  3. IP address
  4. Record id
  5. In the case of edit: old value and new value

Audit reports can be generated via UI.

Reporting Audit

Every time a user runs a report, a log is maintained, which includes information like:

  1. User ID
  2. Timestamp
  3. Report ID
  4. Internal SQL generated