Operator Intervention
Overview
This section covers the ways in which an operator can interact with, and intervene during, a workflow running on a given workcell, and how these methods can be configured and planned for in a workflow definition.
Operator Instrument
An operator instrument allows manual intervention during a workflow, pausing the process until the operator completes their task and resumes the workflow.
When the workflow reaches the operator task, it halts until the operator reports having performed the required manual tasks, such as inspecting samples. The operator can report tasks complete by clicking “resume” on LINQ Cloud or via a runtime command - see Workflow Execution - and the workflow continues.
The operator instrument must be defined as part of the workcell with the automata_operator driver.
Defining Operator interventions in the workflow
To define an operator intervention, you need to create an ActionTask where the action is set to "pause".
Operator_action1 = ActionTask(
id = "Operator_action1",
action = "pause",
description = "Operator action: check liquid handler deck",
instrument_type = "operator",
labware_sources = [], # Needs to be left empty
labware_outputs = [], # Needs to be left empty
time_estimate = 20,
inputs = Inputs(
action_required=True, # Prompt an Action Required with a Message
message="Please check the Hamilton", # Action Required Message
check_response_time=True # Check if any Time constraits might break
),
)
Use linq driver list for information about the operator driver, and any driver. See Instruments and Drivers for more information.
Attention
Manual labware movement between instruments is supported by configuring the corresponding LabwareSource with operator_transport=True.
Manual Labware Movement
When labware must be moved manually between instruments (for example, when instruments are not connected by automated transport), configure the corresponding LabwareSource with operator_transport=True.
Example
dispense_task = ActionTask(
id="dispense_reagents",
instrument_type="liquid_handler",
labware_sources=[
LabwareSource(
labware=microplate,
source_task=prepare_plate,
dependencies=[],
operator_transport=True,
)
],
)
Behavior
When operator_transport=True:
A transport task is generated automatically.
No physical hardware transport is executed.
Labware location is tracked correctly within the workflow.
Relationship to Operator Pause
Setting operator_transport=True controls labware movement tracking only.
If the workflow must pause for manual intervention, define a separate operator pause task:
operator_pause = ActionTask(
id="operator_pause",
action="pause",
instrument_type="operator",
description="Operator intervention required",
)
Transport behavior and pause behavior are independent and must be configured explicitly.
Run Instructions
Run instructions are a list of instructions to guide the operator on what to do during different phases of the workflow. These are displayed on LINQ Cloud.
To define run instructions, use the RunInstruction class to specify each command. Here’s an example of how to define a pre-run instruction:
instruction_1 = RunInstruction(
description="Check if tip box is loaded!",
phase="pre",
)
- class linq.workflow.RunInstruction(*, description: str, phase: Literal['pre', 'mid', 'post'])
Instructions for running a workflow.