knitr::opts_chunk$set(echo = TRUE) library(nfportalutils) library(DiagrammeR) syn_login(Sys.getenv("SYNAPSE_AUTH_TOKEN"))
dsp <- tryCatch({ jsonlite::read_json(path = params$dsp) }, error = function(e) NULL) project_id <- params$project_id schema_url <- params$schema_url
Project: r project_id
Report run date: r Sys.Date()
Data sharing plan: r params$dsp
NF data model: r schema_url
Schematic API service: https://schematic.api.sagebionetworks.org/v1/
cat("> [!WARNING]\n", "*Data Sharing Plan data could not be retrieved.", "Some projects may not have a structured data sharing plan available.", "However, check path or formatting if one was truly expected to exist.", "Some checks will be skipped.*")
cat("*Skipped comparison check because DSP could not be retrieved.*") data_not_expected <- FALSE
tryCatch({ if(!is.null(dsp$dataSharingWaived)) { data_not_expected <- dsp$dataSharingWaived == TRUE } else if(!length(dsp$dataDeposit)) { data_not_expected <- TRUE } if(data_not_expected) { cat("*Skipped comparison check because DSP indicates **Data Not Expected** or there are no datasets listed.*") } else { expectation <- data.table::rbindlist(dsp$dataDeposit, fill = T) dsp_datasets <- setNames(paste0("D", 1:nrow(expectation)), expectation$dataLabel) in_project <- data.table::rbindlist(list_project_datasets(project_id), fill = T) project_datasets <- setNames(in_project$id, in_project$name) cat( "```mermaid", dsp_dataset_mapping(dsp_datasets, project_datasets), "```", sep = "\n") } }, error = function(e) cat("Something went wrong with comparing DSP and project. Error:\n", e$message))
cat("*Defaulting to metadata revalidation without DSP information.*")
if(data_not_expected) cat("*Skipped revalidation check because data sharing plan indicates **Data Not Expected**.*")
tryCatch({ results <- meta_qc_project(project_id, schema_url = schema_url) if(!is.null(results)) { results$result <- ifelse(results$result, ":thumbsup:", ":x:") knitr::kable(results) } else { htmltools::div("Datasets could not be detected. Check project structure.") }}, error = function(e) { htmltools::div("Something went wrong with project dataset review. Error message:", htmltools::code(e$message)) } )
cat("*Skipped governance check because DSP could not be retrieved.*")
items <- htmltools::tagList() outside_us <- dsp$governance$dataCharacterization$dataIsOutsideUSA$response if(outside_us) { items <- htmltools::tagAppendChild(items, htmltools::tags$li("Yes, data is outside US")) } ext_gov <- dsp$governance$contributorDUO$DUOPX_details if(!is.null(ext_gov) || ext_gov != "") { items <- htmltools::tagAppendChild(items, htmltools::tags$li("This project has an extended governance request:", htmltools::tags$em(ext_gov))) } if(length(items)) { htmltools::tagList( htmltools::div( htmltools::tags$ul( items ) ) ) } else { htmltools::div("Project does not indicate special governance items qualifying for review.") }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.