R/getConcepts.R

# Copyright 2014 Janssen Research & Development, LLC.
#
# This file is part of tranSMART R Client: R package allowing access to
# tranSMART's data via its RESTful API.
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version, along with the following terms:
#
#   1. You may convey a work based on this program in accordance with
#      section 5, provided that you retain the above notices.
#   2. You may convey verbatim copies of this program code as you receive
#      it, in any medium, provided that you retain the above notices.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.

getConcepts <- function(apiUrl, auth.token, study.name, as.data.frame = TRUE, cull.columns = TRUE) {

  serverResult <- .transmartServerGetRequest(
    paste(apiUrl, "/studies/", study.name, "/concepts", sep = ""), auth.token ,accept.type = "hal")
  if (is.null(serverResult)) return(NULL)
  listOfConcepts <- serverResult$ontology_terms

  if (as.data.frame) {
    dataFrameConcepts <- .listToDataFrame(listOfConcepts)
    if (cull.columns) {
      columnsToKeep <- match(c("name", "fullName", "api.link.self.href"), names(dataFrameConcepts))
      if (any(is.na(columnsToKeep))) {
        warning("There was a problem culling columns. You can try again with cull.columns = FALSE.")
        message("Sorry. You've encountered a bug.\n",
                "You can help fix it by contacting us. Type ?transmartRClient for contact details.\n",
                "Optional: type options(verbose = TRUE) and replicate the bug to find out more details.")
      }
      return(dataFrameConcepts[, columnsToKeep])
    }
    return(dataFrameConcepts)
  }

  listOfConcepts
}
thehyve/opencpuRScripts documentation built on May 31, 2019, 9:13 a.m.