Giter Site home page Giter Site logo

kitwaremedical / vpaw Goto Github PK

View Code? Open in Web Editor NEW
3.0 12.0 5.0 3.6 MB

A surgical planning software system targeted to pediatric patients with airway obstruction.

Home Page: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5588666/

License: Other

CMake 9.91% C++ 11.78% Python 78.31%
3d-slicer-custom-application

vpaw's Issues

Updating Slicer and iMSTK versions

VPAW is currently using an older version of Slicer and iMSTK in the SlicerIMSTK module. We want to update this to the latest versions of both libraries to stay in sync with these libraries

visualize centerline and laplace solution isosurfaces

The VPAWVisualize module should have functionality to visualize the p3 files generated by the pediatric_airway_atlas pipelines.

These would be files with the following name pattern:

./transformed_landmarks/*_LANDMARKS.p3
./areas/*_AREAS.p3
./processed_areas/*_AREAS.p3
./interpolated_areas/*_AREAS.p3
./processed_centerline/*_CENTERLINE.p3
./centerline/*_CENTERLINE.p3

UPDATE: See comment below for the suggested visualization to create here.

Create modules VPAWModelOCT and VPAWVisualizeOCT

Similar to the modules VPAWModel and VPAWVisualize, create modules VPAWModelOCT and VPAWVisualizeOCT. VPAWModelOCT will be responsible for running the workflow provided by uncbiag/OCTSeg and VPAWVisualizeOCT will be responsible for visualizing the OCT output.

vpaw debug build fails on g3logger install step

Description

vpaw debug build fails on g3logger install step

Performing install step for 'g3log'
Error copying file "D:/b/VPAWD22/g3log-build/Debug/g3loggerd.lib" to "D:/b/VPAWD22/g3log-install/lib/g3loggerd.lib"

Install step of 'g3log' expects the built library file to be g3loggerd.lib in debug mode, but it is created as g3logger.lib

Add flythrough animation feature

We need a flythrough animation feature in VPAW. This is to aid in communicating aspects of a patient’s airway/anatomy to other clinicians. A flythrough path is defined by creating a set of keyframes that store camera poses. The camera poses are interpolated between keyframes to produce smooth camera movement along the camera path.

Task:

A standalone KeyFrameEditor module (or feature added to an existing module) for generating and exporting volume rendering animations. The module will provide a timeline and tracks allowing to save, edit and delete key frames associated with transfer function, ROI clipping box and camera position and orientation. Available keyframe interpolation functions will include ramp, exponential and bezier. Camera path will be represented by a curve annotation.

The plan is to distribute this feature as a standalone module as a Slicer extension or added to an existing module in Slicer core.

PS

Related modules to explore

  1. Sequence module ( https://slicer.readthedocs.io/en/latest/user_guide/modules/sequences.html )

  2. ScreenCapture module ( https://slicer.readthedocs.io/en/latest/user_guide/modules/screencapture.html )

  3. Endoscope module ( https://slicer.readthedocs.io/en/latest/user_guide/modules/endoscopy.html)

  4. SlicerMorph Animator module (Animator:

DOC: update readme

Now that VPAWVisualize and VPAWModel exist, the readme should be updated to indicate what they do and how to get set up with using them. The README should mention the dependence of VPAWModel on pediatric_airway_atlas so that this project can be rightly ignored by any passer-by who does not have access to that particular private research code.

Establish versioning convention

This GitHub issue is to provide a forum to discuss: to maintain maximum compatibility with 3D Slicer conventions, how and when do we want to update VPAW's application version numbers and GitHub releases and tags?

DOC: Tell user about the run time of the `pediatric_airway_atlas` pipeline

The user may be asked by VPAW (specifically, the underlying 3D Slicer) to choose between Wait and Force Quit during a long pediatric_airway_atlas pipeline run and this may be confusing. To reduce the confusion we might choose one or more among

  1. Raise an info dialogue when the user hits "run" that says "this may take a while, please let the program do its thing" and have the dialogue have a checkbox to not show it again.
  2. Update the web-page documentation to indicate "be aware that this can take a while, just let it do its thing"
  3. Dump the console output from pediatric_airway_atlas into a QTextEdit so that the user sees that something is happening and also sees whatever errors might be generated by the pipeline.

Credit to @ebrahimebrahim for formulating most of the issue text.

DOC: Report more detail for pediatric_airway_atlas failures

Currently we report only that the computation in the pediatric_airway_atlas module failed, and give an error message that speculates what might have gone wrong. Instead, catch any errors or exceptions from pediatric_airway_atlas to give a more informative and definitive message.

Note that pediatric_airway_atlas is invoked via slicer.util._executePythonModule(...) rather than by direct Python call, so the detecting and reporting of exceptions may be somewhat non-trivial.

ENH: VPAW Visualize and `qt.QSettings`

The VPAW Model module was recently updated to store form field values via qt.QSettings() so that the form field values are application-wide, not scene-specific, and will be re-populated when the VPAW application is restarted. Consider doing the same for one or more form fields in the VPAW Visualize module. Also, for the form field(s) that are duplicated between the two modules (e.g., the data directory) consider whether they should be forced to be equal vs. stored and re-populated independently.

ENH: Add vpaw_USE_IMSTK as cmake flag

As suggested at #33 (comment) by @jcfr (see "Pull Request 1"), we can support including SlicerIMSTK optionally by adding a cmake flag to indicate inclusion.

In Pull Request #33, we removed SlicerIMSTK because it would not build under Microsoft Windows due to a C++ version issue: 3D Slicer wants C++17 but IMSTK wants C++14. Unfortunately, that fix disables inclusion of IMSTK on other operating systems too. With the present issue implemented, the user can include or not include IMSTK as is best for the user.

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.