radiology-research / ispy2_mri

GUI to enter info on incoming MRI's for ISPY2 into database
GNU General Public License v3.0
0 stars 0 forks source link

ispy2_mri

PyPI - Version PyPI - Python Version Hatch project


Table of Contents

Purpose

This package provide a graphical application to enter information about batches of MRI's as they come in from sites. The information is saved in the ispy2 database, named breastdb on the server. Some of that information is available electronically, and can be pulled from a plain text file of the user's choice instead of entered manually.

This is a replacement for one of the functions currently accessible through a web interface. That web application can still be used for other things, like generating reports, or even for entering the same information. However, the web application does not use the information in the plain text files.

If you are not in UCSF Radiology, it is very unlikely this package is of interest.

Installation

Prerequisites

Program Setup

The main issue is exactly how you get access to the Python Package that uses the program.

py -m pip install ispy2_mri  # MS-Windows

This will create a program that can be launched from a terminal with ispy2-mri. You may want to create a desktop shortcut that will do the same thing.

License

ispy2-mri is distributed under the terms of the GPL-3 license.

Developer Notes

The application that ships is under src, but it is generated by the scripts under build. Make any changes to the code in build, and then run pre_fields.py to regenerate src/ispy2_mri/ispy2_gui.py. The pre is for pre-processor: the code turns the "specification" in tomcat web application's original ispy2.jsp (which came from the insert directory of the bdb project) into a Python-based Qt application.

There is probably a way to automate that into the regular build process, which uses hatch. But its documentation doesn't spell out how.

See Notes.md for the main developer notes, as well as comments in the code and the version control history. In time, the issues for the project might have something as well.

I do not recommend studying the code in ispy2_gui.py directly as it has a lot of repetitive, automatically generated code. And it does not have a lot of the notes and To Do list in the comments for pre_fields.py.