RadioPharmaDose, a java-based open-source software for estimating and reporting internal radiation doses

In this work, a user-friendly Java-based open-source software has been developed for internal radiation dosimetry. Based on values published by the International Commission on Radiological Protection (ICRP), the software calculates the estimated absorbed dose for each organ and also the estimated effective dose, this for about forty of the most known radioactive drugs. In addition, the present software offers many features which include: 1) a very friendly graphical user-interface (GUI) designed to facilitate the process of selecting mandatory input data such as radiopharmaceutical product, administered activity and patient ’ s data, 2) a tool forgeneratingamedicalreport,whichcanbeexportedasPDFfileorprinteddirectlyandthenincorporatedintothepatient ’ s record, 3) a SQLite database for storing patient ’ s specific and dosimetric data. We believe that the presentsoftwarecanbeausefultoolfornuclearmedicineworkers.ItisfreelyavailablefordownloadonGitHub (https://github.com/EL-Bakkali-Jaafar/RadioPharmaDose).


Introduction
As is well-known, a radiopharmaceutical product is typically a radioactive drug used clinically either in diagnostics use or in therapeutic use and typical quantities given are chosen to provide adequate medical image quality while maintaining radiation doses to reasonable levels. Today, in many nuclear medicine services around the world, workers ask for an open-source software that estimating and reporting internal radiation dosimetry which can be added to the patient's medical records. This work offers a such solution; it is about an open-source Java-based software and can be run on multiple platforms, which thanks to its friendly graphical user interface the calculation of dosimetric data with respect of the patient's specific (name, age, etc.) and dosimetric data (radiopharmaceutical drug, injected activity, etc.) is made easy. This software allows one to create a dosimetric report for injected patient, which can be saved as a PDF file then printed on paper.

Related works
For many years, some useful software have been developed with the aim to facilitate calculations of dosimetric data of patients following radiopharmaceutical administrations namely: MIRDOSE [1], RADAR [2] and OLINDA/EXM [3]. Recently, DOSEFX [4] software has been developed for internal dosimetry and it calculates internal organ and tumor doses during clinical radiopharmaceutical administrations. However, these software cannot be widely used in nuclear medicine services around the world because they require users to purchase official license. Recently, a freeware called Dosisrad [5] has been well-developed in Visual Basic language which allows dosimetric calculations of more than 70 radiopharmaceutical drugs and provides a tool to generate a dosimetry report that contains dosimetric data of a given patient administered by a given radiopharmaceutical product which can be included in a patient's medical record. However, this software has some limitations. Firstly, the software is a freeware, unlike open-source software, the code source isn't accessible by other external developers which may restrict its improvement. Secondly, it can be run only on Windows operating system, starting this software in a Linux system has shown some problems in running in the case of an implementation of Windows on Unix such as Wine software. Thirdly, the software doesn't allow one to store patient's data in a database for its next use or analysis.

Software architecture
The source code of RadioPharmaDose software was written using Java programming language. The reason why we have chosen to create a Java-based application is due to the fact that Java provides a very rich and powerful API producing the most portable and flexible application which can be run on various platforms such as Linux, Windows and Mac OS X. The GUI application described in this paper was developed under NetBeans IDE and uses some external open-source libraries. Thus, the code source is divided into three major parts: 3.1 Java sources RadioPharmaDoseMainWindow.java: main window of RadioPharmaDose Java-based GUI application.
RegistredPatientsData.java: singleton class contains a number of setter and getter methods used for recording patient's data.
DoseToOrganData.java: class contains methods to estimate absorbed dose per organ and effective dose. This class has some methods used to access ASCII files that contain ICRP dosimetric data.
DoseTable.java: class inherited from Jframe and has methods to access to data provided by the previous class needed for displaying estimated absorbed dose for each organ in a two columns GUI table component and also for displaying the estimated effective dose in a text field.
RegistredPatientsSqliteDB.java: singleton class that contains a set of setter and getter methods needed for creating, editing and selecting elements from the database that stores a patient's specific and dosimetric data.
PatientsDBTable.java: class extended from Jframe Java base class and uses data provided by previous class for displaying data (name, exam id, record date, effective dose, etc.) related to each patient in a GUI table component.

External jar libraries
is a powerful open-source Java library for creating and manipulating PDF file, it is integrated into our open-source software and it is used for exporting medical report in a PDF format and also it is used for handling the print process of this PDF file.
Jtattoo-1.6.11.jar: Jtattoo [7] is an open-source Java library offering several different Look and Feels for Swing applications, it is used in our open-source software for setting the look and the feel of all GUI components.sqlitejdbc-v056.jar: SQLite JDBC [8] is a Java library for accessing and creating SQLite database files in Java. It is used in our open-source application as default database.

ASCII text files
About forty ASCII text files having a filename extension of ".rfm" are located in the radiopharmaceutical_data sub-directory, each file identifies a radiopharmaceutical product and contains numerical dosimetric data which are based on kinetics models and are obtained from tables of absorbed dose per unit of administered activity published by ICRP in the 80 [9] and 106 [10] publications. These dosimetric data containing the estimated organ absorbed doses (given as mGy/MBq) and the estimated effective dose (given as mSv/MBq), which have been calculated by taking into account patient's age. Indeed, the calculation of absorbed doses has been performed for adults, child of 15-year-old, 10-year-old, 5-year-old, and 1-year-old.

Main capabilities and features
As is well-known, a GUI interface may reduce the time required to enter data thanks to the adequate well-developed graphical components. With this purpose, by using concerned Java APIs we have developed this open-source software from scratch by using Netbeans IDE. The overall view of the main window of this software is supported by a tab-based component that contains in total three tabs namely: "Patients Registration", "Radiopharmaceutical dose calculation" and "Medical Report". The first tab is dedicated to new patient's registration. Figure 1 shows the concerned window that incorporates GUI components for recording hospital data (hospital name, exam id), patient data (patient name, patient age, patient weight, patient height) and doctor data (indication and comment).
Regarding second tab, the calculation of dosimetric data related to a given radiopharmaceutical drugs are made in an easy and flexible way, thanks to a number of GUI components which allow one to quickly select a radioisotope, a radiopharmaceutical drug which is made from, the administered activity either in megabecquerel (MBq) or millicurie (mCi) and the patient age. After clicking on "Calculation" button, specific normalized dosimetric data (given as mSv/MBq or mGy/MBq) are loaded from an ASCII text file having a filename extension of ".rfm" and having a name of a selected radiopharmaceutical drug, the required calculations consist of multiplying of each normalized dosimetric data by the administered Java-based open-source software activity value, so the estimated absorbed dose for each organ and the estimated effective dose according to the injected activity are calculated. Figure 2 shows a screenshot of second tab component used to handle radiopharmaceutical dose calculation. The presented software supports dosimetric calculations of about forty of the most known radioactive drugs, the concerned dosimetric data that include normalized effective dose and normalized absorbed dose per organ were obtained from ICRP publications 80 [8] and 106 [9].
Reverting to the description of the present software, by clicking on "Show Table" button, a GUI table is displayed as we can see in Figure 3 and the concerned window contains a table component which displaying a list of organs sorted alphabetically, including adrenals, bladder, bone surfaces, brain, breast, gall bladder, stomach, small Intestine, colon, upper large intestine, lower large intestine, heart, kidneys, liver, lungs, muscles, esophagus, ovaries, pancreas, Red marrow, skin, spleen, testes, thymus, thyroid and uterus. The organs which are not listed here are assumed as "Remaining organs" and the estimated effective dose is presented below the table component in a text field component.
After the calculation is done, multiple information include dosimetric, hospital, patient and doctor data are shown in a text editor. From this information, a medical report is built and it can be edited by simply clicking on "Edit" button. After making a proper edition of the medical report document, it can be exported as PDF file, then printed and joined on the patient's record. Figure 4 gives a screenshot of the "medical report" tab component.
Saving output data of an application is a common practice and the use of the relational database like SQLite to store patient information allowing greater flexibility in searching for and displaying patient-specific information (name, exam id, record date, etc.), dosimetric data    (effective dose) and doctor data (indication). Figure 5 shows the registered patients database window.

Software requirements and installation
The open-source project RadioPharmaDose is hosted on GitHub website and it can be downloaded for free from [11]. This GUI has been released under the GPL license. The software is a Java-based application and it requires a Java Runtime Environment (JRE 1.8) to run correctly. It doesn't require an installer program and it can be run on Windows by simply double-clicking on the jar file and it can be run on Linux by typing the following commandline argument in a terminal: java -jar RadioPharmaDose.jar

Conclusion and future development
In this paper, a reliable, user-friendly GUI open-source Java-based software has been developed that can be used effectively to automate the calculation of dosimetric data of a number of radiopharmaceutical drugs provided by ICRP. Indeed, it can be a useful tool for avoiding human mistakes which probably can be committed while calculating dosimetric data, and the software generates a medical dosimetry report for patients injected with radioactive drugs which are demanded in diagnosis examinations and it can be printed and joined on the patient's record. For future work, we plan to add other radiopharmaceutical drugs to the present software, implementing code needed for auto-sending medical report via email and rewritten the present software in Android language in order to support smartphone devices. Java-based open-source software