* fix: 🐛 Local file: failing when retrieving segmentation data Fix segmentation data retrieval issues for local file. Changed from fecthing to use cornerstone loadAndCache method BREAKING CHANGE: DICOM Seg Closes: part of #838 * Switch SEG retrieval to WADO-RS * Forgot a debugger * refactor: 💡 Code refactor. Minor changes into methods * fix: 🐛 Load local files: PDF Items: 1. FileLoaderService: used for serveral operations on local files(load it, get list of studies, group them, accepting dicom and pdf) 2. DicomLoaderService: used for loading dicom based on dataset and studies. Depending on type of dicom loader might change. WIP 3. Refactor PDF and handleSegmentationStorage to use DicomLoaderService * fix: 🐛 Code review * fix: 🐛 Code review. Changed:Folder organization and dicom file Move fileLoaderService and others to a specific folder. When loading dicom file change to only retrieve the file(not use cornerstone to cache or anything else). * fix: 🐛 Code review. Move dicomLoaderService to core Moved dicomLoaderService to ohif/core and localFileLoaders to a specific folder. * fix: 🐛 Code review Simplified method to get study for dicom file. Added error handling on file loading. DicomLoaderService to be exposed on ohif/core/utils instead. * fix: 🐛 Reduce local load to one method only Reduced local file load to one method only * fix: 🐛 HTML to use dicomLoaderService. Prefer wadors than (uri) * fix: 🐛 Code implementation for multiframe files * fix: 🐛 Code review. Default local loader to dicom Closes: 838 * fix: 🐛 Code review. Use relative path to require DICOMWeb Closes: 838 * fix: 🐛 Code review. Fix unit test. Added DicomLoaderService mod Closes: 838 * fix: 🐛 Code review. Add 'Seg' on left thumb When getting/creating dataset get modality for file/image read Closes: 838 |
||
|---|---|---|
| .. | ||
| .webpack | ||
| src | ||
| .all-contributorsrc | ||
| babel.config.js | ||
| CHANGELOG.md | ||
| jest.config.js | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
@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.
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.
- Clone this repository
- Navigate to the project directory, and
yarn install - To begin making changes,
yarn run dev - 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.
Contributors
Thanks goes to these wonderful people (emoji key):
Erik Ziegler 💻 | Evren Ozkan 💻 | Gustavo André Lelis 💻 | Danny Brown 💻 | allcontributors[bot] 📖 | Ivan Aksamentov 💻 ⚠️ |
This project follows the all-contributors specification. Contributions of any kind welcome!
License
MIT © OHIF