This explains a couple of basic concepts of the lab system from a developer's point of view. For user information, see the help page of the application.
The workflow of the lab system evolves around "Samples" (think of these as orders for measurements). There are two basic roles: "Users" and "workers". Users file orders, these get "processed" either automatically or manually. "Processed" means that the result files from the spectrometer are attached to the sample. Optionally, the user can then perform a peak assignment and submit his result for the nmrshiftdb2 database.
In the mysql database, the information is kept in the following tables (also see the ER-diagram):
The lifecycle of an order is like this: The user submits it. Then raw data files must be associated. If process is set to changer, this is done by the AssignRobotDaemon, which looks for a directory named $rawfiledir/$machinename/$usersid. If this directory exists and contains at least the number of subdirectories as the sum of COUNT of all experiments of this sample, the files get zipped, made a RAW_FILE entry of this sample and FINISHED is set to true. In case of the manual processing the worker (worker processing) or the user (self processing) can open the order and manually assign files (for users, this is restricted to files in the directory for the machine). The order must then be declared as FINISHED manually. For finished orders, the user can download the assigned raw data files. The last (optional) step for the user is to do a peak assignment. This is done via the normal submit page. Probable structure, machine frequency and solvent are preset from the order data.
Labgroup workers can also produce a variety of reports. See an example below. The system used is Jasper Reports, which allows very flexible adoption of reports to individual needs.
Users which are members of a group are defined by having set the LABGROUP_ID flag in TURBINE_USER to an ID from LABGRUP_TABLE. One user is designated as a labgroup leader via the LEADER column in LABGROUP, which is a foreign key reference to TURBINE_USER. This user can perform labgroup admin tasks. See [LabSystemAdmin] for details of the administration.