Code Monkey home page Code Monkey logo

Comments (71)

samshyllon avatar samshyllon commented on September 25, 2024 1

I have started going through the code, and have been able to include the header for the RT ion plan.
the RT plan name and RT ion plan name appear to have the same reference, hence no need for modification.
The reference for the RTplan and RTIon plan are different, however i need help understanding the code for the RTplan so i can properly include the elseif branch.
Thats where iam currently up to.
image

from slicerrt.

mdsainth avatar mdsainth commented on September 25, 2024 1

Thanks! Works perfectly πŸ‘

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

An additional dataset and contributor has arisen from the Slicer community. We will attempt to add the ion plan support together. See
https://discourse.slicer.org/t/beam-data-in-slicer-rt-not-loading/5718/12

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

I have created a branch where I added placeholders for the RT ion plan import/load part.

To start, you will need to

  1. Have a GitHub account, fork the SlicerRT repository (probably easier to clone my fork because it has the branch), clone it to your computer, switch to the 25-add-ion-plan-support branch
  2. Build Slicer. Instructions are here. The instructions are very good and thorough. People still tend to have difficulty with it, but mainly because they miss some information (for example on Windows you need to choose a short path like c:\d\S4D). So please pay very close attention.
  3. Build SlicerRT. Some instructions here
  4. Please contact me if you have any issues (comment here or we can video chat if you need closer guidance)

Thank you so much and good luck!

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

thanks for laying out the steps for me,
I look forward to attempting to add the ion plan support.

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Excellent! Please let me know if you encounter any issue :)

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

I have gotten as far as trying the build stage, and I am currently getting the error shown below (towards the end of the Cmake report listed below), am not sure how to proceed. any assistance would be much appreciated.

Setting C++ standard
Setting C++ standard - C++11
The C compiler identification is MSVC 19.0.24215.1
The CXX compiler identification is MSVC 19.0.24215.1
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Check if the system is big endian
Searching 16 bit integer
Looking for sys/types.h
Looking for sys/types.h - found
Looking for stdint.h
Looking for stdint.h - found
Looking for stddef.h
Looking for stddef.h - found
Check size of unsigned short
Check size of unsigned short - done
Using unsigned short
Check if the system is big endian - little endian
Found Subversion: C:/Program Files/TortoiseSVN/bin/svn.exe (found version "1.11.1")
Found Git: D:/D/Git/cmd/git.exe
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find Patch (missing: Patch_EXECUTABLE)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
CMake/FindPatch.cmake:67 (find_package_handle_standard_args)
CMakeLists.txt:156 (find_package)

Configuring incomplete, errors occurred!
See also "D:/D/S4D/CMakeFiles/CMakeOutput.log".

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

You will need a newer CMake. Please download the latest stable.

from slicerrt.

lassoan avatar lassoan commented on September 25, 2024

I think patch.exe is not bundled with CMake but with git. Probably patch.exe is not found because you have not installed git in standard location.

See how to specify patch.exe location here: https://www.slicer.org/wiki/Documentation/Nightly/Developers/Build_Instructions/Prerequisites#Common_Prerequisites_2

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

I have succesfully configured and generated using Cmake, but i am having trouble understanding the steps that I need to take using Visual Studio in order to continue the build process. For example giving the scope of what I am trying to do, should I use release or debug mode?

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

In any case, I think a new CMake will be needed, since the paths show a version of 3.7, and although Slicer specifies a minimum of 3.5, I think we need a newer one.

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Open Slicer.sln, choose Debug mode (I see in your build path that you wanted debug build, and I think you may need it for the development), and start build.

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

yeah i downloaded the newest stable release of CMake

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

the build has been completed with a message stating "52 succeeded, 4 failed 3 skipped"
I am not sure if this is the expected result ?

However i am having trouble locating the Slicer.exe file mentioned in the Documentation, it is not in the Slicer-build folder, does this mean something as gone wrong or is there a work around.

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

There should be 0 failed. Please check out the error list and tell us at least the first one. Thanks!

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

i cant find the error list, but i realised that i selected the wrong complier x32 instead of x64, so I have restarted the build with the correct complier, will let you know how it goes

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

The error list is a window in Visual Studio. Please find it, you will need it later.
Also you can get the build log at ...\S4D\x64\Debug\Slicer\Slicer.log or ...\S4D\Testing\Temporary

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

After retrying the build, this was the output, ended up with 55 succeeded and 1 fail

image

image

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Interesting. These errors do not indicate any error with actual builds. Does the file ...S4D\Slicer-build\Slicer.exe exist? If so, then consider the build successful.

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

yes it does i was able to run slicer

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Excellent! One hard part is done! Keep us posted about the next steps and I'll help if I can.

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

i have tried to build Slicer RT a per the instructions and i got this message
image

however when i check the error list there is nothing
image

So i am assuming the Slicer RT build was succesful, but when i open Slicer, the Radiotherapy module is not vissible, is there an extrastep required for that?

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Your screenshot says 15 errors. Can you please send me at least the first few? Thanks.

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

I tried to run the build process again to generate the error list but this time there was no errors
image

However heres the error list showing the warnings:
image

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Warnings are fine. This looks good, thanks!

Next is to run Slicer in Debug mode with SlicerRT.

  1. You'll need to add the three build directories of SlicerRT to the Additional module paths list in Application settings. For example: C:\d\_Extensions\SlicerRT_R\inner-build\lib\Slicer-4.11\qt-loadable-modules\Release, C:\d\_Extensions\SlicerRT_R\inner-build\lib\Slicer-4.11\qt-scripted-modules, C:\d\_Extensions\SlicerRT_R\inner-build\lib\Slicer-4.11\cli-modules\Release
  2. Start Visual Studio with SlicerRT environment to enable debugging in SlicerRT if necessary, for example: .\S4D\Slicer-build\Slicer.exe --VisualStudio --launcher-no-splash

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

I have been able to run slicer with the SlicerRT extenstion and evrything works as expected.
I believe the next step is to begin modifying the code to include ion RT beams, is this to be done within the SlicerRT source directory?

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Great, you're making fast progress! Yes the next step will be the code. Please refer to the second part of my descriprion above, with the bullet points. You'll need to clone the branch to your computer, check out my commit so see where these parts need to be added, and try to fill the gaps. Please ask away if you have any questions!

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

Hello ,
just to give an update i have been doing some background reading on C++ documentation and i am starting to make sense of the coding for slicerRT.

So i would like to know what the process would be after modifying the code in order to test the changes? i.e would i need to rebuild SlicerRT?

thanks

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Normally you do the code edits in Visual Studio and click on Build. You don't need to rebuild. Regular only builds the files you changed, it's a matter of seconds.

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

This is prob a very dumb question since visual studio is quite new to me, but does this mean that i first have to open the Slicer.sln file, then open the relevant source codes, perform the edits to all them and click on build?

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Yes, except that you need to open SlicerRT_D/inner-build/SlicerRT.sln

If you want to do debugging then start visual studio like this:
..\S4D\Slicer-build\Slicer.exe --VisualStudio --launcher-no-splash --launcher-additional-settings ./SlicerRT_D/inner-build/AdditionalLauncherSettings.ini SlicerRT_D\inner-build\SlicerRT.sln

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

@cpinter i

I have been working on modifying the code following the guidance, and I have made some progress. Right now it seems like the RTion beam data is being read as shown in the screen shot of the data module. But the beam data doesn’t seem to operate as expected, in that they cannot be visualise, manipulated or used to perform dose calculations.

Are there other source codes that need modifying or would the problem be limited to the import and read source codes?

image

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

This is great!! The problem seems to be that the jaw positions are not read in correctly (they go from 0 to 0, resulting in an infinitely thin beam).
Can you please make sure the latest state is committed and let me know which branch I can find it in? Thanks!

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

i have tried to commit but, it looks like i dont have the access to commit to gitHub

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

You need to have your own fork and branch, see point 1 in my step-by-step directions.

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

Yeah i did not read that properly, i cloned without creating my own fork. i have since rectified the issue, here the link to commit:
samshyllon@4f36255

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Great! I'll look here if you have any specific questions or you need me to try it and find out something. Thanks a lot!

from slicerrt.

samshyllon avatar samshyllon commented on September 25, 2024

No worries, its been a great learning experience for myself.
in terms of questions, should Slicer RT be able to support actively scanned proton plans, as it is after making the changes you suggested?

Because as i read through the code i cant really find anything that points to that being possible, even though theres an option to select active scanning in the beam module.
image

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Good question. The support for these options depends on the dose calculation engine, and it has no effect on any other feature than that. @gregsharp can you please advise? Thanks!

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

@gregsharp Can you please answer the question above?

@samshyllon Is there anything I can help with?

from slicerrt.

gregsharp avatar gregsharp commented on September 25, 2024

Hi @samshyllon,

Sorry, not yet. The dose engine in plastimatch is not yet feature complete. For example, there is not yet capability of setting important beam parameters such as spot sigma (varying with energy). This is of course necessary, but it is not funded. Let us know if you can can provide any programming help.

A related but separate issue, DICOM is not completely capable of specifying certain beam modeling parameters. Example, nominal beam energy may need adjustment due to exit window thickness.

Greg

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Hi @samshyllon I'd just like to check in. Is there anything I can help with?

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

Hello,

Is it possible to use this branch with Slicer 4.11, or it is easier to fork working SlicerRT master and add support within a newly created branch?

I'm also interested in ion plans support, and may be can help with coding. My concern is a visualization and processing of MLC and range shifters for beams and control points.

Best regards,
Mikhail

from slicerrt.

gregsharp avatar gregsharp commented on September 25, 2024

You will need to compile Slicer from source if you want to build SlicerRT. Therefore, I suggest using SlicerRT master with Slicer master.

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

Thank you for clarification.

I have already compiled both Slicer and SlicerRT, and both are working. But unable to compile this fork and branch (i'm talking about SuperBuild).

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Hi Michael,
It's great that you are interested in this! When I have a minute I'll rebase the branch to the SlicerRT master so that you can start from there. Please hang on, it will happen hopefully today

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

@MichaelColonel I rebased the branch to the master, fixed the errors and the style, and pushed the new branch here: https://github.com/cpinter/SlicerRT/tree/25-add-ion-plan-support

Please fork SlicerRT, add my fork as a remote, check out the branch, then do your changes, and push the updated branch to your remote. Please let me know if you have any questions.

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

@cpinter I forked and added remote
git remote -v
origin https://github.com/MichaelColonel/SlicerRT.git (fetch)
origin https://github.com/MichaelColonel/SlicerRT.git (push)
upstream https://github.com/cpinter/SlicerRT.git (fetch)
upstream https://github.com/cpinter/SlicerRT.git (push)

I'm going to use testing branch, and only after testing i will merge and push the results.

I would like to start with implementation of MLC support, pretending there is only one mutileaf collimator per beam.

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Sounds Great! Before you start implementing MLCs can we please agree on the way it will be done? Some MLC support was added in SlicerRT before, but it never really worked.

Could we tackle the MLC work separately in its own issue please? I'll add a comment on what is there and what I would start with if I had time working on it now. It's #115

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

Bare minimum of ion plan support in vtkSlicerDicomRtReader.

For a possible future setup with a fixed beam in our institute i'm going to implement some sort of a minimum support for rt ion plan and rt plan (since both have many common elements). Major part of the code that had been already done remains (with minimum refactoring of BeamEntry class). Public methods of vtkSlicerDicomRtReader will be the the same.

As a template:

  1. Fraction sequence (partially)
    1.1. Referenced beam sequence within fraction sequence (partially)
    https://github.com/MichaelColonel/SlicerRT/blob/25-add-ion-plan-support/DicomRtImportExport/Logic/vtkSlicerDicomRtReader.cxx#L116-#L147

  2. Ion beam sequence with control point sequence (MLC, RS, primary particle info).
    https://github.com/MichaelColonel/SlicerRT/blob/25-add-ion-plan-support/DicomRtImportExport/Logic/vtkSlicerDicomRtReader.cxx#L183-#L229

  3. Control point with info about MLC position, binary range shifter setting, energy of primary particle.
    https://github.com/MichaelColonel/SlicerRT/blob/25-add-ion-plan-support/DicomRtImportExport/Logic/vtkSlicerDicomRtReader.cxx#L149-#L181

Some members from BeamEntry class will go to the ControlPointEntry class.

What do you think about that structure?

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Thanks again for working on this and to ask our opinion! It looks great.

Just one question: I don't quite understand the ReferencedBeamEntry structure. The fractions use the same beams but with different weights, and this is why we need to reference them like this?

Also could you please run the automated tests to see if your changes break any existing use cases? Just run this from command line from the inner-build folder:
ctest -C Release

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

Referenced beam sequence is used only for correct order order of beams from fraction to fraction, but any critique is useful.

I have run tests on my local PC using master branch after MLC support had been added:

The following tests FAILED:
12 - py_DicomRtImportTest (Failed)
18 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_Base (Failed)
19 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_CERR (Failed)
20 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseEnt_CERR (Failed)
21 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_Eclipse (Failed)
22 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseEnt_Eclipse (Failed)
23 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_CERR_AutomaticOversampling (Failed)
24 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseEnt_CERR_AutomaticOversampling (Failed)
25 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_Eclipse_AutomaticOversampling (Failed)
26 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseEnt_Eclipse_AutomaticOversampling (Failed)
27 - vtkSlicerDoseVolumeHistogramModuleLogicTest_DoseSurfaceHistogram_EclipseEnt_Base_Inside (Failed)
28 - vtkSlicerDoseVolumeHistogramModuleLogicTest_DoseSurfaceHistogram_EclipseEnt_Base_Outside (Failed)
29 - vtkSlicerDoseVolumeHistogramModuleLogicTest_DoseSurfaceHistogram_EclipseProstate_Base_Inside (Failed)
30 - vtkSlicerDoseVolumeHistogramModuleLogicTest_DoseSurfaceHistogram_EclipseProstate_Base_Outside (Failed)
37 - vtkSlicerSegmentMorphologyModuleLogicTest_EclipseProstate_Expand (Failed)
38 - vtkSlicerSegmentMorphologyModuleLogicTest_EclipseProstate_Shrink (Failed)
39 - vtkSlicerSegmentMorphologyModuleLogicTest_EclipseProstate_Union (Failed)
40 - vtkSlicerSegmentMorphologyModuleLogicTest_EclipseProstate_Intersect (Failed)
41 - vtkSlicerSegmentMorphologyModuleLogicTest_EclipseProstate_Subtract (Failed)
42 - vtkSlicerSegmentMorphologyModuleLogicTest_EclipseProstate_Intersect_ApplyTransform (Failed)
45 - vtkSlicerSegmentComparisonModuleLogicTest_EclipseProstate_Base (Failed)
46 - vtkSlicerSegmentComparisonModuleLogicTest_EclipseProstate_SameInput (Failed)
47 - vtkSlicerSegmentComparisonModuleLogicTest_EclipseProstate_Transformed (Failed)

from slicerrt.

Sunderlandkyl avatar Sunderlandkyl commented on September 25, 2024

Just FYI, the vtkSlicerSegmentMorphologyModuleLogicTest and vtkSlicerDoseVolumeHistogramModuleLogicTest failures are due to some changes loading Segmentations. I'm working to fix the problem.

They shouldn't be related to the MLC changes.

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Thanks, @Sunderlandkyl !

@MichaelColonel I asked because if it's only for referencing a beam from within the class, then the BeamEntry pointer can be used. If it's for referencing from outside the class, then the beam number is enough. I saw the vector<pair<double, int> > and thought the double meant the weight of the beam in the fraction ("Cumulative Meterset Weight (300A,0134)"). So if additional information is needed other than identifying the beam, then this reference structure has a place, but otherwise it seems redundant.

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

It looks like for correct ion plan support i need to add a MRML node for ion beam, because some elements have additional parameters. SAD becomes VSAD with x and y component, scan mode without jaws and MLC, etc.

What is a better way?

  1. class vtkMRMLRTIonBeamNode : public vtkMRMLModelNode
    or
  2. class vtkMRMLRTIonBeamNode : public vtkMRMLRTBeamNode

When loading beams for ion plan, additional code will be added to LoadExternalBeamPlan method to check if RTPlan or RTIonPlan have been loaded.

bool vtkSlicerDicomRtImportExportModuleLogic::vtkInternal::LoadExternalBeamPlan(

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Again, thanks for checking with us!

Given that many beam features are the same in an ion beam as in the original beam class (geometry etc.), and that we should be able to identify all beams by doing a type check against the beam class, I think the ion beam should definitely be a subclass of the beam, so option 2.

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

HIT examples from SlicerRtData all have modulated ion beam, with scan spot position map, and i am going to calculate rectangle borders of the position map just like jaws to draw the simplest beam border.

Do you have any other suggestions how to make a correct poly data for beam visualization?

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Sorry I'm not sure what the question is exactly. Also can you please briefly describe what are scan spot position maps? Thank you!

from slicerrt.

gregsharp avatar gregsharp commented on September 25, 2024

The spot positions are for a scanned (rather than passively scattered) proton beam. I think that the enclosing rectangle sounds fine. Maybe increase it by the beam sigma, otherwise a single spot would show up as just a point. Otherwise you can try to create a circle for each spot (expanded by sigma) and make their union?

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

WIP

RTIonPlan_ControlPoints_Test

@cpinter I agree, it's not the best way to describe a problem, next time i will try be more accurate!

For testing i use https://discourse.slicer.org/t/beam-data-in-slicer-rt-not-loading/5718/10 data. Each control point point is loaded as a separate beam, some parameters for control points were taken from Plastimatch.

@gregsharp rectangle enclosing is enough in my case, and i will think about creating union of scanning spots, but number of scan spots can be several hundreds for each control point of modulated ion beam.

PS. There is a mention in code about beams group nodes. Is it a concept for the future?

//TODO: Multiple isocenters per plan is not yet supported. Will be part of the beams group nodes developed later
.

from slicerrt.

gregsharp avatar gregsharp commented on September 25, 2024

@MichaelColonel First of all, this looks awesome. Outstanding work! Thank you so much for your contribution to the community.

For clinical beams, enclosing rectangle is perfectly great. Early adopters will be physicists for whom single spot plans are common, and yes, well, you know the rest.

Yes I agree, the mention in the code is future work.

from slicerrt.

mdsainth avatar mdsainth commented on September 25, 2024

Warnings are fine. This looks good, thanks!

Next is to run Slicer in Debug mode with SlicerRT.

1. You'll need to add the three build directories of SlicerRT to the Additional module paths list in Application settings. For example: C:\d\_Extensions\SlicerRT_R\inner-build\lib\Slicer-4.11\qt-loadable-modules\Release, C:\d\_Extensions\SlicerRT_R\inner-build\lib\Slicer-4.11\qt-scripted-modules, C:\d\_Extensions\SlicerRT_R\inner-build\lib\Slicer-4.11\cli-modules\Release

2. Start Visual Studio with SlicerRT environment to enable debugging in SlicerRT if necessary, for example: .\S4D\Slicer-build\Slicer.exe --VisualStudio --launcher-no-splash

@cpinter I got to this point (finally). So I was able to build and run 3D slicer. exe and building now the slicerRT extension in visual studio. But I am not sure how point 1 needs to be executed. What do you mean with the additional module paths? Do I need to copy it inside the folder of my slicer.exe?

Thanks for your response!

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

You need to add the fodlers in Application Settings / Additional module paths, either by clicking Add or drag&drop.

from slicerrt.

mdsainth avatar mdsainth commented on September 25, 2024

Thanks you very much for your reply.
I added folders in module paths but I am encountering errors when opening Slicer the following comment occurs

When loading module "BatchStructureSetConversion" , the dependency "DicomRtImportExport" failed to be loaded.
When loading module "DvhComparison" , the dependency "DoseVolumeHistogram" failed to be loaded.
When loading module "IGRTWorkflow_SelfTest" , the dependency "DicomRtImportExport" failed to be loaded.
Algorithm vtkCurveGenerator(000002012B7D51B0) returned failure for request: vtkInformation (0000020120878C70)
Debug: Off
Modified Time: 190963
Reference Count: 1
Registered Events: (none)
Request: REQUEST_DATA
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
FROM_OUTPUT_PORT: 0
Switch to module: "Welcome"

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

I have some ideas what the problem could be but I'm missing the context and would like to make sure your question is resolved in the right place. Is this related to loading RT ion plans in some way? Am I forgetting something? If this is a new issue then I suggest opening a new topic on the https://discourse.slicer.org/ forum.

from slicerrt.

mdsainth avatar mdsainth commented on September 25, 2024

Thanks for your prompt reply.
Yes I would like to load RT ion plans (I did not succeed using SlicerRT and then I read and followed all suggestions in this topic). In the end (I think) i succeeded in building Slicer.exe and opening it worked fine. Then I refered to the module path (which I built according to the Build SlicerRT instructions) and as you pointed out in the previous comment. Not sure now why I get this error (PS: in Visual Studio I did not get any error when building SlicerRT).
In attachment you can see some screenshots if that would be helpfull
Slicer_command
ModuleSetting_errors

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

This issue here is about implementing the feature for loading ion plans. Until it is closed it is not available in the SlicerRT release. Please either give it a bit more time until we close the issue, or build the topic branch instead of SlicerRT master. For using a manually built extension please ask on the forum so that here we can focus on the development of the feature.

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

@mdsainth Update: Sorry, I just realilized that the comments and commits were one year older than I thought - the typical new year confusion :)
So this feature should be in the SlicerRT release. Pleas install the latest Slicer preview version, install SlicerRT from the extension manager, and try.

In any case, about questions please use the forum. Here on GitHub we mainly manage the development. Thanks!

from slicerrt.

MichaelColonel avatar MichaelColonel commented on September 25, 2024

The spot positions are for a scanned (rather than passively scattered) proton beam. I think that the enclosing rectangle sounds fine. Maybe increase it by the beam sigma, otherwise a single spot would show up as just a point. Otherwise you can try to create a circle for each spot (expanded by sigma) and make their union?

I'm making a better visualization of the scanning beam, and i have a question about how to do better.

Here is a screenshot of HIT test data where scan spot position map has more than one segment (an eye and a smile). Now i use vtkAppendPolyData filter to show all single spots. Do you know any way to unite correctly spots from each segment? The vtkBooleanOperationPolyDataFilter will unite all the spots into the one big blob.

image

from slicerrt.

lassoan avatar lassoan commented on September 25, 2024

vtkBooleanOperationPolyDataFilter often fails randomly for simple, completely valid inputs. I would not rely on it.

vtkbool library can be used as an alternative. While it is not perfect, it works much better than vtkBooleanOperationPolyDataFilter and it has an active, dedicated maintainer, so there is someone to report errors to or ask advice from.

We have not yet integrated vtkbool into Slicer core, but initial tests look promising, so if VTK9 upgrade in Slicer will be complete then we will make it available in the Slicer core. For now, it is built as part of Sandbox extension. See some more details here: https://discourse.slicer.org/t/new-experimental-feature-boolean-operations-union-intersection-difference-on-meshes/16048/7

from slicerrt.

cpinter avatar cpinter commented on September 25, 2024

Ion plan loading is implemented. Improvements and bugs can be discussed in new tickets as needed.

from slicerrt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.