Description

The aim of this package is to provide a plugin and configuration to be able to create or derive contents in the workflow with pre-defined configurations. These contents can be moved to a certain location, linked to an order, and scheduled with requestables. All of these options are defined in the plugin configuration and the pre-defined content configurations (reference data).

The package contains the following entities:

  • One Plugin with two flows:
    • Add controls
    • Derive controls
  • One Macro:
    • Add controls: A macro with one step that will automatically execute the plugin (this is for the flow “Add controls”).
  • One Custom field on Content:
    • Control configuration: A field of type dynamic choice to table Reference Data Record with Controls selected for the Reference Data Type. Used to indicate which pre-defined content configuration has been used to create this content.
  • Five Custom fields on Reference Data Record:
    • Can be derived from: A field of type dynamic choice to table Content Type, to restrict the derivation from certain Content Types only.
    • Content type: A field of type dynamic choice to table Content Type, to indicate the Content Type of the content(s) to create.
    • Amount: A field of type whole number, to indicate the number of content(s) to create with this configuration.
    • Content positions: A field of type fixed choice, to select the position(s) for the content(s) to create with this configuration. Note that here you need to select as many positions as there will be new contents to create.
    • Requestables: A field of type dynamic choice to table Requestables, to indicate the requestable(s) to add on the content(s) to create with this configuration.
  • One Custom field on Experiment Step:
    • Controls to add: A field of type dynamic choice to table Reference Data Record with Controls selected for the Reference Data Type. Used to indicate which pre-defined content configuration should be used at this step by the plugin.
  • Two Content Types:
    • Positive control
    • Negative control
  • One Reference Data Type:
    • Controls: A Reference Data Type that will contain the pre-defined content configuration(s) to use in the workflow.
  • Two Reference Data Records of Reference Data Type “Controls”:
    • Positive control: with the pre-defined values “2” for Amount and “Positive Control” for Content Type.
    • Negative control: with the pre-defined values “2” for Amount and “Negative Control” for Content type.

By default, SLIMS allows content to be linked in a workflow in a specific step (Link content, Link reagents) but this default functionality will only allow new content to be created or link one that already exists.

This package allows the contents that will be created and linked in a specific step to be pre-defined. These created contents are linked to the current step, can be placed in a specific location at a pre-defined position, can be linked to the same order as the contents currently being processed in the step, and can also be scheduled to a pre-defined requestable.

There are two different flows of the plugin provided by default in the package with the following behaviors:

  • Add controls:
    • This flow is in a macro which can be automatically started at the start of a protocol step in the workflow.
    • This flow will create new content based on the pre-defined configuration, link it to the protocol step the macro has been started in, and optionally (if configured so) link the new contents to the order, place them in a specified location/position, and schedule them with a new requestable.
  • Derive controls:
    • This flow can be made available in the workflow and is manually started.
    • This flow will create derivation of content based on the pre-defined configuration, link them to the current step (as input or output, depending on the step type), and optionally (if configured so) link the new contents to the order, place them in a specified location/position, and schedule them with a new requestable.

How to use the package

Pre-requisites

  • The desired Controls should be configured in the Reference Data module.
  • The plugin contained in this package can run from a workflow step (directly in the step or through a macro).
    • Consequently, the necessary contents, requests, workflows, status transitions, and orders should already be configured in SLIMS.
      • Status transition of the order from “In progress” or “Scheduled” to the desired (configured) status should be activated.
      • The plugin or macro should be configured in the necessary protocol step.
        • If the macro is used in the step, it can be set to “Run on start of step” to remove any needed interactions from the user.
      • The field “Controls to add” on the protocol should be filled out with the Controls that should be created at this step.

Configuration

Plugin
  • idnamepluginUsage: These parameters can be customized similarly to any other plugin.
  • contentToCreateStatusDefaultValue: Unique identifier of the status to use for the newly created content(s).
  • linkToDefinedContentConfigurationFieldName: The field to indicate which pre-defined content configuration will be used. Default value is xpst_cf_fk_controlsToAdd, so it is used to specify which pre-defined content(s) will be created in a protocol run step.
  • createContentMethodImplementation: The name of the bean that handles the creation of the pre-defined contents.
    • createNewContentFromPredefinedConfigurationImpl: This bean will perform the creation of new contents.
    • deriveContentFromSpecificContentTypeImpl: This bean will perform the derivation from the selected contents to the pre-defined content that will be created.
  • moveContentImplementation: The name of the bean that moves the newly created contents. Only one possibility is implemented for now. This implementation (“moveContentsToSelectedLocationImpl”) will move the content(s) to the selected (or scanned) location, if any.
  • contentConfigurationContentTypeFieldName: The field to indicate the Content Type of the content(s) that will be created with this pre-defined configuration. Default value is rdrc_cf_fk_contentType.
  • contentConfigurationAmountOfContentToCreateFieldName: The field to indicate the amount of content(s) to create with this pre-defined configuration. Default value is rdrc_cf_amount.
  • contentConfigurationPositionsFieldName: The field to indicate the position(s) of the content(s) to create with this pre-defined configuration. Default value is rdrc_cf_contentPositions.
  • contentConfigurationRequestsToAddFieldName: The field to indicate the requestable(s) to use to schedule the content(s) created with this pre-defined configuration. Default value is rdrc_cf_fk_requestables.
  • contentConfigurationCanBeDerivedFromContentTypeFieldName: The field to indicate the allowed Content Type(s) from which content(s) can be derived with this pre-defined configuration. Default value is rdrc_cf_fk_canBeDerivedFrom.
  • contentLinkToConfigurationTableFieldName: The field to indicate the pre-defined configuration this content has been created from. Default value is cntn_cf_fk_controlConfiguration.
  • linkContentToOrderOptionTrue/false option controlling if the new contents should be linked to the order or not. If the original contents are not scheduled to the workflow via an order, this option should be set to false.  
  • revertOrderStatusUID: Unique identifier of the status to use if users need to revert the order when linking the newly created content(s) to it.
  • mappingSourceFieldToCntnFields: Parameter that allow you to map some other fields from the pre-defined content configuration to the content that will be created (e.g: rdrc_cf_customField: “cntn_cf_customFieldFromRefData”). Note that the key is the name of the field on the pre-defined content configuration and the value is the name of the corresponding field on Content.
  • fetchInformationForContentToCreateImplementation: The name of the bean that fetches the pre-defined content configuration. Only one possibility is implemented for now.
  • positionFixedChoiceRowColumnSeparator: Hidden parameter that is “-” by default. It allows for more flexibility in how to write the positions for the field contentConfigurationPositionsFieldName, so this parameter will specify what is the separator between the row and the column position in the possibilities of this fixed choice.
Reference Data Records
  • Positive control and Negative control:
    • These are example values and should be updated or removed, and the needed controls configuration should be added in the Reference Data Type (Controls).

Step by step usage procedure

Add controls

The “Add controls” flow is used in a workflow through a macro (“Add controls”). This macro can be configured to start automatically at start of the step.

When the step starts, the macro will automatically start and can either show the step where the user can select a location or scan the barcode of the location where the new contents should be moved, or doesn’t show anything and just executes the plugin. Note that the provided macro does not pause before execution, so this step will not be shown. This can be changed on the configuration of the macro. The plugin will create the contents pre-defined for this step with all the options and defined values.

Derive controls

The “Derive controls” flow is used in a workflow so it should be configured to be the SLIMS GATE flow that will be run in a protocol run step. There are two ways of using this plugin in the protocol run step.

  1. First choice: The user can select content(s) (that are linked as input) and then click on the plugin icon to start. The plugin will show a dropdown to select a location and a field to allow the user to scan the barcode of the location. The user can select a location or scan the barcode, or do nothing and then click on “Finish.” The plugin will create the pre-defined derivations with all the options and defined values.
  2. Second choice: If the step is of type “Link Reagents,” the user can link some reagents and then click on the plugin icon. All the linked reagents will be taken as input of the plugin (no need to select them before starting the plugin). Then the usage of the plugin is the same as above.

The following are further details about how the move of the contents is handled with some use-cases:

  • If the user selects or scans a location:
    • If on the pre-defined content configuration, no positions are selected in field contentConfigurationPositionsFieldName, then the newly created content(s) will not be moved and no error will be thrown.
    • If on the pre-defined content configuration, positions are selected in field contentConfigurationPositionsFieldName, then the newly created content(s) will be moved into the corresponding positions if they are available.
    • If on the pre-defined content configuration, positions are selected in field contentConfigurationPositionsFieldName but there are not enough positions provided (in the contentConfigurationAmountOfContentToCreateFieldName field we put two and in the contentConfigurationPositionsFieldName field we select only one), an error will be thrown saying there are not enough positions.
  • If the user does not select or scan the location, then the newly created content(s) will not be moved and no error will be thrown.

The derivations will be done in this way if multiple contents are selected (or multiple reagents are linked):

  • The restrictions about the content type of the selected contents is strictly applied, so field contentConfigurationCanBeDerivedFromContentTypeFieldName needs to be filled on the pre-defined content configuration and if at least one selected content is not of one of these content types there will be an error.
  • The derivations defined in the pre-defined content configuration will be done for all of the selected content(s).
    • Example: If you select two contents and then run the plugin “Derive controls” and the pre-defined content configuration has two in the contentConfigurationAmountOfContentToCreateFieldName field, then it will create two derivations per selected contents. As a result, four contents will be created.

Where to Look Next

These references have further information on how to configure or use the package contents after the initial installation and integration.

  • SLIMS Administrator Manual:
    • Content Management → Reference Data
    • Electronic Lab Notebook → Protocols → Protocol Steps (Restrict and specify extra options about macros, Can execute SLIMS GATE Flows)
    • Miscellaneous → Macro (Execute SLIMS GATE Flow)
    • Miscellaneous → Fields