Tests/Orders are any actions that are performed on a sample. This could be a genetic test (FISH, Chromosome Analysis, QF-PCR etc.) which may have results and anything that is subject to billing or any task which transforms a sample from one type to another (DNA extraction).
Some examples of Tests/Orders are:

For a test to work in the iGene correctly it needs to be assigned a Test Type. iGene supports the following test types:
When creating a new test via preferences, it is imperative that the correct Test Type is chosen as it will not be possible to change the test type after it has been used.
iGene supports a hierarchy of Tests/Orders. It can either be a parent, standalone or a child of another test/order. Using this hierarchy, it is possible to set up groupings of related tests/orders that should be together.

When first opening the test, the general details area will be visible:

Each of the fields available are described below:
Once a test type has been set and tests have been booked, the test type should not be changed.

The Child Tests area is used to specify that this test is a parent test and to define which child tests it has and when they are added. To set a test as a parent test, check the Parent Test checkbox.
Selecting the Parent Test box will reveal the Test Selections table.
To add test as a child to this test, select the + button at the bottom of the table.
When adding child tests to a parent, the child test must have already been created. Normally when creating a test hierarchy, the child tests should be created first and then finally the parent test. N.B. It is possible to use the same test again in another parent, i.e. Setting a test as a child of another test does not limit it just to that test. Child tests can also be ordered individually without a parent test.
The following options are available for each child test:
Controls are a special kind of test that allows the user to use a sample or reagent as a test. Controls do not require triaging because they are are already triaged when they are booked in. To make a test a control test, select the Is Control checkbox.
Control tests cannot be parents of other tests. External tests can also not be control tests. When selecting the control test option, the parent test fieldset will not be visible.
Once a test is marked as a control, the Control fieldset becomes visible.
The Control Type field specifies the type of control and can be one of the following values:
Each control type is discussed more in the following sections:
This table lists the sample assignment for each pedigree/family. To add a new Sample, select the + button. A search screen for pedigree/families will be shown.
Locate the pedigree number required and click Select.
Locate and select the required sample by selecting Select. Once selected, the dialog box will close, and the entry will be added to the table.
N.B. If no control is available for a patient’s pedigree when booking the test, the control cannot be used.
This table lists the sample assignment for each patient. To add a new Sample, select the + button. A search screen for patients will be shown.
Locate the patient required and click Select. The next screen will appear showing available samples.
Locate and select the required sample by selecting Select. Once selected, the dialog box will close, and the entry will be added to the table.
N.B. If no control is available for a patient when booking the test, the control cannot be used.
Using the autocomplete Reagent, locate the required reagent.
This test will now be a control with the chosen reagent, e.g. water.
Using the autocomplete Sample, locate the required sample using the sample number.
This test will now be a control with the chosen sample.
The Test Selections table is used to define filters for the test when ordering via the referral screen. To add a new test selection, select the + button at the bottom of the table:
The table has the following fields:
Each complete row in the table specifies a list of conditions that have to be met. e.g. Defining a Referral Reason and Referral Reason Type together on the same row will require both of the criteria to be met before the test will be available for selection. Adding additional rows will define “or” conditions, so that if the first row in the table does not match, but the second row does match, the test will be available for selection.
Limit the test to a specific sex. This is useful for tests that are only relevant to a specific sex.
Limit the test to a specific tube type. This is useful for tests that require a specific tube type to be used.
Limit the test to a specific sample type. This is useful for tests that require a specific sample type to be used.
Limit the test to a specific sub sample type. This is useful for tests that require a specific sub sample type to be used.

The test grouping area allows the test to be categorised based on various options. The options are often used in combination with reports to customise the appearance, e.g. Showing a different doctor’s name if the category of the test meets specific criteria.
Tests can be grouped in the following ways:
Test categories allow tests to be grouped into a custom category. This has no effect on selecting the test, but is a useful option: for grouping tests for reporting, statistical purposes, or creating worklists. Test categories can be created by the Test Category Preferences area.
To add a new grouping, select the + button at the bottom of the relevant table. A search box will appear and is used to locate the relevant item to add into the group, e.g. Adding a test category is shown below:
Tests can be grouped into referral reason categories. This option does not limit selection but rather is used for grouping purposes and is useful for statistical reports. To limit tests to referral reason categories, please see the Availability Rules) section above.
Test packages are a way of grouping tests into a package so that the package can be ordered as one unit. This option has been replaced by Child Tests and is marked as deprecated.
Variants are used for the test type Genomics to limit the selection of available variants when entering results. The field has no effect anywhere else in the system.
Disease codes are used to limit the list of tests when ordered from the clinical outcome screen. The list of tests will be limited based on the diagnosis codes entered and can help a clinician decide which tests to order.
This is site specific preference for Manchester.
The billing table is used to add bill codes and their costs to a test. When the test is first ordered, these billing codes are added automatically to the test (and ultimately the referral). To add a new bill code, select the + button at the bottom of the table.
The billing table has the following fields:

The user warnings area is used to configure warning messages regarding sample volumes and age when performing this test:
The following values can be set:
The FISH probes area is used to add/define the default FISH probes that are added for FISH tests. Probes added here will be added automatically when ordering the test or when adding the probes to slides created on the test. To add a new FISH probe, select the + button at the bottom of the table:
The FISH probes table has the following fields:
The Check Probe is in stock checkbox is used with the stock management module and can ensure that a test cannot be ordered if the relevant FISH probes are not in stock.
The adding of FISH probes to test is particularly useful when used with panels of probes. If a user has a specific test e.g. Jewish Panel, the user can default the probes added so the user does not need to add them individually each time the test is ordered.
The Result Codes table is used to limit the available result codes for this test when entering the result. To add a new result code, select the + button at the bottom of the table and using the Name autocomplete, locate the required result code:
When the result code table is empty, the test can have any result code defined in iGene. However, as soon as a single entry is added to this table, the selection of result codes will be limited just to those entries in this table.

A table which allows for specific genes to be added to the test. This is used for the test type Genomics and is used to limit the selection of genes when entering results.
A text area which can be used to define the test method. This is useful for reports where the test method is required to be displayed.
A text area which can be used to define additional information. This is useful for reports where additional information is required to be displayed.

The available/default reports table is used to limit the available report templates for a particular test as well as set one as the default. If a particular report template (or selection of report templates) are always used with a particular test then it is a good idea to set them up here. e.g. There may be 30 CustomTest reports on the system, but only one of them was designed to be used with this test. To add a new report template, select the + button at the bottom of the table and choose the report from the dropdown list.
The available report templates in the dropdown list are related to the Test Type. e.g. If the test being edited was a FISH test, then the list would show all report templates for the FISH test type.
The Default checkbox will allow a particular template to be chosen by default when creating a new report. If there is only one available report then the setting has no effect.
If the list of available reports is empty then all report templates on the system matching the Test Type are made available to the user when creating a new report. As soon as single item is added into this table, the available reports will be filtered. It is highly recommended to use this table with Custom Test test types as attempting to run the wrong template on the wrong custom test can result in hard-to-troubleshoot errors.
A table of users who are allowed to sign the test. This is used to limit the list of users who can sign the test when the test is completed. To add a new user, select the + button at the bottom of the table and choose the user from the dropdown list.
A table of users who are allowed to authorise the test. This is used to limit the list of users who can authorise the test when the test is completed. To add a new user, select the + button at the bottom of the table and choose the user from the dropdown list.
When selected, the results require checking option will require the results to be checked before they can be signed off. This is useful for tests that require a second opinion before they can be signed off.
When selected, the results require authorising option will require the results to be authorised before they can be signed off. This is useful for tests that require a second opinion before they can be signed off.
When selected, the don’t include in reports option will prevent the test from being included in reports. This is useful for tests that are used for internal purposes only and should not be included in reports.
When selected, the no report required option will prevent a report from being generated for this test. This is useful for tests that do not require a report to be generated.
The test publishing table is used to make this test available across multiple organisation units (OUs). It is used for lab tests that should be selectable from the clinical module even though the lab test is not available or visible in the clinical OU. To publish this test to another OU, click the + button at the bottom of the table.
The table has the following fields:

When selected, the autocalculate due date option will automatically calculate the due date of the test based on the turn around time and the order date. This is useful for tests that have a fixed turn around time and do not require the due date to be manually set.
The test priority turnaround times table is used to set the turn around time for a test based on the priority of the test. To add a new priority, select the + button at the bottom of the table.
A checkbox to indicate that the test requires a fraction sample. This is useful for tests that require a fraction of a sample to be used.
The post status change script is used to run a script after the status of the test has been changed. This is useful for running custom code after a test has been completed.
The post worksheet status change script is used to run a script after the status of the worksheet has been changed. This is useful for running custom code after a worksheet has been completed.
Custom tests are the most powerful types of test in iGene as they allow the user to add their own custom fields and configure how they look. In addition, a test must be a custom test in order to be used with the worksheet module.
More information about how setup and use custom tests can be found Using Custom Tests.
A custom test consists of a list of custom fields and two templates describing how to display the test. The first template controls how the template should appear in a worksheet cell, and the second on the result screen. The following types of custom fields are currently supported:
Each of these field types are covered in the Result Type Preferences.
To create a custom test, ensure the Test Type field is set to Custom.
Once a test has been set as custom, the Custom Fields fieldset will become visible at the bottom of the form.
The fieldset has the following areas:
To add a custom field, select the + button at the bottom of the Custom Fields table:
A custom field has the following values:
Worksheet Cell Display Template
The worksheet cell display template uses a combination of HTML and Freemarker to define how the cell will be displayed inside a worksheet cell, e.g.
<p>${displayIcon}${testNumber}</p>
<p>${referral.referralNumber}</p>
The above code snippet will display the test’s icon and number on the first line, and the referral number on the second line. To use a variable from iGene, the model path will be required (TODO link to section on modelPaths). The freemarker path is escaped inside ${____} brackets and refers to the current test (ReferralTest). Some examples of modelPaths are given below:
Field Display Template
The field display template uses a combination of HTML and Freemarker to define how the result screen will look. Each field is referred to by the unique code given when creating the custom field, e.g. field1. An example template is shown below:
<b>Test Results</b>
<hr />
<table>
<tr><td>Field 1:</td><td>${field1}</td></tr>
<tr><td>Field 2:</td><td>${field2}</td></tr>
</table>
The templates format may seem daunting at first for users not used to HTML, however Genial Genetics will provide support for setting up the first few templates, and afterwards the existing templates can be used in other custom tests with only minor changes.
When using HTML, there is no need to include body or html tags, however since the application runs inside a web browser, the content can be anything that can be represented with simple HTML.