patmun / pynetdicom_legacy

This project is deprecated and no longer maintained. Please switch to https://github.com/pydicom/pynetdicom3
Other
30 stars 25 forks source link

pynetdicom vs pynetdicom3 #66

Open vsoch opened 7 years ago

vsoch commented 7 years ago

hey @patmun ! I am a software engineer at Stanford, and found your repo and what appears to be a branch in python 3 (I posted a similar issue here https://github.com/scaramallion/pynetdicom3/issues/55) Basically I'm looking to implement and help contribute to a python based dicom server, and I'm wondering how these two projects are related (or not) and which would be best to start with. Thanks for the feedback!

patmun commented 7 years ago

Hi @vsoch! Your right pynetdicom3 is a fork of pynetdicom by @scaramallion which brings python3 compability plus many improvements in terms in the code, documentation, unit tests, etc. In terms of fonctionality, it is pretty much the same. I think @scaramallion did a wonderful job. I don't know what her or his plans are regarding to this fork, but I would really like to merge it with pynetdicom, so as to remove confusion. Although I'm the original creator of this project, I have not been the most active since a good while and your contribution would be highly appreciated as long as I'm concerned. I suggest you get familiar with the DICOM standard, if you're not already, and with the global structure of the project (start with @scaramallion's version: it is much better documented and cleaner than mine).

vsoch commented 7 years ago

hey @patmun ! I've been doing just that, and so far it's looking really good. I think it would be great to get these projects merged back into one collaborative effort, so then pynetdicom has support for 2 and 3. Let me take a look at the differences and see the best way to go about this - I posted on @scaramellion issue board but haven't heard back yet.

vsoch commented 7 years ago

so it seems like the pynetdicom3 is more developed, in terms of having more organization of the classes, tests and examples, and of course support for python 3. Differences would be with regard to docs and pynetdicom3 uses pydicom directly, whereas you have wrapper functions for it in the dicom module. Have the two of you talked about perhaps merging pynetdicom3 into what is now pynetdicom? @patmun - do you see any functionality in the current pynetdicom that is not addressed by pynetdicom3? If it comes down to changing the module structure/naming that might break current user's implementations, then the fix for that would be making it clear that they would need to install a particular version. What we would want is the pynetdicom on pypi to be further developed, and have support for both 2 and 3! Here are my suggestions for moving forward:

Initial Merge and Things to Check

The reason for having one central, stronger project is so that we can come together and work on it together. There is really bad need for simple python-based tools that use different components of dicom, and a more centralized effort will be great for the open source community.

Updates

What I'd like to do is first to Dockerize - meaning we would extend to provide Dockerfiles so that users can quickly spin up containers. I've already started a bit of this, and will continue with pynetdicom3 (but I'd really like it to be pynetdicom).

scaramallion commented 7 years ago
vsoch commented 7 years ago

hey @scaramallion - I am working on one of our first applications using pydicom and pynetdicom3, and things are working great! @patmun do you see any reason that we can't essentially glob pynetdicom3 into pynetdicom, and start working together on that as a base? And @scaramallion - what are the updates with pydicom / do you need any help?

It would be really great to have some oomph behind python + dicom, and I think these two projects can be a strong base for that. We can extend the base tools to contained-based apps, too. Neuroimaging really flourished when python entered the scene, and now nipy has been the base for nibabel, nilearn, nipype, and now containers with things like bids apps, and many more! A programmer / student / new researcher should be able to do a Google search and hit these tools (instead of the old crusty wikis about the dicom standard they hit now), and be encouraged to use them as a starting base. What are your thoughts? I think to start we might think about making a Github organization to bring repos and people together, if one doesn't already exist.

patmun commented 7 years ago

I have no problem merging pynetdicom3 into pynetdicom (or perhaps rename pynetdicom3 into pynetdicom). I think too that having different forks with different names is a source of confusion, and this situation should be resolved asap.

I'm actually very happy to see motivated people who can give this project a new start. I personally don't have much time to devote to pynetdicom at the moment, and if you guys are willing to take over, by all means go ahead!

I would suggest the following for an eventual merge:

Feel free to bring your own suggestions ...

2017-05-23 2:46 GMT-04:00 Vanessa Sochat notifications@github.com:

hey @scaramallion https://github.com/scaramallion - I am working on one of our first applications using pydicom and pynetdicom3, and things are working great! @patmun https://github.com/patmun do you see any reason that we can't essentially glob pynetdicom3 into pynetdicom, and start working together on that as a base? And @scaramallion https://github.com/scaramallion - what are the updates with pydicom / do you need any help?

It would be really great to have some oomph behind python + dicom, and I think these two projects can be a strong base for that. We can extend the base tools to contained-based apps, too. Neuroimaging really flourished when python entered the scene, and now nipy http://nipy.org/ has been the base for nibabel http://nipy.org/nibabel/, nilearn https://nilearn.github.io, nipype http://nipype.readthedocs.io/en/latest/, and now containers with things like bids apps http://bids-apps.neuroimaging.io/apps/, and many more! A programmer / student / new researcher should be able to do a Google search and hit these tools (instead of the old crusty wikis about the dicom standard they hit now), and be encouraged to use them as a starting base. What are your thoughts? I think to start we might think about making a Github organization to bring repos and people together, if one doesn't already exist.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/patmun/pynetdicom/issues/66#issuecomment-303305634, or mute the thread https://github.com/notifications/unsubscribe-auth/ANgw1tfYVOLMja166AmTAOo4VT-yM3TKks5r8oC5gaJpZM4NhAJN .

-- Patrice Munger

vsoch commented 7 years ago

This sounds great! If the package is already on pip, then you should be able to freeze it's current state and then do one final version (if you want). I would agree, and suggest the following:

Do you have preference for each of the above, both @patmun and @scaramallion? I'm happy to just fork and then do updates/tweaks - our first goal should be just moving/renaming stuff to be in the proper place, then I'd like to make some updated docs and an organization page for pydicom.

patmun commented 7 years ago

Just another comment, regarding docker images. @vsoch, perhaps I don't understand how you want to use them. We have to keep in mind that pynetdicom is not a dicom server or client. It's a tool that allows dicom clients and servers (or more generally application entities) to be writtten. I would see how a specific application entity written with pynetdicom could be deployed on docker, but I think these things should be kept as separate projects.

vsoch commented 7 years ago

That is correct, right now I'm working on a dockerized application (meaning a docker image with uwsgi, a database, and web server) for which pynetdicom is used within the application for different functions. So to be clear - we would provide Docker images/compose specs to deploy simple, container based tools that use pynetdicom/pydicom. That is one of the reasons I'm advocating for the pydicom organization - we would want these things to be separate repositories.

vsoch commented 7 years ago

hey @patmun - I forked the pynetdicom3 repo over to https://github.com/pydicom/pynetdicom3, so when you are ready, I'll rename to pynetdicom, and then do the work to update the code to remove the 3. @scaramallion , let us know your preference for steps after that. I'm happy to keep your branch as the master and PR to it, updating my master as necessary, or to have you take primarily management of the repo under the pydicom organization, with the standard protected master and development branch, and only you would have the final say in merging. I think @darcymason is hopefully on board too to do something similar, and then we will have nicer resolution of "the place to find dicom and python." I can take care of making consolidated docs, or minimally a central resource that links to the different docs, when I have a sense of everyone's preferences.