Geneva-The IHE Registration System

From MircWiki
Revision as of 23:09, 17 January 2010 by Johnperry (talk | contribs)
Jump to navigation Jump to search

This article captures information about Geneva, the registration system used in IHE Connectathons and demonstrations. The intended autience for this article is developers working on the project and demonstration participants using the system.

1 Obtaining the Geneva Installer

The Geneva installer is a Java program. Download the program from http://mirc.rsna.org/Geneva/Geneva-installer.jar.

2 Installing the Geneva

To install the program, place the installer on a computer which has the Java 1.6 JRE and run it. The result will be a folder called Geneva containing all the necessary files. (You can put the installer in the root of a drive or in any subfolder. On certain Vista machines, there may be a problem writing into the root of the C drive. If you manually create a folder called JavaPrograms, the installer will automatically find it and offer to install the program there.)

3 Running the Program

To run the program itself, it is best to run it from a command window because that allows you to provide more heap space for large images than the default provided by Java. Launch a command window and enter the command:

java -Xmx256m -jar Geneva.jar

For testing, or for situations which do not require additional heap space, the program can be running by double-clicking the Geneva.jar file.

On initial installation, the program has one user with username admin and password password. The admin user has all privileges, including the ability to create additional users.

4 Conventions

Geneva is designed to allow participating vendors to create configuration elements for their systems. To prevent vendors from modifying other vendors' configuration elements, Geneva imposes a convention which applies to the id attributes. Users are only allowed to modify the configuration elements which have id attributes which contain the user's username surrounded by underscores (for example, REP_MYCompany_3. When the Configuration Editor servlet is used to create configuration elements, it automatically creates id attributes which obey this convention. For that reason, an administrator should use the

5 Obtaining the Geneva Source Code

The software for the program is open source. It is released under the RSNA Public License. It is maintained on a CVS server at RSNA headquarters. To obtain the source code, configure a CVS client as follows:

Protocol:           Password server (:pserver)
Server:             mirc.rsna.org
Port:               2401
Repository folder:  /RSNA
User name:          cvs-reader
Password:           cvs-reader
Module:             Geneva

Together, this results in the following CVSROOT (which is constructed automatically if you use something like Tortoise-CVS on a Windows system):

:pserver:cvs-reader@mirc.rsna.org:2401/RSNA

This account has read privileges, but it cannot write into the repository, so it can check out but not commit. If you wish to be able to commit software to the CVS library, contact the project manager.

6 Building the Software

When you check out the RegSys2010 module from CVS, you obtain a directory tree full of the sources and libraries for building the program. The top of the directory tree is RegSys2010. It contains several subdirectories. The source code is in the source directory, which has two child directories, one each for the Java sources and the files required by the program.

Building RegSys2010 requires the Java 1.6 JDK.

The Ant build file for Geneva is in the Geneva directory and is called build.xml. To build the software on a Windows system, launch a command window, navigate to the Geneva directory, and enter ant all. This does a clean build. On a reasonably fast computer, a clean build takes about five seconds. The result is a file called Geneva-installer.jar in the products directory.

7 Notes

The following are random notes to help developers.

7.1 Class hierarchy

The products and data objects which appear in a demonstration are reflected in classes which are organized as in this list:

  • ConfigElement
    • Product
      • DataSystem
        • EHRSystem
          • DCMSystem
        • PDQMgr
        • PIXMgr
          • Registry
      • Repository
    • Study
    • DocSet

The apparent oddity of a Registry being a subclass of a PIXMgr is an artifact of both having the same functionality in the context of Geneva.