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,详细内容如下