Skip to content

Commit

Permalink
Merge pull request #7 from atorus-research/dev
Browse files Browse the repository at this point in the history
Get actions to pass
  • Loading branch information
mstackhouse committed Sep 13, 2023
2 parents 6d80a23 + 8f02fb9 commit d97b733
Show file tree
Hide file tree
Showing 23 changed files with 76 additions and 178 deletions.
2 changes: 1 addition & 1 deletion .Rprofile
Original file line number Diff line number Diff line change
@@ -1 +1 @@
source("renv/activate.R")
# source("renv/activate.R")
3 changes: 2 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Authors@R: c(
email = "nmasel@its.jnj.com",
role = "aut")
)
Description: R package for reading and writing CDISC Dataset JSON files
Description: R package for reading and writing CDISC Dataset JSON files.
License: Apache License (>= 2)
URL: https://github.com/atorus-research/datasetjson
BugReports: https://github.com/atorus-research/datasetjson/issues
Expand All @@ -25,6 +25,7 @@ RoxygenNote: 7.2.3
Depends: R (>= 3.5)
Imports:
jsonlite (>= 1.8.7),
jsonvalidate (>= 1.3.2)
Suggests:
testthat (>= 2.1.0),
knitr,
Expand Down
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ importFrom(jsonlite,fromJSON)
importFrom(jsonlite,toJSON)
importFrom(jsonvalidate,json_validate)
importFrom(tools,file_path_sans_ext)
importFrom(utils,tail)
20 changes: 16 additions & 4 deletions R/data.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,40 @@
#' Valid SAS(c) date formats pulled from
#' https://documentation.sas.com/doc/en/vdmmlcdc/8.1/ds2pg/p0bz5detpfj01qn1kz2in7xymkdl.htm
#'
#' @format ## `sas_date_formats` A character vector with 45 elements
#' @format ## `sas_date_formats`
#' \describe{
#' A character vector with 45 elements
#' }
"sas_date_formats"

#' A List of valid SAS(c) datetime formats
#'
#' Valid SAS(c) datetime formats pulled from
#' https://documentation.sas.com/doc/en/vdmmlcdc/8.1/ds2pg/p0bz5detpfj01qn1kz2in7xymkdl.htm
#'
#' @format ## `sas_datetime_formats` A character vector with 7 elements
#' @format ## `sas_datetime_formats`
#' \describe{
#' A character vector with 7 elements
#' }
"sas_datetime_formats"

#' A List of valid SAS(c) time formats
#'
#' Valid SAS(c) time formats pulled from
#' https://documentation.sas.com/doc/en/vdmmlcdc/8.1/ds2pg/p0bz5detpfj01qn1kz2in7xymkdl.htm
#'
#' @format ## `sas_time_formats` A character vector with 4 elements
#' @format ## `sas_time_formats`
#' \describe{
#' A character vector with 4 elements
#' }
"sas_time_formats"

#' Dataset JSON Schema Version 1.0.0
#'
#' This object is a character vector holding the schema for Dataset JSON Version 1.0.0
#'
#' @format ## `schema_1_0_0` A character vector with 1 element
#' @format ## `schema_1_0_0`
#' \describe{
#' A character vector with 1 element
#' }
"schema_1_0_0"
15 changes: 6 additions & 9 deletions R/data_metadata.R
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#' Create the data metadata container for a Dataset JSON object
#'
#' @param data_type Type of data being written. clinicalData for subject level
#' data, and referenceData for non-subject level data (i.e. TDMs, Associated
#' Persons)
#' @param study Study OID value
#' @param metadata_version Metadata version OID value
#' @param metadata_ref Metadata reference (i.e. path to Define.xml)
#'
Expand Down Expand Up @@ -43,8 +41,7 @@ data_metadata <- function(study = "NA", metadata_version = "NA", metadata_ref =
#' This set of functions
#' @param x data metadata or datasetjson object
#' @param study Study OID value
#'
#' @param ...
#' @param ... Additional parameters
#'
#' @return A datasetjson or data_metadata object
#' @export
Expand All @@ -64,15 +61,15 @@ set_study_oid <- function(x, study, ...) {
#' @family Data metadata setters
#' @rdname data_metadata_setters
#' @export
set_study_oid.data_metadata <- function(x, study) {
set_study_oid.data_metadata <- function(x, study, ...) {
stopifnot_data_metadata(x)
x[['studyOID']] <- study
x
}

#' @export
#' @noRd
set_study_oid.datasetjson <- function(x, study) {
set_study_oid.datasetjson <- function(x, study, ...) {
stopifnot_datasetjson(x)
data_type <- get_data_type(x)
x[[data_type]][['studyOID']] <- study
Expand All @@ -89,15 +86,15 @@ set_metadata_version <- function(x, metadata_version, ...) {

#' @export
#' @noRd
set_metadata_version.data_metadata <- function(x, metadata_version) {
set_metadata_version.data_metadata <- function(x, metadata_version, ...) {
stopifnot_data_metadata(x)
x[['metaDataVersionOID']] <- metadata_version
x
}

#' @export
#' @noRd
set_metadata_version.datasetjson <- function(x, metadata_version) {
set_metadata_version.datasetjson <- function(x, metadata_version, ...) {
stopifnot_datasetjson(x)
data_type <- get_data_type(x)
x[[data_type]][['metaDataVersionOID']] <- metadata_version
Expand Down
38 changes: 1 addition & 37 deletions R/dataset_metadata.R
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ set_item_data <- function(x, .data, ...) {
#' @noRd
#' @export
#' @method set_item_data dataset_metadata
set_item_data.dataset_metadata <- function(x, .data) {
set_item_data.dataset_metadata <- function(x, .data, ...) {
stopifnot_dataset_metadata(x)

if (!inherits(.data, "data.frame")) {
Expand Down Expand Up @@ -187,39 +187,3 @@ df_to_list_rows <- function(x) {
y[!is.na(y)]
})
}

#' Apply JSON metadata to dataframe as attributes
#'
#' This function takes supplied metadata and applies it to a dataframe as
#' corresponding attributes
#'
#' @param .data A Dataframe
#' @param metadata A list containing Dataset JSON dataset object metadata
#'
#' @return dataframe
#' @examples
#' # TODO:
#' @noRd
apply_dataset_metadata <- function(.data, metadata) {
# TODO: Set records, name, and label to the dataframe as a whole

# TODO: Set OID, name, label, type, length, and format, and keySequence as
# necessary to each variable
TRUE
}

#' Gather Dataset JSON metadata from a dataframe which has Dataset JSON metadata
#' applied
#'
#' This function will gather the attributes from a data frame which has Dataset
#' JSON metadata applied.
#'
#' @param .data A dataframe with Dataset JSON attributes applied
#'
#' @return A list of Dataset dataset object JSON metadata
#' @noRd
gather_dataset_metadata <- function(.data) {

# Retrieve the necessary metadata off of a data frame that pertains to a dataset JSON object
TRUE
}
11 changes: 5 additions & 6 deletions R/file_metadata.R
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#' @examples
#' # Create using parameters
#' file_meta <- file_metadata(
#' "clinicalData",
#' originator = "Some Org",
#' sys = "source system",
#' sys_version = "1.0"
Expand All @@ -24,8 +23,7 @@
#' # Set parameters after
#' file_meta <- file_metadata()
#'
#' file_meta_updated <- set_data_type(file_meta, "referenceData")
#' file_meta_updated <- set_file_oid(file_meta_updated, "/some/path")
#' file_meta_updated <- set_file_oid(file_meta, "/some/path")
#' file_meta_updated <- set_originator(file_meta_updated, "Some Org")
#' file_meta_updated <- set_source_system(file_meta_updated, "source system", "1.0")
file_metadata <- function(originator="NA", sys = "NA", sys_version = "NA", version = "1.0.0") {
Expand Down Expand Up @@ -76,7 +74,9 @@ get_datetime <- function() {
#' generated the Dataset-JSON file."
#' @param file_oid fileOID parameter, defined as "A unique identifier for this
#' file."
#' @param data_type
#' @param data_type Type of data being written. clinicalData for subject level
#' data, and referenceData for non-subject level data (i.e. TDMs, Associated
#' Persons)
#'
#' @return datasetjson or file_metadata object
#' @export
Expand All @@ -86,8 +86,7 @@ get_datetime <- function() {
#' @examples
#' file_meta <- file_metadata()
#'
#' file_meta_updated <- set_data_type(file_meta, "referenceData")
#' file_meta_updated <- set_file_oid(file_meta_updated, "/some/path")
#' file_meta_updated <- set_file_oid(file_meta, "/some/path")
#' file_meta_updated <- set_originator(file_meta_updated, "Some Org")
#' file_meta_updated <- set_source_system(file_meta_updated, "source system", "1.0")
set_source_system <- function(x, sys, sys_version) {
Expand Down
6 changes: 5 additions & 1 deletion R/global.R
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
globalVariables()
globalVariables(c(
"schema_1_0_0",
"sas_date_formats",
"sas_datetime_formats"
))
2 changes: 1 addition & 1 deletion R/utils.R
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ stopifnot_data_metadata <- function(x) {

stopifnot_file_metadata <- function(x) {
if (!(inherits(x, "datasetjson") | inherits(x, "file_metadata"))) {
stop("x must be a datasetjson object or file_metadata object", call.=FALSE)
stop("Input must be a datasetjson object or file_metadata object", call.=FALSE)
}
}

Expand Down
1 change: 1 addition & 0 deletions R/zzz.R
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#' @importFrom jsonvalidate json_validate
#' @importFrom jsonlite fromJSON toJSON
#' @importFrom tools file_path_sans_ext
#' @importFrom utils tail
NULL

#' @keywords internal
Expand Down
6 changes: 2 additions & 4 deletions man/data_metadata.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions man/data_metadata_setters.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion man/datasetjson-package.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions man/file_metadata.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 4 additions & 3 deletions man/file_metadata_setters.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion man/sas_date_formats.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion man/sas_datetime_formats.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion man/sas_time_formats.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion man/schema_1_0_0.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion renv.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"R": {
"Version": "4.3.0",
"Version": "4.2.1",
"Repositories": [
{
"Name": "CRAN",
Expand Down
Loading

0 comments on commit d97b733

Please sign in to comment.