## ----setup,results="hide",echo=FALSE------------------------------------------
suppressPackageStartupMessages({
suppressMessages({
library(BiocFHIR)
library(DT)
library(jsonlite)
library(rjsoncons)
})
})

## ----takepeek-----------------------------------------------------------------
tfile = dir(system.file("json", package="BiocFHIR"), full=TRUE)
peek = jsonlite::fromJSON(tfile)
names(peek)
peek$resourceType
names(peek$entry)
length(names(peek$entry$resource))
class(peek$entry$resource)
dim(peek$entry$resource)
head(names(peek$entry$resource))

## ----lkcat--------------------------------------------------------------------
head(which(vapply(peek$entry$resource$category, 
   function(x)!is.null(x), logical(1))))
peek$entry$resource$category[[6]]
peek$entry$resource$category[[6]]$coding
peek$entry$resource$category[[10]]

## ----lkpeek2------------------------------------------------------------------
peek2 = jsonlite::fromJSON(dir(system.file("json", package="BiocFHIR"), full=TRUE), simplifyVector=FALSE)
lapply(peek2$entry[1:5], function(x) names(x[["resource"]]))

## ----lktab--------------------------------------------------------------------
rtyvec = vapply(peek2$entry, function(x) 
   x[["resource"]]$resourceType, character(1))
table(rtyvec)

## ----getcond------------------------------------------------------------------
iscond = which(rtyvec == "Condition")
conds = peek2$entry[iscond]
length(conds)
str(conds[[1]])

## ----chkb---------------------------------------------------------------------
tbu = process_fhir_bundle(tfile)
tbu

## ----lktab2-------------------------------------------------------------------
ctab = process_Condition(tbu$Condition)
dim(ctab)
datatable(ctab)

## ----dojme--------------------------------------------------------------------
z = make_test_json_set()
myl = lapply(z[1:4], jsonlite::fromJSON) # list that rconsjson will convert to JSON
library(rjsoncons)
tmp = jmespath(myl, "[*].entry[0].resource.address") |> jsonlite::fromJSON()
do.call(rbind,lapply(tmp, function(x) x[,-(1:2)]))

## ----lksess-------------------------------------------------------------------
sessionInfo()