Git Product home page Git Product logo

ohif-core's Introduction

ohif-core

ohif-core is a collection of useful functions and classes for building web-based medical imaging applications. This library helps power OHIF's zero-footprint DICOM viewer.


CircleCI codecov All Contributors code style: prettier semantic-release

NPM version NPM downloads MIT License

Why?

This library offers pre-packaged solutions for features common to Web-based medical imaging viewers. For example:

  • Hotkeys
  • DICOM Web
  • Hanging Protocols
  • Managing a study's measurements
  • Managing a study's DICOM metadata
  • A flexible pattern for extensions
  • And many others

It does this while remaining decoupled from any particular view library or rendering logic. While we use it to power our React Viewer, it can be used with Vue, React, Vanilla JS, or any number of other frameworks.

Getting Started

The documentation for this library is sparse. The best way to get started is to look at its top level exports, and explore the source code of features that interest you. If you want to see how we use this library, you can check out our viewer implementation.

Install

This library is pre- v1.0. All realeases until a v1.0 have the possibility of introducing breaking changes. Please depend on an "exact" version in your projects to prevent issues caused by loose versioning.

// with npm
npm i ohif-core --save-exact

// with yarn
yarn add ohif-core --exact

Usage

Usage is dependent on the feature(s) you want to leverage. The bulk of ohif-core's features are "pure" and can be imported and used in place.

Example: retrieving study metadata from a server

import { studies } from 'ohif-core'

const studiesMetadata = await studies.retrieveStudiesMetadata(
  server, // Object
  studyInstanceUids, // Array
  seriesInstanceUids // Array (optional)
)

Contributing

It is notoriously difficult to setup multiple dependent repositories for end-to-end testing and development. That's why we recommend writing and running unit tests when adding and modifying features for this library. This allows us to program in isolation without a complex setup, and has the added benefit of producing well-tested business logic.

  1. Clone this repository
  2. Navigate to the project directory, and yarn install
  3. To begin making changes, yarn run dev
  4. To commit changes, run yarn run cm

When creating tests, place the test file "next to" the file you're testing. For example:

// File
index.js

// Test for file
index.test.js

As you add and modify code, jest will watch for uncommitted changes and run your tests, reporting the results to your terminal. Make a pull request with your changes to master, and a core team member will review your work. If you have any questions, please don't hesitate to reach out via a GitHub issue.

Issues

Looking to contribute? Look for the Good First Issue label.

πŸ› Bugs

Please file an issue for bugs, missing documentation, or unexpected behavior.

See Bugs

πŸ’‘ Feature Requests

Please file an issue to suggest new features. Vote on feature requests by adding a πŸ‘. This helps maintainers prioritize what to work on.

See Feature Requests

❓ Questions

For questions related to using the library, please visit our support community, or file an issue on GitHub.

Google Group

Contributors

Thanks goes to these wonderful people (emoji key):

Erik Ziegler
Erik Ziegler

πŸ’»
Evren Ozkan
Evren Ozkan

πŸ’»
Gustavo AndrΓ© Lelis
Gustavo AndrΓ© Lelis

πŸ’»
Danny Brown
Danny Brown

πŸ’»
allcontributors[bot]
allcontributors[bot]

πŸ“–
Ivan Aksamentov
Ivan Aksamentov

πŸ’» ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

License

MIT Β© OHIF

ohif-core's People

Contributors

dannyrb avatar swederik avatar evren217 avatar galelis avatar maltempi avatar allcontributors[bot] avatar biharck avatar ivan-aksamentov avatar dependabot[bot] avatar

Watchers

James Cloos 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.