Module-based assays allow a developer to create a new assay type
with a custom schema and custom views without becoming a Java developer. A module-based assay type consists of an assay config file, a set of domain descriptions, and view html files. The assay is added to a module by placing it in an assay directory at the top-level of the module. When the module is enabled in a folder, assay designs can be created based on the type defined in the module. For information on the applicable API, see: LABKEY.Experiment#saveBatch
Examples: Module-Based Assays
There are a handful of module-based assays in the LabKey SVN tree. You can find the modules in <LABKEY_ROOT>/server/customModules. Examples include:
The assay consists of an assay config file, a set of domain descriptions, and view html files. The assay is added to a module by placing it in an assay directory at the top-level of the module. The assay has the following file structure:
domains/ - example
views/ - example
queries/ - example
CUSTOM_ASSAY_QUERY.sql (A query that shows up in the schema for all assay designs of this provider type)
The only required part of the assay is the <assay-name> directory. The config.xml, domain files, and view files are all optional.
This diagram shows the relationship between the pages. The details link will only appear if the corresponding details html view is available.
How to Specify an Assay "Begin" Page
Module-based assays can be designed to jump to a "begin" page instead of a "runs" page. If an assay has a begin.html in the assay/<name>/views/ directory, users are directed to this page instead of the runs page when they click on the name of the assay in the assay list.