GithubHelp home page GithubHelp logo

isabella232 / healthcare-api-dicom-viewer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from googlecloudplatform/healthcare-api-dicom-viewer

0.0 0.0 0.0 1.27 MB

Tool to view DICOM data served by Google Cloud Healthcare API

License: Apache License 2.0

JavaScript 99.96% CSS 0.04%

healthcare-api-dicom-viewer's Introduction

Healthcare DICOM viewer

This repository contains a tool to view DICOM data served by Google Cloud Healthcare API.

The goal of this viewer is to be used as reference for the best practices on integrating the Google Healthcare API into a medical image viewer with optimal performance. For more information on integrating the Google Healthcare API with your viewer, see here.

The performance investigations made while developing this viewer are described in the Wiki.

Setup Instructions

To use the viewer locally, you will need to set up OAuth2.0 client credentials. To do this:

  1. Open Google Cloud Console
  2. Create a new OAuth Client ID and selected "Web application"
  3. When setting up the OAuth consent screen, add the following scopes:
  4. Add http://localhost:1234 or your host url to the Authorized JavaScript Origins & Authorized redirect URIs
  5. Copy the Client ID into src/config.js

Use the below commands to run or build the application

npm install # Install dependencies

npm start # Starts a local webserver on localhost:1234
or
npm build # Builds the application in /dist folder

To Run Tests

npm run test

Usage Instructions

To use the viewer, you will need to have access to a Google Cloud project that is being used to store DICOM images. If you don't have one, there is a public tcia dataset that you can request access to for testing purposes.

Navigation

Navigation Screenshot When you open the viewer for the first time, you will be asked to sign into Google. Then, the application will load a list of the Google Cloud projects you have access to. You can navigate through your projects, project locations, datasets, dicom stores, DICOM studies, and DICOM series through a series of lists. Each list has the ability to search and filter through its items.

There are also breadcrumbs at the top of the application you can use to go back to a given point. For instance, to switch to another project after having already selected one, you would click the project name in the breadcrumbs which will take you back to that point and allow you to select a new one.

DICOM Viewer

Viewer Screenshot Once your project, location, dataset, dicom store, study, and series have been selected, you will be navigated to the viewer screen. Here, you will see a black canvas, a list of metrics, an input dialog to change the number of concurrent requests, and a start button.

Changing the "Max Simultaneous Requests" input box will alter how many http requests will be active at any given moment when fetching a sequence of DICOM images. The default is set to 20, but this value can be changed to see the performance benefits of increased simultaneous requests.

Press "Start" to begin loading the sequence of DICOM images in this series. You should see the images start to load as fast as they can, along with metrics updating to measure performance. After the sequence ends, you can change any values you want and press "Start" again to clear the cache and run the sequence again. One thing to note, is that CornerstoneJS renders the images using requestAnimationFrame, which means that the images will never render faster than your screen's current refresh rate. So if you have a 60Hz monitor, the highest FPS you will see is around ~60FPS.

healthcare-api-dicom-viewer's People

Contributors

alex979 avatar cloud-healthcare-github avatar danielbeaudreau avatar wanghy0113 avatar

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.