The RSNA MIRC Source Code
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. All the software written by the RSNA 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: MIRC-Development
Together, this results in the following CVSROOT (which is constructed automatically if you use something like Tortoise-CVS on a Windows system):
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:
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. 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.
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.