Skip to contents

Acknowledgments

Introduction

The chevron package is a collection of function to create standard tables, listings, and graphs for clinical trials reporting. Here we present the logic to request new tables for the end users and how to construct new chevron_tlg objects for the programmers. The list of the already available functions is available here. The naming convention for table functions is <table name>. ex: aet02. Layouts are internal functions that determine the underlying structure of a table. One table function is generally associated with one layout function. The naming convention for layout is <table name>_lyt. ex: aet02_lyt.

How to request a table

In order to request a function that will generate a new table, please create an issue in the “TLG (ordered priority)” of the chevron backlog. Private repositories on GitHub do not support issue templates but you can use the format below to accurately describe your requirements. Adding images of the required table (without confidential information) is also very useful. Several designs of the same table can be (should be) requested in a same issue.

ex: AET02

Table Name

Standard name of the table. [see GDSR template] ex. AET02

URL

Link to an external file describing the table

Description

Details on the generic purpose of the table ex. This is an adverse event table

Analysis dataset

Name of the standard dataset input ex. ADAE

Analysis filtering

Filtering criteria of the input ex. ANL01FL == "Y"

Analysis population

The selected population, typically SE, AP or IT ex. SE

Column Variable

Names of the columns splitting variables in hierarchical order ex. ACTARM

Analysis variables

Names of the rows splitting variables in hierarchical order _ex. AEBODSYS, AEDECOD, ASEV_ ex. _1. AEBODSYS_ _2. AEDECOD_ _3. ASEV_

Analysis concept

Alternative table description for summary tables similar to AET01 ex. - Serious AE - Related AE - Total number of AEs

Statistics

Description of the statistical procedure ex. Frequency count and % (based on N)

Default treatment of zero count rows

Choose one option: - “Remove zero count rows by default” - “Keep zero count rows by default” - “Always ask for user input” - “Not applicable / Other”

Comments

ex. Some additional details

How to create a new table function for developers

The current practice is to use the body of the table-creating function to isolate the variable names that are used to construct the table layout. The function then calls the corresponding layout function to create the structure of the table. It then builds the table by combining the clinical data and the layout. Finally, it modifies the table based on the aggregated results, for instance removing the rows with no counts, and returns the table.

Data preprocessing

Data processing and standardization should be performed before feeding the data to chevron. Beware of levels that are not present in the test data but could appear in real data sets.

Arguments

To enhance the reproducibility, it is advised to reduce the parametrization of the table-constructing function. Some arguments are used in multiple tables, for instance the choice of the variable used to specify the arm of the study (should it be ARM or ACTARM?). For these type of arguments, try to stick to the arguments available in gen_args.

Tests

Use snapshot test to control the output of the run method for each TLG. In addition, create tests to check how the function behaves when confronted with missing values. It is also recommended to check that the run method returns a NULL report when appropriate.