Labii provides sophisticated search function to help you address your scientific problems.


This guide will walk you through how to use the search and filter functions. Labii ELN & LIMS provides 3 different search functions:

In-Page Search

Use this function to narrow down the number of items to display on one page. On the list view of experiments, there is a search icon on the top, where you may click and start typing. The results are only from that page and will appear in real-time as you type.
In-Page Search

Global Search

If you want to search records matched any table (experiments, samples, etc) with one or two phrases, use global search.
On the navigation bar which will always remain on top of the Labii interface, click on Search Icon to perform a global search.
From the sidebar, you have another easy way to get to search, by clicking the menu on the top right, then simply click Search.
Type in one or two phrases, and the search results will return immediately. On default, only the top 10 results returns, Click “Load More” to load more search results.
Global Search Function at Labii ELN & LIMS
By default, the search results will only cover the unique ID and the name fields. To obtain 100% of the results, you need Deep Search, which will scan all searchable fields.

Advanced Search

Labii also provides advanced search to limit the search results based on one or more particular fields. To use the advanced search, click the Advanced Search button This will prompt you to select a table for the advanced search.
Once you have selected a table (experiment shown below), you will see the customizable fields to build a query:
  1. 1.
    Select a Field, Lookup Expression, and provide a lookup value.
  2. 2.
    Click ADD QUERY again to add more queries.
  3. 3.
    Once all fields are filled out, simply click Submit
Advanced Search in Labii ELN & LIMS

Scan QR Code

Labii natively supports the scanning of QR code. Use this scan function to find a location or sample. To do that:
  1. 1.
    Click the search icon from the navbar
  2. 2.
    Click the "Scan" button
  3. 3.
    Scan the QR code and the results will be displayed in the search results.
On IOS 11 it is only supported on Safari and not on Chrome or Firefox due to Apple making the API not available to 3rd party browsers.

Scanner purchase guide

Labii also supports the commercial scanner. Here is your purchase guide:
  1. 1.
    Make sure it can read both 1D, 2D barcode.
  2. 2.
    Make sure it supports multiple modes: Manual trigger, Auto-sensing, Continuous scanning. Continuous scanning will be very helpful when you need to scan multiple samples.
  3. 3.
    Make sure the connector is supported on your computer. It can be USB based or Bluetooth based. Some new Macbook does not support USB.


A filter is a function similar to advanced search in regards to building a query when creating a new filter. However, Filters take it to another step as you can save search queries for later use.
To create a filter:
  1. 1.
    Click tables on the navbar
  2. 2.
    Select a table
  3. 3.
    On the sidebar, select “Create experiment filter
  4. 4.
    Type the name and description of the filter
  5. 5.
    Uncheck Show in Menu to hide the filter from displaying in the dropdown menu.
  6. 6.
    Select Digest Frequency - how often you want to receive the digest email for the filter
  7. 7.
    Select users that you’d also like to use this filter and your name will be added automatically!
  8. 8.
    Create a query, similar to advanced search
    1. 1.
      Select a Field, Lookup Expression, and provide a lookup value.
    2. 2.
      If you’d like, you can add multiple queries by simply clicking add query
  9. 9.
    Click Submit to finalize!
Filter add form
To build a query:
  1. 1.
    Click ADD QUERY
  2. 2.
    Select a Field, Lookup Expression, and provide a lookup value.
  3. 3.
    Click ADD QUERY again to add more queries.
  4. 4.
    Click the Delete button to remove the query; Use Up/Down Button to change query order.
When a filter is saved, the Users filed can be customized to define who can use the filter. The owner will be added to the users' list automatically.
Fields are the column title of the table. The list of fields will be updated as the table changes. Before using the filter function, you have to have a clear idea of which field is the data come from. If you are not quite sure, use the global search.
Lookup Expression:
  • Is equal to, find records that have exactly match to the provided value, case insensitive.
  • Not equal to, find records that do not match to the provided value.
  • Contains, find records that contain the provided value, case insensitive.
  • Not contains, find records that do not contain the string of the provided value.
  • Greater than or equal to, find the records greater than or equal to the provided value, for Date and Number type of columns only.
  • Less than or equal to, find the records less than or equal to the provided value, for Date and Number type of columns only.
The value to lookup.
  • Use true or false for boolean.
  • Date
    • Use YYYY-MM-DD for the date.
    • Use TODAY for the current date.
    • Use [+/-][#][DAY/WEEK/MONTH/YEAR] for a certain date before/after the current date.
      • +3DAY - 3 days ahead
      • 2MONTH - 2 months ahead
      • -5WEEK - 5 weeks ago
      • YEAR or 1YEAR - 1 year after

Advanced Filter

  • Filter by a field: name__icontains=test
  • Filter by multiple fields: name__icontains=test&is_archived=false
  • Exclude in a filter: name__not_icontains=test
  • Filter by string: data__string__gte="ABCD"
  • Filter by date: data__date__gte="2022-01-01"
  • Filter by number: data__int__gte=10
  • Filter in JSON objects:
    • contains a string in value: jsonfield__icontains=test
    • not contain a string in value: jsonfield__not_contains=test
    • contains a key: jsonfield__has_key=test
    • contains an object: jsonfield__jcontains={'name':'test'}
    • not contains an object: jsonfield__not_jcontains={'name':'test'}
  • Filter by a filter set: filter__sid=xxx, wherein a filter set:
    • AND relationship shall be expressed in a JSON object, separate by a comma: {"name__icontains":"test", "is_archived":false}
    • AND relationship expressed in JSON array: {"and": [{"name__icontains":"test"}, {"is_archived":false}]}
    • OR relationship shall be expressed in an array: {"or": [{"name__icontains":"test"}, {"is_archived":false}]}
  • Filter by multiple filter set:
    • AND: filter__sid=xxx,xxx
    • OR: filter__sid__in=xxx,xxx
  • Filter by json query, the query is same to the filter set:
    • jquery={a:1,b:2,c=3}
    • jquery={"or": [{sid:aa,data:bb}, {sid:aa,data:bb}]}
    • jquery={"and": [{sid:aa,data:bb}, {sid:aa,data:bb}]}
Since the database JSON field no longer supports the Array data. We have updated ["or", {sid:aa,data:bb}, {sid:aa,data:bb}] to {"or": [{sid:aa,data:bb}, {sid:aa,data:bb}]}

Predefined Filters

Becoming proficient at building a query can take practice, Labii provides some predefined filters to save you time. Please contact us if you need help with building custom queries.
Click Predefined Filters in from sidebar to open a list of queries ready to use. Click Save to save this filter.
Predefined Queries
Here is a list of predefined queries available to use:
My Unsigned
The experiments that awaiting for me to sign.
My Signed
The experiments that have signed by me.
My Co-Authored
The experiments that listed me as Co-Author.
My Witnessed
The experiments that listed me as Witness.
My Open
The experiments that waiting for me to sign, as Author or Co-Author.