Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CRAN release documentation update #82

Merged
merged 16 commits into from
Jul 31, 2024
1 change: 1 addition & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ [email protected]
[email protected]
[email protected]
.*@users.noreply.github.com
https://www.linkedin.com/*
72 changes: 39 additions & 33 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,39 @@
# sdtm.oak 0.0.0.9005 (development version)

* New function for creating conditioned data frames: `condition_add()`.
* New pipe operator: `%.>%` for explicit dot placeholder placement.
* `oak_id_vars()` is now an exported function.

# sdtm.oak 0.0.0.9004 (development version)

* New function: `derive_seq()` for deriving a sequence number variable.

# sdtm.oak 0.0.0.9003 (development version)

## New Features

* New function: `assign_datetime()` for deriving an ISO8601 date-time variable.

# sdtm.oak 0.0.0.9002 (development version)

## New Features

* New function: `derive_study_day()` for study day calculation.

* New functions for basic SDTM derivations: ` assign_no_ct()`, `assign_ct()`,
`hardcode_no_ct()` and `hardcode_ct()`.

* New functions for handling controlled terminologies: `read_ct_spec()`,
`read_ct_spec_example()`, `ct_spec_example()` and `ct_map()`.

# sdtm.oak 0.0.0.9001 (development version)

## New Features

* New function `create_iso8601()` for conversion of vectors of dates, times or date-times to ISO8601 format.
# sdtm.oak V0.1.0

The V0.1.0 release of {sdtm.oak} users can create the majority of the SDTM domains. Domains that are *NOT* in scope for the V0.1.0 release are DM, Trial Design Domains, SV, SE, RELREC, Associated Person domains, and EPOCH Variable across all domains.

- Functions for commonly used SDTM mapping Algorithms
- `assign_no_ct()` to process assign_no_ct algorithm
- `assign_ct()` to process assign_ct algorithm
- `hardcode_no_ct()` to process hardcode_no_ct algorithm
- `hardcode_ct()` to process hardcode_ct algorithm
- `assign_datetime()` to process assign_datetime algorithm
- `condition_add()` to process condition_add algorithm (if/else conditions)
- Functions for SDTM derived variables
- `derive_blfl()` to Derive Baseline Flag or Last Observation Before Exposure Flag
- `derive_seq()` to Derive the sequence number (--SEQ) variable
- `derive_study_day()` to Derive study day
- `create_iso8601()` for ISO8601 date, datetime conversion.
- Functions to support {sdtm.oak}
- ` generate_oak_id_vars()` to derive oak id variables
- `read_ct_spec()` to read the controlled terminology spec
rammprasad marked this conversation as resolved.
Show resolved Hide resolved
- Functions to create conditioned dataframes to support if then else conditions in SDTM mappings
- Articles
- Algorithms
- Creating an Events SDTM domain
- Creating a Findings SDTM domain
- Conditioned Data Frames
- Converting dates, times or date-times to ISO 8601
- Path to Automation

## Further details on this Release

- New function for creating conditioned data frames: `condition_add()`.
- New pipe operator: `%.>%` for explicit dot placeholder placement.
- `oak_id_vars()` is now an exported function.
- New function: `derive_seq()` for deriving a sequence number variable.
- New function: `assign_datetime()` for deriving an ISO8601 date-time variable.
- New function: `derive_study_day()` for study day calculation.
- New functions for basic SDTM derivations: `assign_no_ct()`, `assign_ct()`, `hardcode_no_ct()` and `hardcode_ct()`.
- New functions for handling controlled terminologies: `read_ct_spec()`, `read_ct_spec_example()`, `ct_spec_example()` and `ct_map()`.
- New function `create_iso8601()` for conversion of vectors of dates, times or date-times to ISO8601 format.
55 changes: 55 additions & 0 deletions README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,64 @@ can automate SDTM creation based on the standard SDTM spec.

## Installation

The package is available from CRAN and can be installed with:

```r
install.packages("sdtm.oak")
```

You can install the development version of `{sdtm.oak}` from [GitHub](https://github.com/pharmaverse/sdtm.oak/) with:

``` r
# install.packages("remotes")
remotes::install_github("pharmaverse/sdtm.oak")
```

## Challenges with SDTM at the Industry Level

* Raw Data Structure: Data from different EDC systems come in varying structures, with different variable names, dataset names, etc.

* Varying Data Collection Standards: Despite the availability of CDASH, pharmaceutical companies still create different eCRFs using CDASH standards.

Due to the differences in raw data structures and data collection standards, it may seem impossible to develop a common approach for programming SDTM datasets.

## GOAL
`{sdtm.oak}` aims to address this issue by providing an EDC-agnostic, standards-agnostic solution. It is an open-source R package that offers a framework for the modular programming of SDTM in R. With future releases; it will also strive to automate the creation of SDTM datasets based on the metadata-driven approach using standard SDTM specifications.

## Scope
Our goal is to use `{sdtm.oak}` to program most of the domains specified in SDTMIG (Study Data Tabulation Model Implementation Guide: Human Clinical Trials) and SDTMIG-AP (Study Data Tabulation Model Implementation Guide: Associated Persons). This R package is based on the core concept of `algorithms`, implemented as functions capable of carrying out the SDTM mappings for any domains listed in the CDISC SDTMIG and across different versions of SDTM IGs. The design of these functions allows users to specify a raw dataset and a variable name(s) as parameters, making it EDC (Electronic Data Capture) agnostic. As long as the raw dataset and variable name(s) exist, `{sdtm.oak}` will execute the SDTM mapping using the selected function. It's important to note that `{sdtm.oak}` may not handle sponsor-specific details related to managing metadata for LAB tests, unit conversions, and coding information, as many companies have unique business processes. With subsequent releases, strive to automate SDTM creation using a metadata-driven approach based on a standard SDTM specification format.

## Road Map

This Release: The V0.1.0 release of `{sdtm.oak}` users can create the majority of the SDTM domains. Domains that are NOT in scope for the V0.1.0 release are DM, Trial Design Domains, SV, SE, RELREC, Associated Person domains, and EPOCH Variable across all domains.

Subsequent Releases:
We are planning to develop the below features in the subsequent releases.\
- Functions required to derive reference date variables in the DM domain.\
- Metadata driven automation based on the standardized SDTM specification.\
- Functions required to program the EPOCH Variable.\
- Functions to derive standard units and results based on metadata.

## References and Documentation

* Please go to [Algorithms](https://pharmaverse.github.io/sdtm.oak/articles/algorithms.html) article to learn about Algorithms.
* Please go to [Create Events Domain](https://pharmaverse.github.io/sdtm.oak/articles/events_domain.html) to learn about step by step process to create an Events domain.
* Please go to [Create Findings Domain](https://pharmaverse.github.io/sdtm.oak/articles/findings_domain.html) to learn about step by step process to create an Events domain.
* Please go to [Path to Automation](https://pharmaverse.github.io/sdtm.oak/articles/study_sdtm_spec.html)
to learn about how the foundational release sets up the stage for automation.

## Feedback

We ask users to follow the mentioned approach and try `{sdtm.oak}` to map any SDTM domains supported in this release. Users can also utilize the test data in the package to become familiar with the concepts before attempting on their own data. Please get in touch with us using one of the recommended approaches listed below:

- [Slack](https://oakgarden.slack.com/)
- [GitHub](https://github.com/pharmaverse/sdtm.oak/issues)

## Acknowledgments

We thank the contributors and authors of the package. We also thank the CDISC COSA for sponsoring the `{sdtm.oak}`. Additionally, we would like to sincerely thank the volunteers from Roche, Pfizer, GSK, Vertex, and Merck for their valuable input as integral members of the CDISC COSA - OAK leadership team.





98 changes: 98 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,108 @@ standard SDTM spec.

## Installation

The package is available from CRAN and can be installed with:

``` r
install.packages("sdtm.oak")
```

You can install the development version of `{sdtm.oak}` from
[GitHub](https://github.com/pharmaverse/sdtm.oak/) with:

``` r
# install.packages("remotes")
remotes::install_github("pharmaverse/sdtm.oak")
```

## Challenges with SDTM at the Industry Level

- Raw Data Structure: Data from different EDC systems come in varying
structures, with different variable names, dataset names, etc.

- Varying Data Collection Standards: Despite the availability of CDASH,
pharmaceutical companies still create different eCRFs using CDASH
standards.

Due to the differences in raw data structures and data collection
standards, it may seem impossible to develop a common approach for
programming SDTM datasets.

## GOAL

`{sdtm.oak}` aims to address this issue by providing an EDC-agnostic,
standards-agnostic solution. It is an open-source R package that offers
a framework for the modular programming of SDTM in R. With future
releases; it will also strive to automate the creation of SDTM datasets
based on the metadata-driven approach using standard SDTM
specifications.

## Scope

Our goal is to use `{sdtm.oak}` to program most of the domains specified
in SDTMIG (Study Data Tabulation Model Implementation Guide: Human
Clinical Trials) and SDTMIG-AP (Study Data Tabulation Model
Implementation Guide: Associated Persons). This R package is based on
the core concept of `algorithms`, implemented as functions capable of
carrying out the SDTM mappings for any domains listed in the CDISC
SDTMIG and across different versions of SDTM IGs. The design of these
functions allows users to specify a raw dataset and a variable name(s)
as parameters, making it EDC (Electronic Data Capture) agnostic. As long
as the raw dataset and variable name(s) exist, `{sdtm.oak}` will execute
the SDTM mapping using the selected function. It’s important to note
that `{sdtm.oak}` may not handle sponsor-specific details related to
managing metadata for LAB tests, unit conversions, and coding
information, as many companies have unique business processes. With
subsequent releases, strive to automate SDTM creation using a
metadata-driven approach based on a standard SDTM specification format.

## Road Map

This Release: The V0.1.0 release of `{sdtm.oak}` users can create the
majority of the SDTM domains. Domains that are NOT in scope for the
V0.1.0 release are DM, Trial Design Domains, SV, SE, RELREC, Associated
Person domains, and EPOCH Variable across all domains.

Subsequent Releases: We are planning to develop the below features in
the subsequent releases.
- Functions required to derive reference date variables in the DM
domain.
- Metadata driven automation based on the standardized SDTM
specification.
- Functions required to program the EPOCH Variable.
- Functions to derive standard units and results based on metadata.

## References and Documentation

- Please go to
[Algorithms](https://pharmaverse.github.io/sdtm.oak/articles/algorithms.html)
article to learn about Algorithms.
- Please go to [Create Events
Domain](https://pharmaverse.github.io/sdtm.oak/articles/events_domain.html)
to learn about step by step process to create an Events domain.
- Please go to [Create Findings
Domain](https://pharmaverse.github.io/sdtm.oak/articles/findings_domain.html)
to learn about step by step process to create an Events domain.
- Please go to [Path to
Automation](https://pharmaverse.github.io/sdtm.oak/articles/study_sdtm_spec.html)
to learn about how the foundational release sets up the stage for
automation.

## Feedback

We ask users to follow the mentioned approach and try `{sdtm.oak}` to
map any SDTM domains supported in this release. Users can also utilize
the test data in the package to become familiar with the concepts before
attempting on their own data. Please get in touch with us using one of
the recommended approaches listed below:

- [Slack](https://oakgarden.slack.com/)
- [GitHub](https://github.com/pharmaverse/sdtm.oak/issues)

## Acknowledgments

We thank the contributors and authors of the package. We also thank the
CDISC COSA for sponsoring the `{sdtm.oak}`. Additionally, we would like
to sincerely thank the volunteers from Roche, Pfizer, GSK, Vertex, and
Merck for their valuable input as integral members of the CDISC COSA -
OAK leadership team.
10 changes: 10 additions & 0 deletions _pkgdown.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,13 @@ reference:
- title: Package global state
contents:
- clear_cache

authors:
Ramiro Magno:
href: https://www.pattern.institute/team/rmagno/
Pattern Institute:
href: https://www.pattern.institute
galachad marked this conversation as resolved.
Show resolved Hide resolved
galachad marked this conversation as resolved.
Show resolved Hide resolved
Edgar Manukyan:
href: https://www.linkedin.com/in/edgar-manukyan-20987927
Shiyu Chen:
href: https://www.linkedin.com/in/shiyu-chen-55a55410a/
7 changes: 7 additions & 0 deletions inst/WORDLIST
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,10 @@ RFXSTDTC
TPT
xxTPT
APSC
CDASH
COSA
IGs
RELREC
SDTMIG
SV
GSK
Loading
Loading