Tuesday, April 29, 2025
roak
product from the initial vision of metadata driven automation through PoC to Production.sdtm.oak
.roak
package and the open-source sdtm.oak
package.cm
and vs
using sdtm.oak
.sdtm.oak
.R
.%>%
chaining functions together🕙 15 minutes Setup of Workspace
🕙 15 minutes Introduction to sdtm.oak
🕥 40 minutes CM
domain programming
🕚 10 minutes Break
🕦 40 minutes VS
domain programming
🕙 Setup of Workspace
Rammprasad Ganapathy (Ram)
-Presenter
📣Shiyu Chen (Shiyu)
-Presenter
📣Chat Support
💻
exercises
, datasets
and specs
folderssdtm.oak
roak
package.sdtm.oak
v0.1.1sdtm.oak
is designed to be highly versatile, accommodating varying raw data structures from different EDC systems and external vendors.sdtm.oak
has R functions to represent each algorithmAlgorithm or Function | Description of the Algorithm | Example SDTM mapping |
---|---|---|
One-to-one mapping between the raw source and a target SDTM variable that has no controlled terminology restrictions. Just a simple assignment statement. | MH.MHTERM AE.AETERM |
Algorithm or Function | Description of the Algorithm | Example SDTM mapping |
---|---|---|
One-to-one mapping between the raw source and a target SDTM variable that is subject to controlled terminology restrictions. A simple assign statement and applying controlled terminology. This will be used only if the SDTM variable has an associated controlled terminology. | VS.VSPOS VS.VSLAT |
Algorithm or Function | Description of the Algorithm | Example SDTM mapping |
---|---|---|
One-to-one mapping between the raw source and a target that involves mapping a Date or time or datetime component. This mapping algorithm also takes care of handling unknown dates and converting them into. ISO8601 format. | MH.MHSTDTC AE.AEENDTC |
Algorithm or Function | Description of the Algorithm | Example SDTM mapping |
---|---|---|
Mapping a hardcoded value to a target SDTM variable that is subject to terminology restrictions. This will be used only if the SDTM variable has an associated controlled terminology. | MH.MHPRESP = ‘Y’ VS.VSORRESU = ‘mmHg’ |
Algorithm or Function | Description of the Algorithm | Example SDTM mapping |
---|---|---|
Mapping a hardcoded value to a target SDTM variable that has no terminology restrictions. | CM.CMTRT = ‘FLUIDS’ VS.VSCAT = ‘VITAL SIGNS’ |
Algorithm or Function | Description of the Algorithm | Example SDTM mapping |
---|---|---|
Algorithm that is used to filter the source data and/or target domain based on a condition. The mapping will be applied only if the condition is met. This algorithm has to be used in conjunction with other algorithms, that is if the condition is met perform the mapping using algorithms like assign_ct, assign_no_ct, hardcode_ct, hardcode_no_ct, assign_datetime. | If MDPRIOR == 1 then CM.CMSTRTPT = ‘BEFORE’. VS.VSMETHOD when VSTESTCD = ‘TEMP’ |
dplyr
sdtm.oak
algorithms enhances dplyr
functions
dplyr
, the algorithms in sdtm.oak
provide a more elegant and efficient approach.sdtm concept
patient number
, row number of the raw dataset
, and raw source name
.cm
and vs
exercises
folderReview aCRF
Run the code and explain to the users
Did we review the following in the code?
What function should be used for mapping for CMROUTE
Derive an SDTM variable — assign_no_ct • sdtm.oak assign_no_ct()
Derive an SDTM variable — assign_no_ct • sdtm.oak assign_ct()
Did we review the following in the code?
oak_id_vars
When to use hardcode mapping algorithm?
- To assign a collected value on the eCRF
- To Hardcode a SDTM variable that has not directly collected on the eCRF.
We are planning to develop the below features in the subsequent releases.
Please try the package and provide us with your feedback, or get involved in the development of new features. We can be reached through any of the following means:
Slack: https://oakgarden.slack.com
GitHub: https://github.com/pharmaverse/sdtm.oak
CDISC Wiki: https://wiki.cdisc.org/display/oakgarden