Git Product home page Git Product logo

gadgetroncontrol's Introduction

A user interface for interacting with the Gadgetron Framework. We hope it assissts you in your daily work and you are welcome to further enhance the system.

It is implemented with Node.js on the server-side and a backbone on the client-side. There are two operation modes available:

  • local: start a local GUI (wrapper around remote option)
  • remote: run a server and connect to the server via webbrowser

Quick start

Assuming you are running it inside the gadgetron docker image or having gadgetron set up properly.

sudo apt-get install npm nodejs-legacy
git clone https://github.com/gadgetron/GadgetronControl
cd GadgetronControl
npm install
npm start

Installation

Prerequesits

Prerequisites are the following tools:

  1. siemens_to_ismrmrd
  2. gadgetron
  3. nodejs
  4. npm
  5. (optional) hdfview
  6. (optional) imagej

Please set the PATH variables so that the GadgetronControl can find them and install the required packages:

sudo apt-get install npm nodejs-legacy
export GADGETRON_HOME=/usr/local
export ISMRMRD_HOME=/usr/local
export PATH=$PATH:$GADGETRON_HOME/bin:$ISMRMRD_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GADGETRON_HOME/lib:$ISMRMRD_HOME/lib

Installation script

For installation and startup you can use the following script.

git clone https://github.com/gadgetron/GadgetronControl
cd GadgetronControl
# install GadgetronControl dependencies
npm install

Configuration

The GadgetronControl can be configured in the "Settings"-Tab or directly in the "./config.json" file (requires GadgetronControl restart):

    "port": "3000",                                       // client-server communication port
    "hostname": "localhost",                              // server IP
    "config_dir": "/usr/local/share/gadgetron/config/",   // Gadgetron configuration dir (path with *.xml files)
    "upload_dir": "uploads",                              // data upload directory (relative to GadgetronControl root)
    "result_dir": "public/results",                       // results directory (relative to GadgetronControl root)
    "trash_dir": "trash",                                 // trash directory (relative to GadgetronControl root)
    "gadgetron_port": "9002",                             // Gadgetron port
    "gadgetron_relay_host": "localhost",                  // Gadgetron relay host
    "gadgetron_relay_port": "8002",                       // Gadgetron relay port
    "gadgetron_rest_port": "9080",                        // Gadgetron rest port
    "gadgetron_log": "/tmp/gadgetron.log",                // Gadgetron log file
    "readers_db": "db/readers.db",                        // database for reader gadgets (relative to GadgetronControl root)
    "gadgets_db": "db/gadgets.db",                        // database for Gadgetron gadgets (relative to GadgetronControl root)
    "writers_db": "db/writers.db",                        // database for writer gadgets (relative to GadgetronControl root)
    "admin_user": "admin",                                // admin user name
    "password": "admin",                                  // admin password
    "viewer": "hdfview"                                   // optional viewers: hdfview | imagej

Usage

The UI is then started as a standalone GUI:

# start electron GUI
npm start

or via webbrowser under http://localhost:3000:

# start remote webserver
npm run remote

We implemented a small (but insecure) authentification to ensure a user message notification if anything is deleted. Username and password are both admin by default but you are free to change them in the config.json.

Features

  • run Gadgetron configurations (.xml), bash scripts (.sh) and python scripts (*.py)
  • upload or locate data on server
  • configure Gadgetron pipeline: visualize, add, delete, rearrange and parametrize gadgets
  • upload/download and locate data on server
  • display log output
  • view results via hdfview or imagej

Structure

The project is ordered in the following folders:

db (place for the databases)
api (APIs from the server side)
node_modules
public (backbone stuff)
+--css
|  +--libs (bootstrap, etc.)
|  +--... (place for new css files)
+--fonts
|  +--... (place for all needed fonts)
+--img
|  +--... (place for new images)
+--js
|  +--collections (all backbone colections)
|  +--models (all backbone models)
|  +--routes (all routes)
|  +--views (all views)
|  backboneMain.js (jump in from backbone)
|  gadgetronBundleApp.js (babelified server code)
|  regionManager.js (handels multiple views)
+--results (results of gadgetron for direct download)
+--index.html (main page)
+--load.html (loading page)
trash (storage for the garbage)
uploads (storage for your data)
+--dat
+--h5
+--xsl
config.json (configuration variables)
Gruntfile.js (grunt script)
main.js (electron GUI)
index.js (node.js server)
package.json (npm packages)
readme.md (this file ;))

Change log

  • v1.0.0: initial release

Please read LICENSE file for licensing details.

Further information can be found at:

https://sites.google.com/site/kspaceastronauts/gadgetron/gadgetroncontrol

gadgetroncontrol's People

Contributors

chrisdecker1201 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

valentine256

gadgetroncontrol's Issues

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.