Creating a Protocol
Overview
Creating a protocol is the first step in standardizing data collection for your imaging study. Protocols define the form readers complete in the V3 Viewer specifically for the task. Well-designed protocols ensure consistent, high-quality data collection across all readers and sites.
This guide walks you through creating a new protocol from initial setup through publication. Before starting, familiarize yourself with JavaScript Object Notation (JSON) format basics and determine what data your study needs to collect.
Prerequisites
Before creating a protocol, ensure you have:
Projects: A Group set up to reflect your study and within that one or more Projects set up to manage the study data.
Permissions: Group Read/Write permissions for the group where you want to create the protocol
Planning: A clear understanding of:
- What data readers need to collect (form fields)
- Required vs. optional fields
- Validation rules (value ranges, format constraints)
- Whether electronic signatures (e-signatures) are required
- Viewer configuration preferences (if any)
JSON Knowledge: Basic familiarity with JSON format, or access to example protocols you can adapt
Start with Examples
If you are new to protocol creation, start with an example protocol from a similar study and modify it for your needs. This is faster and less error-prone than starting from scratch.
Creating a New Protocol
To create a new protocol:
- Navigate to the group level in your Flywheel hierarchy
- Click the Protocols tab
- Click Create Protocol
- The Create Protocol dialog opens

Step 1: Enter Protocol Metadata
In the Create Protocol dialog, provide basic information about the protocol:
- Protocol Name (required): Enter a descriptive name
- Use clear names that indicate the assessment type (for example, "Tumor Measurement Protocol" or "Diabetic Retinopathy Grading")
- Maximum 32 characters
- Name can include spaces and special characters
- Protocol Type (required): Select "Read"
- Currently, only Reader Task protocols are supported
- Future versions may support additional protocol types (Query, Form, Upload)
- Notes (optional): Enter a brief description of the protocol's purpose
- Explain what data the protocol collects and when it should be used
- Maximum 250 characters
- Click Create to proceed to the protocol editor

Step 2: Define the Form Schema
The protocol editor opens with the Monaco editor for editing JSON. You can either:
- Start New File will start with an empty schema so you can build it from scratch, or
- Open File will allow you to upload an existing JSON file.

Starting with an Empty Schema (New File)
If starting from scratch, begin with this basic structure:

This is a valid protocol that can be saved as a draft, but is basically empty.

Required Property
The esignature_config property is required in all valid protocols. If e-signatures are not needed for tasks using this protocol, set it to null as shown above. It cannot be omitted.
Uploading an Existing Schema (Open File)
To upload a JSON file:
- Click Open File above the editor
- Select your JSON file from your computer
- The editor populates with the file contents
- Review and modify as needed
Step 3: Add Form Fields
Form fields are defined in the fields section of the JSON. Each field specifies its type, label, and validation rules.
Technical Documentation
For comprehensive technical details on building form schemas, including advanced field types, validation rules, and JSON schema specifications, see Protocol Form Technical Reference.
Basic Field Types
Radio Button (Yes/No) Field:
Text Field with Validation:
Text Area Field:
Dropdown (Select) Field:
Complete Example
Here is a complete tumor assessment protocol:

Setting Required Fields
Fields with requiredWhenVisible: true must be completed before readers can submit the task. Required fields are marked with an asterisk (*) in the form.
In the example above, tumor_present and assessment are required fields.
Step 4: Add E-Signature Requirements (Optional)
If tasks using this protocol require electronic signatures (available with Validated Instance), configure the esignature_config section:
Technical Documentation
For comprehensive technical details on e-signature configuration, including validation rules, reason ordering, and best practices, see Protocol E-Signature Technical Reference.
When required is set to true, readers must select a reason from this list when submitting tasks. The reasons are displayed in the order provided in the protocol, with the first reason appearing first in the dropdown.
Step 5: Add Completion Tags (Optional)
To automatically tag containers when tasks are completed, add a completion_tags array at the root level of the protocol:
Tags must follow Data Tag naming conventions (lowercase, no spaces, use hyphens or underscores).
Validating Your Protocol
The editor itself will highlight errors when the text file does not meet a valid JSON file. As part of the save, the system will validate your protocol JSON to check for errors.
To validate:
- Click Save in the protocol editor toolbar
- Review validation results:
- Saved Success: Sucessful save and editor closes
- File could not be saved: Indicates problems that must be fixed

Common validation errors include missing required properties like esignature_config:
Publishing a Protocol
When your protocol is ready for use in production tasks:
- Click Publish Protocol
- Confirm publication in the dialog
- The protocol receives version number v1
- The protocol becomes immediately available for creating tasks in all projects within the group
Before publishing, you will see both draft and v1 versions:

After publishing, the v1 version becomes available for use:

What Happens When You Publish
- The protocol version becomes immutable (cannot be edited)
- The protocol appears in the protocol selector when creating tasks
- Tasks can reference this specific protocol version
- After creating a task, the assigned user can begin to fill out the form.
Publishing is Permanent
Published protocols cannot be unpublished or edited. To make changes, create a new draft version of the protocol. See Protocol Versioning for details.
Test Protocols in a dedicated group and or project
Test your protocol before publishing:
- Create a test task in a non-production project
- Open the task in the V3 Viewer
- Verify form fields display correctly
- Check field labels, help text, and validation rules
- Test required field enforcement
- Submit the test task and review the captured data

Form Design Best Practices
Field Organization
- Group related fields: Keep logically related fields together
- Order by workflow: Sequence fields in the order readers complete them
- Place required fields first: Users should complete critical fields before optional ones
Field Labels and Help Text
- Use clear, concise labels: "Longest Diameter (mm)" is clearer than "Diameter"
- Add units: Include units in labels or help text (millimeters, centimeters, etc.)
- Provide context in help text: Explain what data to enter or how to measure
- Avoid jargon: Use plain language unless all readers share specialized training
Validation Rules
- Set realistic ranges: Use min/max values that make clinical sense
- Require essential fields: Mark fields required only if truly necessary for analysis
- Use appropriate field types: Numbers for measurements, booleans for yes/no, enumerations for categories
- Limit free text: Free text is harder to analyze; use enumerations when possible
E-Signature Configuration
- Provide clear reasons: Readers should understand why they are signing
- Use consistent reason text: Standardize across protocols for easier audit trail review
- Order the reasons: Order the reasons in the protocol the way you want them presented
- Document requirements: Inform readers which tasks require e-signatures before they begin work
Common Protocol Patterns
Tumor Assessment
Quality Assessment
Troubleshooting
Protocol Does Not Appear in Task Creation
Possible causes:
- Protocol is still in draft status (not published)
- You are creating tasks in a project that does not belong to the protocol's group
- You lack permissions to view the protocol
Solutions:
- Publish the protocol if validation passes
- Verify the project's parent group matches the protocol's group
- Check your group permissions
Validation Fails
Possible causes:
- JSON syntax errors (missing commas, brackets, quotes)
- Invalid field types or schema structure
- Required schema properties missing
Solutions:
- Use the Monaco editor's error highlighting to locate problems
- Copy JSON to an external validator to identify specific line numbers
- Start with a working example and make small changes
Form Does Not Display as Expected
Possible causes:
- Field types do not match intended display (for example, using string instead of number)
- Required fields not properly specified
- Enumeration values malformed
Solutions:
- Review field type definitions carefully
- Test the protocol in a development environment before publishing
- Compare with working examples from similar protocols