Emory-HITI / Niffler

Niffler: A DICOM Framework for Machine Learning and Processing Pipelines.
https://emory-hiti.github.io/Niffler/
BSD 3-Clause "New" or "Revised" License
90 stars 53 forks source link

Containerizing Niffler #349

Closed pradeeban closed 1 year ago

pradeeban commented 2 years ago

Currently, Niffler png-extraction is containerized (#262). However, other modules are not containerized. What we propose is a global Niffler container from where different modules can be executed.

While this can be a challenging undertaking (considering the multiple modules of Niffler and dependencies on our sibling frameworks such as Eaglescope for the visualizations), an attempt at this will help us expand the user base and also will help us improve the framework itself in its compactness.

rumbleFTW commented 1 year ago

I was thinking about this issue, and came up with a possible approach-

  1. Containerize all the modules separately.
  2. Use docker compose to interconnect the docker containers that work together to provide a complete application.

Is this path viable? Or a better approach might be possible?

PS: I'm pretty new to docker, so I'm open to suggestions, ideas and corrections.

pradeeban commented 1 year ago

That is a potential path. We already have a container for the png-extraction module.

yuvraj-wale commented 1 year ago

Hey @rumbleFTW, are you working on this issue?

pradeeban commented 1 year ago

@yuvraj-wale you are free to attempt. At this point, this is more of an exercise, so some duplicate efforts are okay. We have a container for png-extraction module. Are you proposing a similar approach to that proposed by @rumbleFTW (separate container for each module?) That seems neat to me since most modules stand on their own anyway.

Among the other modules, I would say cold-extraction and meta-extraction are the most frequently used ones (with cold-extraction used much more often than meta-extraction. So you can actually start with the cold-extraction container first).

yuvraj-wale commented 1 year ago

Yes, I agree with the proposed approach to containerizing each module separately, I'll start by containerizing the cold-extraction module first. Thanks.

rumbleFTW commented 1 year ago

@yuvraj-wale Sure, you can go ahead with containerizing the cold-extraction module, and I'm continuing with the meta-extraction module.

imiro commented 1 year ago

Hi all! I'm interested in helping out with this effort too, any suggestion on which module should I work on? I've been able to get the frontend module running on a container, but I'm yet to test the functionalities.

pradeeban commented 1 year ago

The frontend module must be outdated by now, as all the backend modules have been recently updated, with frontend modules not receiving the necessary changes.

Not many used the front-end module anyway. So we can ignore that.

@yuvraj-wale and @rumbleFTW are attempting the cold-extraction and meta-extraction modules, the two important modules that are not containerized.

You are free to try containerizing any of those two as well.

imiro commented 1 year ago

I see, thanks for letting me know @pradeeban. Perhaps I can try to work on the meta-extraction module then

pradeeban commented 1 year ago

Although we did not test the newly created Dockerfiles, since this is implemented, we are closing this issue.

pradeeban commented 1 year ago

Thanks, @imiro for your contributions.