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,詳細內容如下