At inviCRO we strive to deliver software in accordance to highest scientific and quality standards. As a consequence, testing our software has become an integral part of the development process. In particular we follow a continuous integration process that allows us to keep our software working at most times and to detect and fix bugs very quickly. Additionally, with test-driven development we are continuously expanding our testing library and improving the quality of our software one test at a time.
The iPACS reporting engine is a powerful tool to access iPACS’ object relational database (where for instance projects, patients, studies, datapoints, study planner events, etc… are stored) as well as the file-based WebDisk and export the data in for instance PDF, Excel Spreadsheets, CSV, plain text, XML, etc… In this example I would like to show a small example on how to export the projects table in form of a native Excel spreadsheet, including links and formats.
With iPACS 1.07 the Dashboard was introduced, which allows the user to configure their own front page and thus get access to all the information they actually need right after login. The Projects dashboard widget is designed to ease navigating through huge (500+) project trees with quick access to important project information as well as the Image/DICOM Browser and the file-based WebDisk. Also available are widgets for a world clock, the current jobqueue, messages, events from the Study Planner, last accessed projects and directories and many more…
This example will further explore using VivoScript libraries by adding three more functions and then dive into co-registering two images (using one of these functions) and applying some a image arithmetic, in this case calculating the relative difference.
Histogram based auto-thresholding (based on Otsu’s algorithm) is a great way to automatically segment two Gaussian distributions of values, e.g. background vs. animal. In this post we are looking into automating this process and placing the segmentation function into a library file so it can be reused in other scripts.
In this section we are having a look at how to extract meta information from studies in a project and writing them to a local text file. The looping through all studies of a project is described in Part I of this introduction.
You can now find various VivoQuant generated movies in inviCRO’s new YouTube channel at http://www.youtube.com/invicro. If you subscribe to the channel you will be notified of new uploads. In this blog here you will then find additional information about how the movies where created.
For instance, you might want to checkout our VivoScript Introduction, which will also cover image and movie generation in later lessions.
In this post, I would like to show an example of how to iterate through all the patients of a project on an iPACS system using a VivoScript. This can for instance be useful for the automation of pre-processing data, or two produce quality control images for an entire project. The looping technique shown here will be used in subsequent tutorials, so this is the best starting point to get familiar with VivoScript.
Thanks to modern 3D Printing technology, you can now export your VivoQuant 3D regions of interest (ROIs) into the real world. VivoQuant offers a wide array of export options, e.g. as STL or VRML, which can be read in by most 3D modelling or CAT software. The 3D printer takes a model and adds small dots of liquified plastic, feed as a long thread to the system, to a base plate. The plastic cools down and sets, so additional layers can be added, until the full model is completed.
Sometimes it is useful to be able to start external programs from within VivoQuant. VivoScript provides a function for this:
VQ.startTool("ProgramName"); VQ.startTool("ProgramName", baseDir, parameterList);
with ProgramName being a pre-configured name of the tool to start (see below on how to add your own tools), while the optional baseDir defines the current working directory the tool is started in. Finally, the parameterList is an array of optional parameters passed into the tool from the command line. Depending on the tool you are using such parameters could be used to for instance pass in files to the new tool.