introduction.Rmd
{subpat}
is a package of shiny modules to create subpopulations and subpopulations of patients. It was developed with clinical data in mind but a patient does need to be Here we refer to subpopulations as a subset of a population (a collection of data sets). This differs from subgroups which are derived variables that partition a data set. It features an intuitive graphical querying interface to create subpopulations which is developed using the {bs4Dash}
R package. {subpat}
features models for
As well as two applications
Each of the modules features an example shiny application that shows users how to incorporate the modules into their own applications. This package does not assume any specific data structure but has extended functionality for ADaM data sets. It used the new tidymodules module package also developed at Novartis which is based on R6 classes. The ADaM data used is a sample from the CDISC website.
The Patient Listing Generator (PLG) provides a user – friendly way to load data from GPS, query specific patients of interest and create ad-hoc listings on the fly. It is available in the {subpat}
package and is run by the follow function:
The PLG features a subpopulation creation tab as well as an ad-hoc (non validated) patient listing features. The interface is built using bs4Dash. It is recommended to build your application using bs4Dash if you would like to use the functionality of {subpat}
. The subpopulation is easily reusable and simple to implement in any shiny apps which you can read more about in the modules vignette.
When you start PLG you are presented with a bs4Dash page with a sidebar. The first tab is for loading data.
This page features a clear warning:
This package is NOT VALIDATED, and should be reserved for exploratory analysis only.
Pressing Browse will allow the user to upload SAS files to the PLG. You can select multiple files here to upload
The core feature of the PLG is found in the sidebar menu: Patient Populations. This is where a user can create and manage patient subpopulations.
The patient subpopulations module designed using cards that can be minimized to save space. In the edit population card we have an overview of how many patients are in the given query and the number of filters applied in the header. This will shown even if the card is minimized.
Filters are created by selecting a data set, a variable from the data set, and then a value. The value selection changes based on the data type of the variable. Categorical variables have a simple mulitple select drop down. Numeric variables have a slider bar as shown in the figure. Dates have two date selectors, one for the start date and one for the end date. The filter card also has options for handling missing values. A common querying task is to find all patients that are missing a start date. We can choose to
NA
values.NA
.NA
values.Once we have added all our filters, we can press save the population. This will close the current editing card and show the new population in the Populations card. We can see a quick overview of the variables included in the subpopulation as well as a badge indicating the number of patients. The buttons allow easy editing or deletion of the population.