Hi Andras, many thanks for the code. Could I ask what the license is for the code? In the distant future, I may incorporate this as part of a chargeable service in my (public) hospital (in addition to segmenting other structures).
Also, how may I cite this script/your work?
THe best would be if you could add the script as a module to Sandbox extension (use Extension Wizard module to create a skeleton, add GUI for the input parameters, and copy the processing script to the module logic class).
The BSD license of the Sandbox extension would apply and you could cite the Sandbox extension and the Agatston 1990 paper.
. t has been a while since I wrote a Python slicer module, but I’d be willing to work on this during Project Week. It would be nice to have this as a Slicer module again. I’ll discuss this at the preparation call this week
Thank you Andras and Curtis! It would indeed fill an important need to have Agatston scoring in Slicer again.
SO ,have it done?
so,i dont understand above progress, i need to caculate the cadiac agaston scoring . but i feel it is alittle difficult for me .
Apologies. I started the module and Andras has offered support. Unfortunately, I didn’t finish during the project week and have been swamped with other projects since returning to my office. I’ll try to get back to the agatston module during this coming week. Thanks for your patience.
@syl Your last message was too harsh and demanding - does not match the friendly tone of this community. This is a problem because people you are trying to pressure here are volunteering to help the community in their free time and if you use unpleasant tone then they will unlikely to help you - and you may even discourage them to help others.
If you urgently need this feature then you can offer your help: Python programming is not a very difficult job, you can learn how to do it while developing this module; or you can ask friends of yours to help you; or you can offer funding to someone who already has the right skills.
If it is not that urgent then you can wait patiently for someone to take on this job for free. Maybe you can come back to this post in every couple of weeks and indicate in a friendly comment that you are still interested in this feature.
so, excuseme i still focus the agatston module. can i try to use this module now?thanks.
The effort on an agatston module, which I started over the Summer, is not complete. However, I am planning to resume work on this module before and during the next Slicer Project Week in January.
Hello
Many thanks for this interesting topic.
I am a new user and I am looking at the posted script.
When I a trying to validate the outputs against what I can see on the net.
I am a little bit puzzled by the output of the GE SmartScore against Slicer and other vendors.
Volume and AJ130 are not in line with the expected range.
Given a 3mm thick slices
ex: SmartScore-2.jpg
If volume = 106 → Area = 106/3 = 35mm²
Max AJ130 = Area * 4 = 141 (far away from 285)
Vitae and other systems (like Slicers) are producing more coherent figures.
Do you think that there exist some kind of new or different methodology ?
Is there a specific pre treatment that must be done ?
slices interpolation, reslicing with 3mm and start the algo ?
Many thanks

All these calcium scoring algorithms are trivial to implement, but there are many small decisions to make, which may significantly affect the final scores. If you can create 10 sample data sets (you can get the images from any public cardiac CT data sets) and get calcium scores for them by using a few commercial packages then I can help you to put together a very nice, robust, and convenient Slicer module in a few days.
If anyone is interested, Stanford provides a dataset of coronary CT DICOMs with corresponding coronary artery calcium segmentations and scores.
Good afternoon, colleagues! Thank you for the excellent program, as well as for the Agatson Scoring add‑on, which is extremely necessary in clinical practice. Special thanks to Andras Lasso and BRAINSia for the work done. Unfortunately, my programming skills are not very good, so I couldn’t install the add‑on on Slicer version 5.12.4. Fortunately, with the help of the GLM 5.3 Flash AI agent, I managed to write a script that allows running this useful module with a certain addition — ROI selection in conditions where the assessment is carried out based on chest CT data.
I’m sorry, I couldn’t find a way to attach the archive with the script, but I’m attaching a link to Google Disk with the archive.
Below is the instruction text provided by GLM 5.3 Flash.
I’ll package the module with a detailed bilingual instruction, an automatic installer script, and a manual fallback — then test the installer locally before zipping.
Now the detailed installation instruction (English + Russian):
Now testing the installer script locally — including whether slicer.app.quit() makes Slicer exit cleanly by itself.
Installer verified — Slicer registers the module and exits cleanly. Now removing the test dist path from my local Slicer settings (so only the real module path remains), then building the zip.
Wrong drive in my check — the settings file is on D:. Re-checking.
The cleanup went wrong — the path list is now empty. Let me diagnose with proper logging to file.
Settings restored to the single correct module path (my cleanup script had emptied the list — fixed). Now building the final zip.
The installer package is ready: AgatstonScoring_Slicer-5.12.zip (on your desktop; a copy is also in C:\Users\arozh\.zcode\workspace\default\_agatston\). It contains the module, a full instruction file in English and Russian, and an automatic installer. I tested the installer on your PC — it registers the module and shuts Slicer down cleanly.
What’s inside the zip:
AgatstonScoring\AgatstonScoring.py— the module itself (current version with turquoise highlight, slice range, ROI, per-slice tables)AgatstonScoring\README.md— module documentationINSTALL.md— detailed instructions (EN + RU)install_module.bat+register_module_path.py— automatic installer
Installation on another PC — three ways:
Way A — through Slicer settings (recommended, always works):
- Copy the
AgatstonScoringfolder (the one containingAgatstonScoring.py) to a permanent location, e.g.C:\Users\<name>\SlicerModules\AgatstonScoring— not inside the Slicer program folder. - Start Slicer → Edit → Application Settings → Modules.
- Under Additional module paths click Add path and select that folder — exactly the folder that directly contains
AgatstonScoring.py(Slicer doesn’t scan subfolders). - Click OK and fully restart Slicer. The module appears in the Cardiac category (search “Agatston”).
Way B — automatic installer (Windows): extract the zip anywhere, double-click install_module.bat. It finds Slicer in the default location (%LocalAppData%\``slicer.org``\3D Slicer 5.12.x, or asks for the path if installed elsewhere), registers the module, prints SUCCESS and writes install_log.txt. Then just start Slicer.
Way C — manual settings edit (advanced): close Slicer, open ...\3D Slicer 5.12.4\slicer.org\Slicer-<revision>.ini inside the install folder, and in the [Modules] section add AdditionalPaths=C:/path/to/AgatstonScoring (forward slashes), save, start Slicer.
I hope my method will help someone use this module in clinical practice, and perhaps it will serve as a complement for future improvements to the program.



