I see PyMedPhys has many modules (not sure if it’s the right word) such as dicom, mosaiq, gamma etc. I’ve been trying to find on your website to see if there’re any descriptions of what these functions do or how to use them. Is there any user manual I didn’t find? Or is there a way to find out more in python? I used to type in ‘?’ and got some descriptions such as variables but doesn’t seem to work here. Thanks in advance!
In reality, the PyMedPhys team is in dire need for someone to dive in who has a passion for helping others use PyMedPhys and build out the documentation. See the following talk on YouTube for what the vision for the PyMedPhys documentation is:
There are a range of functions that are documented, and they can be found within the library section of the docs:
For example, here is the documentation for gamma:
However, there is a massive need to flesh these documents out in such a way that new users are given wings instead of weights when trying to use PyMedPhys.
The idea being, by augmenting the docs with this forum there might be a way to begin building a community who can help each other out, and ultimately, someone might be in a position to begin fleshing out a few documents here and there as they begin using the tools.
As you can imagine, given this is mostly a volunteer gig, most of my time tends to go into getting dirty in the nitty gritty of getting things to work, like what was described over at “How to upgrade Pymedphys”.
At the end of the day, for new users though, a software library is only as good as its documentation. And to that end, at the end of the day, the PyMedPhys community needs to grow, and I am hoping that someone with a passion for community communication and open source software is able to jump in and take that whole part of the project by the horns, find a group of people to help them, and make it so that Medical Physicists and new TEAP registrars can truly be equipped to use Python to do amazing things.
I have an identical request. First, please let me introduce me briefly. I work in French hospital (Centre Oscar Lambret) as IT project manager dedicated to Physics teams in radiotherapy. I am also in charge of some part of the development.
One of the internal project I have in charge is to do an internal library. I have to merge all work already done by the team, refactoring it, but also I have to think “plug and play” for news features. And, as developer, I do not want to recreate something already existing. Your library seems really promising. After discussion with the teams, we would participate on it. However first step is to understand it and some documentation is missing…
Your approached for the documentation (the video) is great. The only things I have no idea to put on it is a developer part, like class diagram, dOxygen or equivalent documentation. I will do some work on it, and if you are okay, I would like to share it, maybe on a git branch ? If you have any advise about it (like branches to check in git, class to begin ect), I would be thankful
The default branch is main, and that’s the branch you’ll want to branch from for development .
We do happen to use a tool like dOxygen we use Sphinx. Think of dOxygen as the “C world auto doc generator”, Sphinx is the “Python equivalent”. Sphinx is the tool we use to create docs like the following:
Within the documentation we use tools like autofunction that pull in the docstrings from those functions and write them into the docs. For example, see the section of code for the Anonymisation code documented above:
The actual contents of those documents given above is then pulled from that functions docstring:
(Having a read of those docs, I really should remove the words “simple”).
Regarding building out an internal dependency tree using a tool like https://graphviz.org/, I did used to have something like that within the documentation.
It can be seen within the git history over at:
It has also been spun out into another package:
In the theme of not reinventing the wheel, I can pull that code back into PyMedPhys and get it up and running, and then potentially you can pick it up from there and tweak it to your preferences?
Feel free to get me to expand on anything here, or enquire further .