TrialKit is capable of randomizing study Participants to allocated groups for the purpose of assigning investigatory products accordingly without human intervention or bias. The allocations can additionally be used to drive conditional actions on which data points need to be collected for different Participant groups.

This article covers how to set up and manage randomization schedules.

Define Randomization

This article describes how to define randomization prior to uploading the randomization list/schedule. First, open the page "Define Randomization" from the Study menu as shown below.

In the table below, randomization has been configured.  Remember, the form is available to create an additional randomization scheme as needed.

Note

Confirmation Emails are un-blinding, so be sure the blinded roles (if applicable) are not selected here.

Creating and Importing Randomization Schema Files

TrialKit users are responsible for creating their own randomization schedules. This is usually done by a biostatistician supporting the study. Randomization files dictate how TrialKit will distribute randomization allocations over sites or the entire study, depending on how the randomization is defined. 

This section will explain the exact file format necessary to import a randomization file.  The file needs to be in a comma-separated (.csv) file format.  Here’s an example:

Randomization Schedule With Site Stratification
594 Byte

The following figure displays the file layout of the file to be imported into TrialKit. 

Unless marked "(Optional)" the column MUST BE part of the import.

Column

Value

Description

site_no (Only if site stratified)

The system Site ID

The site number. This will repeat for every allocation slot for a given site. When using central randomization, this column should be omitted from the Randomization Table.

The Site ID used in this column can either be sequential or correspond to specific site IDs within the system, depending on the randomization behavior desired.

sub_no

Number

The Participant number is the sequence of participants starting with 1 at each site.  It will restart for each new site in the table (if the randomization is site stratified). 

This sequence is used by the system to read down the table and is not related to the Participant's actual ID within the EDC.

stratification 1

Number based on the field choice values

For each level of stratification, enter the coded stratification. For example, if 1= Male and 2= Female, then a series of 1’s and 2’s would fill this column for each Participant for each site. The codes do not have to be in order but is preferred to have the codes in order.  For example, if the user is allocating 50 randomization slots per site, 25 males and 25 females, then the first 25 rows should be male while the next 25 rows should be female.

Each stratification level will get an additional column. If you are stratifying by gender and BMI group, then you would have two columns. Obviously, the more stratification levels you have, the more complex the randomization file.

stratification 2,3,4...

Number based on the field choice values

See above, additional stratification fields will have their own columns, these extra columns will not be here if the user defines the randomization to have 1 layer of stratification.

allocation

Number

This is the coded allocation that is returned to the randomized Participant. When a randomized form is saved, the system will look for the first slot available and claim that randomization allocation, and assign it to the Participant. For example, if a user has randomization that is stratified by Gender and BMI; the system will look for the first Gender and BMI group slot available within the Participant’s site.

Subject profile ID (Optional)

Text/string

If the user chooses to have the system return the Participant Profile ID upon successful randomization, add a column here. This column should be omitted if the user is not returning the Subject Profile ID.

Randomization ID (Optional)

Text/string

If there is a separate randomization ID that needs to be collected and populated within the Participant data (as described in the defined randomization), it can be identified here in the last column. The system then uses this ID to populate a participant form as defined in the Form Builder.

 

Importing a Randomization File

To upload a randomization file, select the "Import Randomization File..." option from the Study Menu.

Select which randomization schema to import into.

After importing the file, a message will indicate if there were any errors in the file when applied to the defined schema.

Simple Example

The table below has 10 Participants and is 2-arm randomization. It is central randomization that returns no Participant profile id and does no stratification (simply saving the randomization trigger form will allocate the Participant).

Patient

Randomization

1

0

2

1

3

1

4

0

5

0

6

1

7

0

8

1

9

1

10

0

More Complex Example

Randomizing based on Site ID blocks with dual stratification, using the coded values for the stratification variables (found in the form builder).

Site

Patient

Strat1

Strat2

Randomization 

1

1

1

1

0

1

2

1

2

1

1

3

1

1

1

1

4

1

2

0

1

5

1

1

0

2

1

1

2

1

2

2

1

1

0

2

3

1

2

1

2

4

1

1

1

2

5

1

2

0

Updating Randomization Schemas Mid-study

The randomization schedule can easily be updated during the course of the study. Do this by exporting the existing schedule, modifying any open slots or adding additional slots, and re-uploading it. The system will only update ‘slots’ that have not already been filled, so it's okay if filled slots are part of the file when it's re-imported. This helps you with referencing the proper spread of allocations by seeing the rows that are already used.

Randomization Conditions

For studies that use randomization, TrialKit allows study builders to dictate form logic according to where Participants are randomized. For example, each subject's randomization assignment can dictate if specific intervals, forms, or fields are displayed.

After defining randomization, the conditional action builder will display that randomization name as a constant. In the example shown here, a condition is being built on a field to hide the field if the Participant is not randomized to group 2. For group definitions, reference the randomization allocations.

Define User Permissions for Randomization

There are two application permissions needed for the role that will be setting up randomization.

Randomization Configuration

  1. Under the Study>Study Configuration menu click on the Role Security tab.

  2. Now select the role to which you want to grant access to randomization.

  3. Check the setting called "Grant Access to Randomization".

  4. Save Right (see below).

Randomization View

  1. Under the Study>Study Configuration menu click on the Role Security tab

  2. Now select the role you want to grant access to randomization to

  3. Check the settings for the following:

    1. Grant Access to Randomization View

    2. Unallocate Participant

  4. Save Right (see below)

The ability to view randomization is considered unblinding. The person importing, viewing, and testing the schedule should be unblinded if the randomization requires blinding to most users.

View and Decode the Randomization Allocations

After randomization has been set up in a study, the allocation table can be viewed. With the appropriate permissions in Role Security, this page is found under the Subject menu:

The following example shows the View Randomization Allocations interface that allows the user to:

1. Decode the randomization file.

2. Display all planned and assigned randomization allocations.

3. If there is more than one randomization schedule being used in a study, the dropdown at the top of the page allows for switching between those schedules.

The Randomization Allocation data table on the View Randomization Allocations page, shown above, displays all planned and actual randomization allocations.

4. The user can see the randomization file that was uploaded by viewing the first five columns of the Randomization Allocation data table. Note: This particular randomization scheme is returning an Allocation ID.

5. The last three columns in the Randomization Allocation data table contain the actual allocations including the site, Participant, and date of allocation.

When a user saves a form that was defined for particular randomization, the system will find the next available slot based on the site and stratification(s). The system then claims that slot by assigning the user’s site, Participant, and date of allocation to that slot. The system also associates this randomization allocation with the Participant's visit. This information can be used to enforce randomization arms using Conditional Actions.

The View Randomization Allocations page gives the user the ability to decode the randomization allocations. #1 above.  For each allocation that was imported for given randomization, the user can enter text to be displayed whenever this allocation is shown in TrialKit. To decode randomization, the user simply enters the text for each allocation and presses the "Save" button below the last allocation text box.  The decoded text will show in the Allocation column in the main data table.

The View Randomization Allocations page allows the user to view only randomizations that have been allocated. If a user has a large randomization table, the user can click the View Only Randomized Participants link above the Randomization Allocation data table to view just those Participants that have been allocated. #3 above. The user can then toggle back to view all randomizations by clicking the View All Subjects link.

At any time, by selecting the Export link located above the Randomization Allocations data table, the user can export the entire randomization table to Excel. This gives the user a permanent archive of exactly how the randomizations were allocated for the duration of the study. It is also a method for updating the file, where additional randomization slots can be added to an existing schedule. Note, if editing or adding to a schedule, only empty slots can be modified.

Below are all the same functions accessed via the Mobile App:

Unallocate a Participant

A user with the proper permissions to open the randomization table (shown above) can individually clear existing Participants from the randomization slots they exist in. For Example, a study may have a withdrawal that requires that allocation be re-used by another Participant, or accidental randomization was made.

This action is not audited by the system, so it should only be used with an understanding of its impact on the study.

The study permission to deallocate Participants is needed to perform this action.

On the Web Browser, it can be done via the Unallocate links in the randomization table.

On the Mobile App, it can also be done in the randomization table by swiping left on any row within the table. An “Unallocate” button will appear on the right side. Tap on the button to complete the action.

Removing Allocations Entirely

It’s usually advised to maintain the randomization schedule as it was designed and keep all slots, even if they aren’t needed anymore (e.g. a Participant was randomized accidentally and the slot cannot be re-used). This can be done by filling the slot with a ‘placeholder’ Participant and updating the Participant’s ID to something that will not ever exist for a real Participant, like “01-005ZZ” where “ZZ” is appended to the end of the ID. Then delete that Participant. It will still fill the randomization slot and prevent a real Participant from re-using it.

The alternative method is to unallocate the Participant from the slot that needs to be removed and then update the randomization schedule by re-importing it (explained in the sections above).


Emergency Unblinding

It's common for randomizations to enforce blinding to specified roles, but there could be a scenario where a user needs to get un-blinded. If this is a possibility in the study, it can be configured into any form through conditional actions.

  1. Add a field, like a checkbox or radio button for a user to tick if they need to get un-blinded to the randomization. That field could be blinded as well to roles that it shouldn't apply to.

  2. Then add a series of labels, one label for each allocation group (e.g. Placebo and treatment) to conditionally display based on the field being ticked and based on the Participant's current allocated slot.

  3. Lastly, but optionally, add an email notification condition so the right users can be informed if the randomization gets un-blinded.

Example

Here’s an example form, where the labels at the top will display the subjects allocation, only after the user has filled out the confirmation questions at the bottom of the form and saved it.

In this case, a number field at the bottom is getting computed upon save, and blinded to the user. This is so the user must save before they get the allocation to appear. Saving is necessary to get the audited transaction and email notification to run.


Table Lookup - Customizing Subject IDs for Screen Fails

Use the randomization tool for applying different formatted IDs based on variables in a specific form. 

This is not actual randomization and will not send randomization notification emails

A common use case would be for screening Participants, where only some Participants (the ones that passed screening) need a different formatted ID.

For example, screened Participants might get an ID like "037-001" when registered in the system, but if specified criteria (stratification) is met, the ID needs to have a different format like "037-20001". Then if the next Participant does not meet any requirements, they end up with 037-002. So formats change but the sequence remains in line.

In this example the randomization file uploaded would look something like this:

Site

Participant

Stratification

Allocation

SubID

1

1

1

1

037-20

1

2

1

2

037-20

2

1

1

2

037-20

2

2

1

1

037-20

Creating a table lookup for a study allows the system to check for a sequential customized subject ID to give to each subject that is added to the system. For example, a study may require that when a subject is added but fails certain criteria, they get a different formatted ID than the ones that are successfully enrolled and taking part in the study. At the same time, they need to be sequential regardless of the format. A common application of this scenario is with screening IDs versus subject study IDs, where every subject gets a screening ID of <SITEID-00X>, where X is a sequence, but subjects who are successful get a slightly different format of <SITEID-40500X>. The system is able to keep the total population sequential regardless of which of those formatted IDs is assigned.

Example 1:

Subject 1 is successful and gets 301-205001

Subject 2 is successful and gets 301-205002

Subject 3 has an issue but still gets a screening ID of 301-003 - sequenced off the previous two subjects that were successful.

Subject 4 is successful and gets 301-205004

Example 2:

Subject 1 is successful and gets 301-001-4001

Subject 2 is successful and gets 301-002-4002

Subject 3 has an issue but still gets a screening ID of 301-003 - sequenced off the previous two subjects that were successful, but does not get a study ID portion on the end.

Subject 4 is successful and gets 301-004-4003

There is virtually no limit to how the formatting can be specified. Keep in mind, this is different from randomization. It is merely a table lookup to provide a sequenced ID dependent on some sort of criteria. However, it can be used in parallel to randomization. Let's look at how the examples above can be set up.

When defining a table lookup, randomization will be defined - although it's not actual randomization.