Hatchery Information System


IColorControl and IMWVColoring

One thing I noticed while working at hatcheries was that some of them used colorful diagrams to help keep track of where different groups of fish were located in the facility. For a program that was highly visual, this seemed like a really useful thing to be able to implement. I wanted the user to be able to gain information from the screen with just a glance. Both the IColorControl and IMWVColoring interfaces are designed to facilitate that coloring. The IColorControl interface is used in the Current Time View, while the IMWVColoring interface is used for the Move Web View.

The coloring concept was that regions would be identified for all the rearing units, which could be colored, and the hatchery could choose what the colors should indicate. I didn’t want to constrain hatcheries as to what they could use those indicators to indicate. Therefore, the interfaces were added such that plugins could be written to extend and customize the coloring.

Each rearing unit in the Current View is drawn with five different indicators that can be colored. The outer border, the rearing unit name, and the background of the rearing unit name, can only be used as indicators for the entire structure. They can’t be used to indicate differences between different sub-divisions within the structure. The inner border and the tint of the water can both be used as indicators for just rearing units within the structure.

Since the Move Web View does not have structures and rearing units within structures, there are only two indicators for the Move Web View, the border and the tint. The drawing is already sufficiently constrained that adding an inner border of useful size was felt to be too messy.

An object that implements either of these two interfaces announces which attributes they will show indicators for. A single object that implements either interface can announce multiple attributes. For example, one object is used for stock, is marked, has ad clip, has PIT tag, and has CWT tag. These aren’t all particularly closely related, nor do they need to be. The main program gathers the set of all attributes that any plugin will color on. Hatchery personnel can then choose which attributes they want, if any, for each indicator, and configure the colors that will be used.

Choosing the color for an indicator is a matter of configuration. The interface has an option to show a configuration button. If that is shown, then the interface configuration method will be called when the button is pressed. This allows for a rich selection of how coloring happens. For example, an indicator like stock would just show one of a few different colors to indicate the stock of the fish in that rearing unit (chosen by the hatchery), while an indicator like density index would be able to tint the water different colors to indicate different levels of crowding in the rearing unit. Color controls can be quite simple or fairly complex, depending on what will best show the attribute to the user.

By implementing this interface on an object, a plugin can enhance the use of the program as a whole by allowing the program to show, using colors, how the fish are arranged at the hatchery, or their status. Of course, this is only different colors, which is not going to be accessible to all people, but the option is included to make the Hatchery Information System more versatile and configurable.



Existing Plugins

Density Index

The plugin will color the rearing unit-level indicators on the density index of the rearing unit. The plugin will not color the structure level indicators. The reason that this plugin only colors the rearing unit level indicators is that density index depends on the size of the rearing unit, not the size of the structure. Therefore, it only makes sense at the rearing unit level.

Coloring can be configured to change colors when the metric exceeds thresholds set in the configuration, and the colors can shade from light to dark as the metric approaches the threshold.

This plugin is combined with the IMetric Density Index plugin object.


Lot Number

I have seen a few hatcheries that colored trays based on lot numbers, so adding a plugin to do that was pretty obvious. The plugin will color either the whole structure or single RU on the lot number trait. The most likely use for this plugin would be to color trays in a Heath Stack, so the rearing unit indicators are best, but the structure level indicators can also be used in cases where that makes sense.

The configuration for the lot number coloring is similar to that used for stocks and species in the RU Color Basics. The user can choose single colors for each lot, plus they can add a color for mixed lots. They can also opt for one of three options for mixed lots, which are to use the mixed lot color, or color on the lot that is the majority of the fish in the location, or to blend the colors for mixed lots. That last one is kind of fanciful, and will tend to look pretty ugly.

This plugin is the same object as the Lot Editor object, which is part of the magic fish group.


Flow Index

The plugin will color the rearing unit-level indicators on the flow index of the rearing unit. The plugin will not color the structure level indicators. The reason that this plugin only colors the rearing unit level indicators is that flow index depends on the size of the rearing unit, not the size of the structure. Therefore, it only makes sense at the rearing unit level.

Coloring can be configured to change colors when the metric exceeds thresholds set in the configuration, and the colors can shade from light to dark as the metric approaches the threshold.

This plugin is combined with the IMetric Flow Index plugin object.


Percent Max Depth/Flow

The plugin colors the structure level indicators on the percent of the maximum for either depth or flow or both. There are no rearing unit level indicators, as these values are only measured for the whole structure, not for subdivisions within the structure.

This plugin is the same object as the IHISGeneral Mass Depth/Flow plugin and the IMWVSupplemental Mass Depth/Flow plugin.


Release Prediction

The plugin colors either structure level or rearing unit level indicators on the projected release site. The user can configure which colors indicate which projected release site.

This plugin is the same object as the IHISGeneral and IMWVSupplemental button bar plugin for projected release site and date.


RU Color Basics

The plugin colors either structure level or rearing unit level indicators on species, stock, whether the rearing unit has fish, whether they are marked, or whether they have PIT tags, coded-wire tags or adipose clips. Some of these have very little configuration as they are only binary choices, while others, such as stock, have more complex configuration. Each stock or species can have its own color, along with a color for mixed trait groups.