Opened 2 years ago
Closed 2 years ago
#10171 closed defect (fixed)
DICOM: Segmentations tool not happy if more than one medical image is present (e.g. 2 CTs)
Reported by: | Elaine Meng | Owned by: | Zach Pearson |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | DICOM | Version: | |
Keywords: | Cc: | Eric Pettersen | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-10.15.7-x86_64-i386-64bit ChimeraX Version: 1.8.dev202311160224 (2023-11-16 02:24:18 UTC) Description started medical-image Segmentations tool, but slice views were blank not sure how I got this traceback, was clicking around Log: Startup Messages --- note | available bundle cache has not been initialized yet > open /Users/meng/Desktop/startup.cxc > alias reset view orient; view initial > alias start toolshed show $1 > alias whereprefs info path user unversioned config > alias previewts toolshed url https://cxtoolshed- > preview.rbvi.ucsf.edu;toolshed reload available > alias normalts toolshed url https://cxtoolshed.rbvi.ucsf.edu;toolshed reload > available > alias btut open > http://www.cgl.ucsf.edu/home/meng/chimerax/vdocs/user/tutorials/binding- > sites.html > alias segtest open 0557 from emdb; vol threshold #1 min 0; vol scale #2 > value uint8; open 6nzk executed startup.cxc UCSF ChimeraX version: 1.8.dev202311160224 (2023-11-16) © 2016-2023 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /Users/meng/Desktop/11-06-2014-1-96508 format dicom Summary of feedback from opening /Users/meng/Desktop/11-06-2014-1-96508 --- notes | Opened 4 CT (No Description) as #1.1.1, grid size 512,512,236, pixel 0.576,0.576,1.24, shown at step 1, values int16 Opened 8 CT (No Description) as #1.1.2, grid size 512,512,213, pixel 0.588,0.588,1.24, shown at step 1, values int16 Opened 1000 SEG (QIN CT challenge: alg01 run1segmentation result) as #1.1.3, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step 2, values uint8 Opened 1000 SEG (QIN CT challenge: alg01 run2segmentation result) as #1.1.4, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step 2, values uint8 Opened 1000 SEG (QIN CT challenge: alg01 run3segmentation result) as #1.1.5, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step 2, values uint8 Opened 1000 SEG (QIN CT challenge: alg02 run1segmentation result) as #1.1.6, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step 2, values uint8 Opened 1000 SEG (QIN CT challenge: alg02 run2segmentation result) as #1.1.7, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step 2, values uint8 4 messages similar to the above omitted > hide #!1.1.2 models > close #1.1.6-11 > volume #1.1.3 style mesh > hide #!1.1.4 models > hide #!1.1.5 models > volume #1.1.3 color #b2ffff64 > ui tool show Segmentations > dicom view fourup Traceback (most recent call last): File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 734, in mouseMoveEvent self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton)) File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 674, in moveSegmentationPuck rel_top, rel_bottom, rel_left, rel_right = self.mousePercentOffsetsFromEdges(x, y) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ZeroDivisionError: float division by zero ZeroDivisionError: float division by zero File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ See log for complete Python traceback. Traceback (most recent call last): File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 734, in mouseMoveEvent self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton)) File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 674, in moveSegmentationPuck rel_top, rel_bottom, rel_left, rel_right = self.mousePercentOffsetsFromEdges(x, y) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ZeroDivisionError: float division by zero ZeroDivisionError: float division by zero File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ See log for complete Python traceback. Traceback (most recent call last): File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 734, in mouseMoveEvent self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton)) File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 674, in moveSegmentationPuck rel_top, rel_bottom, rel_left, rel_right = self.mousePercentOffsetsFromEdges(x, y) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ZeroDivisionError: float division by zero ZeroDivisionError: float division by zero File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ See log for complete Python traceback. Traceback (most recent call last): File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 734, in mouseMoveEvent self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton)) File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 674, in moveSegmentationPuck rel_top, rel_bottom, rel_left, rel_right = self.mousePercentOffsetsFromEdges(x, y) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ZeroDivisionError: float division by zero ZeroDivisionError: float division by zero File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ See log for complete Python traceback. Traceback (most recent call last): File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 734, in mouseMoveEvent self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton)) File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 674, in moveSegmentationPuck rel_top, rel_bottom, rel_left, rel_right = self.mousePercentOffsetsFromEdges(x, y) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ ZeroDivisionError: float division by zero ZeroDivisionError: float division by zero File "/Applications/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site- packages/chimerax/dicom/ui/orthoplanes.py", line 641, in mousePercentOffsetsFromEdges percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) - bottom) / (top - bottom)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ See log for complete Python traceback. OpenGL version: 4.1 NVIDIA-14.0.32 355.11.11.10.10.143 OpenGL renderer: NVIDIA GeForce GTX 675MX OpenGL Engine OpenGL vendor: NVIDIA Corporation Python: 3.11.2 Locale: UTF-8 Qt version: PyQt6 6.3.1, Qt 6.3.1 Qt runtime version: 6.3.2 Qt platform: cocoa Hardware: Hardware Overview: Model Name: iMac Model Identifier: iMac13,2 Processor Name: Quad-Core Intel Core i5 Processor Speed: 3.2 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6 MB Memory: 8 GB Boot ROM Version: 429.0.0.0.0 SMC Version (system): 2.11f16 Software: System Software Overview: System Version: macOS 10.15.7 (19H2026) Kernel Version: Darwin 19.6.0 Time since boot: 48 days 20:27 Graphics/Displays: NVIDIA GeForce GTX 675MX: Chipset Model: NVIDIA GeForce GTX 675MX Type: GPU Bus: PCIe PCIe Lane Width: x16 VRAM (Total): 1 GB Vendor: NVIDIA (0x10de) Device ID: 0x11a2 Revision ID: 0x00a2 ROM Revision: 3707 Metal: Supported, feature set macOS GPUFamily1 v4 Displays: iMac: Display Type: LCD Resolution: 2560 x 1440 (QHD/WQHD - Wide Quad High Definition) UI Looks like: 2560 x 1440 Framebuffer Depth: 24-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal Installed Packages: alabaster: 0.7.13 appdirs: 1.4.4 appnope: 0.1.3 asttokens: 2.4.1 Babel: 2.13.1 backcall: 0.2.0 beautifulsoup4: 4.11.2 blockdiag: 3.0.0 blosc2: 2.0.0 build: 0.10.0 certifi: 2022.12.7 cftime: 1.6.3 charset-normalizer: 3.3.2 ChimeraX-AddCharge: 1.5.12 ChimeraX-AddH: 2.2.5 ChimeraX-AlignmentAlgorithms: 2.0.1 ChimeraX-AlignmentHdrs: 3.4.1 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.12.1 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.1.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.51 ChimeraX-AtomicLibrary: 12.1.1 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.3.2 ChimeraX-BasicActions: 1.1.2 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.1.2 ChimeraX-BondRot: 2.0.4 ChimeraX-BugReporter: 1.0.1 ChimeraX-BuildStructure: 2.10.5 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.2.2 ChimeraX-ButtonPanel: 1.0.1 ChimeraX-CageBuilder: 1.0.1 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.3.2 ChimeraX-ChangeChains: 1.1 ChimeraX-CheckWaters: 1.3.2 ChimeraX-ChemGroup: 2.0.1 ChimeraX-Clashes: 2.2.4 ChimeraX-ColorActions: 1.0.3 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.5 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.8.dev202311160224 ChimeraX-CoreFormats: 1.2 ChimeraX-coulombic: 1.4.2 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.3 ChimeraX-Dicom: 1.2 ChimeraX-DistMonitor: 1.4 ChimeraX-DockPrep: 1.1.2 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ESMFold: 1.0 ChimeraX-FileHistory: 1.0.1 ChimeraX-FunctionKey: 1.0.1 ChimeraX-Geometry: 1.3 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.1.1 ChimeraX-Hbonds: 2.4 ChimeraX-Help: 1.2.2 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ItemsInspection: 1.0.1 ChimeraX-IUPAC: 1.0 ChimeraX-Label: 1.1.8 ChimeraX-ListInfo: 1.2.1 ChimeraX-Log: 1.1.6 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.9.1 ChimeraX-Map: 1.1.4 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0.1 ChimeraX-MapFilter: 2.0.1 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1.1 ChimeraX-Markers: 1.0.1 ChimeraX-Mask: 1.0.2 ChimeraX-MatchMaker: 2.1.2 ChimeraX-MCopy: 1.0 ChimeraX-MDcrds: 2.6 ChimeraX-MedicalToolbar: 1.0.2 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.12.1 ChimeraX-MMTF: 2.2 ChimeraX-Modeller: 1.5.12 ChimeraX-ModelPanel: 1.4 ChimeraX-ModelSeries: 1.0.1 ChimeraX-Mol2: 2.0.3 ChimeraX-Mole: 1.0 ChimeraX-Morph: 1.0.2 ChimeraX-MouseModes: 1.2 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nifti: 1.1 ChimeraX-NRRD: 1.1 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.13 ChimeraX-PDB: 2.7.2 ChimeraX-PDBBio: 1.0.1 ChimeraX-PDBLibrary: 1.0.2 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1 ChimeraX-PubChem: 2.1 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.2 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.2 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.2 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 4.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5.1 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0.2 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.11 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.1.1 ChimeraX-ShowSequences: 1.0.2 ChimeraX-SideView: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.13 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.1.2 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.2.2 ChimeraX-TapeMeasure: 1.0 ChimeraX-TaskManager: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.1.2 ChimeraX-ToolshedUtils: 1.2.4 ChimeraX-Topography: 1.0 ChimeraX-ToQuest: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.33.3 ChimeraX-uniprot: 2.3 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.3.2 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0.1 ChimeraX-vrml: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0.2 ChimeraX-WebServices: 1.1.3 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.2.0 contourpy: 1.2.0 cxservices: 1.2.2 cycler: 0.12.1 Cython: 0.29.33 debugpy: 1.8.0 decorator: 5.1.1 docutils: 0.19 executing: 2.0.1 filelock: 3.9.0 fonttools: 4.44.3 funcparserlib: 1.0.1 glfw: 2.6.2 grako: 3.16.5 h5py: 3.10.0 html2text: 2020.1.16 idna: 3.4 ihm: 0.38 imagecodecs: 2023.9.18 imagesize: 1.4.1 ipykernel: 6.23.2 ipython: 8.14.0 ipython-genutils: 0.2.0 ipywidgets: 8.1.1 jedi: 0.18.2 Jinja2: 3.1.2 jupyter-client: 8.2.0 jupyter-core: 5.5.0 jupyterlab-widgets: 3.0.9 kiwisolver: 1.4.5 line-profiler: 4.0.2 lxml: 4.9.2 lz4: 4.3.2 MarkupSafe: 2.1.3 matplotlib: 3.7.2 matplotlib-inline: 0.1.6 msgpack: 1.0.4 nest-asyncio: 1.5.8 netCDF4: 1.6.2 networkx: 3.1 nibabel: 5.0.1 nptyping: 2.5.0 numexpr: 2.8.7 numpy: 1.25.1 openvr: 1.23.701 packaging: 21.3 ParmEd: 3.4.3 parso: 0.8.3 pep517: 0.13.0 pexpect: 4.8.0 pickleshare: 0.7.5 Pillow: 10.0.1 pip: 23.0 pkginfo: 1.9.6 platformdirs: 4.0.0 prompt-toolkit: 3.0.41 psutil: 5.9.5 ptyprocess: 0.7.0 pure-eval: 0.2.2 py-cpuinfo: 9.0.0 pycollada: 0.7.2 pydicom: 2.3.0 Pygments: 2.16.1 pynrrd: 1.0.0 PyOpenGL: 3.1.7 PyOpenGL-accelerate: 3.1.7 pyopenxr: 1.0.2801 pyparsing: 3.0.9 pyproject-hooks: 1.0.0 PyQt6-commercial: 6.3.1 PyQt6-Qt6: 6.3.2 PyQt6-sip: 13.4.0 PyQt6-WebEngine-commercial: 6.3.1 PyQt6-WebEngine-Qt6: 6.3.2 python-dateutil: 2.8.2 pytz: 2023.3.post1 pyzmq: 25.1.1 qtconsole: 5.4.3 QtPy: 2.4.1 RandomWords: 0.4.0 requests: 2.31.0 scipy: 1.11.1 setuptools: 67.4.0 setuptools-scm: 7.0.5 sfftk-rw: 0.7.3 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 soupsieve: 2.5 sphinx: 6.1.3 sphinx-autodoc-typehints: 1.22 sphinxcontrib-applehelp: 1.0.7 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 1.0.5 sphinxcontrib-htmlhelp: 2.0.4 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.6 sphinxcontrib-serializinghtml: 1.1.9 stack-data: 0.6.3 superqt: 0.5.0 tables: 3.8.0 tcia-utils: 1.5.1 tifffile: 2023.7.18 tinyarray: 1.2.4 tomli: 2.0.1 tornado: 6.3.3 traitlets: 5.9.0 typing-extensions: 4.8.0 tzdata: 2023.3 urllib3: 2.1.0 wcwidth: 0.2.10 webcolors: 1.12 wheel: 0.38.4 wheel-filename: 1.4.1 widgetsnbextension: 4.0.9
Change History (7)
comment:1 by , 2 years ago
Component: | Unassigned → DICOM |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → DICOM: Segmentations tool not happy if more than one medical image is present (e.g. 2 CTs) |
comment:2 by , 2 years ago
This bug (mercifully) reveals itself even if you just open two datasets and change the layout, no tool needed.
comment:3 by , 2 years ago
Cc: | added |
---|
Hi Eric,
I'm ccing you because my proposed fix involves the ModelMenu widget you wrote in ui/src/widgets/composite.py
I discovered that when more than one dataset is open, the on-dataset-selected callback doesn't fire. I looked at the ModelMenu code, and ModelMenus use a ModelMenuButton from ui/src/widgets/item_chooser.py, which takes an autoselect argument.
That argument isn't exposed in ModelMenu. If I add it to ModelMenu's initializer so it can be passed down to ModelMenuButton, then setting autoselect='first' fixes this behavior.
Do you have any issues putting that in production?
comment:4 by , 2 years ago
Well, that seems fine, though you could just use ModelMenuButton directly (and add a label if needed). Nonetheless your proposed change seems fine. You might consider having ModelMenu take kw for the arguments that will be passed unchanged through to ModelMenuButton.
comment:5 by , 2 years ago
I don't like either solution. Just adding the parameter clogs the arguments list and, to the caller, looks like something that matters for the class instead of just one of the classes it makes use of. But on the other end, **kwargs
is totally useless to IDEs (if it's not explained in docstrings). I can't see the list of possible parameters without going and looking at the relevant subclass.
I guess kwargs is the better way to go because it's at least net zero -- the programmer isn't in a worse position than normal just having to look the parameter up, vs adding to the list of arguments which is confusing.
I've heard about parameter classes as a possible solution, but it sounds like ugly boilerplate to me. Argh!
comment:6 by , 2 years ago
I think as long as ModelMenu's doc string says that the keywords are being passed through to ModelMenuButton, that would be fine.
comment:7 by , 2 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Now I have tried various situations and reproduced it: it happens when I have more than one medical image series open (e.g., more than one CT series) when Segmentations is started. The slice views are blank and then the traceback appears. Maybe you have to click something to get the traceback, not sure, but it was reproducible.