The RSNA MIRC Source Code

From MircWiki
Jump to navigation Jump to search

This article is intended for software developers who wish either to participate in the development project or simply to adapt the software for a special purpose.

1 Obtaining the RSNA MIRC Source Code

The software for the RSNA MIRC implementation is open source. 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:             MIRC-Development

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 MIRC project manager.

2 Building the Software

When you check out the MIRC-Development module from CVS, you obtain a directory tree full of the sources and libraries for building all the components of MIRC, including the MIRC site software and all the related applications and tools (FieldCenter, FileSender, DicomEditor, etc.). The top of the directory tree is MIRC-Development. It contains several subdirectories. The source code is in the source directory, which has three child directories, one each for the Java sources, any files required by the applications, and the web.xml files required by the MIRC site webapps.

The RSNA MIRC implementation requires Java 1.5 JDK and the JAI ImageIO Tools.

The Ant build file for all the MIRC software is in the MIRC-Development directory and is called build.xml. To build the software on a Windows system, launch a command window, navigate to the MIRC-Development directory, and enter “ant all”. On a reasonably fast computer, a complete build takes about one minute, about half of which is consumed by building the Javadocs.

The build file contains many targets. The all target does a clean build of everything, including the Javadocs, which are put into the documentation directory. The Javadocs can be accessed with a browser by opening the file:

MIRC-Development/documentation/index.html

The quick target can be used to do a clean build of everything except the Javadocs, thus saving a little time.

The default target, mircsite, just builds the MIRC site software.

There are many other targets for building individual libraries or applications.

2.1 The Key Directories

These are the key child directories in the MIRC-Development tree.

  • libraries contains all the required class libraries. Some of the libraries are generated by the build process from the source code; others are provided as jar files in the release and are available in source form in other places (e.g., Source Forge, etc.).
  • documentation contains all the Javadocs generated by the build process.
  • products contains all the executables generated by the build process, including installers for all applications that include multiple files.
  • source contains the complete tree of sources.

2.2 The Key Products

The build process creates many libraries and products. The key products are:

  • MIRCsite-installer.jar – the complete installer for a MIRC site, including all the standard libraries. This product is therefore fairly large - about 10MB.
  • MIRCsite-installer-lite.jar – the lite installer for a MIRC site, including only the MIRC code. This product is about 1MB. It can only be used to upgrade to a new minor release of an existing MIRC release (e.g., from T28a to T28b).
  • FieldCenter-installer.jar – the complete installer for the clinical trials FieldCenter program. This program is a generic instance. To configure it for a specific clinical trial, one would modify the Help.html, anonymizer.properties, and fieldcenter.properties files to provide instructions specific to the trial.
  • DicomEditor-installer.jar – the complete installer for the DicomEditor program, a standalone DICOM viewer, anonymizer, and editor intended primarily as a tool for examining and modifying the dataset elements in a DICOM object or group of objects.
  • FileSender-installer.jar – the complete installer for the FileSender program, a tool for sending files using the DICOM, HTTP, and HTTPS protocols.
  • HttpTest.jar – a self-contained tool for trying to find a way through a proxy server and generally conjugating the HTTP protocol.
  • Decipher.jar – a self-contained tool for deciphering the encrypted database file used by the anonymizer in both the MIRC site software and the FieldCenter program.
  • AuditLogger.jar – a self-contained example program that acts as a receiver for PHI audit trail export objects. This program is not useful on its own; it is intended only to demonstrate how to receive an exported MIRC audit trail event. Sites needing to capture such events can use this code as a starting point for writing an interface to their audit trail systems.
  • ExportManager-installer.jar – the complete installer for the ExportManager program, an implementation of the IHE TCE Export Manager actor.

In addition to the products named above, there are several minor products which are primarily for testing, including HttpReceiver.jar and ManifestGenerator-installer.jar. These are not intended for production use but may be helpful in some situations.

3 Getting Help

If you have questions about something, probably others will as well. Please go to the RSNA Forum site (http://forums.rsna.org), navigate to the MIRC Developers’ Corner forum and post a message there. The RSNA development team monitors all the MIRC forumns and tries to provide rapid responses to problems and questions.