Alerts can be used to notify users when certain data of interest are present.
Form Generation System | Alerts System | Alerts Bundles | Alerts Editor
Each section is structured to address purpose, description, design considerations, scope of effect, and relevant code packages.
The Alerts System is not the same as Validation. Validation activities take place as a result of comparing field values with the parameters of a particular field. For example, checking that an integer field has an integer field value or that date field values are in the correct field value. For an alert, flags that are set are more for field values that may be legitmate on their own but incorrect in combination with other field values.
The nature of an alert being flagged as an error is to prevent to form from being exported to final submission format. There ar more consequences of an error occuring due to validation. Failures of validation are all errors, whereas alerts may be classified for informational purposes as well. Alerts are meant to supplement validation activities.
|Purpose||To generate UIs for Project35 which suite displays on desktop and Tablet PCs.|
|Description||Project35's architecture maintains a rigid separation between the
structures that hold data and the structures that present them to an
end-user. The model aspects are represented by the native data
structures, the description of which can be found in the Core Architecture section. The view aspects are represented
by the following packages:
General Classes for Generating Desktop Project35 Forms
When end-users invoke the "run_project35" script, it spawns an instance of Project35Application. The object prompts end-users to load a model and it produces template record definitions that can be used to populate a document.
General Class Relationship Diagram for Generating Desktop Project35 Forms
Classes for Generating Edit Fields in Desktop Project35 Forms
Class Relationship Diagram for Rendering Edit Fields in Desktop Project35
Classes for Generating List Fields in Desktop Project35 Forms
Class Relationship Diagram for Rendering List Fields in Desktop Project35
Classes for Generating Forms in Tablet Project35
The classes used to generate forms in Tablet Project35 are in the
First, some of the menu items have been removed. For example, the File Menu does not contain an "Export to Final Submission Format" button. This feature was deemed non-essential because it was likely this would be done with the Desktop version.
To reduce the number of pop-up dialogs, some features were altered so they used a stack of screens instead of separate windows. For example, consider the "Window" feature in Desktop Project35. When end-users switch from one file to another, a new window grabs focus. In Tablet Project35, only one file is shown at a time. When end-users change the current file, it changes the file loaded in the current window.
As another example, the
To economise on screen real estate, the NavigationTree was removed. It is accessible via the "Where Am I" button, which pushes a view of the
Finally, the right click mechanism for activating ontology services is replaced by pressing a "Mark-up" button which appears at the end of a text field.
Initially, Project35 tightly coupled data objects with the objects that viewed them. This led to severe performance problems because Java would potentially be managing thousands of UI components, each using a collection of Swing objects. This led to stripping the native data structures of references to UI components. Eventually the production of form field views was centralised in the class
The most significant change in the form generation classes came when
Tablet Project35 was developed. Initially we wanted to run the software on a PDA. However, these devices often require a specialised form of the JVM which does not support Swing components. Although the native data structures were stripped of references to UI components, they still had one crucial reference to the swing libraries: the
It became clear that we had to make some changes to the forms. The Navigation Tree was taking up too much room in the display and it was difficult to tap a pen on some of the nodes. Too many windows popped up and they cluttered the screen area. We also observed that it was difficult to activate ontology services. In the Tablet display, a right-click action is done by tapping and holding the pen on a form label. This seemed too awkward to do, so a "Mark up" button was developed instead.
The development of
|Scope of Effect||The UI classes are probably not used by anything other than classes in Desktop and Tablet deployment packages.|
|Relevant Code Packages||The classes used to generate user interfaces in Project35 are in the
Back to top
|Purpose||To provide a means of allowing end-users to compile their own lists of errors, warnings and tips that can be used by other researchers in the community when they validate their data sets. It is intended as an extensible way to enhance validation facilities of the tool and a passive way that researchers can communicate with each other.|
Project35 supports an Alerts System to supplement the toolís standard validation facilities and to allow end-users a way of using advice provided by other end-users. An alert is a set of matching criteria which identifies patterns of field value combinations in a record. The matching criteria can be associated with one of four intents:
Domain experts can use the Project35 Alerts Editor to create a collection of alerts called an Alert Bundle. The bundle is a ZIP file that contains a small XML file to represent each alert. The alert bundles can be included as part of the release of a new model folder, or they can be hosted at some URL. Other end-users can import these alert bundles and use them in two situations:
When either of these actions are taken, the tool scans the current document and identifies any records which match an alert. The results are included with any errors the system identifies in the document. Should any of the alerts represent errors, then the task of exporting data to a final format will fail.
The Alert system was originally developed because Project35 had no way of identifying errors which were due to combinations of field values found within the same record. Individual field values could be validated but they could still present errors when they were considered in conjunction with other field values on the same form. For example, a patient record form could have fields "gender" and "cancer type". "male" and "ovarian cancer" could represent legal values for their respective fields but represent an illegal combination of values. The system was generalised to include warnings and other kinds of messages that might prove useful in an activity of standardised data entry.
Now that Project35 supports field validation services and general plugins at the field, record and document levels of data entry activity, it is unclear whether this system will become more popular. The Project35 Alerts system is limited in that it will only identify patterns of values found within the same record. However, the system allows end-users to enhance the toolís validation capabilities without having to code plugins. This benefit may prove important in settings where there is a scarce availability of software developers to make validation plugins.
Project35ís validation package has been modified so that validation routines return a collection of alerts rather than a String that could contain an error message. This was done to allow validation plugins to return results that reflected different kinds of data quality.
|Scope of Effect||
The Alerts package is becoming more intertwined with the Validation
package. Validation services described in the
|Relevant Code Packages||
Most of the classes used to support alerts functionality are found in
Back to top
|Purpose||These are to record associations between collections of field values in a given type of record and an intent, which may be a warning, an error, an information bulletin, or a request for information by someone.|
|Description||Alerts Bundles are zipped series of XML files that record associations between collections of field values in a given type of record and an intent, which may be a warning, an error, an information bulletin, or a request for information by someone. The only thing that is really blocked is exporting to final submission format.|
|Design Considerations||Something was needed that represented a collection of alerts. Some means of serialising alerts as a series of xml files that are contained within a ZIP file.|
|Scope of Effect||Only within the Alerts System and Alerts Editor.|
|Relevant Code Packages||
Back to top
|Purpose||To provide domain experts a means of codifying their expertise in a way which could be used to electronically identify combinations of field values within someone else's documents.|
Project35 has an editor that allows domain experts to specify
alerts which can be incorporated as part of the software's feature for
checking errors in a document.
An alert is an association between a set of field matching criteria on the same form and one of the following intents:
For examples of alerts, first consider a form "patient" which has fields "gender" and "cancer_type". An alert could specify that the combination of values "gender=male" and "cancer_type=ovarian cancer" is an error. A warning alert might be that a combination of drugs used in a diagnosis is known to have undesirable side effects. An information bulletin alert might associate the make and version of a laboratory machine with a notice that some aspect of the device should be upgraded. A request alert for further information could associate a combination of medical symptoms with a request to contact some researcher who is doing a related clinical study.
Groups of domain experts use the editor to create a collection of alerts known as an alert bundle. Each bundle is a *.ZIP file that contains a small XML file for each alert. Alert bundles can be managed on the same local machine as the Project35 installation or be managed on a web page managed by some remote server.
Document authors can reference one or more alert bundles. When they attempt to validate the current document, Project35 scans for records which match patterns described by the alerts.
The editor is invoked by a call to
The Project35 Alerts Editor
The dialog is represented by an instance of
Each Alert that is created is
a combination of the intent and an instance of the data container class
|Design Considerations||The Project35 Alerts Editor was developed to allow domain experts to create validation services in a way that did not involve writing code. The alerts could be created by multiple curation groups and made available to multiple document authors via URLs for alert bundle ZIP files.|
|Scope of Effect||
Most changes made to the Alerts Editor should only impact code found
|Relevant Code Packages||
Back to top