Evaluating the State of Medical Imaging Software
A detailed look into current medical imaging software practices and areas for improvement.
― 4 min read
Table of Contents
This article talks about how medical imaging Software is doing right now. Medical imaging is important because it helps doctors see inside the body without surgery, using technology like MRI and CT scans. There are many software programs that process and analyze these images, and we wanted to see how they are developed and maintained.
Selecting Software for Review
We looked at 48 different medical imaging software projects and chose 29 to evaluate. We checked 10 qualities for each project such as ease of installation, correctness, reliability, usability, and Documentation quality. For each software, we answered a set of 108 questions. We also interviewed eight teams that developed some of these software products to gain insights about their experiences.
Ranking the Software
Using a method called Analytic Hierarchy Process (AHP), we ranked the software based on the first nine qualities. The top four software products were 3D Slicer, ImageJ, Fiji, and OHIF Viewer. Our findings mostly matched the community’s views, as many of the top projects showed similar popularity on platforms like GitHub.
Current Health of Medical Imaging Software
Overall, the state of medical imaging software is quite good. We found that 88% of the necessary documentation was present in the projects we studied, and all of them used version control tools, which help track changes to the software. Most Developers appeared to follow a flexible agile process in their development work.
However, there were some areas for improvement. We noted that some recommended documents, such as test plans and documentation of requirements, were rarely found. Only 17% of the projects used Continuous Integration, and around half stated they did not have unit Testing in place. Six out of nine developers said their documentation could be clearer.
Pain Points in Development
Through interviews, we identified key challenges developers faced. These included a lack of time and funding, difficulties in ensuring correctness and usability, and issues with software maintenance. Developers suggested several strategies to improve their practice, including better documentation, increased testing, the use of web applications, and adopting pair programming practices.
Recommended Practices
Based on our findings and developer feedback, we created a list of recommendations to help improve medical imaging software. These include:
Increase Documentation: Better documentation can help new developers understand the software, which can save time during development.
Increase Testing: More extensive testing can help catch errors early. This might involve using better datasets for testing.
Improve Modularity: Designing software in smaller, independent parts can enhance maintainability and make updating easier.
Use Continuous Integration: This practice involves regularly testing the software with each update to catch bugs quickly.
Move to Web Applications: Developing web-based software can enhance access and usability for end-users.
Employ Linters: Linters are tools that can automatically check code for errors and enforce coding standards, helping improve overall code quality.
Conduct Peer Reviews: Encouraging developers to review each other's code can improve quality and knowledge sharing.
Design for Change: The software should be designed to adapt to changes in requirements or technology easily.
Use Assurance Cases: These are structured arguments that show the software meets certain quality standards, helping to ensure correctness and reproducibility.
Generate All Things: This approach involves automatically creating not just code but also documentation and tests, helping streamline the development process.
Future Directions
As we continue to assess the state of medical imaging software, we hope to see improvements in the practices used by developers. By implementing the suggestions listed above, we believe that medical imaging software can become even more reliable and efficient, ultimately leading to better outcomes for patients and healthcare providers.
Conclusion
In summary, the medical imaging software landscape is quite strong but has room for improvement. By focusing on quality practices in software development, documentation, and testing, we can ensure these tools continue to support doctors and researchers in their critical work.
Title: State of the Practice for Medical Imaging Software
Abstract: We selected 29 medical imaging projects from 48 candidates, assessed 10 software qualities by answering 108 questions for each software project, and interviewed 8 of the 29 development teams. Based on the quantitative data, we ranked the MI software with the Analytic Hierarchy Process (AHP). The four top-ranked software products are 3D Slicer, ImageJ, Fiji, and OHIF Viewer. Generally, MI software is in a healthy state as shown by the following: we observed 88% of the documentation artifacts recommended by research software development guidelines, 100% of MI projects use version control tools, and developers appear to use the common quasi-agile research software development process. However, the current state of the practice deviates from the existing guidelines because of the rarity of some recommended artifacts, low usage of continuous integration (17% of the projects), low use of unit testing (about 50% of projects), and room for improvement with documentation (six of nine developers felt their documentation was not clear enough). From interviewing the developers, we identified five pain points and two qualities of potential concern: lack of development time, lack of funding, technology hurdles, ensuring correctness, usability, maintainability, and reproducibility. The interviewees proposed strategies to improve the state of the practice, to address the identified pain points, and to improve software quality. Combining their ideas with ours, we have the following list of recommendations: increase documentation, increase testing by enriching datasets, increase continuous integration usage, move to web applications, employ linters, use peer reviews, design for change, add assurance cases, and incorporate a "Generate All Things" approach.
Authors: W. Spencer Smith, Ao Dong, Jacques Carette, Michael D. Noseworthy
Last Update: 2024-05-20 00:00:00
Language: English
Source URL: https://arxiv.org/abs/2405.12171
Source PDF: https://arxiv.org/pdf/2405.12171
Licence: https://creativecommons.org/licenses/by/4.0/
Changes: This summary was created with assistance from AI and may have inaccuracies. For accurate information, please refer to the original source documents linked here.
Thank you to arxiv for use of its open access interoperability.
Reference Links
- https://github.com/tomgi/git_stats
- https://github.com/boyter/scc
- https://api.github.com/repos/
- https://github.com/smiths/AIMSS/blob/master/StateOfPractice/MACREM/Application.pdf
- https://www.contributor-covenant.org/version/2/1/code_of_conduct/
- https://ubuntu.com/community/code-of-conduct
- https://www.djangoproject.com/conduct/
- https://google.github.io/styleguide/javaguide.html
- https://cnl.sogang.ac.kr/cnlab/lectures/programming/python/PEP8_Style_Guide.pdf
- https://google.github.io/styleguide/cppguide.html
- https://pypi.org/project/flake8/
- https://www.jenkins.io/
- https://buildbot.net/
- https://www.gocd.org/
- https://integrity.github.io/
- https://travis-ci.org/
- https://github.com/features/actions
- https://circleci.com/
- https://flutter.dev/
- https://vuejs.org/
- https://angular.io/
- https://reactjs.org/
- https://elm-lang.org/
- https://www.django-rest-framework.org/
- https://laravel.com/
- https://nodejs.org/en/
- https://github.com/gin-gonic/gin
- https://nihcc.app.box.com/v/ChestXray-NIHCC
- https://www.cancerimagingarchive.net/
- https://medpix.nlm.nih.gov/home
- https://github.com/pylbm/pylbm
- https://github.com/CFD-GO/TCLB
- https://astah.net/