Posts

Showing posts from June, 2023

GSoC Week 5

From LH-RIS Viewer to AI Model Service Last week, I primarily focused on coding and making updates to the LH-RIS (Libre Health Radiology Information System) viewer. This week, my work shifted towards the LH AI Model Service. The current architecture of the Flask REST-API within the AI Model Service was unfamiliar to me. It was built in an object-oriented style, which seemed complex compared to the simpler implementations I've encountered in the past. As such, I took my time to understand the system's components before implementation. Implementing the Model Selection API Once I grasped the system, I dived into implementing the Model Selection API. We introduced a few methods on the viewer side that now transmit Dicom tags information and the new model configuration settings, input by the admin in the administration settings. This information is crucial for the Model Selection API, as it determines which model to invoke on the fly. The concept behind the Model Selection API is st

GSoC Week 4

Image
This week was hectic. I continued learning a java and understanding the components of the LibreHealth Radiology module. I spent my time exploring tutorials, studying the code of the LH-RIS (LibreHealth Radiology Information System), and immersing myself in Orthanc documentation. For context, Orthanc is the PACS (Picture Archiving and Communication System) or in simpler terms it stores the X-ray images and has methods to communicate and share them. Architecture for better understand, Challenges and getting past them, Last week I coded the new properties to enable users to include model information in the admin settings for model selection. I added code in all the pages I found needs adding but when I pushed the changes to my forked repo, there was a pipeline failure. I could not figure out why. I looked at other older commits who did the same and I could see in recent commits developers adding configurations to only the config.xml. I did the same and it worked. I created a method that

GSoC Week 3

Image
This week I was not able to concentrate on my GSoC project as I was away to present at the AIME 2023 conference in Portoroz, Slovenia. I initially assumed I would have time to work on GSoC but I was wrong. The conference was packed with sessions starting 8AM in the morning to 4PM followed by a dinner session at 8PM or a tour session of the local area. I am traveling and reaching back to my place on Friday after which I will resume my GSoC progress. I aim to push my first PR next week. During my time here at Portoroz I was able to attend and listen to some amazing presentations, eat some great seafood and enjoy the beauty of the place. Here are some pictures,

GSoC Week 2

Image
By the end of last week, I was able to meet my mentor, which helped me gain direction for the project. We discussed details and challenges regarding the implementation of the AI model selection based on image modality. Although Java is a new language to me, I wanted to learn and work my way through it for the project. This week, my task was to understand parts of the LibreHealth toolkit code and prepare a list of tasks at an atomic level. After that, I will need to update them to the GitLab issues list. Coming up with the task list To come up with the task list, during the meeting with my mentor, I received some guidance on where to start with code exploration and understanding. Initially, it was challenging for me to understand the code, so I started looking at Java tutorials on YouTube. I gained some understanding of how Java works. However, I knew this was not enough for me to completely understand the application, and it would take time, so I also started looking for patterns in th

GSoC Week 1

This week I was researching AI models to implement for the different modalities. More specifically, Mammography. I also finally had the opportunity to talk to my mentor on Thursday (June 1st, 2023). You can find the recorded meeting link  here . Building a Breast Cancer Classification Model from Scratch At the start of the week, I attempted to implement a VGG16 classifier to distinguish between malignant and benign calcifications in a mammogram. Using PyTorch, I developed the model and achieved a validation accuracy of approximately 70%. The source code can be accessed  here . This model and code serve as a starting point for implementing a more complex model mentioned in this  paper . Briefly, the paper discusses building a model solely on the region of interest (ROI) of the calcification/tumor and adding layers and training on the entire images. This method has significantly reduced the training loss and, consequently, improved overall accuracy. Mentor Discussion and Change in Direct