icon file Flask Track Docs

Custom Protocol Step Data Flow

Custom protocol step data forms allow laboratories to collect structured data during protocol execution and reuse that data throughout FlaskTrack reporting.

A custom form created on a protocol step is not only used during execution. The submitted values are stored as structured, versioned event data and become available for SQL queries, custom reports, exports, and analysis.


Data Flow

flowchart LR
    A[Custom Protocol Step Data Form] --> B[Protocol Execution]
    B --> C[Step Data Event]
    C --> D[Versioned Parquet Event Storage]
    D --> E[Custom Report Builder]
    E --> F[Report View]
    E --> G[Export]

Overview

The data flow is:

  1. Define a Custom Protocol Step Data Form.
  2. Execute the protocol against a batch or sample.
  3. Operators submit step data during execution.
  4. FlaskTrack stores the submitted data as versioned event records.
  5. The data becomes available in the Custom Report Builder.
  6. Reports can be viewed, queried, filtered, scheduled, and exported.

This creates a direct path from laboratory execution to structured reporting.


Custom Protocol Step Data Form

A custom data form is defined inside an individual protocol step.

The form controls what information the operator must record when completing that step.

Examples include:

Each field becomes structured data rather than free-text notes.


Protocol Execution

When the protocol is executed, FlaskTrack presents the configured data form to the operator.

Depending on the step configuration, the form may be:

For custom forms, operators complete the configured fields before the step is submitted.

Required fields and validation rules are enforced during execution.


Step Data Events

When a custom form is submitted, FlaskTrack records the submitted values as protocol step data events.

These events preserve:

This allows submitted data to be traced back to the exact workflow, protocol, step, and form version that produced it.


Versioned Form Data

Custom forms may change over time.

For example, a protocol step may originally collect:

Later, the same step may be updated to collect:

FlaskTrack preserves the form version associated with each submitted event. This allows historical records to remain interpretable even after a form definition changes.

Versioning supports:


Parquet Event Storage

Submitted step data is stored as event data in Parquet.

Parquet storage allows FlaskTrack to expose laboratory execution data efficiently for analytics, reporting, and export workflows.

This makes custom protocol data available beyond the protocol execution screen.

It can be consumed by:


Custom Report Builder

The Custom Report Builder can use submitted custom step data as a reporting source.

This allows users to create reports from protocol-specific fields without engineering work.

Examples:

Custom form fields become reportable columns that can be selected, filtered, grouped, and exported.


Report View and Export

Reports created from custom protocol step data behave like other FlaskTrack reports.

Users can:

This allows laboratories to move directly from structured data collection to operational reporting.


Example

A protocol step named Inspect Cultures defines a custom form with these fields:

Field Type Required
Contamination observed Boolean Yes
Contamination type Text No
Culture condition Selection Yes
Notes Text No

During execution, operators complete the form for each sample.

Those submissions become structured event records.

In the Custom Report Builder, a user can then create a report such as:

Show contamination rate by species and protocol step for the last 30 days.

The same data can also be exported for external analysis.


Why This Matters

Custom protocol step forms turn laboratory execution into structured data capture.

Instead of collecting observations in disconnected spreadsheets or notes, FlaskTrack stores the data directly inside the workflow event stream.

This provides:

Custom forms are therefore both an execution tool and a reporting interface.