Purpose: to develop a research computing framework for a large research program in IGART. The goals are to maximize reuse of code developed by cooperating research projects, to seamlessly integrate new types of research data with the database of a commercial treatment planning system (TPS), to allow for automated processing of large quantities of data, and to provide a robust software infrastructure for in‐house clinical implementation of research results. Method and Materials: The language of implementation is C++. The goal of reusability is achieved by dividing the framework into two software layers: Data Abstraction Layer (DAL), and Data Interface Layer (DIL). DAL consists of classes representing abstract data types. Research algorithms operate on DAL objects. The DIL consists of data readers implemented as classes inherited from the DAL parent. The DAL object factories retrieve data by reading data configuration files which specify the type, the format, and the physical location of data to be retrieved. An object factory instances a required DIL reader which is presented to the user as a DAL class. By this design one ensures that data processing algorithms are independent of data formats. The goal of integration with the TPS is achieved by creating a file based research database which parallels the TPS database. A data configuration file represents a database entry. The goal of automation is met by introducing a Database Interface Object (DIO) which aggregates object factories. A scripting interface allows users to retrieve data, call “user hook” function where data processing takes place, create DAL classes which are filled by the processed data, and write results into the database in user‐specified format. Results: We used object oriented design patterns to develop a robust research computing framework for IGART research. This work supported by NIH grant P01CA11602.
ASJC Scopus subject areas
- Radiology Nuclear Medicine and imaging