Moved the Cornerstone viewport code to an extension. Tons of changes to rollup and package.json files to make everything play nicely

This commit is contained in:
Erik Ziegler 2019-02-06 14:46:06 +01:00
parent 9a0f417eec
commit 22202141b8
45 changed files with 6193 additions and 208 deletions

View File

@ -0,0 +1,92 @@
{
"name": "ohif-cornerstone-extension",
"version": "0.0.3",
"description": "OHIF extension for Cornerstone",
"author": "OHIF",
"license": "MIT",
"repository": "OHIF/Viewers",
"main": "dist/index.umd.js",
"module": "dist/index.es.js",
"jsnext:main": "dist/index.es.js",
"engines": {
"node": ">=8",
"npm": ">=5"
},
"scripts": {
"build": "rollup -c",
"start": "rollup -c -w",
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
},
"peerDependencies": {
"cornerstone-core": "^2.2.8",
"cornerstone-wado-image-loader": "^2.2.3",
"dcmjs": "^0.3.2",
"dicom-parser": "^1.8.3",
"react": "^15.0.0 || ^16.0.0",
"react-dom": "^15.0.0 || ^16.0.0",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"ohif-core": "^0.2.6"
},
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/plugin-external-helpers": "^7.2.0",
"@babel/plugin-proposal-class-properties": "^7.2.3",
"@babel/plugin-transform-runtime": "^7.2.0",
"@babel/preset-env": "^7.2.3",
"@babel/preset-react": "^7.0.0",
"babel-eslint": "^10.0.1",
"cross-env": "^5.2.0",
"eslint": "5.13.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-node": "^8.0.0",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-react": "^7.11.1",
"gh-pages": "^2.0.1",
"husky": "^1.3.1",
"lint-staged": "^8.1.0",
"prettier": "^1.15.3",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"rollup": "^1.1.2",
"rollup-plugin-babel": "^4.2.0",
"rollup-plugin-commonjs": "^9.2.0",
"rollup-plugin-node-builtins": "^2.1.2",
"rollup-plugin-node-resolve": "^4.0.0",
"rollup-plugin-peer-deps-external": "^2.2.0",
"rollup-plugin-postcss": "^2.0.3",
"rollup-plugin-url": "^2.1.0",
"stylelint": "^9.9.0",
"stylelint-config-recommended": "^2.1.0",
"stylus": "^0.54.5"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,jsx,json,css}": [
"prettier --single-quote --write",
"git add"
]
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"files": [
"dist"
],
"dependencies": {
"@babel/runtime": "^7.2.0",
"classnames": "^2.2.6",
"cornerstone-tools": "3.0.1",
"cornerstone-math": "^0.1.8",
"dcmjs": "^0.3.2",
"hammerjs": "^2.0.8",
"react-cornerstone-viewport": "^0.1.9"
}
}

View File

@ -0,0 +1,62 @@
import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
import external from 'rollup-plugin-peer-deps-external'
import postcss from 'rollup-plugin-postcss'
import resolve from 'rollup-plugin-node-resolve'
import url from 'rollup-plugin-url'
import pkg from './package.json'
// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297
import builtins from 'rollup-plugin-node-builtins';
const globals = {
'react': 'React',
'react-dom': 'ReactDOM',
'react-redux': 'ReactRedux',
'cornerstone-core': 'cornerstone',
'cornerstone-wado-image-loader': 'cornerstoneWADOImageLoader',
'dcmjs': 'dcmjs',
'dicom-parser': 'dicomParser',
'ohif-core': 'OHIF'
};
export default {
input: 'src/index.js',
output: [
{
file: pkg.main,
format: 'umd',
name: 'ohif-cornerstone-extension',
sourcemap: true,
globals
},
{
file: pkg.module,
format: 'es',
sourcemap: true,
globals
}
],
plugins: [
builtins(),
external(),
postcss({
modules: false
}),
url(),
babel({
exclude: 'node_modules/**',
externalHelpers: true,
runtimeHelpers: true
}),
resolve(),
commonjs({
include: 'node_modules/**',
namedExports: {
'node_modules/react-is/index.js': [
'isValidElementType'
]
}
})
],
external: Object.keys(pkg.peerDependencies || {}),
}

View File

@ -0,0 +1,26 @@
import OHIFCornerstoneViewport from './OHIFCornerstoneViewport.js';
export default class OHIFCornerstoneExtension {
/**
* Extension ID is a unique id, might be used for namespacing extension specific redux actions/reducers (?)
*/
getExtensionId() {
return 'cornerstone';
}
getViewportModule() {
return OHIFCornerstoneViewport;
}
getSopClassHandler() {
return null;
}
getPanelModule() {
return null;
}
getToolbarModule() {
return null;
}
}

View File

@ -2,7 +2,6 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import OHIF from 'ohif-core';
import ConnectedCornerstoneViewport from './ConnectedCornerstoneViewport';
import OHIFComponentPlugin from '../OHIFComponentPlugin.js';
import cornerstoneTools from 'cornerstone-tools';
import cornerstone from 'cornerstone-core';
import './config';
@ -34,7 +33,7 @@ specialCaseHandlers[
SOP_CLASSES.SEGMENTATION_STORAGE
] = handleSegmentationStorage;
class OHIFCornerstoneViewportPlugin extends Component {
class OHIFCornerstoneViewport extends Component {
state = {
viewportData: null
};
@ -45,14 +44,14 @@ class OHIFCornerstoneViewportPlugin extends Component {
viewportIndex: PropTypes.number
};
static id = 'CornerstoneViewportPlugin';
static id = 'OHIFCornerstoneViewport';
static init() {
console.log('CornerstoneViewportPlugin init()');
console.log('OHIFCornerstoneViewport init()');
}
static destroy() {
console.log('CornerstoneViewportPlugin destroy()');
console.log('OHIFCornerstoneViewport destroy()');
StackManager.clearStacks();
}
@ -70,12 +69,12 @@ class OHIFCornerstoneViewportPlugin extends Component {
return StackManager.findOrCreateStack(study, displaySet);
}
static getPluginViewportData = (
static getViewportData = (
studies,
studyInstanceUid,
displaySetInstanceUid
) => {
const currentStack = OHIFCornerstoneViewportPlugin.getCornerstoneStack(
const currentStack = OHIFCornerstoneViewport.getCornerstoneStack(
studies,
studyInstanceUid,
displaySetInstanceUid
@ -108,7 +107,7 @@ class OHIFCornerstoneViewportPlugin extends Component {
);
break;
default:
const stack = OHIFCornerstoneViewportPlugin.getPluginViewportData(
const stack = OHIFCornerstoneViewport.getViewportData(
studies,
studyInstanceUid,
displaySetInstanceUid
@ -154,20 +153,16 @@ class OHIFCornerstoneViewportPlugin extends Component {
}
render() {
const { id, init, destroy } = OHIFCornerstoneViewportPlugin;
const pluginProps = { id, init, destroy };
return (
<OHIFComponentPlugin {...pluginProps}>
{this.state.viewportData && (
<ConnectedCornerstoneViewport
viewportData={this.state.viewportData}
viewportIndex={this.props.viewportIndex}
/>
)}
</OHIFComponentPlugin>
return (<>
{this.state.viewportData && (
<ConnectedCornerstoneViewport
viewportData={this.state.viewportData}
viewportIndex={this.props.viewportIndex}
/>
)}
</>
);
}
}
export default OHIFCornerstoneViewportPlugin;
export default OHIFCornerstoneViewport;

View File

@ -1,4 +1,5 @@
import OHIF from 'ohif-core';
import cornerstone from 'cornerstone-core';
import cornerstoneTools from 'cornerstone-tools';
import * as dcmjs from 'dcmjs';
@ -48,10 +49,11 @@ function getCornerstoneStack(studies, studyInstanceUid, displaySetInstanceUid) {
return stackClone;
}
function parseSeg(arrayBuffer, imageIds) {
function parseSeg(arrayBuffer, imageIds, firstImagePlane) {
return dcmjs.adapters.Cornerstone.Segmentation.readToolState(
imageIds,
arrayBuffer
arrayBuffer,
firstImagePlane
);
}
@ -115,10 +117,12 @@ async function handleSegmentationStorage(
}
const referenceDisplaySet = displaySets[0];
const imageIds = referenceDisplaySet.images
.reverse()
.map(image => image.getImageId());
const results = parseSeg(arrayBuffer, imageIds);
const imageIds = referenceDisplaySet.images.map(image => image.getImageId());
debugger;
const firstImagePlane = cornerstone.metadata.get('imagePlane', imageIds[0]);
const results = parseSeg(arrayBuffer, imageIds, firstImagePlane);
if (!results) {
throw new Error('Fractional segmentations are not supported');

View File

@ -0,0 +1,3 @@
import OHIFCornerstoneExtension from './OHIFCornerstoneExtension.js';
export default OHIFCornerstoneExtension;

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "ohif-dicom-microscopy-extension",
"version": "0.0.4",
"version": "0.0.5",
"description": "OHIF extension for Dicom Microscopy",
"author": "OHIF",
"license": "MIT",
@ -19,7 +19,8 @@
},
"peerDependencies": {
"react": "^15.0.0 || ^16.0.0",
"react-dom": "^15.0.0 || ^16.0.0"
"react-dom": "^15.0.0 || ^16.0.0",
"ohif-core": "^0.2.6"
},
"devDependencies": {
"@babel/core": "^7.2.2",
@ -76,7 +77,6 @@
"dependencies": {
"@babel/runtime": "^7.2.0",
"classnames": "^2.2.6",
"dicom-microscopy-viewer": "^0.2.0",
"ohif-core": "^0.2.4"
"dicom-microscopy-viewer": "^0.2.0"
}
}

View File

@ -8,6 +8,12 @@ import pkg from './package.json'
// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297
import builtins from 'rollup-plugin-node-builtins';
const globals = {
'react': 'React',
'react-dom': 'ReactDOM',
'ohif-core': 'OHIF'
}
export default {
input: 'src/index.js',
output: [
@ -16,16 +22,13 @@ export default {
format: 'umd',
name: 'ohif-dicom-microscopy-extension',
sourcemap: true,
exports: 'named',
globals: {
'react': 'React',
'react-dom': 'ReactDOM'
}
globals
},
{
file: pkg.module,
format: 'es',
sourcemap: true
sourcemap: true,
globals
}
],
plugins: [
@ -35,7 +38,6 @@ export default {
modules: false
}),
url(),
svgr(),
babel({
exclude: 'node_modules/**',
plugins: [ '@babel/external-helpers' ],
@ -51,5 +53,6 @@ export default {
]
}
})
]
],
external: Object.keys(pkg.peerDependencies || {}),
}

View File

@ -1,5 +1,3 @@
import OHIFDicomMicroscopyExtension from './OHIFDicomMicroscopyExtension.js';
export { OHIFDicomMicroscopyExtension };
export default OHIFDicomMicroscopyExtension;

View File

@ -0,0 +1,14 @@
{
"presets": [
["@babel/preset-env", {
"targets": {
"ie": "11"
}
}],
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-runtime"
]
}

View File

@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@ -0,0 +1,16 @@
{
"extends": [
"react-app",
"eslint:recommended",
"plugin:react/recommended"
],
"parser": "babel-eslint",
"env": {
"jest": true
},
"settings": {
"react": {
"version": "detect",
},
},
}

View File

@ -0,0 +1,23 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
node_modules
# builds
build
dist
.rpt2_cache
# misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.idea

View File

@ -0,0 +1,3 @@
{
"singleQuote": true
}

View File

@ -0,0 +1,4 @@
language: node_js
node_js:
- 9
- 8

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 Open Health Imaging Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,11 +1,11 @@
{
"name": "ohif-dicom-pdf-extension",
"version": "0.0.3",
"version": "0.0.5",
"description": "OHIF extension for Dicom PDF",
"author": "OHIF",
"license": "MIT",
"repository": "OHIF/Viewers",
"main": "dist/index.js",
"main": "dist/index.umd.js",
"module": "dist/index.es.js",
"jsnext:main": "dist/index.es.js",
"engines": {
@ -14,10 +14,14 @@
},
"scripts": {
"build": "rollup -c",
"prepublishOnly": "npm build",
"start": "rollup -c -w",
"lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}"
},
"peerDependencies": {
"dicom-parser": "^1.8.3",
"ohif-core": "^0.2.6",
"prop-types": "^15.6.2",
"react": "^15.0.0 || ^16.0.0",
"react-dom": "^15.0.0 || ^16.0.0"
},
@ -79,8 +83,6 @@
"dependencies": {
"@babel/runtime": "^7.2.0",
"classnames": "^2.2.6",
"lodash.isequal": "^4.5.0",
"ohif-core": "^0.2.3",
"prop-types": "^15.6.2"
"lodash.isequal": "^4.5.0"
}
}

View File

@ -9,6 +9,14 @@ import pkg from './package.json'
// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297
import builtins from 'rollup-plugin-node-builtins';
const globals = {
'react': 'React',
'react-dom': 'ReactDOM',
'prop-types': 'PropTypes',
'ohif-core': 'OHIF',
'dicom-parser': 'dicomParser'
};
export default {
input: 'src/index.js',
output: [
@ -17,16 +25,13 @@ export default {
format: 'umd',
name: 'ohif-dicom-pdf-extension',
sourcemap: true,
exports: 'named',
globals: {
'react': 'React',
'react-dom': 'ReactDOM'
}
globals
},
{
file: pkg.module,
format: 'es',
sourcemap: true
sourcemap: true,
globals
}
],
plugins: [
@ -46,5 +51,5 @@ export default {
resolve(),
commonjs()
],
external: ['hammerjs']
external: Object.keys(pkg.peerDependencies || {}),
}

View File

@ -1,7 +1,3 @@
import OHIFDicomPDFExtension from './OHIFDicomPDFExtension.js';
export {
OHIFDicomPDFExtension
};
export default OHIFDicomPDFExtension;

View File

@ -2629,23 +2629,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
cornerstone-core@^2.2.8:
version "2.2.8"
resolved "https://registry.yarnpkg.com/cornerstone-core/-/cornerstone-core-2.2.8.tgz#5f10c65c80f8efa7623ee1dd5c9a9d4605f5467c"
integrity sha512-iJrmfXy1nvM4ZLTJawif2VYBPq8APQ1GYjRbUZAJPNqPYmfYfKWkToVyf9o/i8GMl81op7xLJ4ib3ZMSINKjjQ==
cornerstone-math@^0.1.6, cornerstone-math@^0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/cornerstone-math/-/cornerstone-math-0.1.8.tgz#68ab1f9e4fdcd7c5cb23a0d2eb4263f9f894f1c5"
integrity sha512-x7NEQHBtVG7j1yeyj/aRoKTpXv1Vh2/H9zNLMyqYJDtJkNng8C4Q8M3CgZ1qer0Yr7eVq2x+Ynmj6kfOm5jXKw==
cornerstone-tools@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-2.4.0.tgz#e8136d41b6140c8299a06296918b1eb6f99ea5d7"
integrity sha512-M0UcnqSnN8cUhjTnr+om0621yYOiL1rPP+LK5VsMqe1R3yKvfePZhSwhNjw8j4+qVXvliPsfcA7NwsvtOBOaOA==
dependencies:
cornerstone-math "^0.1.6"
cosmiconfig@5.0.6:
version "5.0.6"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
@ -3195,11 +3178,6 @@ dicom-parser@^1.8.3:
resolved "https://registry.yarnpkg.com/dicom-parser/-/dicom-parser-1.8.3.tgz#6e4b862898112304db30143147562011c1ce6a4d"
integrity sha512-CMeUr+jea7Ml70N+/Z5Pd2MYtvLp6IU+TnvdLe6VRVKzZuTeYLYyuAQa9R+sFK4v4N39hig+hKHN+Wfi9sQ6GA==
dicomweb-client@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.4.1.tgz#b846556e61677566e36f5ea3cf0c1b48014bcbe4"
integrity sha512-kTNklf8TTnLToybOFzpEArmdMx2ibOETkCVNTcHMHnV2P9dZSXAcbn0oWRbN9lt7/eGGeHAOQYYZwYjSfBlk5g==
diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
@ -5339,11 +5317,6 @@ isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
isomorphic-base64@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/isomorphic-base64/-/isomorphic-base64-1.0.2.tgz#f426aae82569ba8a4ec5ca73ad21a44ab1ee7803"
integrity sha1-9Caq6CVpuopOxcpzrSGkSrHueAM=
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@ -5713,16 +5686,6 @@ joi@^11.1.1:
isemail "3.x.x"
topo "2.x.x"
jquery.hotkeys@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/jquery.hotkeys/-/jquery.hotkeys-0.1.0.tgz#a88f636494fe75de41e4b753a059e5a523b83273"
integrity sha1-qI9jZJT+dd5B5LdToFnlpSO4MnM=
jquery@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
js-base64@^2.1.9:
version "2.4.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03"
@ -6217,11 +6180,6 @@ lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
lodash.merge@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
@ -6988,24 +6946,6 @@ octal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/octal/-/octal-1.0.0.tgz#63e7162a68efbeb9e213588d58e989d1e5c4530b"
ohif-core@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/ohif-core/-/ohif-core-0.2.2.tgz#8ed668e22afb1abeea083d67584f0b3385c7ccd8"
integrity sha512-Sb9Fc4fNaVRBFVTFZVQUKzE0kAMgOHI9du4l874m32w68wARIDVWvr97SrCC7HozC4v6QLMQieLf/yE0jX9G8g==
dependencies:
"@babel/runtime" "^7.2.0"
cornerstone-core "^2.2.8"
cornerstone-math "^0.1.7"
cornerstone-tools "^2.4.0"
dicom-parser "^1.8.3"
dicomweb-client "^0.4.1"
isomorphic-base64 "^1.0.2"
jquery "^3.3.1"
jquery.hotkeys "^0.1.0"
lodash.clonedeep "^4.5.0"
lodash.merge "^4.6.1"
validate.js "^0.12.0"
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@ -10439,11 +10379,6 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
validate.js@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/validate.js/-/validate.js-0.12.0.tgz#17f989e37c192ea2f826bbf19bf4e97e6e4be68f"
integrity sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA==
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"

@ -1 +1 @@
Subproject commit 5b10ab279fa18605ce44235d15604865d5a93bb9
Subproject commit 8b3a80a85a466924cb1bdcb9450408130ebec9a0

View File

@ -5,7 +5,7 @@
"author": "OHIF Contributors",
"license": "MIT",
"repository": "OHIF/Viewers",
"main": "dist/index.js",
"main": "dist/index.umd.js",
"browser": "dist/index.umd.js",
"module": "dist/index.es.js",
"jsnext:main": "dist/index.es.js",
@ -97,15 +97,16 @@
"classnames": "^2.2.6",
"cornerstone-core": "^2.2.8",
"cornerstone-math": "^0.1.8",
"cornerstone-tools": "3.0.0-b.1679",
"cornerstone-wado-image-loader": "^2.2.3",
"dcmjs": "^0.3.2",
"dicom-parser": "^1.8.3",
"dicomweb-client": "^0.4.2",
"hammerjs": "^2.0.8",
"lodash.isequal": "^4.5.0",
"ohif-core": "^0.2.5",
"ohif-dicom-microscopy-extension": "^0.0.3",
"ohif-dicom-pdf-extension": "^0.0.3",
"ohif-core": "^0.2.6",
"ohif-cornerstone-extension": "^0.0.3",
"ohif-dicom-microscopy-extension": "^0.0.5",
"ohif-dicom-pdf-extension": "^0.0.5",
"oidc-client": "^1.6.1",
"prop-types": "^15.6.2",
"react-bootstrap-modal": "^4.2.0",

View File

@ -10,36 +10,28 @@ import pkg from './package.json'
// Deal with https://github.com/rollup/rollup-plugin-commonjs/issues/297
import builtins from 'rollup-plugin-node-builtins';
const globals = {
'react': 'React',
'react-dom': 'ReactDOM'
};
export default {
external: ['react', 'react-dom'],
input: 'src/index_publish.js',
output: [
{
file: pkg.main,
format: 'cjs',
exports: 'named',
sourcemap: true
},
{
file: pkg.browser,
file: pkg.main,
format: 'umd',
sourcemap: true,
exports: 'named',
name: 'OHIFStandaloneViewer',
globals: {
'react': 'React',
'react-dom': 'ReactDOM',
'cornerstone-core': 'cornerstone',
'cornerstone-tools': 'cornerstoneTools',
'cornerstone-math': 'cornerstoneMath',
'dicom-parser': 'dicomParser'
},
globals
},
{
file: pkg.module,
format: 'es',
exports: 'named',
sourcemap: true,
globals
}
],
plugins: [
@ -64,9 +56,13 @@ export default {
],
'node_modules/cornerstoneTools/dist/cornerstoneTools.min.js': [
'cornerstoneTools'
],
'node_modules/dcmjs/build/dcmjs.js': [
'data', 'adapters'
]
}
}),
builtins(),
]
],
external: Object.keys(pkg.peerDependencies || {}),
}

View File

@ -7,8 +7,8 @@ import OHIF from 'ohif-core';
import './config';
import ui from './redux/ui.js';
import OHIFStandaloneViewer from './OHIFStandaloneViewer';
import OHIFCornerstoneViewportPlugin from './connectedComponents/OHIFCornerstoneViewportPlugin/OHIFCornerstoneViewportPlugin.js';
import WhiteLabellingContext from './WhiteLabellingContext';
import OHIFCornerstoneExtension from 'ohif-cornerstone-extension';
import OHIFDicomPDFExtension from 'ohif-dicom-pdf-extension';
import OHIFDicomMicroscopyExtension from 'ohif-dicom-microscopy-extension';
import { loadState, saveState } from './redux/localStorageState.js';
@ -115,16 +115,9 @@ const buttonsAction = OHIF.redux.actions.setAvailableButtons(defaultButtons);
store.dispatch(buttonsAction);
const cornerstonePluginAction = OHIF.redux.actions.addPlugin({
id: 'cornerstone',
type: 'viewport',
component: OHIFCornerstoneViewportPlugin
});
store.dispatch(cornerstonePluginAction);
/** TODO: extensions should be passed in as prop as soon as we have the extensions as separate packages and then registered by ExtensionsManager */
let extensions = [
new OHIFCornerstoneExtension(),
new OHIFDicomPDFExtension(),
new OHIFDicomMicroscopyExtension()
];

View File

@ -63,8 +63,8 @@ class Viewer extends Component {
</WhiteLabellingContext.Consumer>
<div id="viewer" className="Viewer">
<ConnectedToolbarRow />
<ConnectedStudyLoadingMonitor studies={this.props.studies} />
<StudyPrefetcher studies={this.props.studies} />
{/*<ConnectedStudyLoadingMonitor studies={this.props.studies} />*/}
{/*<StudyPrefetcher studies={this.props.studies} />*/}
<ConnectedFlexboxLayout studies={this.props.studies} />
</div>
</>

View File

@ -92,19 +92,15 @@ class ViewerMain extends Component {
componentWillUnmount() {
// Remove beforeUnload event handler...
//window.removeEventListener('beforeunload', unloadHandlers.beforeUnload);
// Destroy the synchronizer used to update reference lines
OHIF.viewer.updateImageSynchronizer.destroy();
//OHIF.viewer.updateImageSynchronizer.destroy();
// TODO: Instruct all plugins to clean up themselves
//
// Clear references to all stacks in the StackManager
//StackManager.clearStacks();
// @TypeSafeStudies
// Clears OHIF.viewer.Studies collection
//OHIF.viewer.Studies.removeAll();
// @TypeSafeStudies
// Clears OHIF.viewer.StudyMetadataList collection
//OHIF.viewer.StudyMetadataList.removeAll();

View File

@ -23,7 +23,7 @@ Example config with OIDC
// http://localhost:5000/viewer/1.2.276.0.7230010.3.1.2.0.94237.1537373823.634387 //PDF
// http://localhost:5000/viewer/1.3.6.1.4.1.25403.345050719074.3824.20170126082328.1
// http://ohif-viewer-react.s3-website-us-east-1.amazonaws.com/viewer/1.3.6.1.4.1.25403.345050719074.3824.20170126082328.1
props.servers = {
/*props.servers = {
dicomWeb: [
{
name: 'DCM4CHEE',
@ -55,7 +55,7 @@ props.oidc = [
client_id: 'crowds-cure-cancer'
}
}
];
];*/
/* props.servers = {
dicomWeb: [
@ -88,25 +88,22 @@ props.oidc = [
]; */
/* Example config without OIDC */
// Try going to:
// http://localhost:5000/viewer/1.3.6.1.4.1.14519.5.2.1.1706.4996.216859690032335293073513900362
/* props.servers = {
props.servers = {
dicomWeb: [
{
name: 'DCM4CHEE',
wadoUriRoot: 'https://dcm4che.ohif.club/dcm4chee-arc/aets/DCM4CHEE/wado',
qidoRoot: 'https://dcm4che.ohif.club/dcm4chee-arc/aets/DCM4CHEE/rs',
wadoRoot: 'https://dcm4che.ohif.club/dcm4chee-arc/aets/DCM4CHEE/rs',
wadoUriRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/wado',
qidoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
wadoRoot: 'https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs',
qidoSupportsIncludeField: true,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
requestOptions: {
requestFromBrowser: true,
auth: 'cloud:healthcare'
requestFromBrowser: true
}
}
]
}; */
};
/*props.servers = {
"dicomWeb": [

View File

@ -1 +1 @@
export default 'bf8f737fecdc34e46f973b438fe7139347b4c890';
export default '9a0f417eec535bc0de1a57017930abd6d5a4c0c8';

View File

@ -2964,26 +2964,19 @@ cornerstone-core@^2.2.8:
resolved "https://registry.yarnpkg.com/cornerstone-core/-/cornerstone-core-2.2.8.tgz#5f10c65c80f8efa7623ee1dd5c9a9d4605f5467c"
integrity sha512-iJrmfXy1nvM4ZLTJawif2VYBPq8APQ1GYjRbUZAJPNqPYmfYfKWkToVyf9o/i8GMl81op7xLJ4ib3ZMSINKjjQ==
cornerstone-math@^0.1.6, cornerstone-math@^0.1.7, cornerstone-math@^0.1.8:
cornerstone-math@^0.1.7, cornerstone-math@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/cornerstone-math/-/cornerstone-math-0.1.8.tgz#68ab1f9e4fdcd7c5cb23a0d2eb4263f9f894f1c5"
integrity sha512-x7NEQHBtVG7j1yeyj/aRoKTpXv1Vh2/H9zNLMyqYJDtJkNng8C4Q8M3CgZ1qer0Yr7eVq2x+Ynmj6kfOm5jXKw==
cornerstone-tools@3.0.0-b.1679:
version "3.0.0-b.1679"
resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-3.0.0-b.1679.tgz#e97c4ddc5b229faeb625682412a7cfd77b9fc70c"
integrity sha512-t69w5lgS/eZQXdyEfLixWuGZbpspNmyhvu8af9cYQDQ445tchvBtSSD6h1u+5m1gXZvV4LxwBqD8rwZTpMzH9Q==
cornerstone-tools@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-3.0.1.tgz#b7e3ac36963ee2a6e49238d9889f05b7b6356ea2"
integrity sha512-IcolnxbvNr/Pl8TSFaWkwuT59/CGlWmcD9k1E/eM9sE1x2qiLkCKxYfx/hrSP2aH7cayCWiYlaEcrpAlaQBsWA==
dependencies:
"@babel/runtime" "7.1.2"
cornerstone-math "^0.1.7"
cornerstone-tools@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-2.4.0.tgz#e8136d41b6140c8299a06296918b1eb6f99ea5d7"
integrity sha512-M0UcnqSnN8cUhjTnr+om0621yYOiL1rPP+LK5VsMqe1R3yKvfePZhSwhNjw8j4+qVXvliPsfcA7NwsvtOBOaOA==
dependencies:
cornerstone-math "^0.1.6"
cornerstone-wado-image-loader@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/cornerstone-wado-image-loader/-/cornerstone-wado-image-loader-2.2.3.tgz#2d4c06b5c87cd9198b52906c48e2d9dd145de986"
@ -3625,11 +3618,16 @@ dicom-parser@^1.8.1, dicom-parser@^1.8.3:
resolved "https://registry.yarnpkg.com/dicom-parser/-/dicom-parser-1.8.3.tgz#6e4b862898112304db30143147562011c1ce6a4d"
integrity sha512-CMeUr+jea7Ml70N+/Z5Pd2MYtvLp6IU+TnvdLe6VRVKzZuTeYLYyuAQa9R+sFK4v4N39hig+hKHN+Wfi9sQ6GA==
dicomweb-client@^0.4.0, dicomweb-client@^0.4.1:
dicomweb-client@^0.4.0:
version "0.4.1"
resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.4.1.tgz#b846556e61677566e36f5ea3cf0c1b48014bcbe4"
integrity sha512-kTNklf8TTnLToybOFzpEArmdMx2ibOETkCVNTcHMHnV2P9dZSXAcbn0oWRbN9lt7/eGGeHAOQYYZwYjSfBlk5g==
dicomweb-client@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/dicomweb-client/-/dicomweb-client-0.4.2.tgz#f1f5167d935810423ad2599e5160306bde2458ed"
integrity sha512-Raf2SVjWDrNaVIVt4CmfXWdKVacyEX5ux+pY2Qop0mhluG+OiCkbnESljz4PjglFRnprETEk6C0ELGDru0haew==
diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
@ -8217,17 +8215,13 @@ octal@^1.0.0:
resolved "https://registry.yarnpkg.com/octal/-/octal-1.0.0.tgz#63e7162a68efbeb9e213588d58e989d1e5c4530b"
integrity sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=
ohif-core@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/ohif-core/-/ohif-core-0.2.3.tgz#2eea4806f44dd98740afe4fec6fb2a038c496197"
integrity sha512-wBfZOxmRhrkDPFlmoADzxeuNlGiZGa2azbFkpUosxW+8yciuwmOvh21e0bd3uwAkotinrItWihnRR9gz8bG2DA==
ohif-core@^0.2.6:
version "0.2.6"
resolved "https://registry.yarnpkg.com/ohif-core/-/ohif-core-0.2.6.tgz#f5a5cd7f1e476e6f6eccfc9b1a73db949baba679"
integrity sha512-WWXktB+6A8hu2+aB4ZfW/H9J2seePcWLt3XqHahnm9CoOLS/pfvMt34BEzAm7O9ddkYb/0E4QFAfOGkul0uZ9w==
dependencies:
"@babel/runtime" "^7.2.0"
cornerstone-core "^2.2.8"
cornerstone-math "^0.1.7"
cornerstone-tools "^2.4.0"
dicom-parser "^1.8.3"
dicomweb-client "^0.4.1"
dicomweb-client "^0.4.2"
isomorphic-base64 "^1.0.2"
jquery "^3.3.1"
jquery.hotkeys "^0.1.0"
@ -8235,29 +8229,36 @@ ohif-core@^0.2.3:
lodash.merge "^4.6.1"
validate.js "^0.12.0"
ohif-dicom-microscopy-extension@^0.0.3:
ohif-cornerstone-extension@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/ohif-dicom-microscopy-extension/-/ohif-dicom-microscopy-extension-0.0.3.tgz#b6ef36100ed991422b23d25f1f7d011010853973"
integrity sha512-y63l27D33eHrlo4hUpKFs2n/rxojRh6EB7AVaGDvCYFpbEMFarnOkWg56wIKtIBfg+gyB02W1wWF67P6sckzjw==
resolved "https://registry.yarnpkg.com/ohif-cornerstone-extension/-/ohif-cornerstone-extension-0.0.3.tgz#621446db7eae99472a1283081634acd0990a1ee2"
integrity sha512-9q1JIH6UO/LV5XHmmUlLJ0FV+KljcG2Rc5QgGin5svl7EsDAlIG2ocrX12B9KtZ35vYyL1zigbsPd642xbCTOw==
dependencies:
"@babel/runtime" "^7.2.0"
classnames "^2.2.6"
cornerstone-math "^0.1.8"
cornerstone-tools "3.0.1"
dcmjs "^0.3.2"
hammerjs "^2.0.8"
react-cornerstone-viewport "^0.1.9"
ohif-dicom-microscopy-extension@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/ohif-dicom-microscopy-extension/-/ohif-dicom-microscopy-extension-0.0.5.tgz#c61ca7ae9bfae25de8c964a436ea95187ec98de8"
integrity sha512-FyqeS+Vt0P+W7VX0wrlEzkDqVXC1NTM/U4xJz+b3Cuv4MJEAZCqlE3zGnpxRIOxq/VzfjKrtVxHr8jEUlb9GwQ==
dependencies:
"@babel/runtime" "^7.2.0"
classnames "^2.2.6"
dicom-microscopy-viewer "^0.2.0"
dicomweb-client "^0.4.1"
lodash.isequal "^4.5.0"
ohif-core "^0.2.3"
prop-types "^15.6.2"
ohif-dicom-pdf-extension@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/ohif-dicom-pdf-extension/-/ohif-dicom-pdf-extension-0.0.3.tgz#057a096d4c599ce0f4036a56f20dc135cbb70b6f"
integrity sha512-JiK0XYJjfHHJiaiBi8NANsIo4NkRuWG6OTlslWUpjeL+E44COrVBuU3+fD+8lWzN2kTOHNuzbRLFgP70/W73Jw==
ohif-dicom-pdf-extension@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/ohif-dicom-pdf-extension/-/ohif-dicom-pdf-extension-0.0.5.tgz#8d2b453aa9d1df736f5c54818f7ee682f60f4c32"
integrity sha512-YlMgh25hJ+p9e/Uzgg0Wx3deutUKaPd1t/PtL8gIHD+3/k3hgmTsz8nYsQ7xKGSXGpl56d/r9PrRpKF9n8nLSw==
dependencies:
"@babel/runtime" "^7.2.0"
classnames "^2.2.6"
lodash.isequal "^4.5.0"
ohif-core "^0.2.3"
prop-types "^15.6.2"
oidc-client@^1.6.1:
version "1.6.1"