StoryboardR - An R Package and Shiny Application Designed to Visualize Real-World Data From Clinical Patient Registries

Publication
Preprint
Article and Authorship Details

Article type: Application Note. This is a preprint. It has not yet been peer-reviewed.

Authors: David M. Miller1* MD PhD, Sophia Z. Shalhout1 PhD

1Department of Medicine, Division of Hematology/Oncology and the Department of Dermatology, Massachusetts General Hospital, Boston, MA

*Corresponding author: David M. Miller MD PhD
Massachusetts General Hospital
Email:

Funding sources: This work was supported by a grant from Project Data Sphere.

Conflicts of interest: None

Manuscript word count: 1869
Abstract word count: 128
References: 19
Figures: 9
Tables: 4

Keywords: data visualization, patient registries, shiny app, REDCap, clinical informatics

Abbreviations: AWD: alive with disease, CSV: comma-separated values, CTCAE: common terminology criteria for adverse events, DCIs: data collection instruments, EDA: exploratory data analysis, EDC: electronic data capture, NED: no evidence of disease, PCT: primary cutaneous tumor, PDS: project data sphere, REDCap: research electronic data capture, RWD: real-world data, UI: user interface.

ABSTRACT

Objectives: Tumor registries are a rich source of real-world data which can be used to test important hypotheses that inform clinical care. Exploratory data analysis at the level of individual subjects, when enhanced by interactive data visualizations, has the potential to provide novel insights and generate new hypothesis.
Materials and Methods: We created StoryboardR: An R package and Shiny application designed to visualize real-world data from tumor registries.
Results: StoryboardR facilitates the data visualization of real-world data from tumor registries captured in REDCap®.
Conclusions: StoryboardR is freely available under the Massachusetts Institute of Technology license and can be obtained from GitHub. StoryboardR is executed in R and deployed as a Shiny application for non-R users. It produces data visualizations of patient journeys from tumor registries.

Objectives

Tumor registries are a rich source of patient-level data that can lead to important clinical insights. When optimally executed, tumor registries capture highly structured real-world data (RWD) which facilitates time-to-analysis and time-to-insight. There is significant variability in the scope and depth of data captured within various tumor registries, depending on which elements of the patient journey are targeted for capture. For example, the Project Data Sphere led Merkel Cell Carcinoma Patient Registry1,2 currently captures over two thousand data elements across 11 forms (Table 1).

Table 1: StoryboardR Data Collection Instruments (DCIs)
Form Description of Data Captured
Subject Status Vital status, condition trend, performance status
Patient Characteristics Details of initial diagnosis, demographic data, family history, cancer history, pregnancy history, immunosuppression history
Presentation and Initial Staging Physical exam findings of initial tumor, radiographic staging at presentation, pathological evaluation at presentation, AJCC staging
Lesion Information Date lesion detected, clinical description of lesion, photographic evidence of lesion, response to treatment
Pathology Tissue specimen details, immunohistochemical details, histological features, gross pathology details
Surgery Surgical details (e.g., surgical margins, surgical outcomes (e.g., R0, R1, R2)
Radiotherapy Radiotherapy details (e.g., dose, fractions)
Systemic Antineoplastic Therapy Agent, dose amount, doses, treatment outcomes (e.g., best overall response)
Adverse Events CTCAE System organ class, therapeutic attribution, actions taken for AE, outcome of AE
Lab Results Complete blood count, comprehensive metabolic panel, immunological/inflammatory markers
Genomics Lesion assessed, platform used, tumor mutation burden, mismatch repair status, gene name, nucleotide, and amino acid variation, copy number variants
Table 1: StoryboardR Data Collection Instruments (DCIs). The above DCIs are contained in the Merkel Cell Carcinoma Patient Registry and have been incorporated in the StoryboardR package.

While tumor registries can provide large data sets to test important hypotheses, exploratory data analysis (EDA) at the level of individual subjects can lead to novel insights and hypothesis generation. Visualizing patient-level data is a critical part of EDA. Good data visualizations can facilitate the digestion of complex information. Ideal data visualizations leverage superior data, function and design and are thus simple to generate, make data easy to understand, are informative, and visually appealing.

Here we present StoryboardR, an R package with a Shiny application front-end, which facilitates the visualization of real-world data from clinical registries collected in a Research Electronic Data Capture (REDCap®)-based project. REDCap® is a web-based electronic data capture (EDC) system utilized by investigators to capture structured data3. The functions of StoryboardR wrangle and transform data from REDCap®-based tumor registries to produce an interactive data visualization of the patient journey (Figure 1). StoryboardR is executed in R; however, the application is deployed via Shiny to enhance the user interface for non-R users.

In this manuscript we provide: (1) the data dictionary to allow users to adopt the MCC Patient Registry platform; (2) the StoryboardR R-package with installation instructions and examples which can be viewed on the package GitHub page (http://github.com/TheMillerLab/StoryboardR); and (3) a sample data set for demonstration purposes, which is embedded in the R-package. Importantly, these resources may be adopted by other clinical investigators to facilitate development of a variety of disease-specific registries.

Figure 1. Schema of StoryboardR

Figure 1. Schema of StoryboardR. The StoryboardR package takes a csv file of clinical registry data stored in a REDCap® project as input. End users then select a subject to generate an interactive data visualization. Once selected, the package executes a series of server-side functions that wrangles and transforms that data and generates an interactive data visualization of the patient journey.

Methods

Software Dependencies

StoryboardR is written in R (version 4.0.0), organized using roxygen24, and utilizes the following packages dplyr5, tidyr6, readr7, stringr8, TimeWarp9, magrittr10, plotly11, splitstackshape12, Shinydashboard13, and Shiny14. For full details, instructions and examples refer to the video demonstration(https://github.com/TheMillerLab/StoryboardR/blob/main/Video_Demo.md), or README file (https://github.com/TheMillerLab/StoryboardR/blob/main/README.md), both of which can be viewed on the package GitHub page.

Clinical Informatics Dependencies

StoryboardR facilitates data visualizations of patient data from the Merkel Cell Carcinoma Tumor Registry electronic data capture system, a REDCap®-based EDC. The data dictionary for this platform is available on the package GitHub page(https://github.com/TheMillerLab/StoryboardR/blob/main/data-raw/StoryboardR_DataDictionary.csv). While this platform is currently being used by the Merkel Cell Carcinoma Tumor Registry, the fields are generalizable to most solid tumors. Potential customizations of the platform are described below.

Results

StoryboardR Inputs

As shown in Figure 1, StoryboardR takes data from a REDCap® project that has incorporated the instruments from Table 1. The StoryboardR Shiny application is launched via the function launch_StoryboardR(). This function takes two arguments: “Data” and “DateShift”. The “Data” argument is a data frame that contains the raw data from the desired REDCap® project. “DateShift”, which defaults to FALSE, will generate a random and uniform shift of all the dates in the data frame if TRUE is used (this is described in more detail below). launch_StoryboardR() is the only function required to execute and utilize StorybaordR. Once launch_StoryboardR() is called, end users interface with StoryboardR in a web browser.

StoryboardR UI

The Shiny application web browser incorporates a streamlined user interface (UI) with one user input - the subject’s “Record ID” - to maximize usability (Figure 2). The Shiny UI utilizes functions from the shinydashboard package to generate a fully customizable, centralized, easy-to-view dashboard of high-yield clinical information. Patient Characteristics and Initial Staging, Burden of Disease, Genomic Analysis and Therapeutic Interventions are directly pulled from the tumor registry and displayed for the viewer.

Figure 2. User Interface of StoryboardR Figure 2. User Interface of StoryboardR. Depicted is the UI of StoryboardR. End users select a subject’s Record ID from the list auto-populated from the input data frame. Once selected, the server-side applications of StoryboardR will generate both a Subject Dashboard and a Storyboard. To view the Storyboard, users click on “Storyboard” in the left column sidebar.
 

StoryboardR Server Side Functions

The Shiny application’s server side contains the executable code of StoryboardR. The package contains, in addition to launch_StoryboardR(), a set of functions that wrangle data from the tumor registry’s structured forms, transforms that information into data frames with key information from the patient journey, and graphs the output as an interactive storyboard (Figure 1). Table 2 summarizes core functions and their respective actions.
Table 2: Functions utilized by StoryboardR

Function Action
diagnosis() wrangles data from a tumor registry regarding date of initial histological confirmation of the diagnosis, which can then be incorporated into a Patient Storyboard
ss() wrangles data from the Subject Status DCI to produce a dataframe of details about the Subject Status of subjects
clinical_staging() wrangles data from the Presentation and Initial Staging DCI to produce a dataframe of details about the initial clinical staging, which can then be incorporated into a Patient Storyboard
pathological_staging() wrangles data from the Presentation and Initial Staging DCI to produce a dataframe of details about the initial pathological staging, which can then be incorporated into a Patient Storyboard
lesion() wrangles data from the Lesion DCI to produce a dataframe of details about the individual tumors, which can then be incorporated into a Patient Storyboard
surgery() wrangles data from the Surgery DCI to produce a dataframe of details about surgical therapy, which can then be incorporated into a Patient Storyboard
xrt() wrangles data from the Radiotherapy DCI to produce a dataframe of details about radiation therapy, which can then be incorporated into a Patient Storyboard
systemic_therapy() wrangles data from the Systemic Antineoplastic Therapy DCI to produce a dataframe of details about systemic therapy, which can then be incorporated into a Patient Storyboard
genomics() wrangles data from the Genomics DCI to produce a dataframe of details about genomic data from tumors or blood, which can then be incorporated into a Patient Storyboard
adverse_events() wrangles data from the Adverse Events DCI to produce a dataframe of details about adverse events of systemic therapy, which can then be incorporated into a Patient Storyboard
combine_storyboard_dfs() integrates the various storyboard data frames across the patient journey into one final data frame
storyboard_plot() takes the aggregated data frames from combine_storyboard_dfs to produce a plotly data visualization of a patient journey
date.shift.df() shifts the dates a unified random number of weeks either forward or back between 1 and 52
launch_StoryboardR() launches the StoryboardR shiny application
Table 2: Functions Utilized by StoryboardR. Abbreviations, DCI: data collection instrument.

Multi-level Functional Processing
In an effort to effectively and efficiently capture clinical data, tumor registries routinely make use of distinct case report forms (CRFs) or data collection instruments (DCIs) for particular elements of a subject’s clinical course. For example, information related to genomic analysis may be captured in a DCI separate from data regarding therapeutic interventions. Furthermore, data regarding multiple therapeutic interventions - e.g., first-line chemotherapy vs. second-line and beyond - may be captured in repeating DCIs. To generate an integrated data visualization of the patient journey, StoryboardR uses a schema that we refer to as “multi-level functional processing” (Figure 3).
Figure 3. Multi-level Functional Processing Approach of StoryboardR

Figure 3. Multi-level Functional Processing Approach of StoryboardR. StoryboardR utilizes a series of multi-level functions to wrangle and transform data from individual data collection instruments in order to construct patient-level data visualizations. At the base, the functions ss(), surgery(), clinical_staging(), pathological_staging(), lesion(), surgery(), systemic_therapy(), adverse_events(), xrt() and genomics()) select fields from their respective case report forms and re-map them to a five vector data frame, containing the variables “record_id”, “description”, “value”, “date”, and “hover”. The mid-level function combine_storyboard_dfs() combines the output of each of the base-level functions into one principal data frame using the function rbind(). The data frame that results from combine_storyboard_dfs() can then be filtered by a subject Record ID to produce a patient-specific interactive data visualization by calling the function storyboard_plot().

At the base of this work flow, individual DCI-level functions (e.g., ss(), surgery(), genomics()) select fields from their respective case report forms (e.g., Subject Status, Surgery, Genomics) and re-map them to a five vector data frame, containing the variables “record_id”, “description”, “value”, “date”, and “hover”. The vector “record_id” holds the individual subject identifier. The vector “description” designates the function from which the data was processed (e.g., genomics). In this data frame, the vector “value” possesses the transformed data contained within the tumor registry (for example, the name of the therapeutic agent captured (e.g., “Avelumab”) or type of lesion detected (e.g., “Metastasis”) that will be displayed on the patient storyboard. The vector “hover” contains additional data from the registry that will be displayed on the storyboard as hover text (e.g., the number of Gray of radiation used for treatment). An example of the output of one of the base-level functions, lesion(), when applied to the sample data set embedded in the StoryboardR package, is shown in Table 3.
Table 3: Output of the Function lesion()
record_id description value date hover
Simulated Patient 2 lesion PCT 2016-09-11 <b>Lesion:</b> Right Buttock Primary<br><b>Date of First Detection:</b> 2016-09-11<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 lesion PCT 2017-04-13 <b>Lesion:</b> Left Ankle Skin Primary<br><b>Date of First Detection:</b> 2017-04-13<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 lesion Metastasis 2017-10-03 <b>Lesion:</b> Left Calf Shin In-Transit Metastasis<br><b>Date of First Detection:</b> 2017-10-03<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 3 lesion PCT 2017-12-18 <b>Lesion:</b> Left Antecubital Fossa Skin Primary<br><b>Date of First Detection:</b> 2017-12-18<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 3 lesion Metastasis 2017-12-30 <b>Lesion:</b> Left Axillary Lymph Node Metastasis<br><b>Date of First Detection:</b> 2017-12-30<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 lesion Metastasis 2018-06-04 <b>Lesion:</b> Left Groin Lymph Node Metastasis<br><b>Date of First Detection:</b> 2018-06-04<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 4 lesion PCT 2018-10-05 <b>Lesion:</b> Right Eyebrow Primary Lesion<br><b>Date of First Detection:</b> 2018-10-05<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 4 lesion Metastasis 2018-11-11 <b>Lesion:</b> Right Parotid Lymph Node Metastases<br><b>Date of First Detection:</b> 2018-11-11<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 5 lesion PCT 2018-12-12 <b>Lesion:</b> Left Leg Primary Lesion<br><b>Date of First Detection:</b> 2018-12-12<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 5 lesion Metastasis 2018-12-15 <b>Lesion:</b> Left Inguinal Lymph Node Metastasis<br><b>Date of First Detection:</b> 2018-12-15<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 5 lesion Metastasis 2019-02-22 <b>Lesion:</b> Left External Iliac Lymph Node Metastasis<br><b>Date of First Detection:</b> 2019-02-22<br><b>Histologically Confirmed:</b> No
Simulated Patient 5 lesion Metastasis 2019-03-24 <b>Lesion:</b> Left Axillary Lymph Node Metastasis<br><b>Date of First Detection:</b> 2019-03-24<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 5 lesion Metastasis 2019-06-04 <b>Lesion:</b> Right Axillary Lymph Node Metastasis<br><b>Date of First Detection:</b> 2019-06-04<br><b>Histologically Confirmed:</b> No
Table 3: Output of the function lesion(). Depicted is the output of the base-level function lesion() after it is applied to the sample data set embedded in the StoryboardR package. Calling lesion() produces a data frame with five vectors: record_id, description, value, data and hover. The data frame can then be combined with the output of other base-level functions using the mid-level function combine_storyboard_dfs().

Each base-level function returns the same structured data frame, with the five vectors “record_id”, “description”, “value”, “date”, “hover”. This uniformity allows it to be aggregated with the mid-level function, combine_storyboard_dfs() (Table 4).
Table 4: Output of the Function combine_storyboard_dfs()
record_id description value date hover
Simulated Patient 2 dx Initial Histological Diagnosis 2016-09-11 <b>Initial Histological Diagnosis</b><br><b>Date:</b> 2016-09-11
Simulated Patient 2 ss AWD 2016-09-11 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Indeterminate<br><b>Trend Details:</b> Day of Diagnostic Biopsy/Date of Diagnosis <br><b>Performance Status:</b> ECOG Grade 1: Symptomatic but completely ambulatory<br><b>Date:</b> 2016-09-11
Simulated Patient 2 lesion PCT 2016-09-11 <b>Lesion:</b> Right Buttock Primary<br><b>Date of First Detection:</b> 2016-09-11<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 2 cStage Initial Clinical Stage 2016-09-17 <b>Initial Clinical Stage:</b> IIA<br><b>Date:</b> 2016-09-17
Simulated Patient 2 ss NED 2016-09-24 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Stable<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> ECOG Grade 0: Asymptomatic<br><b>Date:</b> 2016-09-24
Simulated Patient 2 pStage Initial Pathological Stage 2016-09-24 <b>Initial Pathological Stage:</b> IIA<br><b>Date:</b> 2016-09-24
Simulated Patient 2 surgery Surgery 2016-09-24 <b>Lesion Surgerized:</b> Right Buttock Primary<br><b>Type of Sugery:</b> Excision<br><b>Surgical Margins:</b> 1 cm<br><b>Surgical Outcome:</b> RO<br><b>Date:</b> 2016-09-24
Simulated Patient 2 genomics Genomics 2016-09-24 <b>Lesion Assessed:</b> Right Buttock Primary<br><b>Platform:</b>; MGH SNaPshot<br><b>Genetic Alterations:</b> None Detected<br><b>Date:</b> 2016-09-24
Simulated Patient 2 radiotherapy Initiating<br>Adjuvant Radiotherapy 2016-11-21 <b>Setting of Radiotherapy</b> Adjuvant Radiotherapy<br><b>Target of Radiotherapy:</b> Right Buttock Primary<br><b>Start Date:</b> 2016-11-21
Simulated Patient 2 radiotherapy Completed<br>Adjuvant Radiotherapy 2016-12-24 <b>Setting of Radiotherapy</b> Adjuvant Radiotherapy<br><b>Target of Radiotherapy:</b> Right Buttock Primary<br><b>Number of Fractions:</b> 20<br><b>Total Dose Delivered:</b> 4500 cGy<br><b>End Date:</b> 2016-12-24
Simulated Patient 1 lesion PCT 2017-04-13 <b>Lesion:</b> Left Ankle Skin Primary<br><b>Date of First Detection:</b> 2017-04-13<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 dx Initial Histological Diagnosis 2017-05-09 <b>Initial Histological Diagnosis</b><br><b>Date:</b> 2017-05-09
Simulated Patient 1 ss AWD 2017-06-08 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Indeterminate<br><b>Trend Details:</b> Day of Diagnostic Biopsy/Date of Diagnosis <br><b>Performance Status:</b> ECOG Grade 0: Asymptomatic<br><b>Date:</b> 2017-06-08
Simulated Patient 1 pStage Initial Pathological Stage 2017-06-08 <b>Initial Pathological Stage:</b> I<br><b>Date:</b> 2017-06-08
Simulated Patient 1 genomics Genomics 2017-06-08 <b>Lesion Assessed:</b> Left Ankle Skin Primary<br><b>Platform:</b>; MGH SNaPshot<br><b>Genetic Alterations:</b> TP53<br><b>Date:</b> 2017-06-08
Simulated Patient 1 surgery Surgery 2017-07-10 <b>Lesion Surgerized:</b> Left Ankle Skin Primary<br><b>Type of Sugery:</b> Excision<br><b>Surgical Margins:</b> 1 cm<br><b>Surgical Outcome:</b> RO<br><b>Date:</b> 2017-07-10
Simulated Patient 1 ss NED 2017-07-16 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Improving<br><b>Trend Details:</b> Treatment Response<br><b>Performance Status:</b> ECOG Grade 0: Asymptomatic<br><b>Date:</b> 2017-07-16
Simulated Patient 1 cStage Initial Clinical Stage 2017-08-21 <b>Initial Clinical Stage:</b> I<br><b>Date:</b> 2017-08-21
Simulated Patient 1 ss AWD 2017-10-03 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Worsening<br><b>Trend Details:</b> Development of a New Lesion(s)<br><b>Performance Status:</b> ECOG Grade 1: Symptomatic but completely ambulatory<br><b>Date:</b> 2017-10-03
Simulated Patient 1 lesion Metastasis 2017-10-03 <b>Lesion:</b> Left Calf Shin In-Transit Metastasis<br><b>Date of First Detection:</b> 2017-10-03<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 ss AWD 2017-10-18 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Stable<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> ECOG Grade 0: Asymptomatic<br><b>Date:</b> 2017-10-18
Simulated Patient 1 radiotherapy Initiating<br>Definitive Radiotherapy 2017-11-02 <b>Setting of Radiotherapy</b> Definitive Radiotherapy<br><b>Target of Radiotherapy:</b> Left Calf Shin In-Transit Metastasis<br><b>Start Date:</b> 2017-11-02
Simulated Patient 1 radiotherapy Completed<br>Definitive Radiotherapy 2017-12-09 <b>Setting of Radiotherapy</b> Definitive Radiotherapy<br><b>Target of Radiotherapy:</b> Left Calf Shin In-Transit Metastasis<br><b>Number of Fractions:</b> 30<br><b>Total Dose Delivered:</b> 6000 cGy<br><b>End Date:</b> 2017-12-09
Simulated Patient 3 dx Initial Histological Diagnosis 2017-12-18 <b>Initial Histological Diagnosis</b><br><b>Date:</b> 2017-12-18
Simulated Patient 3 ss AWD 2017-12-18 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Indeterminate<br><b>Trend Details:</b> Day of Diagnostic Biopsy/Date of Diagnosis <br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2017-12-18
Simulated Patient 3 lesion PCT 2017-12-18 <b>Lesion:</b> Left Antecubital Fossa Skin Primary<br><b>Date of First Detection:</b> 2017-12-18<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 3 cStage Initial Clinical Stage 2017-12-30 <b>Initial Clinical Stage:</b> III<br><b>Date:</b> 2017-12-30
Simulated Patient 3 lesion Metastasis 2017-12-30 <b>Lesion:</b> Left Axillary Lymph Node Metastasis<br><b>Date of First Detection:</b> 2017-12-30<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 3 ss AWD 2018-01-08 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Worsening<br><b>Trend Details:</b> Development of a New Lesion(s)<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2018-01-08
Simulated Patient 3 ss NED 2018-01-21 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Improving<br><b>Trend Details:</b> Treatment Response<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2018-01-21
Simulated Patient 3 pStage Initial Pathological Stage 2018-01-21 <b>Initial Pathological Stage:</b> IIIB<br><b>Date:</b> 2018-01-21
Simulated Patient 3 surgery Surgery 2018-01-21 <b>Lesion Surgerized:</b> Left Antecubital Fossa Skin Primary<br><b>Type of Sugery:</b> Excision<br><b>Surgical Margins:</b> 2 cm<br><b>Surgical Outcome:</b> RO<br><b>Date:</b> 2018-01-21
Simulated Patient 3 radiotherapy Initiating<br>Adjuvant Radiotherapy 2018-02-17 <b>Setting of Radiotherapy</b> Adjuvant Radiotherapy<br><b>Target of Radiotherapy:</b> Left Antecubital Fossa Skin Primary, Left Axillary Lymph Node Metastasis<br><b>Start Date:</b> 2018-02-17
Simulated Patient 3 radiotherapy Completed<br>Adjuvant Radiotherapy 2018-03-26 <b>Setting of Radiotherapy</b> Adjuvant Radiotherapy<br><b>Target of Radiotherapy:</b> Left Antecubital Fossa Skin Primary, Left Axillary Lymph Node Metastasis<br><b>Number of Fractions:</b> 23<br><b>Total Dose Delivered:</b> 4600 cGy<br><b>End Date:</b> 2018-03-26
Simulated Patient 3 ss NED 2018-04-13 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Stable<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2018-04-13
Simulated Patient 3 genomics Genomics 2018-04-30 <b>Lesion Assessed:</b> Liquid Biopsy<br><b>Platform:</b>; Guardant 360<br><b>Genetic Alterations:</b> HRAS, STK11, TP53, TP53, TP53<br><b>Date:</b> 2018-04-30
Simulated Patient 1 lesion Metastasis 2018-06-04 <b>Lesion:</b> Left Groin Lymph Node Metastasis<br><b>Date of First Detection:</b> 2018-06-04<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 Systemic Therapy Avelumab 2018-06-27 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 1<br><b>Date Administered:</b> 2018-06-27
Simulated Patient 1 Systemic Therapy Avelumab 2018-07-11 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 2<br><b>Date Administered:</b> 2018-07-11
Simulated Patient 1 Systemic Therapy Avelumab 2018-07-25 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 3<br><b>Date Administered:</b> 2018-07-25
Simulated Patient 1 Systemic Therapy Avelumab 2018-08-08 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 4<br><b>Date Administered:</b> 2018-08-08
Simulated Patient 1 Systemic Therapy Avelumab 2018-08-22 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 5<br><b>Date Administered:</b> 2018-08-22
Simulated Patient 1 Systemic Therapy Avelumab 2018-09-05 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 6<br><b>Date Administered:</b> 2018-09-05
Simulated Patient 1 ss AWD 2018-09-06 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Improving<br><b>Trend Details:</b> Treatment Response<br><b>Performance Status:</b> ECOG Grade 1: Symptomatic but completely ambulatory<br><b>Date:</b> 2018-09-06
Simulated Patient 1 Systemic Therapy Avelumab 2018-09-19 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 7<br><b>Date Administered:</b> 2018-09-19
Simulated Patient 1 Systemic Therapy Avelumab 2018-10-03 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 8<br><b>Date Administered:</b> 2018-10-03
Simulated Patient 4 dx Initial Histological Diagnosis 2018-10-05 <b>Initial Histological Diagnosis</b><br><b>Date:</b> 2018-10-05
Simulated Patient 4 ss AWD 2018-10-05 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Indeterminate<br><b>Trend Details:</b> Day of Diagnostic Biopsy/Date of Diagnosis <br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2018-10-05
Simulated Patient 4 lesion PCT 2018-10-05 <b>Lesion:</b> Right Eyebrow Primary Lesion<br><b>Date of First Detection:</b> 2018-10-05<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 Systemic Therapy Avelumab 2018-10-17 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 9<br><b>Date Administered:</b> 2018-10-17
Simulated Patient 4 cStage Initial Clinical Stage 2018-10-21 <b>Initial Clinical Stage:</b> IIB<br><b>Date:</b> 2018-10-21
Simulated Patient 1 Systemic Therapy Avelumab 2018-10-31 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 10<br><b>Date Administered:</b> 2018-10-31
Simulated Patient 4 ss NED 2018-11-11 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Improving<br><b>Trend Details:</b> Treatment Response<br><b>Performance Status:</b> ECOG Grade 0: Asymptomatic<br><b>Date:</b> 2018-11-11
Simulated Patient 4 pStage Initial Pathological Stage 2018-11-11 <b>Initial Pathological Stage:</b> IIIA<br><b>Date:</b> 2018-11-11
Simulated Patient 4 lesion Metastasis 2018-11-11 <b>Lesion:</b> Right Parotid Lymph Node Metastases<br><b>Date of First Detection:</b> 2018-11-11<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 4 surgery Surgery 2018-11-11 <b>Lesion Surgerized:</b> Right Eyebrow Primary Lesion<br><b>Type of Sugery:</b> Excision<br><b>Surgical Margins:</b> 1 cm<br><b>Surgical Outcome:</b> RO<br><b>Date:</b> 2018-11-11
Simulated Patient 4 genomics Genomics 2018-11-11 <b>Lesion Assessed:</b> Right Eyebrow Primary Lesion<br><b>Platform:</b>; MGH SNaPshot<br><b>Genetic Alterations:</b> ALK, AR, ARID1A, BRAF, BRCA2, CHEK2, CTNNB1, DDR2, FANCA, GNA11, MPL, MTOR, NOTCH1, NOTCH1, NTRK1, NTRK2, PALB2, PIK3CA, PTEN, PTEN, RB1, TP53<br><b>Date:</b> 2018-11-11
Simulated Patient 1 Systemic Therapy Avelumab 2018-11-14 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 11<br><b>Date Administered:</b> 2018-11-14
Simulated Patient 1 Systemic Therapy Avelumab 2018-11-28 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 12<br><b>Date Administered:</b> 2018-11-28
Simulated Patient 4 radiotherapy Initiating<br>Adjuvant Radiotherapy 2018-12-09 <b>Setting of Radiotherapy</b> Adjuvant Radiotherapy<br><b>Target of Radiotherapy:</b> Right Eyebrow Primary Lesion, Right Parotid Lymph Node Metastases<br><b>Start Date:</b> 2018-12-09
Simulated Patient 5 dx Initial Histological Diagnosis 2018-12-12 <b>Initial Histological Diagnosis</b><br><b>Date:</b> 2018-12-12
Simulated Patient 5 ss AWD 2018-12-12 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Indeterminate<br><b>Trend Details:</b> Day of Diagnostic Biopsy/Date of Diagnosis <br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2018-12-12
Simulated Patient 5 lesion PCT 2018-12-12 <b>Lesion:</b> Left Leg Primary Lesion<br><b>Date of First Detection:</b> 2018-12-12<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 Systemic Therapy Avelumab 2018-12-12 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 13<br><b>Date Administered:</b> 2018-12-12
Simulated Patient 5 cStage Initial Clinical Stage 2018-12-15 <b>Initial Clinical Stage:</b> III<br><b>Date:</b> 2018-12-15
Simulated Patient 5 lesion Metastasis 2018-12-15 <b>Lesion:</b> Left Inguinal Lymph Node Metastasis<br><b>Date of First Detection:</b> 2018-12-15<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 5 pStage Initial Pathological Stage 2018-12-21 <b>Initial Pathological Stage:</b> IIIB<br><b>Date:</b> 2018-12-21
Simulated Patient 5 surgery Surgery 2018-12-21 <b>Lesion Surgerized:</b> Left Leg Primary Lesion<br><b>Type of Sugery:</b> Excision<br><b>Surgical Margins:</b> 1 cm<br><b>Surgical Outcome:</b> RO<br><b>Date:</b> 2018-12-21
Simulated Patient 4 ss NED 2018-12-23 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Stable<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2018-12-23
Simulated Patient 1 Systemic Therapy Avelumab 2018-12-26 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 14<br><b>Date Administered:</b> 2018-12-26
Simulated Patient 1 Systemic Therapy Avelumab 2019-01-09 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 15<br><b>Date Administered:</b> 2019-01-09
Simulated Patient 4 radiotherapy Completed<br>Adjuvant Radiotherapy 2019-01-12 <b>Setting of Radiotherapy</b> Adjuvant Radiotherapy<br><b>Target of Radiotherapy:</b> Right Eyebrow Primary Lesion, Right Parotid Lymph Node Metastases<br><b>Number of Fractions:</b> 25<br><b>Total Dose Delivered:</b> 5000 cGy<br><b>End Date:</b> 2019-01-12
Simulated Patient 1 Systemic Therapy Avelumab 2019-01-23 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 16<br><b>Date Administered:</b> 2019-01-23
Simulated Patient 1 Systemic Therapy Avelumab 2019-02-06 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 17<br><b>Date Administered:</b> 2019-02-06
Simulated Patient 1 Systemic Therapy Avelumab 2019-02-20 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 18<br><b>Date Administered:</b> 2019-02-20
Simulated Patient 5 ss AWD 2019-02-22 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Worsening<br><b>Trend Details:</b> Development of a New Lesion(s)<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2019-02-22
Simulated Patient 5 lesion Metastasis 2019-02-22 <b>Lesion:</b> Left External Iliac Lymph Node Metastasis<br><b>Date of First Detection:</b> 2019-02-22<br><b>Histologically Confirmed:</b> No
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-03-02 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 1<br><b>Date Administered:</b> 2019-03-02
Simulated Patient 1 Systemic Therapy Avelumab 2019-03-06 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 19<br><b>Date Administered:</b> 2019-03-06
Simulated Patient 1 ss NED 2019-03-12 <b>Subject Status:</b> No Evidence of Disease<br><b>Clinical Trend:</b> Stable<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> ECOG Grade 1: Symptomatic but completely ambulatory<br><b>Date:</b> 2019-03-12
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-03-19 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 2<br><b>Date Administered:</b> 2019-03-19
Simulated Patient 1 Systemic Therapy Avelumab 2019-03-20 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 20<br><b>Date Administered:</b> 2019-03-20
Simulated Patient 5 lesion Metastasis 2019-03-24 <b>Lesion:</b> Left Axillary Lymph Node Metastasis<br><b>Date of First Detection:</b> 2019-03-24<br><b>Histologically Confirmed:</b> Yes
Simulated Patient 1 Systemic Therapy Avelumab 2019-04-03 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 21<br><b>Date Administered:</b> 2019-04-03
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-04-08 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 3<br><b>Date Administered:</b> 2019-04-08
Simulated Patient 1 Systemic Therapy Avelumab 2019-04-17 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 22<br><b>Date Administered:</b> 2019-04-17
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-04-24 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 4<br><b>Date Administered:</b> 2019-04-24
Simulated Patient 1 Systemic Therapy Avelumab 2019-05-01 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 23<br><b>Date Administered:</b> 2019-05-01
Simulated Patient 1 Systemic Therapy Avelumab 2019-05-15 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 24<br><b>Date Administered:</b> 2019-05-15
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-05-18 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 5<br><b>Date Administered:</b> 2019-05-18
Simulated Patient 1 Systemic Therapy Avelumab 2019-05-29 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 25<br><b>Date Administered:</b> 2019-05-29
Simulated Patient 5 lesion Metastasis 2019-06-04 <b>Lesion:</b> Right Axillary Lymph Node Metastasis<br><b>Date of First Detection:</b> 2019-06-04<br><b>Histologically Confirmed:</b> No
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-06-06 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 6<br><b>Date Administered:</b> 2019-06-06
Simulated Patient 1 Systemic Therapy Avelumab 2019-06-12 <b>Therapeutic:</b> Avelumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 26<br><b>Date Administered:</b> 2019-06-12
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-06-23 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 7<br><b>Date Administered:</b> 2019-06-23
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-07-14 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 8<br><b>Date Administered:</b> 2019-07-14
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-07-30 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 9<br><b>Date Administered:</b> 2019-07-30
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-08-17 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 10<br><b>Date Administered:</b> 2019-08-17
Simulated Patient 5 ss AWD 2019-08-19 <b>Subject Status:</b> Alive With Disease<br><b>Clinical Trend:</b> Stable<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2019-08-19
Simulated Patient 5 Systemic Therapy Pembrolizumab 2019-09-07 <b>Therapeutic:</b> Pembrolizumab<br><b>Treatment Setting:</b> Primary Therapy<br><b>Dose Number:</b> 11<br><b>Date Administered:</b> 2019-09-07
Simulated Patient 5 ss Deceased 2019-09-25 <b>Subject Status:</b> Deceased<br><b>Clinical Trend:</b> Worsening<br><b>Trend Details:</b> Not Reported<br><b>Performance Status:</b> Not Reported<br><b>Date:</b> 2019-09-25
Table 4: Output of the Function combine_storyboard_dfs(). Depicted is the output of combine_storyboard_dfs() after it is applied to the sample data set embedded in the StoryboardR package. The function combine_storyboard_dfs() takes one argument, “data”, a data frame that contains the raw data from the desired REDCap® project. Contained within the mid-level function combine_storyboard_dfs() is all of the base-level functions (e.g. lesion(), etc.). Calling combine_storyboard_dfs() aggregates the output of all of the base-level functions via rbind() to produce one principal data frame with the five vectors: record_id, description, value, data and hover. The output of combine_storyboard_dfs() can then be filtered by a subject Record ID to produce a patient-specific interactive data visualization by calling the function storyboard_plot().

Finally, the top-level function storyboard_plot() generates an interactive plotly storyboard (see next section). Importantly, the multi-level functional processing design permits a high degree of customization and therefore maximizes extensibility. Developers can either modify base-level functions or create new ones to incorporate additional data from their clinical registry project.

Outputs

Patient Overview

The StoryboardR Shiny application returns two outputs: a subject Dashboard and Storyboard. As stated above, the subject Dashboard centralizes high-yield data from the tumor registry in tabular form (Figure 4). This provides an important overview of patient-level information and is fully customizable by the end user.

Figure 4. Subject Dashboard for Simulated Patient 1 Figure 4. Subject Dashboard for Simulated Patient 1. Depicted is the Subject Dashboard for Simulated Patient 1. This dashboard provides an overview of salient patient-level data from the EDC in tabular form.

Patient Storyboard

To visualize the temporal relationship between patient-level data elements, StoryboardR generates an interactive timeline. This creates a method of EDA to allow for a visual interpretation of the relationship between certain potential prognostic and/or predictive biomarkers (e.g., tumor genetics) and outcomes (e.g., overall survival, response to therapy) (Figure 5).
Figure 5. Interactive Subject Storyboard Simulated-Patient-1-Storyboard.knit