Model Driven Aspects of Development
CST uses a configuration file to generate the generic features of both the Administration Tool and the Logging Tool. Configuration properties are described under different sections of the file, each of which is used to generate different parts of the application:Configuration Section | Description | Area of Software Generation |
general properties | describes general project information such as the title, and contact details of the authors who configured CST for the use case |
|
database properties | includes details about ports and servers that are needed to generate the database. | used to generate names of certain tables in the MySQL database and to create database connections. |
tracked object properties | describes the primary key used to describe subjects and various subject attributes which are used in filtering but which are not curated. |
|
activity properties | describes activities and activity steps | used to generate the activity forms in the tabbed pane of the Logging Tool. Also used to generate some of the filter options in the Filters menu and in the dialogs used to import activity data. |
plugin properties | describes properties of plugins used to do tasks in the Logging Tool such as importing and exporting data, retrieving additional information about subjects and generating reports | used to generate the menu items in the Database, Options and Reports menus of the Logging Tool. |
The following sections describe in more detail how the configuration data are used to create most of the software.
Model Driven Development in the Business Concepts Layer
CST uses two generic data structures whose properties are derived from the configuration file. Study subjects are described by TrialSubjectModel. TrialActivityModel is used to describe activities. The attributes of these classes are defined in the configuration file. See section Properties oftracked_object_properties
tag
to find out more about the tags used to define subject attributes in TrialSubjectModel
.
See section
Properties of form
tag to see the
properties used to generate definitions of each TrialActivityModel
used to represent an
activity in the clinical study.
To better understand the relationships between form properties and properties in
TrialSubjectModel
and
TrialActivityModel
, it is useful to review these topics:
Model Driven Development in the Presentation Layer
There are three examples in the Logging Tool of where settings in the configuration file are used to generate the user interface:- the generation of the activity forms
- the generation of filter options in the Filter menu
- the generation of menu items for plugin items in the Database, Options and Reports menus.
Settings in the configuration file are used to generate many aspects of the main forms. Figure MDD-1 shows how general information properties are used to label the dialog titles and generate the Help file that can be accessed via the Help Menu of the Logging Tool.
Fig. MDD-1 - Generating dialog titles and the help file. The project_title
attribute is used in the the title of both the Administration Tool and the Logging Tool.
Most of the other general information attributes are used to generate a Help file.
The next figure shows how form properties are used to generate tabbed panes in the
main display of the Logging Tool. The display_name
form attribute provides
the titles of the tabbed panes. The order
form tag determines the order
in which the tabbed panes appear.
Fig. MDD-2 - Generating the main activity forms. Form properties help name and order the tabbed panes. Field properties help name and order the activity steps on each form.
CST generates the main display of tabbed panes in the Logging Tool by introspecting on activities that
are part of the currently displayed
TrialSubjectModel record.
A TrialActivityView.
is created for each of the TrialSubjectModel
's
TrialActivityModels.
Each view introspects properties of its model object in order to generate a sequence of
DateFieldView displays
to create the main part of the form. A
CommentFieldView is
created to match the comments
member of a TrialActivityModel
.
Figure MDD-3 shows how properties of the database_properties
are used to
help define the lower and upper limit of choices the users can select in the spinners of
form date fields. Note that in future, these parameters will probably be moved into a
more appropriate section such as general_properties
.
Fig. MDD-4 - Supporting guided data entry in date fields. The start and end dates of the study are used to help constrain the choices a user has to fill in a legal date value. on each form.
The configuration file settings are also used to control the appearance of menu items. Figure MDD-5 shows how subject attribute definitions are used to present corresponding filters in the Filters Menu of the Logging Tool.
Fig. MDD-6 - Generating subject attribute filters. Here, the subject attribute "Location" appears as a menu choice in the Filters menu. The Location menu has its own sub-menu comprising unique attribute values taken from the collection of subject records.
Date filters are also generated by the configuration file. Figure MDD-7 shows how definitions of activities and activity steps are used to make cascading menu choices.
Fig. MDD-7 - Generating date filters. The Filter Menu of the Logging Tool contains a sub-menu for each activity which in turn comprises filters for each activity step. Users can further specify whether the filter should accept completed dates, blank dates, or values that fall between two dates for a given step.
The configuration file also specifies where plugins appear in the Logging Tool.
Plugins with the tag import_export_plugin
appear in the Database menu.
subject_information_plugin
plugins appear in the Options Menu and
report_plugin
plugins appear in the Reports menu. Fig. MDD-8 shows an
example of this:
Fig. MDD-8 - Generating menu items for plugins. Plugins defined in the configuration file are triggered by choices that appear in the Dataabase, Options or Reports menus of the Logging Tool.
Model Driven Development in the Data Persistence Layer
CST uses the configuration file to generate databases for both the demonstration and production version of services. The in-memory database used by demonstration services simply manages a collection of business objects (see the first section of this topic).
The software uses a number of configuration settings to generate the MySQL database.
The database_properties
section of the configuration file lets project
members customise the names of core database tables needed by CST. It also contains
properties which help define the length in characters of certain text fields. Fig. MDD-9
shows how these properties are expressed in the database that is generated by the
software.
Fig. MDD-9 - Generating the core tables in CST. Properties of the configuration file are used to name the subject table, the trial activity changes table and the user table. Other properties define the length of text fields in the database.
Most of the fields in the subject table are generated using definitions of subject
attributes which appear in the configuration file. Fig. MDD-10 shows how the
data_storage_name
tag of a subject attribute is used to produce a database
field with the same name.
Fig. MDD-10 - Generating fields in the subject table. Definitions of subject attributes which appear in the configuration file are used to generate fields in the subject table.
Each activity defined in the configuration file corresponds to a table in the database.
The data_storage_name
property of each form
tag is used to name
an activity table. Activity step definitions are used to generate the columns of each
activity table. Fig. MDD-11 shows how activity and activity step definitions are
expressed in the database.
Fig. MDD-11 - Generating activity tables. Definitions of activities and activity steps in the configuration file are used to generate activity tables in the database.
The subject and activity tables are all linked through the use of a common primary
key field which is defined in the tracked_object_properties
section of the
configuration file. Fig. MDD-12 illustrates how the key attribute is used to generate
a database having a star schema.
Fig. MDD-12 - Linking subject and activities together through a shared key.
The primary_key_attribute
tag in the configuration file defines
the primary key used by the subject and activity tables.
When the subject and activities tables are generated, CST automatically creates
database indices for all the primary key fields.
Author: Kevin Garwood
(c)2010 Medical Research Council. Licensed under Apache 2.0.