The RSNA MIRC Source Code
This article how to obtain and build the RSNA MIRC software. It is intended for programmers, and it assumes familiarity with Java and Ant.
There are two different MIRC implementations. The older one, MIRC1, runs as a collection of webapps under Tomcat. The new one, MIRC2, runs as a plugin to CTP.
The software for CTP and both MIRC implementations is open source. All the software written by the RSNA for the project is released under the RSNA Public License. It is maintained on GitHub.
To build CTP/MIRC, you must obtain copies of both the CTP repository and the MIRC2 repository from GitHub. Both repositories must be placed on the same disk in such a way that they share the same parent directory. CTP must be built first, and then MIRC can be built.
See Extending CTP for instructions on obtaining the CTP source code. After unpacking the zip file, rename the top-level directory, which will have long name, to CTP.
To obtain the MIRC source code, go to http://github.com/johnperry/MIRC2 and click the Downloads button.
When you download the MIRC2 repository from GitHub, you obtain a zip file containing a directory tree full of the sources and libraries for building the plugin. The top of the directory tree has a complicated name that includes the letters MIRC2. After unpacking the zip file, rename the top-level directory to MIRC2. The directory contains several subdirectories. The source code is in the source directory, which has three subdirectories, one each for the Java sources, the files required by the application, and the default CTP configuration file used when CTP hosts a MIRC site.
Building CTP and MIRCrequires the Java 1.5 JDK and Ant. Running CTP with the MIRC plugin requires the JRE and the JAI ImageIO Tools.
The Ant build file for CTP is in the MIRC2 directory and is called build.xml. To build the software on a Windows system, launch a command window, navigate to the MIRC2 directory, and enter ant all.
The build file contains several targets. The all target does a clean build of everything, including the installer and the Javadocs.
The Javadocs can be accessed with a browser by opening the file:
The installer, which installs both CTP and the MIRC plugin in the same operation, is located in the products directory.
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:
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-full.jar – the complete installer for a MIRC site, including all the standard libraries and the database. This product is therefore fairly large - about 35MB.
- 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.
2.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 MIRC development team monitors all the MIRC forums and tries to provide rapid responses to problems and questions.