Skip to contents

Prepare list of data of raw-data

sdtm <- list(
  SDTM_DM = arrow::read_parquet(system.file("demo_gsmpharmaverse/data/SDTM/SDTM_DM.parquet", package = "workr")),
  SDTM_VS = arrow::read_parquet(system.file("demo_gsmpharmaverse/data/SDTM/SDTM_VS.parquet", package = "workr"))
)
Show Raw DM preview (first 6 rows)
STUDYID USUBJID TRT01A
test_study test_study-375 DRUG X
test_study test_study-376 DRUG X
test_study test_study-377 DRUG X
test_study test_study-378 DRUG X
test_study test_study-379 DRUG X
Show Raw VS preview (first 6 rows)
oak_id raw_source patient_number VSTESTCD VSTEST VSORRES VSORRESU VSPOS VSLOC VSLAT VSDTC VSTPT VSTPTNUM VISIT VISITNUM STUDYID DOMAIN VSCAT USUBJID
1 vitals 375 SYSBP Systolic Blood Pressure 158.00 mmHg PRONE NA NA 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study VS VITAL SIGNS test_study-375
1 vitals 375 DIABP Diastolic Blood Pressure 92.00 mmHg PRONE NA NA 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study VS VITAL SIGNS test_study-375
1 vitals 375 PULSE Pulse Rate 63.00 beats/min NA NA NA 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study VS VITAL SIGNS test_study-375
1 vitals 375 RESP Respiratory Rate 17.00 breaths/min NA NA NA 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study VS VITAL SIGNS test_study-375
1 vitals 375 TEMP Temperature 40.48 C NA SKIN NA 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study VS VITAL SIGNS test_study-375
1 vitals 375 OXYSAT Oxygen Saturation 98.00 % NA FINGER RIGHT 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study VS VITAL SIGNS test_study-375

Show YAML’s of admiral transformations

## ```yaml
## meta:
##   ID: ADVS
##   Type: ADAM
##   Description: Create Basic ADVS
##   Priority: 1
## spec:
##   SDTM_DM:
##     _all:
##       required: true
##   SDTM_VS:
##     _all:
##       required: true
## steps:
##   - output: initial_advs
##     name: admiral::derive_vars_merged
##     params:
##       dataset: SDTM_VS
##       dataset_add: SDTM_DM
##       new_vars: !expr exprs(TRT01A)
##       by_vars: !expr exprs(STUDYID, USUBJID)
##   - output: advs
##     name: dplyr::mutate
##     params:
##       .data: initial_advs
##       PARAMCD: !expr rlang::expr(.data[["VSTESTCD"]])
##       AVAL: !expr rlang::expr(.data[["VSORRES"]])
##   - output: advs
##     name: admiral::derive_param_map
##     params:
##       dataset: advs
##       by_vars: !expr exprs(STUDYID, USUBJID, TRT01A, VSDTC, VISIT, VISITNUM, VSTPT, VSTPTNUM)
##       sysbp_code: 'SYSBP'
##       diabp_code: 'DIABP'
##       get_unit_expr: !expr rlang::expr(.data[["VSORRESU"]])
## ```

This workflow was inspired by portions of this admiral vignette.

ADAM_workflows <- workr::MakeWorkflowList(
  strNames = "ADVS",
  strPath = "demo_gsmpharmaverse/workflows/2_SDTM_TO_ADAM/",
  strPackage = "workr"
)
ADAM <- workr::RunWorkflows(lWorkflows = ADAM_workflows, lData = sdtm)
map2(ADAM, names(ADAM), function(x,y) arrow::write_parquet(x, paste0("demo_gsmpharmaverse/data/ADAM/",y,".parquet"))
Show ADVS (first 6 rows)
oak_id raw_source patient_number VSTESTCD VSTEST VSORRES VSORRESU VSPOS VSLOC VSLAT VSDTC VSTPT VSTPTNUM VISIT VISITNUM STUDYID DOMAIN VSCAT USUBJID TRT01A PARAMCD AVAL
NA NA NA NA NA NA NA NA NA NA 2015-05-16T07:25 PREDOSE 1 VISIT1 VISIT1 test_study NA NA test_study-375 DRUG X MAP 114.00000
NA NA NA NA NA NA NA NA NA NA 2015-05-16T10:25 POSTDOSE 2 VISIT1 VISIT1 test_study NA NA test_study-375 DRUG X MAP 83.33333
NA NA NA NA NA NA NA NA NA NA 2018-05-06T02:01 SCREENING 1 test_study NA NA test_study-375 DRUG X MAP 80.33333
NA NA NA NA NA NA NA NA NA NA 2008-10-23T01:19 PREDOSE 1 VISIT1 VISIT1 test_study NA NA test_study-376 DRUG X MAP 73.66667
NA NA NA NA NA NA NA NA NA NA 2008-10-23T03:19 POSTDOSE 2 VISIT1 VISIT1 test_study NA NA test_study-376 DRUG X MAP 96.00000