Human Imaging Database Web Interface and web application framework


Introduction

A fairly generic J2EE based human imaging database querying and maintenance interface for BIRN HID schema databases.

Prerequisites

  1. JDK 1.6+ is necessary for HID web application which uses Java generics is a major Java language enhancement only available Java 5 (JDK 1.5) or later. The latest JDK available is recommended. (http://java.sun.com/j2se/downloads/)
  2. Apache Ant for build (1.6.x or later) (http://ant.apache.org/)
  3. Jakarta Tomcat servlet/JSP container (http://jakarta.apache.org/tomcat/ )
  4. Make sure your database is setup for HID web application

Preliminary Database Setup

Make sure your database schema matches your HID web app version

Postgres Support
Postgres is the recommended and supported version starting with HID app version 2.0.3 and later. Use the latest Postgres db generation scripts available via; The instructions are in $CHEMA_HOME/Postgres/db_objects/README file.
Oracle support
As of HID web app version 2.0.3, Oracle version of HID schema is not maintained.

Checking the database static data integrity

You can check if your database has the necessary minimal static data for HID web app to function via the following ant task
  ant db-integrity-check
Before being able to do this you need to build and deploy for web app following instructions in Quick Start section. For Oracle databases, you need to specify the database schema name (BIRNWEB for fBIRN HIDs) when prompted. For Postgres databases just press return. If your database has the correct static data, you will get
[groovy] The necessary static data to ensure correct operation seems to exists in your database!
When the patches are successfully applied or for a new database created using the latest schema generation scripts from https://www.nitrc.org/svn/hid/schema/tags/release-2.2, you should have a HID database (Oracle or Postgres) ready to be used with HID web application.

Quick Start Guide

Getting the source code from stratch

svn checkout https://www.nitrc.org/svn/hid/clinical/tags/release-2.2
Assuming, you have run svn checkout command in your home directory ($HOME), you will have a directory $HOME/release-2.2/clinical, which will be called $CLINICAL_HOME in the rest of this document.

Updating existing HID web app code base

in your $CLINICAL_HOME$ directory
svn status
svn update

Build and Deployment

Copy $CLINICAL_HOME/build.properties.template to $CLINICAL_HOME/build.properties and edit the Tomcat installation directory information to point to your tomcat installation. In the example below Tomcat version 4.1.24 is installed in directory /data1/opt/tomcat-4.1.24.
# The directory where your Tomcat application server is installed
tomcat.home=/data1/opt/tomcat-4.1.24
# servlet jar filename 
# In Tomcat v 5.x the servlet jar file is for some reason renamed
# from servlet.jar to servlet-api.jar. If you are using Tomcat 
# version 5.x use servlet-api.jar or servlet.jar for earlier
# Tomcat versions
servlet.jar.name=servlet.jar

# The web application name for your HID web app installation. 
# For most cases the default will work fine. 
webapp.name=clinical
In $CLINICAL_HOME, run for the first time build and deployment
$ ant clean-all
$ ant bootstrap
$ ant
Check static data integrity
  ant db-integrity-check
For subsequent code updates
$ ant clean
$ ant

Running Application

Startup your tomcat server
$ ./$TOMCAT_HOME/bin/startup.sh
Point your browser to http://localhost:8080/clinical/

Enabling Web Services

Login to your primary database as the admin user, click on the App Configuration left menu link and select Web Services tab and enter the primary database id as the DB ID for Web Services parameter value ( See for details) and press the Edit button.

Configuration for using GridFTP/Resource Location Service (RLS) as distributed image storage system

Before you will be able to use any Globus Services such as GridFTP or RLS, you need to enable a trust relationship between your HID web server (Tomcat for example) machine and BIRN. This is accomplished by having BIRN certificate authority (CA) certificates and signing policy files in the /etc/grid-security/certificates directory of the server host machine. If you already have a GridFTP server or client setup you can just copy the /etc/grid-security/certificates directory from that machine to your HID web server machine. Otherwise please consult GT components deployment.

Registering your GridFTP server logical names with Resource Location Service (RLS)

First install HID clients using ant
$ant install-hid-client
After that go to $HID_CLIENT_HOME/bin directory and execute rls_tool.sh The example below registers the logical image location pointers in the (default) HID postgres database hidprdp at host localhost on port 5432 as having corresponding physical locations on the GridFTP server at perception.ucsd.edu using myproxy user bozyurt on the default RLS server rls://rls1.nbirn.org:39281. The default database user postgres is used to retrieve the logical names from the database. The script prompts for the passphrase of the myproxy user (here bozyurt) to retrieve a valid certificate as used to authenticate with the RLS server.
 rls_tool.sh -c register-db-content -dbpwd pwd -g perception.ucsd.edu  -u bozyurt
rls_tool.sh
Usage: RLSTool -c  OPTIONS

        -c <command> [register-db-content|register-from-filelist]
Common OPTIONS
        -g <gridftp-host> The the gridftp hostname for physical locations where the logical names are mapped to
        -u <user-name> Your myproxy user name
        -r <RLS-server-url> (default: rls://chi-vm-4.isi.edu:39281)
        -m <myproxy-server-host> (default: certs.nbirn.org)

OPTIONS for register-db-content command
        -dbhost <db-host> the Postgres database server host name (default: localhost)
        -schema <schema> the Postgres database schema name (default: hidprdp)
        -dbport <port> the Postgres database connection port (default: 5432)
        -dbuser <dbuser> the Postgres database user for connection (default: postgres)
        -dbpwd <pwd> the Postgres database user's password

OPTIONS for register-from-filelist
        -f <logical-file-name-list>

Preparing Your System for Image Downloads via the Web Interface

Before being able to use HID web app image download and preview features, you need to provide file/object type information (metadata). This can be accomplished using the HID DB administration GUI provided with version 2.2 and up. To run this tool, simply type
ant  admin-tool
In the GUI select Data Object Registration Tab.

To prepare your database for image viewing support, select Object Type Registration for ImageViewer tab. Step-by-step instruction are available, if you press Help button. In this panel, registration of structural (t1 and t2) DICOM tar files fo a selected experiment in your image storage for image previewing via the HID web application is done.

To prepare your database for image download support, select Object Type Registration for download tab. Step-by-step instruction are available, if you press Help button. You will assign data types to raw data logical names in your HID, using this panel.


Detailed Configuration

Getting the code

svn checkout  https://www.nitrc.org/svn/hid/clinical/tags/release-x.y
where x.y represents the version number. For example to get the stable version 2.2 you type
svn checkout  https://www.nitrc.org/svn/hid/clinical/tags/release-2.2
Assuming, you have run svn checkout command in your home directory ($HOME), you will have a directory $HOME/release-2.2/clinical, which will be called $CLINICAL_HOME in the rest of this document.

Build process

Copy $CLINICAL_HOME/build.properties.template to $CLINICAL_HOME/build.properties and edit using for Tomcat installation directory information
# The directory where your Tomcat application server is installed
tomcat.home=/data1/opt/tomcat-4.1.24
# servlet jar filename
# In Tomcat v 5.x the servlet jar file is for some reason renamed
# from servlet.jar to servlet-api.jar. If you are using Tomcat
# version 5.x use servlet-api.jar or servlet.jar for earlier
# Tomcat versions
servlet.jar.name=servlet.jar

# The web application name for your HID web app installation.
# For most cases the default will work fine.
webapp.name=clinical

Build and Deploy

In $CLINICAL_HOME, run for the first time build and deployment
$ ant clean-all 
$ ant bootstrap
$ ant 
One-time per HID web app release with database schema change bootstrapping, asks for site/user specific information to build a minimal users.xml file to connect to your database and configure your web based user/database/application configuration with sensible default values.
For later updates
$ ant clean 
$ ant
ant clean-all removes everthing deployed under $TOMCAT_HOME/webapps/clinical and also deletes every generated configuration file to start from scratch ant clean removes the compiled java classes, properties files and the struts-config.xml file.

Running web user interface

  1. Start Tomcat
    $ $TOMCAT_HOME/bin/startup.sh
  2. open a browser (Netscape (4.7 and higher/Mozilla 1.0.2 or higher or Internet Explorer 5 and higher ) and type http://localhost:8080/clinical/
  3. Stop Tomcat
    $ $TOMCAT_HOME/bin/shutdown.sh

Building the Javadoc documentation

Run
$ ant javadoc
After that, point your browser to $CLINICAL_HOME/doc/api/index.html

Download Manager Configuration (as of Version 2.0)

The section below represents Download Manager configuration section of clinical.properties file. In order to be able to use download manager, your HID database tables nc_dataobjecttype, nc_dataobject and for project download management, nc_dataarchive tables must be properly populated.

By default download manager is available when your database tables (nc_dataobjecttype, nc_dataobject and for project download management, nc_dataarchive tables) are properly populated.

Email notification for the download jobs can be setup, if an email server is available, using the application configuration console ( See for details).

The default recognized file object types are ANALYZE and Eprime located in locally accessible file system for the deployed HID web app. More file/data object types can be added to the default configuration file $CLINICAL_HOME/conf/clinical-conf.xml BEFORE the first build and deployment.

During the bootstrapping where the minimal users.xml file is generated, the HID database is populated with defaults using the $CLINICAL_HOME/conf/clinical-conf.xml file for birn profile or $CLINICAL_HOME/conf/local-clinical-conf.xml file for local profile.

Preparing your HID for download and structural image previewing capability

Before being able to use HID web app download and structural image previewing capabilities the image file location pointers created during image series uploads via upload script have object type metadata assigned to them. This can be done using the HID Admin Tool GUI by running
$ ant admin-tool
Please check the context sensitive help by pressing the Help button in tabs named Object Type Registration for ImageViewer and Object Type Registration for download.

Downloadable data object types setup (Advanced)

If you want to change and/or add new downloadable object types for HID web app download functionality, the types of data objects that will be downloadable can be configured by
ant data-object-type-config
This custom ant task allows the addition/deletion and listing of dataobject types supported by the application. For most usage scenarios, this needs to be done only once. After this, tomcat server needs to be restarted.

Freesurfer Derived Data Import

The web services client can be installed by running ant
ant install-hid-client
You will be prompted to enter the installation directory. Before the Fresurfer derived data import client is invoked, you need to populate your database with metadata, which is accomplished by running;
ant import-fsa-metadata
After successful derived data metadata setup, you can run the import client fsa_import.sh, which is available under $HID_CLIENT_HOME/bin directory. Your HID web app server needs to be up and running before you attempt running the Freesurfer derived data import client. Also, you need set the DB ID for Web Services field in the Web Services tab of the Application Configuration Module, available on the left hand side menu, if you have logged in as the admin user for the primary site.
Usage: FSAImportClient -u <webUser> -p <webUserPwd> -x <xcedeDir> -a <shortAnalysisName> \
       -s <snapshotID> [-host <HID-web-app-host>] [-port <port-number>] \ 
       [-context <application-context>] [-useSSL]  [-mrml]
For example:

fsa_import.sh -u b -p b -a FreeSurfer -s 0001 \
-x /home/bozyurt/work/fsanalysis/fBIRNPhaseII__0010/Data/001029291693/scanVisit__0010__0002/MRI__0001/t1/Analysis/FreeSurfer__0010__0001 \
-host localhost -port 8080

-x xcedeDir
        XCEDE directory contains XCEDE XML files for the Freesurfer (or other) summary
        derived data including provenance information (provenance.xml). Also the actual
        derived data is included as a tarball (.tgz or tar.gz) in this directory.
-host <HID-web-app-host>
        (Default: localhost) e.g. loci.ucsd.edu
-port <port-number>
        (Default: 8080)
-context <application-context>
        (Default: clinical)
-useSSL	
	use this option if the web service provider HID web app is supporting only HTTPS.
-mrml	
	also upload Slicer MRML files included in the data dir to be uploaded.

Freesurfer Derived Data Removal

The removal the corresponding database records for a Fresurfer derived data session expressed in XCEDE can be done vi the custom ant task
ant remove-fsa-from-db
This ant task will ask for xcedeDir (XCEDE directory), which contains XCEDE XML files for the Freesurfer (or other) summary derived data including provenance information (provenance.xml). Basically the required xcede directory used for the import of the derived data in the first place.
Beware of the fact that the corresponding SRB data is *NOT* removed from SRB.

Setup for HID web services served over HTTPS with self-signed or lesser known SSL certificates

If your HID web app is running on a secure web server with a self-signed certificate or a SSL certificate purchased from one of the lesser known discount SSL certificate providers, chances are that your certificate will be not recognized by the Java web service clients. To resolve this
$ ant install-certificate
and provide the hostname for your secure web server (e.g. loci.ucsd.edu ). Make sure that you are running this as ROOT or as a user with enough privileges to write to your default Java Development Kit (JDK) installation truststore.

Clinical Assessment Metadata/Data Import

The web service clients can be installed by running ant
ant install-hid-client
You will be prompted to enter the installation directory.
To import new clinical assessments in XCEDE2 format into your HID database, you can run the assessment import client as_import.sh, which is available under $HID_CLIENT_HOME/bin directory. Your HID web app server needs to be up and running before you attempt running the clinical assessment data import client. Also, you need set the DB ID for Web Services field in the Web Services tab of the Application Configuration Module, available on the left hand side menu, if you have logged in as the admin user for the primary site.
Usage: XCEDE2ServiceCLIClient -u <webUser> -p <webUserPwd> \ 
   -x <xcedeAssessmentFile> -i <protocolID> -v <protocolVersion> \ 
    [-host <HID-web-app-host>] [-port <port-number>] \ 
    [-context <context>] [-useSSL]
For example:

import_as.sh -u b -p b -i "Subjects screening protocol" -v 1 \
-x ses.xcede \
-host localhost -port 8080
-i protocolID
        Corresponding Protocol ID from HID nc_protocol table
-v protocolVersion
        Corresponding Protocol Version from HID nc_protocol table
-x xcedeAssessmentFile
        full path to the XCEDE2 assessment file
-host <HID-web-app-host>
        (Default: localhost) e.g. loci.ucsd.edu
-port <port-number>
        (Default: 8080)
-context <application-context>
        (Default: clinical)

All available Ant Tasks for HID web app

You can check all the high-level ant tasks available for HID web app data management by typing;
$ ant -projecthelp

Buildfile: build.xml

Main targets:

 allTests                 Runs idempotent automatic tests as used by continuous integration. Please create and setup conf/test.properties file before running the unit tests
 bootstrap                does minimal configuration and prepares the database for application
 clean                    deletes the contents of tomcat/webapps/clinical/ and struts_config.xml
 clean-all                cleans up your tomcat webapps/clinical and all the generated configuration files (struts_config.xml, users.xml and clinical.properties)
 data-object-type-config  Manages data object types (types of the downloadable data) stored in the database
 db-integrity-check       Checks the primary database for static data integrity
 delete-fsa-metadata      removes Freesurfer analysis metadata from the database. Make sure there is no freesurfer analysis in the database before attempting this!
 import-fsa-metadata      imports Freesurfer analysis metadata into database
 install-certificate      installs SSL certificate for WS server as trusted
 install-hid-client       installs HID Web service clients
 javadoc                  Generate JavaDoc API docs
 remove-fsa-from-db       Given a Freesurfer XCEDE dataset removes it from the database
Default target: compile

Securing your Web Server

Setup for HID web services served over HTTPS with self-signed or lesser known SSL certificates

If your HID web app is running on a secure web server with a self-signed certificate or a SSL certificate purchased from one of the lesser known discount SSL certificate providers, chances are that your certificate will be not recognized by the Java web service clients. To resolve this
$ ant install-certificate
and provide the hostname for your secure web server (e.g. loci.ucsd.edu ). Make sure that you are running this as ROOT or as a user with enough privileges to write to your default Java Development Kit (JDK) installation truststore.

Creating a self signed certificate for Apache web server

  1. Generate a private key
    $ openssl genrsa -des3 -out server.key 1024
    
    Note: If you don't want to enter passphrase every time Apache server starts don't enter a pass phrase in this step.
  2. Generate a Certificate Signing Request (CSR)
    $ openssl req -new -key server.key -out server.csr
    
    Here make sure the Common Name asked is your hostname (e.g. loci.ucsd.edu).
  3. Generate a self-signed certificate
    $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    Here the generated certificate is valid for a year (365 days)
  4. Assuming your Apache has mod_ssl support and installed under /usr/local/apache
    $ cp server.crt /usr/local/apache/conf/ssl.crt
    $ cp server.key /usr/local/apache/conf/ssl.key
    
For more information check this link.

HTTPS setup for Tomcat(Necessary to avoid eavesdropping, man in the middle attacks)

SSL Configuration for Tomcat Servlet/JSP Container as as standalone web server

Create a self-signed certificate valid (say ) for 400 days with a password value of "changeit" for both the certificate and the keystore itself. The following command using Sun JDK tool keytool will both create a keystore in $HOME/.keystore file and add a self-signed certificate with alias tomcat to it.
keytool -genkey -alias tomcat -validity 400 -keyalg RSA
Edit your $TOMCAT_HOME/conf/server.xml file for HTTPS support as indicated in SSL Configuration for Tomcat 5.0/6.0.

Important: Also comment out the Connector for port 8080 in your server.xml file so that your tomcat only serves via HTTPS protocol.

After that start your tomcat and point your browser to https://localhost:8443/ for test.

Adding server certificate to truststore (on the client side)

Prepare a truststore for secure remote clients (like web services clients (currently onl XCEDE export client) and security admin client
  1. export the RSA certificate with alias tomcat from the keystore of the server machine
     keytool -export -alias tomcat -file tomcat.cer
    
  2. import the RSA certificate into your security client's truststore. Every security client needs to access to a local truststore containing trusted server's certificate. The truststore is only needed if you self sign your certificate. The default truststore for your Java installation where the client program will run is named cacerts and usually located under $JAVA_HOME/jre/lib/security/cacerts You need to add the exported certificate tomcat.cer into the default truststore for encrypted access to Apache Axis web service engine running inside the deployed HID web app.
    keytool -import -alias tomcat -keystore $JAVA_HOME/jre/lib/security/cacerts -file tomcat.cer
    
    When asked `Trust this certificate?`, enter Yes. You may need temporarily give write permissions to the truststore file.

Running Unit Tests (Optional)

First you need to copy $CLINICAL_HOME/lib/junit.jar to $ANT_HOME/lib directory to be able to use JUnit for unit testing. Then you need to copy $CLINICAL_HOME/conf/test.properties.example file to $CLINICAL_HOME/conf/test.properties and modify this file according to your local system configuration. Please see below for an example test.properties file.

After that, you run (in $CLINICAL_HOME directory)
$ ant run-basic-tests
for tests checking if your users.xml is syntactically valid, whether you can connect to your database from the application and can access the SRB via SRB java API.

Or run

$ant run-tests
for basic unit tests plus test modifying ( adding and removing a new subject) the database.

A typical test property file is as follows
-----------------------------------------
# necessary for running ant run-basic-tests
mbirn.dbid=<database-id-as-specified-in .users.xml="">
mbirn.dburl=jdbc:oracle:thin:@fmri-gpop:1521:orcl1
mbirn.user=ucsd_fmri
mbirn.pwd=<a-password>
mbirn.users_file=/opt/tomcat-4.1.24/webapps/fbirn_clinical/WEB-INF/users.xml
# the web user defined as admin in users file pointed by the
mbirn.users_file property above
mbirn.admin_user=admin
mbirn.admin_pwd=<admin-pwd>
# for SRB Jargon tests
# points to your .srb directory
srb.user_info_file=/home/bozyurt/.srb
# you can leave the next 3 properties unchanged
srb.series_path=/home/BIRN/Human/Clinical/UCSD/000800156805/Visit_001/Study_0001/RawData/005.ser
srb.local_series=/tmp/000800156805
srb.container_path=000899127551_Visit_001_Study_0001_005_ser
# not used currently
#mbirn.owner=ucsd_fmri
#mbirn.moduser=ucsd_fmri
#mbirn.cacheroot=/home/bozyurt/dev/java/fbirn_clinical/bin/test
# For tests adding and removing data to the datase
# For basic tests you can skip this portion of the configuration file
# for subject/visit management session facade testing
# This test is not included in basic test suite
# you need to change visit.experimentID to point to the UNIQUEID column
value in the nc_experiment # database table for the experiment this
visit will be associated
# Also both visit.segment.protocolID and visit.segment.protocolVersion
must correspond to the column values
# PROTOCOLID and PROTOCOLVERSION in the NC_PROTOCOL table,
respectively.
subject.subjectID=UCSD23456789
visit.subjectID=UCSD23456789
visit.experimentID=7
visit.visitType=clinical
visit.description=just a test visit
visit.segment.description=test segment
visit.segment.protocolID=UCSD_ADRC_BATTERY
visit.segment.protocolVersion=1
# for visit update test
visit.new_description=New Visit description
visit.segment.new_description=New segment description

Contact Information

For any questions, comments, bug reports contact I. Burak Ozyurt (iozyurt@ucsd.edu)

WHAT'S NEW

----------

A list of changes in recent versions

2.1.1 :(7-Oct-2008)
      - Added SOAP web services for Slicer Freesurfer data support using a RESTFull 
      HID proxy server.
      - Bug fixes and small enhancements.

2.1   :(26-Aug-2008)
      - Added XCEDE2 based assessment metadata and instance data import web service 
      support Tablet based assessment entry system.
      - Replaced wizard based clinical assessment query builder with Web 2.0 style 
      dynamic single page/tab query builder interface.
      - Added metadata driven derived data query builder functionality with Web 2.0 UI.
      - Added SSL support for Freesurfer derived data import web client service.
      - Added new options for CSV exporting functionality for one-subject-per-line or
      one-visit-per-line layouts and including/excluding derived data in the export.
      - Added distributed caching with event notification to sync their cache state
      between federated web apps to optimize performance.
   
2.0.2 :(10-Apr-2008)
	- Added database based user/database and application management capability with 
	web based user interface.  
	- XCEDE2 based Freesurfer derived data import web service and client application. 
2.0.3 :(7-Jul-2008)
	- Updated documentation and minor fixes.
	- Extended image download functionality.
   
2.0 :(11-Oct-2007)
	- Added project-wise and fine grained download management with shopping chart 
	for selecting image and clinical data to download. 
	- More AJAX based usability improvements including dynamic scatter/regression 
	plots , suggesters for some input fields etc.
	- Public login operation for public data sharing. 

1.7 :(18-Apr-2007)
	- Integrated descriptive statistics and bivariate regression/plotting
	support for data exploration.
	- Integrated job scheduler for batch (query) jobs with AJAX based 
	notification and monitoring system. Currently, the builtin batch query
	job allows you to get all the clinical assessment data for the user
	selected assessment of all the subjects returned by an assessment 
	query.
	- An AJAX based reusable/extensible context sensitive help system.
	- Internet Explorer (tested on IE 7) is supported besides Mozilla based
	browsers.
	- CALM generated forms are fully integrated with HID web app at Struts
	code generation step, fully automating new assessment form additions.
	- Some cosmetic and bug fixes.

1.6.1 :(18-Apr-2006)
	- extended data access layer of the system introducing Abstract 
	Factory pattern to handle different type of databases 
	interchangeably at runtime. Both Oracle and Postgres is supported
	right out-of-the-box.
	- multi-site query support between postgres and oracle sites.
	- updated connection pool to detect stale Postgres connections in
	the pool.
	- some bug fixes 
   
1.6.0 :(5-Apr-2006)
	- added subject/experiment contents in XCEDE form secure Web Service
	and client.
	- Answer delete functionality with multi-answer questions.	
	- Various bug fixes and code refactorings.

1.5.3 : (28-Mar-2005)
	- added NAART and SES clinical assessments.
	- clinical assessment cover page mandatory fields have 
	default values now.
	- When last page of the online assessment is submitted clinical
	returns to the page you started adding/editing assessment.
	- code refactorings.

1.5.2 : (25-Jan-2005)
	- multiple answer question, unanswered question support in GAME
	- A majority of the fBIRN Phase II assessments are hooked with GAME
	- Enhanced display logic for multi-valued score results displays
	- Remote (security) administration support (client/server model over
	  custom XML-RPC) for dynamic user administration of the web app (see
	  $CLINICAL_HOME/REMOTE_ADMIN_SETUP_GUIDE.txt)
	- Various bug fixes and code refactorings.

1.5.1 : (4-Oct-2004)
	- streamlined GAME with multiple page online clinical assessment 
	support.
	- Three clinical assessments (Quick Mood scale, ASI and BDI) is 
	hooked to the visit/segment management section
	- Supports the new uniqueids ( the latest changes to the BIRN DB schema
	- A simple framework to facilate scripting of data access layer to 
	build data maintenance scripts in Java (clinical.tools.maintenance)

1.5 : (20-Sept-2004)
	- Ability to save queries and use it later as a template.
	- Score ranges and enumerations in query building as an aid and also
	  for validation
	- Supports the updated BIRN DB schema

1.4.1 : (15-July-2004)
	- Fixed and enhanced image series caching system for SRB 3.x Scommands
	  and new SRB directory hierarchy
	- Fixed hash key problem with MultiSite query association tables. Now 
	  more than one two-database association can be handled correctly.

1.4 : (23-June-2004)
	- Added Postgres support 
	- Streamlined the installation process

1.3 : (22-May-2004)
	- Added generic assessment management engine (GAME) support.
	- Enhanced the stream-lined mediator
	- Minor UI enhancements
	- Added Quick Mood Scale Assessment management support ( for fBIRN), 
	which can be accessed from the Subject Management section. Select a visit
	with Quick Mood scale and press Edit to edit a Quick Mood scale. To add
	a Quick Mood scale, press 'Add Quick Mood Scale' button.

   
1.2a : (18-Mar-2004)
	- Added mediated assessment and subcortical support. The ontology is 
	emulated by a simple mapping file (as_var_map.xml)
	- Added multiple database parallel queries support with a better 
	response time than the current version of mediator provides.
	- Added SiteID to the query summary result and as a variable to the
	exported CSV files.

1.1 : (27-Feb-2004)
	- Multiple database connection pool support to select the database to 
	  connect during login. (users.xml structure is changed to accommodate this)
	- SOAP based integration support with the Query Atlas 
        - Query results are grouped by visit and segment now.
        - Enhancements for portal integration including functional portal SRB browser
	  integration and almost functional (functional on HID web app end) portal stats
	  integration.
        
1.0 :  (12-Feb-2004)
	- Synchronized Morph-BIRN UI codebase with the FIRST-BIRN UI;
	- Regenerated data access object (DAO) and value object (VO) code for
	  the latest FIRST-BIRN/Morph-BIRN schema;
	- Added (optional) details on the assessments and demographic information 
          for the visits of a subject to the subject-visit-detail screen.
        - State cleanup during an error while using the query wizard works 
          correctly now.
	- Added failback mechanism for representative MRI slice image generation,
	  in case SRB is not responding.
	- Now you can use wildcard operator * for all query variable types,
     	  to retrieve every subject's data for that query variable.
    	- Added external executables (for Linux) for MRI image series retrieval
   	 and DICOM to AFNI conversion setup.