开源临床试验软件OpenClinica的安装

本文是为帮网友 A萤火虫 解决安装问题做的记录;

简介

什么是 OpenClinica ?

OpenClinica 是世界上第一个商业开源临床试验软件,主要用于电子数据捕获(EDC)和临床数据管理(CDM)。它的设计旨在优化临床试验的工作流程,提供智能且安全的解决方案。凭借其基于开放标准构建的优势,OpenClinica 在临床试验领域内迅速崛起,成为众多研究者和机构青睐的解决方案。不仅促进了数据的透明性和可访问性,还通过提供丰富的 API 接口和工具集,增强了软件的实用性和灵活性。

主要功能:

  • 构建研究:支持研究的设计和实施。
  • 创建电子病例报告表(eCRFs):便于数据输入和管理。
  • 监控和管理临床数据:提供数据审核跟踪和电子签名功能。
  • 角色基础访问控制:确保数据访问的安全性和合规性。
  • 数据导入/导出:方便进行数据分析和报告生成。

开源特性

OpenClinica 采用 GNU LGPL 许可证,允许用户自由使用、修改和分发软件,促进社区协作和创新。

该平台被广泛应用于生物技术、制药、学术机构等领域,支持数千个临床研究项目。

说明

OpenClinica 的源码已经有 2 年没更新了,能找到的镜像基本上都是 6~7 年以前的,应网友要求,只要部署运行即可,估计也就是想看看功能,所以版本并不重要。

安装

在群晖上以 Docker 方式安装。

软件部署涉及多容器,所以采用 docker-compose 安装方式比较简单

init-db.sh

原始 init-db.sh 的内容如下,但在重复执行时会显示错误

所以增加了个判断,只有在角色不存在时再创建。将下面的内容保存为 init-db.sh 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
set -e

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
DO \$\$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'clinica') THEN
CREATE ROLE clinica LOGIN ENCRYPTED PASSWORD 'clinica' SUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;
END IF;
END
\$\$;

CREATE DATABASE openclinica WITH ENCODING='UTF8' OWNER=clinica;
EOSQL

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: '3.8'

services:
postgres:
image: postgres:9.5
container_name: oc-db
restart: unless-stopped
volumes:
- ./data:/var/lib/postgresql/data
- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
# ports:
# - "5436:5432"
environment:
POSTGRES_USER: clinica
POSTGRES_PASSWORD: postgres123
POSTGRES_DB: openclinica
POSTGRES_INITDB_ARGS: "-E 'UTF-8' --locale=POSIX"

openclinica:
image: piegsaj/openclinica:oc-3.13
container_name: oc-app
restart: unless-stopped
volumes:
- ./ocdata:/usr/local/tomcat/openclinica.data
ports:
- "8386:8080"
environment:
LOG_LEVEL: INFO
TZ: Asia/Shanghai
DB_TYPE: postgres
DB_HOST: postgres
DB_NAME: openclinica
DB_USER: clinica
DB_PASS: postgres123
DB_PORT: 5432
SUPPORT_URL: "https://www.openclinica.com/community-edition-open-source-edc/"

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 openclinica 和 子目录
mkdir -p /volume1/docker/openclinica/{data,ocdata}

# 进入 openclinica 目录
cd /volume1/docker/openclinica

# 将 docker-compose.yml 和 init-db.sh 放入当前目录

# 一键启动
docker-compose up -d

运行

软件的初始化需要一点时间

在浏览器中输入 http://群晖IP:8386/OpenClinica

如果你看到的是下面这样的,大概率是数据库设置有问题,例如:

1
oc-db          | FATAL:  database "openclinica" does not exist

正常的话,应该能看到登录界面

默认的账号密码:root/12345678

第一次需要重置密码

登录成功后的主界面

接下来就交给专业人员使用了

参考文档

OpenClinica/OpenClinica: OpenClinica is the world’s first commercial open source clinical trial software for Electronic Data Capture (EDC) Clinical Data Management (CDM).
地址:https://github.com/OpenClinica/OpenClinica

在 Linux 上安装 OpenClinica v3.6 及更高版本 · OpenClinica/OpenClinica Wiki
地址:https://github.com/OpenClinica/OpenClinica/wiki/Install-OpenClinica-v3.6-and-higher-on-Linux

OpenClinica Installation and Upgrade Guides - OpenClinica Reference Guide
地址:https://docs.openclinica.com/3-1/installation/

piegsaj/openclinica-Docker 镜像 | Docker Hub
地址:https://registry.hub.docker.com/r/piegsaj/openclinica

JensPiegsa/OpenClinica: Dockerfile for OpenClinica.
地址:https://github.com/JensPiegsa/OpenClinica/