Nothing
#' Loading an \pkg{espadon} object from *.Rdcm file
#' @description The \code{load.obj.from.Rdcm} function loads a DICOM object into
#' memory, creating a list containing the information necessary for its subsequent
#' use with the \pkg{espadon} package.
#' @param Rdcm.filename Character string, representing the full name of a *.Rdcm
#' file created by \link[espadon]{dicom.to.Rdcm.converter}.
#' @param data Boolean. Only works for objects usable by the \pkg{espadon} package, namely
#' ct, mr, rtdose, rtstruct, pt... If \code{data = TRUE}, either the values of the
#' voxels when modality is (ct, mr, rtdose), or the coordinates of the RoI when modality
#' is rtstruct, are loaded into memory.
#' @param nb Vector of integers, active only if \code{data = TRUE}, and only
#' operating on rtstruct. If \code{nb = NULL}, all the RoI of rtstruct are
#' loaded into memory. Otherwise only data of the RoI indices defined by the vector
#' \code{nb} are loaded.
#' @param upgrade.to.latest.version Boolean. If \code{TRUE}, the function attempts
#' to upgrade to the latest version, parsing the DICOM data. It may take longer
#' to load the data. Consider using the \link[espadon]{Rdcm.upgrade} function.
#' @return Returns an \pkg{espadon} object of class "dvh","histo","histo2D","mesh",
#' "rtplan","struct", "undef" or "volume" depending on the object modality. See
#' \link[espadon]{espadon.class} for class definitions.
#' @seealso \link[espadon]{load.obj.data} and \link[espadon]{load.obj.from.dicom}
#' @examples
#' # First, save toy patient objects to a temporary file pat.dir for testing.
#' pat.dir <- file.path (tempdir(), "PM_Rdcm")
#' dir.create (pat.dir, recursive = TRUE)
#' patient <- toy.load.patient (modality = c("ct", "mr"), roi.name = "",
#' dxyz = c (4, 4, 4))
#' save.to.Rdcm (patient$ct[[1]], dirname = pat.dir)
#' save.to.Rdcm (patient$mr[[1]], dirname = pat.dir)
#' save.T.MAT (patient$T.MAT, dirname = pat.dir)
#' # Rdcm files in pat.dir
#' list.files(pat.dir)
#'
#' CT <- load.obj.from.Rdcm (file.path (pat.dir,
#' list.files(pat.dir, pattern="ct1[.]Rdcm")[1]),
#' data=TRUE)
#' MR <- load.obj.from.Rdcm (file.path (pat.dir,
#' list.files(pat.dir, pattern="mr1[.]Rdcm")[1]),
#' data=TRUE)
#' Reg <-load.obj.from.Rdcm (file.path (pat.dir,"ref1_from_ref2.Rdcm"), data=TRUE)
#' str(Reg)
#'
#' # Cleaning temporary directory
#' unlink (pat.dir, recursive = TRUE)
#' @export
load.obj.from.Rdcm <- function (Rdcm.filename, data = TRUE, nb = NULL,
upgrade.to.latest.version = FALSE){
if (length(Rdcm.filename)>1){
message ("only first file is used.")
Rdcm.filename <- Rdcm.filename[1]
}
if ((length(Rdcm.filename)==0) | !file.exists(Rdcm.filename)){
warning ("no file to load.")
return (NULL)
}
if (grepl ("[.]Rdcm$", Rdcm.filename)){
Lobj <- load.Rdcm.raw.data (Rdcm.filename, data=data,
upgrade.to.latest.version = upgrade.to.latest.version)
if (Lobj$update.needed){
if (upgrade.to.latest.version) {
warning(paste(Lobj$header$file.basename, "version has been upgraded, consider using Rdcm.upgrade() for faster loading."))
} else {
warning(paste(Lobj$header$file.basename, "version is not up to date, consider using Rdcm.upgrade()."))
}
}
return (.load.object (Lobj, data=data, nb=nb))
}
return (NULL)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.