当前位置: 首页 > news >正文

开源临床试验软件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 文件

#!/bin/bash
set -epsql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQLDO \$\$BEGINIF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'clinica') THENCREATE 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 文件

version: '3.8'services:postgres:image: postgres:9.5container_name: oc-dbrestart: unless-stoppedvolumes:- ./data:/var/lib/postgresql/data- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh# ports:#   - "5436:5432"environment:POSTGRES_USER: clinicaPOSTGRES_PASSWORD: postgres123POSTGRES_DB: openclinicaPOSTGRES_INITDB_ARGS: "-E 'UTF-8' --locale=POSIX"openclinica:image: piegsaj/openclinica:oc-3.13container_name: oc-apprestart: unless-stoppedvolumes:- ./ocdata:/usr/local/tomcat/openclinica.dataports:- "8386:8080"environment:LOG_LEVEL: INFOTZ: Asia/ShanghaiDB_TYPE: postgresDB_HOST: postgresDB_NAME: openclinicaDB_USER: clinicaDB_PASS: postgres123DB_PORT: 5432SUPPORT_URL: "https://www.openclinica.com/community-edition-open-source-edc/"

然后执行下面的命令

# 新建文件夹 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

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

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/

相关文章:

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

本文是为帮网友 A萤火虫 解决安装问题做的记录&#xff1b; 简介 什么是 OpenClinica &#xff1f; OpenClinica 是世界上第一个商业开源临床试验软件&#xff0c;主要用于电子数据捕获&#xff08;EDC&#xff09;和临床数据管理&#xff08;CDM&#xff09;。它的设计旨在优…...

网络安全 | 网络安全法规:GDPR、CCPA与中国网络安全法

网络安全 | 网络安全法规&#xff1a;GDPR、CCPA与中国网络安全法 一、前言二、欧盟《通用数据保护条例》&#xff08;GDPR&#xff09;2.1 背景2.2 主要内容2.3 特点2.4 实施效果与影响 三、美国《加利福尼亚州消费者隐私法案》&#xff08;CCPA&#xff09;3.1 背景3.2 主要内…...

深入学习 Python 爬虫:从基础到实战

深入学习 Python 爬虫&#xff1a;从基础到实战 前言 Python 爬虫是一个强大的工具&#xff0c;可以帮助你从互联网上抓取各种数据。无论你是数据分析师、机器学习工程师&#xff0c;还是对网络数据感兴趣的开发者&#xff0c;爬虫都是一个非常实用的技能。在本文中&#xff…...

element plus 使用 upload 组件达到上传数量限制时隐藏上传按钮

最近在重构项目&#xff0c;使用了 element plus UI框架&#xff0c;有个功能是实现图片上传&#xff0c;且限制只能上传一张图片&#xff0c;结果&#xff0c;发现&#xff0c;可以限制只上传一张图片&#xff0c;但是上传按钮还在&#xff0c;如图&#xff1a; 解决办法&…...

音频DSP的发展历史

音频数字信号处理&#xff08;DSP&#xff09;的发展历史是电子技术、计算机科学和音频工程共同进步的结果。这个领域的进展不仅改变了音乐制作、音频后期制作和通信的方式&#xff0c;也影响了音频设备的设计和功能。以下是对音频DSP发展历史的概述&#xff1a; 早期概念和理论…...

2025低代码与人工智能AI新篇

在当今数字化浪潮汹涌澎湃的时代&#xff0c;低代码开发与人工智能&#xff08;AI&#xff09;犹如两颗璀璨的星辰&#xff0c;正逐渐交汇融合&#xff0c;为企业解锁前所未有的智能业务解决方案。今天&#xff0c;咱们就深入探讨一下低代码平台是如何集成 AI 技术&#xff0c;…...

【HarmonyOS Next NAPI 深度探索1】Node.js 和 CC++ 原生扩展简介

【HarmonyOS Next NAPI 深度探索1】Node.js 和 CC 原生扩展简介 如果你用过 Node.js&#xff0c;应该知道它强大的地方在于能处理各种场景&#xff0c;速度还很快。但你有没有想过&#xff0c;Node.js 的速度秘密是什么&#xff1f;今天我们来聊聊其中一个幕后英雄——原生扩展…...

redis的学习(四)

13. 渐进式遍历 通过渐进式遍历能够获取当前所有的key&#xff0c;又不会讲当前的服务器卡死。不是一个命令将所有的key获取&#xff0c;而是每执行一次命令&#xff0c;只获取到其中的一部分。所以想要获取到所有的key就需要多次遍历&#xff0c;即化整为零的思想。 渐进式遍历…...

C# winform 多线程 UI更新数据 报错:无法访问已释放的对象。

System.ObjectDisposedException HResult0x80131622 Message无法访问已释放的对象。 ObjectDisposed_ObjectName_Name SourceSystem.Windows.Forms StackTrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, …...

error: linker `link.exe` not found

开始学习rust&#xff0c;安装好rust的环境&#xff0c;开始从hello world开始&#xff0c;结果用在win10环境下&#xff0c;使用vs code或cmd窗口编译rust报错&#xff1a; PS E:\study_codes\rust-demo\chart01> rustc hello.rs error: linker link.exe not found| note:…...

Vue.js组件开发-如何使用moment.js

在Vue.js组件开发中&#xff0c;需要处理日期和时间&#xff0c;moment.js 是一个非常有用的库。moment.js 提供了丰富的API来解析、验证、操作和显示日期和时间。 步骤&#xff1a; 1. 安装moment.js 首先&#xff0c;需要通过npm或yarn安装moment.js。在项目根目录下运行以…...

Linux第二课:LinuxC高级 学习记录day01

0、大纲 0.1、Linux 软件安装&#xff0c;用户管理&#xff0c;进程管理&#xff0c;shell 命令&#xff0c;硬链接和软连接&#xff0c;解压和压缩&#xff0c;功能性语句&#xff0c;结构性语句&#xff0c;分文件&#xff0c;make工具&#xff0c;shell脚本 0.2、C高级 …...

《DOM NodeList》

《DOM NodeList》 介绍 DOM&#xff08;文档对象模型&#xff09;是HTML和XML文档的编程接口&#xff0c;它允许开发者在JavaScript等编程语言中操作文档的结构、样式和内容。在DOM中&#xff0c;NodeList是一个重要的接口&#xff0c;它表示一个包含节点&#xff08;如元素、…...

Nginx代理同域名前后端分离项目的完整步骤

前后端分离项目&#xff0c;前后端共用一个域名。通过域名后的 url 前缀来区别前后端项目。 以 vue php 项目为例。直接上 server 模块的 nginx 配置。 server{ listen 80; #listen [::]:80 default_server ipv6onlyon; server_name demo.com;#二配置项目域名 index index.ht…...

uniapp页面高度设置(铺满可视区域、顶部状态栏高度、底部导航栏高度)

这里说几种在uniapp开发中,关于页面设置高度的几种情况。宽度就不说了哈,宽度设置百分比都会生效。 首先我们要知道平时开发中,如果说没在uniapp做特殊处理,即正常情况下,所有的页面(.vue文件)中都是没有高度的(和vue一样),也就是说给最外层的的view标签设置高度为1…...

解锁 RAG 技术:从原理、论文研读走向实战应用RAG

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、Java 与 Python 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在未来…...

HTML5实现好看的中秋节网页源码

HTML5实现好看的中秋节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 节日由来界面1.4 节日习俗界面1.5 节日文化界面1.6 节日美食界面1.7 节日故事界面1.8 节日民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看…...

数字孪生笔记 1 工业数字孪生的意义

什么是工业数字孪生&#xff1f; 很多在做这个工作研究的同学最开始都想问的一个问题。到底什么才是数字孪生&#xff1f;我在五年前做数字孪生的时候也在思考这个问题。五年时间从数字孪生兴起&#xff0c;到元宇宙爆发&#xff0c;再到数字孪生和元宇宙没人提起&#xff0c;…...

013:深度学习之神经网络

本文为合集收录&#xff0c;欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 深度学习是机器学习中重要的一个学科分支&#xff0c;它的特点就在于需要构建多层且“深度”的神经网络。 人们在探索人工智能初期&#xff0c;就曾设想构建一个用数学方式…...

计算机网络(四)网络层

4.1、网络层概述 简介 网络层的主要任务是实现网络互连&#xff0c;进而实现数据包在各网络之间的传输 这些异构型网络N1~N7如果只是需要各自内部通信&#xff0c;他们只要实现各自的物理层和数据链路层即可 但是如果要将这些异构型网络互连起来&#xff0c;形成一个更大的互…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...