Closed Sunderlandkyl closed 2 years ago
Slicer 4.11.0-2020-01-12 r8ea6945
SlicerRT master branch. All tests have passed on linux.
Unfortunately for me the test crashes after the suggested changes. It needs to be investigated.
Here is my test log output. No DCMTK errors, only warnings.
Thanks, very interesting. I have a consistent crash while importing. The crash is in the QSql calls, see call stack:
Qt5Cored.dll!qt_message_fatal(QtMsgType __formal, const QMessageLogContext & context, const QString & message) Line 1710 C++
Qt5Cored.dll!QMessageLogger::fatal(const char * msg, ...) Line 822 C++
Qt5Cored.dll!qt_assert(const char * assertion, const char * file, int line) Line 3126 C++
qsqlited.dll!QList<int>::first() Line 345 C++
qsqlited.dll!QSQLiteResult::exec() Line 491 C++
Qt5Sqld.dll!QSqlQuery::exec() Line 1002 C++
CTKDICOMCore.dll!ctkDICOMDatabase::fileForInstance(const QString sopInstanceUID) Line 2028 C++
vtkSlicerDicomRtImportExportModuleLogic.dll!vtkSlicerDicomRtImportExportModuleLogic::vtkInternal::ExamineRtDoseDataset(DcmDataset * dataset, OFString & name, std::vector<OFString,std::allocator<OFString>> & referencedSOPInstanceUIDs) Line 267 C++
vtkSlicerDicomRtImportExportModuleLogic.dll!vtkSlicerDicomRtImportExportModuleLogic::ExamineForLoad(vtkStringArray * fileList, vtkCollection * loadables) Line 1971 C++
vtkSlicerDicomRtImportExportModuleLogicPythonD.dll!PyvtkSlicerDicomRtImportExportModuleLogic_ExamineForLoad(_object * self, _object * args) Line 152 C++
I'll try deleting the downloaded file, maybe it's corrupted. We are at the Slicer project week, so I cannot work on this this week.
I fixed the DicomRtImportTest by updating some baseline numbers. I have not checked if they are correct, but looking at the viewers during the test it seems that all the data is loaded.
IGRTWorkflow_SelfTest still fails, however, and quite badly. It starts with an endless stream of errors like this
Input port 0 of algorithm vtkCleanPolyData(0000025DFBB94D80) has 0 connections but is not optional.
then there are errors about wrong number of nodes etc. @MichaelColonel since mainly you made changes in the near past that could cause these errors, and also that changes the number of loaded nodes etc, can you please take a look at this test and fix it after your current beam changes with sequences are done? Thank you!
All python tests are failed with such message:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/test/devel/git/Slicer/Slicer-SuperBuild-Release/python-install/lib/python3.6/imp.py", line 170, in load_source
module = _exec(spec, sys.modules[name])
File "<frozen importlib._bootstrap>", line 618, in _exec
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/test/devel/git/SlicerRT/SlicerRT-test/inner-build/lib/Slicer-4.11/qt-scripted-modules/PlmRegister.py", line 4, in <module>
import RegistrationLib
ModuleNotFoundError: No module named 'RegistrationLib'
loadSourceAsModule - Failed to load file "/home/test/devel/git/SlicerRT/SlicerRT-test/inner-build/lib/Slicer-4.11/qt-scripted-modules/PlmRegister.py" as module "PlmRegister" !
Fail to instantiate module "PlmRegister"
The following modules failed to be instantiated:
PlmRegister
Landmark registration was previously disabled in Slicer, which caused the Python tests to fail. This should be fixed now (See https://github.com/SlicerRt/SlicerRT/issues/140).
You'll probably need to update and rebuild the Slicer SuperBuild.
Yes. This has been recently fixed. That's how I was able to run them now. As @Sunderlandkyl suggests, please update your Slicer.
The #147 is ready for checking and testing.
All the tests pass in the branch referred above. After integration this issue can be closed. Thank you!
One comment: although IGRTSelfTest passes, it actually does not finish successfully. Here are the errors it outputs:
First
Number of loaded vtkMRMLScalarVolumeNode nodes was 3, but 2 was expected
Number of loaded vtkMRMLModelHierarchyNode nodes was 0, but 7 was expected
Traceback (most recent call last):
File "E:/e/_Extensions/SlicerRT_R/inner-build/lib/Slicer-4.11/qt-scripted-modules/IGRTWorkflow_SelfTest.py", line 141, in TestSection_01_LoadDicomData
self.assertTrue(success)
File "E:\e\ScR\python-install\Lib\unittest\case.py", line 682, in assertTrue
raise self.failureException(msg)
AssertionError: False is not true
Test caused exception!
then
Setting display options for loaded data
Traceback (most recent call last):
File "E:/e/_Extensions/SlicerRT_R/inner-build/lib/Slicer-4.11/qt-scripted-modules/IGRTWorkflow_SelfTest.py", line 242, in TestSection_02C_SetDisplayOptions
day1Dose = slicer.util.getNode(self.day1DoseName)
File "E:\e\ScR\Slicer-build\bin\Python\slicer\util.py", line 996, in getNode
raise MRMLNodeNotFoundException("could not find nodes in the scene by name or id '%s'" % (pattern if (isinstance(pattern, str)) else ""))
slicer.util.MRMLNodeNotFoundException: could not find nodes in the scene by name or id '5: RTDOSE: BRAI1'
Test caused exception!
could not find nodes in the scene by name or id '5: RTDOSE: BRAI1'
Not sure how it passes with such an error.
Same thing happens with py_BatchStructureSetConversion
62: Number of loaded vtkMRMLScalarVolumeNode nodes was 3, but 2 was expected
62: Traceback (most recent call last):
62: File "E:/e/_Extensions/SlicerRT_R/inner-build/lib/Slicer-4.11/qt-scripted-modules/BatchStructureSetConversion.py", line 237, in TestSection_1_LoadDicomData
62: self.assertTrue(success)
62: File "E:\e\ScR\python-install\Lib\unittest\case.py", line 682, in assertTrue
62: raise self.failureException(msg)
62: AssertionError: False is not true
62: Test caused exception!
62: False is not true
Number of loaded vtkMRMLModelHierarchyNode nodes was 0, but 7 was expected
I can fix this, since there are no vtkMRMLModelHierarchyNode only vtkMRMLRTBeamNode, but about everything else i can't say anything particular, since other nodes are vtkMRMLScalarVolumeNode and node named '5: RTDOSE: BRAI1'.
I have fixed IGRTSelfTest. Dose volume name must be '5: RTDOSE', not '5: RTDOSE: BRAI1', since it's a name from the plan.
I have made a commit to #147 with tests fixes. Can you check this commit as well?
The tests indeed work, thanks a lot for the quick fixes!
Test passes, closing.
Automated test for importing DICOM-RT data is currently failing.
http://slicer.cdash.org/testDetails.php?test=9875840&build=1797453