omop cdm数据质控
1 安装R与package
- 安装R环境
使用如下命令安装并启用 EPEL (如果已经安装过则忽略)
yum install epel-release
使用如下命令安装R
yum install R
- 安装DatabaseConnector包
OHDSI开源项目,R包,提供连接数据库方法,可连接各种数据库,直接从镜像安装
github地址https://github.com/OHDSI/DatabaseConnector
install.packages("DatabaseConnector")
- 安装DataQualityDashboard包
OHDSI开源项目,R包,用于CDM数据质控,目前支持OMOP CDM v5.3.1 与 v5.2.2版本质控,其他CDM需要修改源码与csv等配置文件
github地址https://github.com/OHDSI/DataQualityDashboard
install.packages("devtools")
devtools::install_github("OHDSI/DataQualityDashboard")
2 配置文件
从github获取DataQualityDashboard项目源码,打开extras/codeToRun.R脚本文件,填写配置信息,然后使用Rscript执行,或者在R环境下依次执行
- 数据库连接配置
- 数据库名称
需质控的cdm数据库、用于输出结果的数据库(可为空)、cdm名称(用于识别)
- 线程数
- 输出(并执行?)sql
- 日志与结果(results.json)地址
- 日志类型(控制台实时输出?)
- 结果是否写入数据库表
- (可选)使用Amazon Redshift(数据仓库)时配置
- 质控级别(表、字段、concept)
- 质控项目(默认所有)
包括表、字段、concept三个级别,约20个项目,如字段非空、主键、外键、值合理性等,在inst/csv/ OMOP_CDM_v5.3.1_Check_Desciptions.csv下可查看具体项目。同目录下Table_Level.csv、Field_Level.csv、Concept_Level.csv文件,可查看每个质控项目详细规则
- 不进行质控的表(默认不排除)
- 执行质控(必须完成前面的所有配置)
- (可选)日志检查(需安装shiny)
- (可选)质控结果输出到数据库表
前面writeToTable设置为true即可自动写入,若没有配置,这里可手动执行
3 质控结果
- 执行
codeToRun.R中配置内容可在R环境中分步执行,或者执行脚本
Rscript codeToRun.R & > codeToRun.log &
- 输出结果
日志与质控结果输出到“outputFolder”路径,结果输出格式为results_*.json文件,同时写入到“resultsDatabaseSchema”数据库中表中
注意:执行过程中,可能报错 Error in `$<-.data.frame`(`*tmp*`, " DQD_VERSION ", value = "1.0.0") : replacement has 1 row, data has 0,这是因为cdm数据库中,cdm_souce表为空(该表主要存储cdm版本等元数据信息,会一起输出到结果,用于结果展示),而空数据集无法增加新列并赋值,因此源码中执行到metadata$DQD_VERSION语句就会报错
4 结果展示
- 使用Shiny App方式(有报错xdg-open,未解决)
DataQualityDashboard::viewDqDashboard(jsonPath = file.path(getwd(), outputFolder, cdmSourceName, sprintf("results_%s.json", cdmSourceName)))
- 使用web server方式
安装http-server
npm install -g http-server
进入inst/shinyApps/www目录下,将质控结果results_*.json重命名为results.json(或者将index.html中results.json替换为results_*.json),启动服务即可
http-server
浏览器打开地址http://服务器地址:8080即可查看结果
5 源码分析
源码文件为R/execution.R,主要方法为executeDqChecks,详细内容如下