Coder Social home page Coder Social logo

alizamedicalimaging / alizams Goto Github PK

View Code? Open in Web Editor NEW
224.0 10.0 42.0 18.5 MB

DICOM Viewer

License: GNU General Public License v3.0

C++ 57.76% C 41.74% CMake 0.45% Shell 0.03% Makefile 0.01% Roff 0.01%
medical-imaging dicom-viewer opengl dicom dicom-files dicom-image-viewer medical-application medical qt 3d

alizams's People

Contributors

issakomi avatar kooshayeganeh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alizams's Issues

Debian 11 ITK Enum Casting

I just compiled the AlizaMS master on Debian 11 with gcc version 10.2.1 20210110 (Debian 10.2.1-6). I had some casting errors with respect to the ITK library, for instance:

/home/allison/aliza/AlizaMS/common/commonutils.cpp: In static member function ‘static QString CommonUtils::convert_orientation_flag(unsigned int)’:
/home/allison/aliza/AlizaMS/common/commonutils.cpp:1893:34: error: could not convert ‘itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP’ from ‘const ValidCoordinateOrientationFlags’ {aka ‘const itk::SpatialOrientationEnums::ValidCoordinateOrientations’} to ‘unsigned int’
1893 | case itk::SpatialOrientation::ITK_COORDINATE_ORIENTATION_RIP:

I was able to cast case statements in a couple of places (see attached git diffs) and complete the compile. I don't know if this is the ultimate right fix, but wanted to pass along the information.

deb11_git_changes.txt

Aarch64 again

I know it is not a big priority.
However you could spot something simple:

[311/570] Building CXX object CMakeFiles/alizams.dir/common/structures.cpp.o
FAILED: CMakeFiles/alizams.dir/common/structures.cpp.o 
/usr/bin/c++ -DALIZA_GL_3_2_CORE -DDISABLE_SIMDMATH -DFORCE_PLATFORM_XCB -DITK_IO_FACTORY_REGISTER_MANAGER -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_SQL_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DUSE_WORKSTATION_MODE -I/run/build/alizams/ITKFactoryRegistration -I/run/build/alizams/mdcm/Source/Common -I/run/build/alizams/mdcm/Source/DataDictionary -I/run/build/alizams/mdcm/Source/DataStructureAndEncodingDefinition -I/run/build/alizams/mdcm/Source/MediaStorageAndFileFormat -I/run/build/alizams/mdcm/Utilities -I/run/build/alizams/mdcm/Utilities/mdcmcharls -I/run/build/alizams/mdcm/Utilities/mdcmopenjpeg -I/run/build/alizams/mdcm/Utilities/mdcmopenjpeg/src/lib/openjp2 -I/run/build/alizams/mdcm/Utilities/mdcmzlib -I/run/build/alizams/mdcm/Utilities/mdcmuuid -I/run/build/alizams/b -I/run/build/alizams -I/run/build/alizams/common -I/run/build/alizams/GUI -I/run/build/alizams/dicom -isystem /app/include/ITK-5.2 -isystem /usr/include/QtCore -isystem /usr/lib/mkspecs/linux-g++ -isystem /usr/include/QtGui -isystem /usr/include/QtWidgets -isystem /usr/include/QtPrintSupport -isystem /usr/include/QtSvg -isystem /usr/include/QtSql -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer  -O2 -g -DNDEBUG -fPIC -MD -MT CMakeFiles/alizams.dir/common/structures.cpp.o -MF CMakeFiles/alizams.dir/common/structures.cpp.o.d -o CMakeFiles/alizams.dir/common/structures.cpp.o -c /run/build/alizams/common/structures.cpp
In file included from /run/build/alizams/common/structures.cpp:4:
/run/build/alizams/CG/glwidget-qt5-core.h:116:1: error: expected class-name before ‘{’ token
  116 | {
      | ^
/run/build/alizams/common/structures.cpp: In member function ‘void DisplayInterface::close(bool)’:
/run/build/alizams/common/structures.cpp:102:29: error: ‘class GLWidget’ has no member named ‘glDeleteTextures’
  102 |                         gl->glDeleteTextures(1, &cube_3dtex);
      |                             ^~~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:136:45: error: ‘class GLWidget’ has no member named ‘glDeleteVertexArrays’
  136 |                                         gl->glDeleteVertexArrays(
      |                                             ^~~~~~~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:138:45: error: ‘class GLWidget’ has no member named ‘glDeleteBuffers’
  138 |                                         gl->glDeleteBuffers(
      |                                             ^~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:151:45: error: ‘class GLWidget’ has no member named ‘glDeleteVertexArrays’
  151 |                                         gl->glDeleteVertexArrays(
      |                                             ^~~~~~~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:153:45: error: ‘class GLWidget’ has no member named ‘glDeleteBuffers’
  153 |                                         gl->glDeleteBuffers(
      |                                             ^~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:166:45: error: ‘class GLWidget’ has no member named ‘glDeleteVertexArrays’
  166 |                                         gl->glDeleteVertexArrays(
      |                                             ^~~~~~~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:168:45: error: ‘class GLWidget’ has no member named ‘glDeleteBuffers’
  168 |                                         gl->glDeleteBuffers(
      |                                             ^~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:217:45: error: ‘class GLWidget’ has no member named ‘glDeleteVertexArrays’
  217 |                                         gl->glDeleteVertexArrays(1, &(c->vaoid));
      |                                             ^~~~~~~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:218:45: error: ‘class GLWidget’ has no member named ‘glDeleteBuffers’
  218 |                                         gl->glDeleteBuffers(1, &(c->vboid));
      |                                             ^~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:245:29: error: ‘class GLWidget’ has no member named ‘glDeleteVertexArrays’
  245 |                         gl->glDeleteVertexArrays(1, &(trimesh->qmesh->vaoid));
      |                             ^~~~~~~~~~~~~~~~~~~~
/run/build/alizams/common/structures.cpp:246:29: error: ‘class GLWidget’ has no member named ‘glDeleteBuffers’
  246 |                         gl->glDeleteBuffers(2, trimesh->qmesh->vboid);
      |                             ^~~~~~~~~~~~~~~
[316/570] Building CXX object CMakeFiles/alizams.dir/main.cpp.o
FAILED: CMakeFiles/alizams.dir/main.cpp.o 
/usr/bin/c++ -DALIZA_GL_3_2_CORE -DDISABLE_SIMDMATH -DFORCE_PLATFORM_XCB -DITK_IO_FACTORY_REGISTER_MANAGER -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_SQL_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DUSE_WORKSTATION_MODE -I/run/build/alizams/ITKFactoryRegistration -I/run/build/alizams/mdcm/Source/Common -I/run/build/alizams/mdcm/Source/DataDictionary -I/run/build/alizams/mdcm/Source/DataStructureAndEncodingDefinition -I/run/build/alizams/mdcm/Source/MediaStorageAndFileFormat -I/run/build/alizams/mdcm/Utilities -I/run/build/alizams/mdcm/Utilities/mdcmcharls -I/run/build/alizams/mdcm/Utilities/mdcmopenjpeg -I/run/build/alizams/mdcm/Utilities/mdcmopenjpeg/src/lib/openjp2 -I/run/build/alizams/mdcm/Utilities/mdcmzlib -I/run/build/alizams/mdcm/Utilities/mdcmuuid -I/run/build/alizams/b -I/run/build/alizams -I/run/build/alizams/common -I/run/build/alizams/GUI -I/run/build/alizams/dicom -isystem /app/include/ITK-5.2 -isystem /usr/include/QtCore -isystem /usr/lib/mkspecs/linux-g++ -isystem /usr/include/QtGui -isystem /usr/include/QtWidgets -isystem /usr/include/QtPrintSupport -isystem /usr/include/QtSvg -isystem /usr/include/QtSql -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer  -O2 -g -DNDEBUG -fPIC -MD -MT CMakeFiles/alizams.dir/main.cpp.o -MF CMakeFiles/alizams.dir/main.cpp.o.d -o CMakeFiles/alizams.dir/main.cpp.o -c /run/build/alizams/main.cpp
In file included from /run/build/alizams/main.cpp:10:
/run/build/alizams/CG/glwidget-qt5-core.h:116:1: error: expected class-name before ‘{’ token
  116 | {
      | ^

Use mdcm system libraries

Hello again.
Let's suppose that I already have libmdcm*.so files installed on the system. I see that compiling alizams these libraries are also generated.
(Again, I'm not a developer). Is it difficult to tell to cmake to use the "system" ones?
I see there is this comment in CMakeLists.txt, so I think it isn't still possible.

    149 # TODO try system, if possible
    150 set(MDCM_LJPEG_LIBRARIES mdcmjpeg8 mdcmjpeg12 mdcmjpeg16)

macOS - where's the dmg?

Readme gives instructions for macOS saying only to "open the DMG file". What DMG file? Is there a separate download file? If so, shouldn't that be in the included in these instructions?

Minor issues with Qt6

I have seen a bug with Qt6 (Linux) + platform vnc. The bug can be considered low priority, not sure that anyone uses this platform vnc at all. If the application is started with e.g.

alizams -platform vnc:size=1920x1080

and viewed with some vncviewer:
the menus are not working properly, usually they work once and don't work after the 1st usage. It doesn't happen with Qt5.

Tried to build with original Qt's Qt6 Linux binary distribution, the bug is present. Additionally, with Qt >= 6.5, there is another small bug, some system's styles (themes) make tool-tips invisible (white letters on white background).

Multi view: can we sync Level/Window value for all images

Hi, great tool!

In the Multi view, is there a way to sync the Level and Window for all images?

I sometimes want to compare images and set them to the same Level and Window, and currently I have to go one image by one setting the same Level and Window manually, which is rather cumbersome.

CUDA_wrap_DIR-NOTFOUND

Hello,

I'm trying to build AlizaMS. But got CUDA_wrap_DIR-NOTFOUND in cmake config.

What is CUDA_wrap exactly?

I tried a couple cuda-wrapper and cuda-api-wrapper, obviously, they are not the correct ones.

Thank you!

Persistence while playing 4D movies - Feature Requests

  1. It would be a huge quality of life improvement if, as you're watching a 4D movie play, that a ruler set up on one static phase stuck around as the movie played
  2. An extension of this would be to allow for boxes instead of rulers, that would measure both the x and y measurements, again persistent as the movie plays
  3. Allow Crosshair persistence and scrolling when playing 4D movies
  4. This isn't persistence but 4D related. The sort order of the linked image series in the upper right hand index area doesn't sort them by phase order. for 4D datasets could this be fixed?

alizams ubuntu 22.04 illegal instruction error

I install from this
https://software.opensuse.org//download.html?project=home%3Aissakomi%3AUbuntu-22.04&package=alizams

when starting the system i get error illegal instruction , I get an detalised error through the debugger

gdb alizams
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
https://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from alizams...
(No debugging symbols found in alizams)
(gdb) run
Starting program: /usr/bin/alizams
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGILL, Illegal instruction.
0x00007ffff71230b0 in v3p_netlib_slamc2_ () from /lib/libitkv3p_netlib-5.2.so.1

My system

Operating System: KDE neon 5.27
KDE Plasma Version: 5.27.7
KDE Frameworks Version: 5.109.0
Qt Version: 5.15.10
Kernel Version: 6.2.0-1012-lowlatency (64-bit)
Graphics Platform: X11
Processors: 2 × Intel® Core™2 Duo CPU E4700 @ 2.60GHz
Memory: 2.8 ГіБ of RAM
Graphics Processor: GeForce 210/PCIe/SSE2
Product Name: 775i945GZ

Database support

It would be nice, if in AlizaMS would have support for saving studies in database, like it done in OsiriX. It is very useful. Like on screenshot.
Screenshot

Working under IGEL OS 11

Hello,

im trying to run Alizams on a custom partition on an IGEL OS11 11.08.440. I created the custom partition and build the alizams.tar.bz2 though Ubuntu 18.04. I imported the profil in the UMS and edited the profil matching to our UMS. So far everything is working, exept, when I try to start the application, it doesnt start. When I launch it thought the terminal, it gives me the information that the libQt5core.so.5: version GT_5.11 was not found.

Can I somehow include the libary in the alizams.tar.bz2 or directly in the partition? I guess this is a simple quastion, but for someone who is new to the Linuxs world kinda hard.

Im happy for any help or hint.

/wrkdirs/usr/ports/graphics/alizams/work/AlizaMS-1.9.3/mdcm/Source/Common/mdcmSwapper.h:92:16: error: read-only variable is not assignable

Build fails on big-endian architectures:

In file included from /wrkdirs/usr/ports/graphics/alizams/work/AlizaMS-1.9.3/mdcm/Source/MediaStorageAndFileFormat/mdcmSegmentedPaletteColorLookupTable.cxx:23:
In file included from /wrkdirs/usr/ports/graphics/alizams/work/AlizaMS-1.9.3/mdcm/Source/DataStructureAndEncodingDefinition/mdcmDataSet.h:28:
In file included from /wrkdirs/usr/ports/graphics/alizams/work/AlizaMS-1.9.3/mdcm/Source/DataStructureAndEncodingDefinition/mdcmElement.h:31:
/wrkdirs/usr/ports/graphics/alizams/work/AlizaMS-1.9.3/mdcm/Source/Common/mdcmSwapper.h:92:16: error: read-only variable is not assignable
      array[i] = Swap<T>(array[i]);
      ~~~~~~~~ ^
/wrkdirs/usr/ports/graphics/alizams/work/AlizaMS-1.9.3/mdcm/Source/MediaStorageAndFileFormat/mdcmSegmentedPaletteColorLookupTable.cxx:233:18: note: in instantiation of function template specialization 'mdcm::SwapperNoOp::SwapArray<const unsigned short>' requested here
    SwapperNoOp::SwapArray(array16, length / 2);
                 ^

The test environment is FreeBSD 14.0 on powerpc64.

1.8.3 version

Hello @issakomi how are you?
Just a question: out of curiosity when do you think 1.8.0 will be released?
Thanks.

Prototype icon

I'm not a professional designer, but I wanted to give an idea of the icon.

alizams

Builds/releases for win/mac went missing?

I had previously downloaded Aliza MS 1.8.3 built for Windows from this Github release page, but now I cannot find any releases for either Windows or macOS. Is that a deliberate decision, a mistake, or a Github bug? Are there build instructions for Win/Mac somewhere?

Re-using one of your datasets

Hi,
I'm sorry to use github issues to contact you, but I couldn't find any contacts info from Aliza website.

I would like to use one of your datasets from the site,
in particular the Radiogenomics
in my tutorial for bidsification (I needed a simple dicom dataset).

Can I do it, and how should I acknowledge you?

Supported architectures

Hello.
I was trying to package alizams on Fedora.
It compiles successfully on x86_64, while it fails on all other architectures (armv7, aarch64, ppc64le, s390x).

At a first glance, the compilation error is here:

fatal error: xmmintrin.h: No such file or directory
   34 | #include <xmmintrin.h>

Packagers more experienced than me stated that xmmintrin.h is an header for SSE CPU instructions. SSE is an x86_64 extension.
So the solution could be to "wrap" such includes with

#ifdef __SSE__
#include <xmmintrin.h>
#endif

But the point is: does alizams is supposed to work on architectures other than x86_64?

Thanks.

QT6 and Fedora

Sorry @issakomi I need your advice.
If I use -DALIZA_QT_VERSION:STRING=6
I get

CMake Error at /usr/lib64/cmake/Qt6Core/Qt6CoreVersionlessTargets.cmake:42 (message):
  Some (but not all) targets in this export set were already defined.

  Targets Defined: Qt::Core

  Targets not yet defined: Qt::CorePrivate

Call Stack (most recent call first):
  /usr/lib64/cmake/Qt6Core/Qt6CoreConfig.cmake:65 (include)
  /usr/lib64/cmake/Qt6/Qt6Config.cmake:167 (find_package)
  CMakeLists.txt:588 (find_package)


-- Configuring incomplete, errors occurred!

I don't know. I installed qt6-qtbase-private-devel package.

And, for the records, if I also install qt5-qtbase-private-devel I get

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt5::Core" does
not agree with the value of QT_MAJOR_VERSION already determined
for "alizams".

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.