Recipe: a blinded trial that dispenses kits
What you get: a double-blind, placebo-controlled trial run in Trialflare. When a participant is randomised, Trialflare draws their arm, picks a kit for that arm, and tells the coordinator which kit to give them or post, without telling anyone the arm. Coordinators, investigators and outcome assessors work with participants and their data as usual and never see an allocation, on screen, in exports or in the event log. The pharmacist or statistician who must know can see it all.
What you need: your study arms, the allocation concealed, roles that separate blinded from unblinded people, a sequence, a pack type with the kits imported from your kit list, and the Packs card on the Randomisation tab set to give a kit out at randomisation.
This recipe joins up features that each have their own article. Read those for the details of each setting, then come back here for how they fit together:
- Participant management: Concealing the allocation
- Participant management: Randomising participants
- Participant management: Giving out packs
- Personnel and Roles and permissions
For a study where everyone may know the arm, see Recipe: randomising an open-label study, stratified by site.
The example
The steps below set up a two-arm drug trial at two sites:
- Arms: Active and Placebo, 1:1, stratified by site.
- Kits: identical-looking boxes, each with a kit number, made by the manufacturer from a kit list that says which kit holds which treatment. Each site holds its own stock.
- Blinded: site coordinators, who randomise and dispense; the investigators; and the outcome assessors.
- Unblinded: the trial pharmacist, who imports the kit list and keeps stock up, and the trial statistician.
Step 1 — Mark the arms and conceal the allocation
Go to Participants > Participant groups, create Active and Placebo, and tick This group is a study arm on each.
Then go to Participants > Randomisation and tick Conceal which study arm each participant is in. Do this before anyone is put in an arm. From then on, which arm a participant is in is withheld from everyone without the trial.readAllocation permission:
- on the participants table and their record;
- in the CSVs, the data export and the study record;
- in the event log;
- in the per-arm figures.
Those people can still see that a participant was randomised, which is how coordinators know who still needs randomising.
Being a trial administrator doesn't grant trial.readAllocation, so an administrator who should stay blinded does.
Step 2 — Decide who is unblinded
On the Personnel > Roles tab, set up roles along these lines:
| Role | Includes | Sees arms? |
|---|---|---|
| Site coordinator | trial.randomiseParticipants, trial.assignPacks, plus access to their own site's participants and data |
No |
| Investigator, outcome assessor | What they need to see and enter data | No |
| Principal investigator, on-call clinician | As above, plus trial.breakCode to unblind one participant in an emergency |
Only by breaking the code |
| Trial pharmacist | trial.readAllocation, trial.listPacks, trial.writePacks, and trial.readParticipants if they are the contact for an emergency code-break |
Yes |
| Statistician | trial.readAllocation, trial.exportData |
Yes |
Keep the unblinded list short, and record it in your delegation log. Whoever sets up the trial can grant themselves trial.readAllocation, and that is recorded in the event log, so check it is only held by the people named.
Limit blinded people's access by site, never by arm. A role that gives access to the Placebo group's participants shows exactly the placebo participants, so the list itself gives their arm away, even though the arm is hidden from it.
Step 3 — Set up the sequence
Under Participants > Randomisation, set up the sequence:
- Generate a sequence in Trialflare. Tick both arms, keep the default block sizes, stratify by Site (Participant's site), and set Entries per stratum for your busiest site. Nobody ever sees a sequence Trialflare generates, which keeps concealment simplest.
- Or upload your statistician's list, if your protocol requires the list to be made independently. Under Method, choose Upload a sequence, set up the same factors, and Download a template to give your statistician. Uploading needs
trial.readAllocation, so the statistician or pharmacist does it. See Uploading a list made elsewhere.
Step 4 — Import the kits
As the pharmacist, go to Packs, add a pack type (for example Study medication), and use Bulk create packs to import the kit list. The CSV has a row per kit:
- name — the kit number, such as K-1043;
- batchNumber — the batch;
- arm — Active or Placebo, as the kit list says.
The arm column makes each kit available to that arm alone. Only someone holding trial.readAllocation can import it. Everyone else sees these kits labelled Concealed arm.
Then, if each site holds its own stock, select each site's kits in the list and use Assign to site in the bulk menu. Kits left unassigned to a site are central stock that any site can use, which is what you want if kits are posted from one pharmacy. Give each site kits for every arm, in roughly equal numbers: a site holding only Active kits gives away the arm of anyone handed one of them.
Don't put the arm in a kit's name or batch number. Everyone who can see packs sees those.
Step 5 — Give out a kit at randomisation
On the Packs card on the Randomisation tab, press Set up, choose Study medication, and choose Packs differ by arm. Save. If the card warns that some kits won't be given out, those kits have no arm: check the kit list's import.
The card now shows how many more participants the kits can cover, for the central stock and for each site holding kits. A site can randomise as many as its own row and the central row together allow. The pharmacist also sees the count for each arm; coordinators see only the lowest, which is the number that matters.
Step 6 — Randomise and dispense
Once a participant is confirmed eligible and consented, the coordinator opens their record and presses Randomise. The dialog shows their stratum and that they'll be given a Study medication pack. After confirming, it shows which kit to give them, by its kit number and batch, and that they have been randomised. It doesn't show their arm.
Trialflare picks the kit at random from those for the participant's arm, held at their site or centrally, so the kit number says nothing about the arm, however the kits are numbered. The kit appears under Packs on their record.
If a site runs short. Nobody is randomised without a kit. If a site has no kit left for either arm, randomising there is refused until more arrive, whichever arm the participant would have had, so running out of one arm's kits doesn't reveal anyone's allocation. Keep an eye on the Packs card, and have the pharmacist import and assign more before a site reaches zero.
Coordinators shouldn't assign kits by hand in a blinded study. It's still possible, but someone comparing the kits offered for different participants could work out who shares an arm.
Step 7 — Before you go live, and at the end
- Rehearse. Randomise a few test participants, check what a coordinator sees (kit, no arm) and what the pharmacist sees, then use Reset randomisation. It takes the arm off the test participants, puts their kits back in stock, and lets you set up the real sequence. It needs a trial administrator with
trial.readAllocation, a reason, and confirming it's you. Delete the test participants afterwards. - Exports. An export made by a blinded user leaves the Arm column out. The export you archive and analyse should be made by the statistician.
- Emergency unblinding. Give
trial.breakCodeto the people your protocol says may unblind a participant in an emergency. They press Break code… on the participant's record, give a reason, and see that participant's arm once. It is recorded in the event log, the participant is marked Code broken, and the trial administrators are emailed. Test it during the rehearsal, and include it in the delegation log. See Breaking the code in an emergency.
Variant — blinded assessment without kits
In a trial of a behavioural or physical therapy, participants know which arm they are in, but the people assessing outcomes must not. The setup is the same with less:
- Follow steps 1 to 3, and step 6 without the kit.
- Leave out the Packs card.
- Randomise with someone who may know the arm (the therapist), by giving their role
trial.readAllocation. Leave it out of the assessors' role.
Concealment hides the arm itself, but not anything you set up differently for each arm. If a stage, automatic message or automatic query is aimed at one arm, what it produces shows which participants are in it. In a blinded study, give every arm the same forms and messages wherever the protocol allows, and keep arm-specific work away from the assessors. See Concealing the allocation for what is and isn't hidden.