QPP Administrator Manual

This page provides instructions to administrator for installing and maintaining QPP. It assumes reasonable familiarity with Linux system administration.

This page is preliminary and currently under construction.

Installation Outline

  1. QPP currently runs only on i386- and x64- based Linux systems. A fast processor, abundant disk space, and 1GB or more of memory is strongly recommended.
  2. Examine the QPP release notes to determine which version of QPP you wish to install. Most of time, it will be the latest release.
  3. The release notes will tell you which release of JSim is necessary to support your QPP release. Install this version, if it is not already installed, by visiting the JSim downloads page.
  4. Download an appropriate QPP binary distribution zip file from the J4 Downloads page.
  5. Set the user environment appropriately.
  6. If this is a new installation, initialize the QPDATA directory.
  7. Unzip the QPP binary distribution zip file in J4HOME.
  8. Familiarize yourself with the QPP system scripts.
  9. If this is an upgrade to an existing installation, kill the existing Dicom server process (storescp).
  10. Update (if necessary) crontab entries with the contents of J4HOME/linux_i386/lib/cronset. The account using this crontab need not be root, but must have write access to the QPDATA directory.
  11. Run StartDicomServer.sh to start the new Dicom server process.
  12. Release qpp to users. 

User Environment

The following environment variables are required QPP operations:

  • JSIMHOME: the home directory for your JSim installation;
  • J4HOME: the home directory for the QPP application;
  • QPDATA: the directory for QP exam and session data;

Other variables affecting typical operation:

  • J4MEM: maximum memory (in MB) for application to use (default=600).
  • PATH: should include $J4HOME/linux_i386/bin;

System scripts and binaries

The following scripts and binaries are found in $J4HOME/linux_i386/bin:

StartDicomServer.sh: This bash script launches dicom server "storescp" (DCMTK application). When dicom server receives a complete dicom transfer (push) it launches FlagPushes.sh

FlagPushes.sh: This bash script makes a list of all of the directories in incoming dicom directory. This list constitutes all of the directories which need to be processed and is passed to TransferExamImages.sh

TransferExamImages.sh Bash script checks to make sure this is the only instance of this script running then proceeds to sort all dicom files noted in the list of directories to their unique exam and unique series database directory. After sorting all files into unique database directories, it removes the removes directory to be processed from list and the actual incoming dicom directory. Finally, it sends a list of all exam database directories to the following java program:

BuildExamXML.sh $examsToCatalog: Java program to catalog the contents of all exam directories listed in $examsToCatalog. Generates an "exam.xml" file in the exam directory which contains relevant exam, series, and patient information.

qpp Launches the QPP user application.

PushSnapshot.sh: called by a QPP session to convert a snapshot .png image to a DICOM image and push it to a DICOM server.

Snapshot2DICOM.sh: called by PushSnapshot.sh to convert a snapshot .png image into a DICOM .dcm file.

RGBImageReadWrite: called by PushSnapshot.sh to convert a .png RGB image to DICOM .dcm format.

dcmodify: called by Snapshot2DICOM.sh to modify metadata fields in created DICOM .dcm file.

storescu: called by PushSnapshot.sh to transfer a snapshot DICOM .dcm file to a DICOM server.

dcmdump: description needed.

storescp: description needed.

The following items are found in $J4HOME/linux_i386/lib:

cronset: crontab entries controlling the processing of DICOM pushes.

The following items are found in $J4HOME/lib:

dicom.dic: DICOM dictionary.

servers.xml: XML file containing DICOM servers that snapshot images may be pushed to.

The QPDATA Directory

QPDATA holds all data relevant to the QPP application. Required sub-directories of QPDATA are:

  • /pushes/: contains 1 subdir for each dicom push
  • /flagged/: contains empty files whose names are pushes subdirs flagged for processing
  • /exams/; contains 1 subdir per exam. each subdir contains exam.xml and 1 or more series subdirs. Each series subdir contains dicom image files.
  • /failed/; contains dicom files whose distribution to /exams/ failed.
  • /logs/: contains error logs.
  • /sessions/: contains 1 subdir per user session.

Model development and archiving support at https://www.imagwiki.nibib.nih.gov/physiome provided by the following grants: NIH U01HL122199 Analyzing the Cardiac Power Grid, 09/15/2015 - 05/31/2020, NIH/NIBIB BE08407 Software Integration, JSim and SBW 6/1/09-5/31/13; NIH/NHLBI T15 HL88516-01 Modeling for Heart, Lung and Blood: From Cell to Organ, 4/1/07-3/31/11; NSF BES-0506477 Adaptive Multi-Scale Model Simulation, 8/15/05-7/31/08; NIH/NHLBI R01 HL073598 Core 3: 3D Imaging and Computer Modeling of the Respiratory Tract, 9/1/04-8/31/09; as well as prior support from NIH/NCRR P41 RR01243 Simulation Resource in Circulatory Mass Transport and Exchange, 12/1/1980-11/30/01 and NIH/NIBIB R01 EB001973 JSim: A Simulation Analysis Platform, 3/1/02-2/28/07.