diff --git a/docs/latest/advanced/extensions.md b/docs/latest/advanced/extensions.md index dc4284271..4953eb80d 100644 --- a/docs/latest/advanced/extensions.md +++ b/docs/latest/advanced/extensions.md @@ -197,9 +197,9 @@ would like included at startup. _app.js_ ```js -import { createStore, combineReducers } from 'redux'; -import OHIF from 'ohif-core'; -import OHIFCornerstoneExtension from 'ohif-cornerstone-extension'; +import { createStore, combineReducers } from "redux"; +import OHIF from "@ohif/core"; +import OHIFCornerstoneExtension from "ohif-cornerstone-extension"; const combined = combineReducers(OHIF.redux.reducers); const store = createStore(combined); diff --git a/extensions/cornerstone/src/ConnectedCornerstoneViewport.js b/extensions/cornerstone/src/ConnectedCornerstoneViewport.js index 7f1979998..0ddc9d2fd 100644 --- a/extensions/cornerstone/src/ConnectedCornerstoneViewport.js +++ b/extensions/cornerstone/src/ConnectedCornerstoneViewport.js @@ -1,7 +1,7 @@ -import CornerstoneViewport from 'react-cornerstone-viewport'; -import OHIF from 'ohif-core'; -import { connect } from 'react-redux'; -import throttle from 'lodash.throttle'; +import CornerstoneViewport from "react-cornerstone-viewport"; +import OHIF from "@ohif/core"; +import { connect } from "react-redux"; +import throttle from "lodash.throttle"; const { setViewportActive, setViewportSpecificData } = OHIF.redux.actions; @@ -37,7 +37,7 @@ const mapStateToProps = (state, ownProps) => { enableStackPrefetch: isActive, //stack: viewportSpecificData.stack, cineToolData: viewportSpecificData.cine, - viewport: viewportSpecificData.viewport, + viewport: viewportSpecificData.viewport }; }; @@ -64,8 +64,8 @@ const mapDispatchToProps = (dispatch, ownProps) => { dispatch( setViewportSpecificData(viewportIndex, { // TODO: Hack to make sure our plugin info is available from the outset - plugin: 'cornerstone', - dom: enabledElement, + plugin: "cornerstone", + dom: enabledElement }) ); }, @@ -74,18 +74,18 @@ const mapDispatchToProps = (dispatch, ownProps) => { const { onAdded, onRemoved, - onModified, + onModified } = OHIF.measurements.MeasurementHandlers; const actions = { added: onAdded, removed: onRemoved, modified: throttle(event => { return onModified(event); - }, 300), + }, 300) }; return actions[action](event); - }, + } }; }; diff --git a/extensions/cornerstone/src/OHIFCornerstoneViewport.js b/extensions/cornerstone/src/OHIFCornerstoneViewport.js index 3a75bfa0e..2f13f5daa 100644 --- a/extensions/cornerstone/src/OHIFCornerstoneViewport.js +++ b/extensions/cornerstone/src/OHIFCornerstoneViewport.js @@ -1,10 +1,10 @@ -import React, { Component } from 'react'; +import React, { Component } from "react"; -import ConnectedCornerstoneViewport from './ConnectedCornerstoneViewport'; -import OHIF from 'ohif-core'; -import PropTypes from 'prop-types'; -import cornerstone from 'cornerstone-core'; -import handleSegmentationStorage from './handleSegmentationStorage.js'; +import ConnectedCornerstoneViewport from "./ConnectedCornerstoneViewport"; +import OHIF from "@ohif/core"; +import PropTypes from "prop-types"; +import cornerstone from "cornerstone-core"; +import handleSegmentationStorage from "./handleSegmentationStorage.js"; const { StackManager } = OHIF.utils; @@ -18,7 +18,7 @@ cornerstone.metaData.addProvider( StackManager.setMetadataProvider(metadataProvider); const SOP_CLASSES = { - SEGMENTATION_STORAGE: '1.2.840.10008.5.1.4.1.1.66.4', + SEGMENTATION_STORAGE: "1.2.840.10008.5.1.4.1.1.66.4" }; const specialCaseHandlers = {}; @@ -28,11 +28,11 @@ specialCaseHandlers[ class OHIFCornerstoneViewport extends Component { state = { - viewportData: null, + viewportData: null }; static defaultProps = { - customProps: {}, + customProps: {} }; static propTypes = { @@ -40,17 +40,17 @@ class OHIFCornerstoneViewport extends Component { displaySet: PropTypes.object, viewportIndex: PropTypes.number, children: PropTypes.node, - customProps: PropTypes.object, + customProps: PropTypes.object }; - static id = 'OHIFCornerstoneViewport'; + static id = "OHIFCornerstoneViewport"; static init() { - console.log('OHIFCornerstoneViewport init()'); + console.log("OHIFCornerstoneViewport init()"); } static destroy() { - console.log('OHIFCornerstoneViewport destroy()'); + console.log("OHIFCornerstoneViewport destroy()"); StackManager.clearStacks(); } @@ -72,15 +72,15 @@ class OHIFCornerstoneViewport extends Component { frameIndex = 0 ) { if (!studies || !studies.length) { - throw new Error('Studies not provided.'); + throw new Error("Studies not provided."); } if (!studyInstanceUid) { - throw new Error('StudyInstanceUID not provided.'); + throw new Error("StudyInstanceUID not provided."); } if (!displaySetInstanceUid) { - throw new Error('StudyInstanceUID not provided.'); + throw new Error("StudyInstanceUID not provided."); } // Create shortcut to displaySet @@ -89,7 +89,7 @@ class OHIFCornerstoneViewport extends Component { ); if (!study) { - throw new Error('Study not found.'); + throw new Error("Study not found."); } const displaySet = study.displaySets.find(set => { @@ -97,7 +97,7 @@ class OHIFCornerstoneViewport extends Component { }); if (!displaySet) { - throw new Error('Display Set not found.'); + throw new Error("Display Set not found."); } // Get stack from Stack Manager @@ -110,7 +110,7 @@ class OHIFCornerstoneViewport extends Component { if (sopInstanceUid) { const index = stack.imageIds.findIndex(imageId => { const sopCommonModule = cornerstone.metaData.get( - 'sopCommonModule', + "sopCommonModule", imageId ); if (!sopCommonModule) { @@ -124,7 +124,7 @@ class OHIFCornerstoneViewport extends Component { stack.currentImageIdIndex = index; } else { console.warn( - 'SOPInstanceUID provided was not found in specified DisplaySet' + "SOPInstanceUID provided was not found in specified DisplaySet" ); } } @@ -183,7 +183,7 @@ class OHIFCornerstoneViewport extends Component { viewportData = { studyInstanceUid, displaySetInstanceUid, - stack, + stack }; break; @@ -199,12 +199,12 @@ class OHIFCornerstoneViewport extends Component { displaySetInstanceUid, sopClassUids, sopInstanceUid, - frameIndex, + frameIndex } = displaySet; if (sopClassUids && sopClassUids.length > 1) { console.warn( - 'More than one SOPClassUid in the same series is not yet supported.' + "More than one SOPClassUid in the same series is not yet supported." ); } @@ -219,7 +219,7 @@ class OHIFCornerstoneViewport extends Component { frameIndex ).then(viewportData => { this.setState({ - viewportData, + viewportData }); }); } @@ -250,7 +250,7 @@ class OHIFCornerstoneViewport extends Component { childrenWithProps = this.props.children.map((child, index) => { return React.cloneElement(child, { viewportIndex: this.props.viewportIndex, - key: index, + key: index }); }); } diff --git a/extensions/cornerstone/src/handleSegmentationStorage.js b/extensions/cornerstone/src/handleSegmentationStorage.js index a65d667d4..8b999badc 100644 --- a/extensions/cornerstone/src/handleSegmentationStorage.js +++ b/extensions/cornerstone/src/handleSegmentationStorage.js @@ -1,8 +1,8 @@ -import * as dcmjs from 'dcmjs'; +import * as dcmjs from "dcmjs"; -import OHIF from 'ohif-core'; -import cornerstone from 'cornerstone-core'; -import cornerstoneTools from 'cornerstone-tools'; +import OHIF from "@ohif/core"; +import cornerstone from "cornerstone-core"; +import cornerstoneTools from "cornerstone-tools"; const { StackManager } = OHIF.utils; @@ -56,7 +56,7 @@ function retrieveDicomData(wadoUri) { // TODO: Authorization header depends on the server. If we ever have multiple servers // we will need to figure out how / when to pass this information in. return fetch(wadoUri, { - headers: OHIF.DICOMWeb.getAuthorizationHeader(), + headers: OHIF.DICOMWeb.getAuthorizationHeader() }).then(response => response.arrayBuffer()); } @@ -91,7 +91,7 @@ async function handleSegmentationStorage( if (displaySets.length > 1) { console.warn( - 'More than one display set with the same seriesInstanceUid. This is not supported yet...' + "More than one display set with the same seriesInstanceUid. This is not supported yet..." ); } @@ -100,7 +100,7 @@ async function handleSegmentationStorage( const results = parseSeg(arrayBuffer, imageIds); if (!results) { - throw new Error('Fractional segmentations are not supported'); + throw new Error("Fractional segmentations are not supported"); } const { segMetadata, toolState } = results; @@ -123,7 +123,7 @@ async function handleSegmentationStorage( return { studyInstanceUid, displaySetInstanceUid, - stack, + stack }; } diff --git a/extensions/dicom-html/src/OHIFDicomHtmlSopClassHandler.js b/extensions/dicom-html/src/OHIFDicomHtmlSopClassHandler.js index 7423da779..c04abbd65 100644 --- a/extensions/dicom-html/src/OHIFDicomHtmlSopClassHandler.js +++ b/extensions/dicom-html/src/OHIFDicomHtmlSopClassHandler.js @@ -1,14 +1,14 @@ -import { MODULE_TYPES, utils } from 'ohif-core'; +import { MODULE_TYPES, utils } from "@ohif/core"; // TODO: Should probably use dcmjs for this const SOP_CLASS_UIDS = { - BASIC_TEXT_SR: '1.2.840.10008.5.1.4.1.1.88.11', - ENHANCED_SR: '1.2.840.10008.5.1.4.1.1.88.22', - COMPREHENSIVE_SR: '1.2.840.10008.5.1.4.1.1.88.33', - PROCEDURE_LOG_STORAGE: '1.2.840.10008.5.1.4.1.1.88.40', - MAMMOGRAPHY_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.50', - CHEST_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.65', - X_RAY_RADIATION_DOSE_SR: '1.2.840.10008.5.1.4.1.1.88.67' + BASIC_TEXT_SR: "1.2.840.10008.5.1.4.1.1.88.11", + ENHANCED_SR: "1.2.840.10008.5.1.4.1.1.88.22", + COMPREHENSIVE_SR: "1.2.840.10008.5.1.4.1.1.88.33", + PROCEDURE_LOG_STORAGE: "1.2.840.10008.5.1.4.1.1.88.40", + MAMMOGRAPHY_CAD_SR: "1.2.840.10008.5.1.4.1.1.88.50", + CHEST_CAD_SR: "1.2.840.10008.5.1.4.1.1.88.65", + X_RAY_RADIATION_DOSE_SR: "1.2.840.10008.5.1.4.1.1.88.67" }; const sopClassUids = Object.values(SOP_CLASS_UIDS); @@ -16,14 +16,14 @@ const sopClassUids = Object.values(SOP_CLASS_UIDS); // TODO: Handle the case where there is more than one SOP Class Handler for the // same SOP Class const OHIFDicomHtmlSopClassHandler = { - id: 'OHIFDicomHtmlSopClassHandler', + id: "OHIFDicomHtmlSopClassHandler", type: MODULE_TYPES.SOP_CLASS_HANDLER, sopClassUids, getDisplaySetFromSeries(series, study, dicomWebClient, authorizationHeaders) { const instance = series.getFirstInstance(); return { - plugin: 'html', + plugin: "html", displaySetInstanceUid: utils.guid(), wadoRoot: study.getData().wadoRoot, wadoUri: instance.getData().wadouri, diff --git a/extensions/dicom-microscopy/src/DicomMicroscopySopClassHandler.js b/extensions/dicom-microscopy/src/DicomMicroscopySopClassHandler.js index 9196032a3..306284efe 100644 --- a/extensions/dicom-microscopy/src/DicomMicroscopySopClassHandler.js +++ b/extensions/dicom-microscopy/src/DicomMicroscopySopClassHandler.js @@ -1,13 +1,13 @@ -import OHIF from 'ohif-core'; +import OHIF from "@ohif/core"; const { utils } = OHIF; const SOP_CLASS_UIDS = { - VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.6', + VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE: "1.2.840.10008.5.1.4.1.1.77.1.6" }; const DicomMicroscopySopClassHandler = { - id: 'DicomMicroscopySopClassHandlerPlugin', + id: "DicomMicroscopySopClassHandlerPlugin", sopClassUids: [SOP_CLASS_UIDS.VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE], getDisplaySetFromSeries(series, study, dicomWebClient) { const instance = series.getFirstInstance(); @@ -15,14 +15,14 @@ const DicomMicroscopySopClassHandler = { // Note: We are passing the dicomweb client into each viewport! return { - plugin: 'microscopy', + plugin: "microscopy", displaySetInstanceUid: utils.guid(), dicomWebClient, sopInstanceUid: instance.getSOPInstanceUID(), seriesInstanceUid: series.getSeriesInstanceUID(), - studyInstanceUid: study.getStudyInstanceUID(), + studyInstanceUid: study.getStudyInstanceUID() }; - }, + } }; export default DicomMicroscopySopClassHandler; diff --git a/extensions/dicom-pdf/src/OHIFDicomPDFSopClassHandler.js b/extensions/dicom-pdf/src/OHIFDicomPDFSopClassHandler.js index 0b8e1b7bd..2ac89b157 100644 --- a/extensions/dicom-pdf/src/OHIFDicomPDFSopClassHandler.js +++ b/extensions/dicom-pdf/src/OHIFDicomPDFSopClassHandler.js @@ -1,19 +1,19 @@ -import { MODULE_TYPES, utils } from 'ohif-core'; +import { MODULE_TYPES, utils } from "@ohif/core"; // TODO: Should probably use dcmjs for this const SOP_CLASS_UIDS = { - ENCAPSULATED_PDF: '1.2.840.10008.5.1.4.1.1.104.1' + ENCAPSULATED_PDF: "1.2.840.10008.5.1.4.1.1.104.1" }; const OHIFDicomPDFSopClassHandler = { - id: 'OHIFDicomPDFSopClassHandlerPlugin', + id: "OHIFDicomPDFSopClassHandlerPlugin", type: MODULE_TYPES.SOP_CLASS_HANDLER, sopClassUids: [SOP_CLASS_UIDS.ENCAPSULATED_PDF], getDisplaySetFromSeries(series, study, dicomWebClient, authorizationHeaders) { const instance = series.getFirstInstance(); return { - plugin: 'pdf', + plugin: "pdf", displaySetInstanceUid: utils.guid(), wadoRoot: study.getData().wadoRoot, wadoUri: instance.getData().wadouri, diff --git a/extensions/dicom-pdf/src/OHIFDicomPDFViewport.js b/extensions/dicom-pdf/src/OHIFDicomPDFViewport.js index 604220c4c..37ed988dd 100644 --- a/extensions/dicom-pdf/src/OHIFDicomPDFViewport.js +++ b/extensions/dicom-pdf/src/OHIFDicomPDFViewport.js @@ -1,8 +1,8 @@ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; -import OHIF from 'ohif-core'; -import OHIFComponentPlugin from './OHIFComponentPlugin.js'; -import DicomPDFViewport from './DicomPDFViewport'; +import React, { Component } from "react"; +import PropTypes from "prop-types"; +import OHIF from "@ohif/core"; +import OHIFComponentPlugin from "./OHIFComponentPlugin.js"; +import DicomPDFViewport from "./DicomPDFViewport"; const { DICOMWeb } = OHIF; @@ -18,44 +18,69 @@ class OHIFDicomPDFViewport extends Component { error: null }; - static id = 'DicomPDFViewportPDF'; + static id = "DicomPDFViewportPDF"; static init() { - console.log('DicomPDFViewport init()'); + console.log("DicomPDFViewport init()"); } static destroy() { - console.log('DicomPDFViewport destroy()'); + console.log("DicomPDFViewport destroy()"); } componentDidMount() { const { displaySet } = this.props.viewportData; - const { studyInstanceUid, seriesInstanceUid, sopInstanceUid, wadoRoot, wadoUri, authorizationHeaders} = displaySet; + const { + studyInstanceUid, + seriesInstanceUid, + sopInstanceUid, + wadoRoot, + wadoUri, + authorizationHeaders + } = displaySet; - this.retrieveDicomData(studyInstanceUid, seriesInstanceUid, sopInstanceUid, wadoRoot, wadoUri, authorizationHeaders).then(byteArray => { - this.setState({ - byteArray - }); - }, error => { - this.setState({ - error - }); + this.retrieveDicomData( + studyInstanceUid, + seriesInstanceUid, + sopInstanceUid, + wadoRoot, + wadoUri, + authorizationHeaders + ).then( + byteArray => { + this.setState({ + byteArray + }); + }, + error => { + this.setState({ + error + }); throw new Error(error); } ); } - retrieveDicomData(studyInstanceUid, seriesInstanceUid, sopInstanceUid, wadoRoot, wadoUri, authorizationHeaders) { + retrieveDicomData( + studyInstanceUid, + seriesInstanceUid, + sopInstanceUid, + wadoRoot, + wadoUri, + authorizationHeaders + ) { // TODO: Passing in a lot of data we aren't using // TODO: Authorization header depends on the server. If we ever have multiple servers // we will need to figure out how / when to pass this information in. return fetch(wadoUri, { headers: authorizationHeaders - }).then(response => response.arrayBuffer()).then(arraybuffer => { - return new Uint8Array(arraybuffer); - }); + }) + .then(response => response.arrayBuffer()) + .then(arraybuffer => { + return new Uint8Array(arraybuffer); + }); } render() { diff --git a/extensions/vtk/src/ConnectedVTKViewport.js b/extensions/vtk/src/ConnectedVTKViewport.js index 2eb695594..ae1dc9807 100644 --- a/extensions/vtk/src/ConnectedVTKViewport.js +++ b/extensions/vtk/src/ConnectedVTKViewport.js @@ -1,6 +1,6 @@ -import OHIF from 'ohif-core'; -import { View2D } from 'react-vtkjs-viewport'; -import { connect } from 'react-redux'; +import OHIF from "@ohif/core"; +import { View2D } from "react-vtkjs-viewport"; +import { connect } from "react-redux"; const { setViewportActive, setViewportSpecificData } = OHIF.redux.actions; @@ -24,7 +24,7 @@ const mapStateToProps = (state, ownProps) => { // Hopefully this doesn't break anything under the hood for this one // activeTool: activeButton && activeButton.command, ...dataFromStore, - enableStackPrefetch: isActive, + enableStackPrefetch: isActive }; }; @@ -38,7 +38,7 @@ const mapDispatchToProps = (dispatch, ownProps) => { setViewportSpecificData: data => { dispatch(setViewportSpecificData(viewportIndex, data)); - }, + } }; }; @@ -63,10 +63,10 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { // Store the API details for later //setViewportSpecificData({ vtkApi: api }); - if (afterCreation && typeof afterCreation === 'function') { + if (afterCreation && typeof afterCreation === "function") { afterCreation(api); } - }, + } }; return props; }; diff --git a/extensions/vtk/src/OHIFVTKViewport.js b/extensions/vtk/src/OHIFVTKViewport.js index a42ac75b3..aa9d06fa4 100644 --- a/extensions/vtk/src/OHIFVTKViewport.js +++ b/extensions/vtk/src/OHIFVTKViewport.js @@ -1,16 +1,16 @@ -import React, { Component } from 'react'; -import { getImageData, loadImageData } from 'react-vtkjs-viewport'; +import React, { Component } from "react"; +import { getImageData, loadImageData } from "react-vtkjs-viewport"; -import ConnectedVTKViewport from './ConnectedVTKViewport'; -import LoadingIndicator from './LoadingIndicator.js'; -import OHIF from 'ohif-core'; -import PropTypes from 'prop-types'; -import cornerstone from 'cornerstone-core'; -import handleSegmentationStorage from './handleSegmentationStorage.js'; -import vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray'; -import vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData'; -import vtkVolume from 'vtk.js/Sources/Rendering/Core/Volume'; -import vtkVolumeMapper from 'vtk.js/Sources/Rendering/Core/VolumeMapper'; +import ConnectedVTKViewport from "./ConnectedVTKViewport"; +import LoadingIndicator from "./LoadingIndicator.js"; +import OHIF from "@ohif/core"; +import PropTypes from "prop-types"; +import cornerstone from "cornerstone-core"; +import handleSegmentationStorage from "./handleSegmentationStorage.js"; +import vtkDataArray from "vtk.js/Sources/Common/Core/DataArray"; +import vtkImageData from "vtk.js/Sources/Common/DataModel/ImageData"; +import vtkVolume from "vtk.js/Sources/Rendering/Core/Volume"; +import vtkVolumeMapper from "vtk.js/Sources/Rendering/Core/VolumeMapper"; const { StackManager } = OHIF.utils; @@ -24,7 +24,7 @@ cornerstone.metaData.addProvider( StackManager.setMetadataProvider(metadataProvider); const SOP_CLASSES = { - SEGMENTATION_STORAGE: '1.2.840.10008.5.1.4.1.1.66.4', + SEGMENTATION_STORAGE: "1.2.840.10008.5.1.4.1.1.66.4" }; const specialCaseHandlers = {}; @@ -42,7 +42,7 @@ const volumeCache = {}; */ function createLabelMapImageData(backgroundImageData) { const labelMapData = vtkImageData.newInstance( - backgroundImageData.get('spacing', 'origin', 'direction') + backgroundImageData.get("spacing", "origin", "direction") ); labelMapData.setDimensions(backgroundImageData.getDimensions()); labelMapData.computeTransforms(); @@ -50,7 +50,7 @@ function createLabelMapImageData(backgroundImageData) { const values = new Uint8Array(backgroundImageData.getNumberOfPoints()); const dataArray = vtkDataArray.newInstance({ numberOfComponents: 1, // labelmap with single component - values, + values }); labelMapData.getPointData().setScalars(dataArray); @@ -61,24 +61,24 @@ class OHIFVTKViewport extends Component { state = { volumes: null, paintFilterLabelMapImageData: null, - paintFilterBackgroundImageData: null, + paintFilterBackgroundImageData: null }; static propTypes = { studies: PropTypes.object, displaySet: PropTypes.object, viewportIndex: PropTypes.number, - children: PropTypes.node, + children: PropTypes.node }; - static id = 'OHIFVTKViewport'; + static id = "OHIFVTKViewport"; static init() { - console.log('OHIFVTKViewport init()'); + console.log("OHIFVTKViewport init()"); } static destroy() { - console.log('OHIFVTKViewport destroy()'); + console.log("OHIFVTKViewport destroy()"); StackManager.clearStacks(); } @@ -109,7 +109,7 @@ class OHIFVTKViewport extends Component { } else if (sopInstanceUid) { const index = stack.imageIds.findIndex(imageId => { const sopCommonModule = cornerstone.metaData.get( - 'sopCommonModule', + "sopCommonModule", imageId ); if (!sopCommonModule) { @@ -151,7 +151,7 @@ class OHIFVTKViewport extends Component { switch (sopClassUid) { case SOP_CLASSES.SEGMENTATION_STORAGE: - throw new Error('Not yet implemented'); + throw new Error("Not yet implemented"); const data = handleSegmentationStorage( stack.imageIds, @@ -164,7 +164,7 @@ class OHIFVTKViewport extends Component { return loadImageData(imageDataObject).then(() => { return { data: imageDataObject.vtkImageData, - labelmap: labelmapDataObject, + labelmap: labelmapDataObject }; }); default: @@ -172,7 +172,7 @@ class OHIFVTKViewport extends Component { return loadImageData(imageDataObject).then(() => { return { - data: imageDataObject.vtkImageData, + data: imageDataObject.vtkImageData }; }); } @@ -201,12 +201,12 @@ class OHIFVTKViewport extends Component { displaySetInstanceUid, sopClassUids, sopInstanceUid, - frameIndex, + frameIndex } = displaySet; if (sopClassUids.length > 1) { console.warn( - 'More than one SOPClassUid in the same series is not yet supported.' + "More than one SOPClassUid in the same series is not yet supported." ); } @@ -230,7 +230,7 @@ class OHIFVTKViewport extends Component { this.setState({ volumes: [volumeActor], paintFilterBackgroundImageData: data, - paintFilterLabelMapImageData: labelmap, + paintFilterLabelMapImageData: labelmap }); } @@ -260,12 +260,12 @@ class OHIFVTKViewport extends Component { childrenWithProps = this.props.children.map((child, index) => { return React.cloneElement(child, { viewportIndex: this.props.viewportIndex, - key: index, + key: index }); }); } - const style = { width: '100%', height: '100%', position: 'relative' }; + const style = { width: "100%", height: "100%", position: "relative" }; return ( <> diff --git a/extensions/vtk/src/handleSegmentationStorage.js b/extensions/vtk/src/handleSegmentationStorage.js index 1988456cd..c8aa5983c 100644 --- a/extensions/vtk/src/handleSegmentationStorage.js +++ b/extensions/vtk/src/handleSegmentationStorage.js @@ -1,7 +1,7 @@ -import * as dcmjs from 'dcmjs'; +import * as dcmjs from "dcmjs"; -import OHIF from 'ohif-core'; -import { api } from 'dicomweb-client'; +import OHIF from "@ohif/core"; +import { api } from "dicomweb-client"; const { StackManager } = OHIF.utils; @@ -57,14 +57,14 @@ function retrieveDicomData( ) { const config = { url: wadoRoot, - headers: DICOMWeb.getAuthorizationHeader(), + headers: DICOMWeb.getAuthorizationHeader() }; const dicomWeb = new api.DICOMwebClient(config); const options = { studyInstanceUID, seriesInstanceUID, - sopInstanceUID, + sopInstanceUID }; return dicomWeb.retrieveInstance(options); @@ -117,7 +117,7 @@ async function handleSegmentationStorage( if (displaySets.length > 1) { console.warn( - 'More than one display set with the same seriesInstanceUid. This is not supported yet...' + "More than one display set with the same seriesInstanceUid. This is not supported yet..." ); } @@ -125,7 +125,7 @@ async function handleSegmentationStorage( const imageIds = referenceDisplaySet.images.map(image => image.getImageId()); if (!results) { - throw new Error('Fractional segmentations are not supported'); + throw new Error("Fractional segmentations are not supported"); } const cachedStack = StackManager.findOrCreateStack( @@ -137,13 +137,13 @@ async function handleSegmentationStorage( return { referenceDataObject, - labelmapDataObject, + labelmapDataObject }; return { studyInstanceUid, displaySetInstanceUid, - stack, + stack }; } diff --git a/extensions/vtk/src/utils/setLayoutAndViewportData.js b/extensions/vtk/src/utils/setLayoutAndViewportData.js index c28b17717..c8223cd3b 100644 --- a/extensions/vtk/src/utils/setLayoutAndViewportData.js +++ b/extensions/vtk/src/utils/setLayoutAndViewportData.js @@ -1,4 +1,4 @@ -import { redux } from 'ohif-core'; +import { redux } from "@ohif/core"; const { setViewportLayoutAndData } = redux.actions; diff --git a/extensions/vtk/webpack.config.js b/extensions/vtk/webpack.config.js index 8be3d098f..55de8b175 100644 --- a/extensions/vtk/webpack.config.js +++ b/extensions/vtk/webpack.config.js @@ -1,26 +1,26 @@ -const path = require('path'); -const webpack = require('webpack'); -const autoprefixer = require('autoprefixer'); +const path = require("path"); +const webpack = require("webpack"); +const autoprefixer = require("autoprefixer"); // const vtkHtmlRules = require('vtk.js/Utilities/config/dependency.js').webpack // .core.rules; // Optional if you want to load *.css and *.module.css files // var cssRules = require('vtk.js/Utilities/config/dependency.js').webpack.css.rules; -const SRC_DIR = path.join(__dirname, './src'); -const OUTPUT_DIR = path.join(__dirname, './dist'); +const SRC_DIR = path.join(__dirname, "./src"); +const OUTPUT_DIR = path.join(__dirname, "./dist"); module.exports = { - mode: 'development', + mode: "development", entry: { - app: `${SRC_DIR}/index.js`, + app: `${SRC_DIR}/index.js` }, context: SRC_DIR, // ~~~ MODE output: { path: OUTPUT_DIR, - library: 'ohifVtkExtension', - libraryTarget: 'umd', - filename: 'index.umd.js', - auxiliaryComment: 'Text VTK Extension Comment', + library: "ohifVtkExtension", + libraryTarget: "umd", + filename: "index.umd.js", + auxiliaryComment: "Text VTK Extension Comment" }, stats: { colors: true, @@ -31,43 +31,43 @@ module.exports = { chunkModules: true, modules: true, children: true, - warnings: true, + warnings: true }, optimization: { minimize: false, - sideEffects: true, + sideEffects: true }, // ~~~ END MODE resolve: { modules: [ - path.resolve(__dirname, 'node_modules'), - path.resolve(__dirname, '../../node_modules'), - SRC_DIR, + path.resolve(__dirname, "node_modules"), + path.resolve(__dirname, "../../node_modules"), + SRC_DIR ], - extensions: ['.js', '.jsx', '.json', '*'], - symlinks: true, + extensions: [".js", ".jsx", ".json", "*"], + symlinks: true }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: [/node_modules/], - loader: 'babel-loader', + loader: "babel-loader", options: { // Find babel.config.js in monorepo root // https://babeljs.io/docs/en/options#rootmode - rootMode: 'upward', + rootMode: "upward", presets: [ [ - '@babel/preset-env', + "@babel/preset-env", { // Do not transform ES6 modules to another format. // Webpack will take care of that. - modules: false, - }, - ], - ], - }, + modules: false + } + ] + ] + } }, /** * @@ -76,15 +76,15 @@ module.exports = { test: /\.css$/, exclude: /\.module\.css$/, use: [ - 'style-loader', - 'css-loader', + "style-loader", + "css-loader", { - loader: 'postcss-loader', + loader: "postcss-loader", options: { - plugins: () => [autoprefixer('last 2 version', 'ie >= 10')], - }, - }, - ], + plugins: () => [autoprefixer("last 2 version", "ie >= 10")] + } + } + ] }, /** * @@ -92,7 +92,7 @@ module.exports = { { test: /\.glsl$/i, include: /vtk\.js[\/\\]Sources/, - loader: 'shader-loader', + loader: "shader-loader" }, /** * @@ -102,13 +102,13 @@ module.exports = { include: /vtk\.js[\/\\]Sources/, use: [ { - loader: 'worker-loader', - options: { inline: true, fallback: false }, - }, - ], - }, - ], - }, + loader: "worker-loader", + options: { inline: true, fallback: false } + } + ] + } + ] + } // externals: [ // { // cornerstone: { @@ -125,7 +125,7 @@ module.exports = { // }, // }, // '@ohif/i18n', - // 'ohif-core', + // '@ohif/core', // 'dcmjs', // 'react-viewerbase', // 'react', //: 'React', diff --git a/platform/core/README.md b/platform/core/README.md index 1d19e6ff0..f23d70f95 100644 --- a/platform/core/README.md +++ b/platform/core/README.md @@ -62,13 +62,13 @@ Usage is dependent on the feature(s) you want to leverage. The bulk of _Example: retrieving study metadata from a server_ ```js -import { studies } from 'ohif-core' +import { studies } from "@ohif/core"; const studiesMetadata = await studies.retrieveStudiesMetadata( server, // Object studyInstanceUids, // Array seriesInstanceUids // Array (optional) -) +); ``` ### Contributing @@ -89,10 +89,10 @@ When creating tests, place the test file "next to" the file you're testing. ```js // File -index.js +index.js; // Test for file -index.test.js +index.test.js; ``` As you add and modify code, `jest` will watch for uncommitted changes and run diff --git a/platform/viewer/src/App.js b/platform/viewer/src/App.js index b689362d8..29ecd8d36 100644 --- a/platform/viewer/src/App.js +++ b/platform/viewer/src/App.js @@ -1,46 +1,46 @@ -import './config'; +import "./config"; // Polyfills -import 'core-js/features/array/flat'; -import 'core-js/stable'; -import 'regenerator-runtime/runtime'; +import "core-js/features/array/flat"; +import "core-js/stable"; +import "regenerator-runtime/runtime"; import { CommandsManager, ExtensionManager, HotkeysManager, - utils, -} from 'ohif-core'; -import React, { Component } from 'react'; + utils +} from "@ohif/core"; +import React, { Component } from "react"; import { getUserManagerForOpenIdConnectClient, - initWebWorkers, -} from './utils/index.js'; + initWebWorkers +} from "./utils/index.js"; -import { I18nextProvider } from 'react-i18next'; -import initCornerstoneTools from './initCornerstoneTools.js'; +import { I18nextProvider } from "react-i18next"; +import initCornerstoneTools from "./initCornerstoneTools.js"; // ~~ EXTENSIONS -import { GenericViewerCommands, MeasurementsPanel } from './appExtensions'; -import OHIFCornerstoneExtension from '@ohif/extension-cornerstone'; -import OHIFStandaloneViewer from './OHIFStandaloneViewer'; -import { OidcProvider } from 'redux-oidc'; -import PropTypes from 'prop-types'; -import { Provider } from 'react-redux'; -import { BrowserRouter as Router } from 'react-router-dom'; -import WhiteLabellingContext from './WhiteLabellingContext'; -import { getActiveContexts } from './store/layout/selectors.js'; -import i18n from '@ohif/i18n'; -import setupTools from './setupTools.js'; -import store from './store'; +import { GenericViewerCommands, MeasurementsPanel } from "./appExtensions"; +import OHIFCornerstoneExtension from "@ohif/extension-cornerstone"; +import OHIFStandaloneViewer from "./OHIFStandaloneViewer"; +import { OidcProvider } from "redux-oidc"; +import PropTypes from "prop-types"; +import { Provider } from "react-redux"; +import { BrowserRouter as Router } from "react-router-dom"; +import WhiteLabellingContext from "./WhiteLabellingContext"; +import { getActiveContexts } from "./store/layout/selectors.js"; +import i18n from "@ohif/i18n"; +import setupTools from "./setupTools.js"; +import store from "./store"; // ~~~~ APP SETUP initCornerstoneTools({ - globalToolSyncEnabled: true, + globalToolSyncEnabled: true }); const commandsManagerConfig = { getAppState: () => store.getState(), - getActiveContexts: () => getActiveContexts(store.getState()), + getActiveContexts: () => getActiveContexts(store.getState()) }; const commandsManager = new CommandsManager(commandsManagerConfig); @@ -64,15 +64,15 @@ class App extends Component { whiteLabelling: PropTypes.object, extensions: PropTypes.arrayOf( PropTypes.shape({ - id: PropTypes.string.isRequired, + id: PropTypes.string.isRequired }) - ), + ) }; static defaultProps = { whiteLabelling: {}, oidc: [], - extensions: [], + extensions: [] }; constructor(props) { @@ -137,7 +137,7 @@ function _initExtensions(extensions) { const defaultExtensions = [ GenericViewerCommands, MeasurementsPanel, - OHIFCornerstoneExtension, + OHIFCornerstoneExtension ]; const mergedExtensions = defaultExtensions.concat(extensions); extensionManager.registerExtensions(mergedExtensions); diff --git a/platform/viewer/src/appExtensions/GenericViewerCommands/commandsModule.js b/platform/viewer/src/appExtensions/GenericViewerCommands/commandsModule.js index 9453c637c..7c79e6e23 100644 --- a/platform/viewer/src/appExtensions/GenericViewerCommands/commandsModule.js +++ b/platform/viewer/src/appExtensions/GenericViewerCommands/commandsModule.js @@ -1,5 +1,5 @@ -import { redux } from 'ohif-core'; -import store from './../../store'; +import { redux } from "@ohif/core"; +import store from "./../../store"; const { setViewportActive } = redux.actions; const actions = { @@ -16,24 +16,24 @@ const actions = { newIndex = newIndex < 0 ? maxIndex : newIndex; store.dispatch(setViewportActive(newIndex)); - }, + } }; const definitions = { // Next/Previous active viewport incrementActiveViewport: { commandFn: actions.updateActiveViewport, - storeContexts: ['viewports'], - options: { direction: 1 }, + storeContexts: ["viewports"], + options: { direction: 1 } }, decrementActiveViewport: { commandFn: actions.updateActiveViewport, - storeContexts: ['viewports'], - options: { direction: -1 }, - }, + storeContexts: ["viewports"], + options: { direction: -1 } + } }; export default { definitions, - defaultContext: 'VIEWER', + defaultContext: "VIEWER" }; diff --git a/platform/viewer/src/appExtensions/MeasurementsPanel/ConnectedMeasurementTable.js b/platform/viewer/src/appExtensions/MeasurementsPanel/ConnectedMeasurementTable.js index f443d49ee..7d926ca78 100644 --- a/platform/viewer/src/appExtensions/MeasurementsPanel/ConnectedMeasurementTable.js +++ b/platform/viewer/src/appExtensions/MeasurementsPanel/ConnectedMeasurementTable.js @@ -1,12 +1,12 @@ -import { connect } from 'react-redux'; -import { MeasurementTable } from 'react-viewerbase'; -import OHIF from 'ohif-core'; -import moment from 'moment'; -import cornerstone from 'cornerstone-core'; +import { connect } from "react-redux"; +import { MeasurementTable } from "react-viewerbase"; +import OHIF from "@ohif/core"; +import moment from "moment"; +import cornerstone from "cornerstone-core"; // -import jumpToRowItem from './jumpToRowItem.js'; -import getMeasurementLocationCallback from './../../lib/getMeasurementLocationCallback'; +import jumpToRowItem from "./jumpToRowItem.js"; +import getMeasurementLocationCallback from "./../../lib/getMeasurementLocationCallback"; const { setViewportSpecificData } = OHIF.redux.actions; const { MeasurementApi } = OHIF.measurements; @@ -30,7 +30,7 @@ function getAllTools() { function getMeasurementText(measurementData) { const { location, description } = measurementData; - let text = '...'; + let text = "..."; if (location) { text = location; if (description) { @@ -50,7 +50,7 @@ function getDataForEachMeasurementNumber( measurementNumberList.forEach(measurement => { timepoints.forEach(timepoint => { const eachData = { - displayText: '...', + displayText: "..." }; if (measurement.timepointId === timepoint.timepointId) { eachData.displayText = displayFunction(measurement); @@ -71,7 +71,7 @@ function convertMeasurementsToTableData(toolCollections, timepoints) { return { groupName: toolGroup.name, groupId: toolGroup.id, - measurements: [], + measurements: [] }; }); @@ -81,7 +81,7 @@ function convertMeasurementsToTableData(toolCollections, timepoints) { const { displayFunction } = tool.options.measurementTable; // Group by measurementNumber so we can display then all in the same line - const groupedMeasurements = groupBy(toolMeasurements, 'measurementNumber'); + const groupedMeasurements = groupBy(toolMeasurements, "measurementNumber"); Object.keys(groupedMeasurements).forEach(groupedMeasurementsIndex => { const measurementNumberList = @@ -90,7 +90,7 @@ function convertMeasurementsToTableData(toolCollections, timepoints) { const { measurementNumber, lesionNamingNumber, - toolType, + toolType } = measurementData; const measurementId = measurementData._id; @@ -103,14 +103,14 @@ function convertMeasurementsToTableData(toolCollections, timepoints) { lesionNamingNumber, toolType, hasWarnings: false, //TODO - warningTitle: '', //TODO + warningTitle: "", //TODO isSplitLesion: false, //TODO warningList: [], //TODO data: getDataForEachMeasurementNumber( measurementNumberList, timepoints, displayFunction - ), + ) }; // find the group object for the tool @@ -139,9 +139,9 @@ function convertTimepointsToTableData(timepoints) { return [ { - label: 'Study date:', - date: moment(timepoints[0].latestDate).format('DD-MMM-YY'), - }, + label: "Study date:", + date: moment(timepoints[0].latestDate).format("DD-MMM-YY") + } ]; } @@ -154,7 +154,7 @@ const mapStateToProps = state => { timepoints ), timepointManager: state.timepointManager, - viewports: state.viewports, + viewports: state.viewports }; }; @@ -166,7 +166,7 @@ const mapDispatchToProps = dispatch => { const enabledElements = cornerstone.getEnabledElements(); if (!enabledElements || enabledElements.length <= activeViewportIndex) { - OHIF.log.error('Failed to find the enabled element'); + OHIF.log.error("Failed to find the enabled element"); return; } @@ -175,9 +175,9 @@ const mapDispatchToProps = dispatch => { const eventData = { event: { clientX: event.clientX, - clientY: event.clientY, + clientY: event.clientY }, - element, + element }; const { toolType, measurementId } = measurementData; @@ -187,7 +187,7 @@ const mapDispatchToProps = dispatch => { const options = { skipAddLabelButton: true, - editLocation: true, + editLocation: true }; // Clone the tool not to set empty location initially @@ -200,7 +200,7 @@ const mapDispatchToProps = dispatch => { const enabledElements = cornerstone.getEnabledElements(); if (!enabledElements || enabledElements.length <= activeViewportIndex) { - OHIF.log.error('Failed to find the enabled element'); + OHIF.log.error("Failed to find the enabled element"); return; } @@ -209,9 +209,9 @@ const mapDispatchToProps = dispatch => { const eventData = { event: { clientX: event.clientX, - clientY: event.clientY, + clientY: event.clientY }, - element, + element }; const { toolType, measurementId } = measurementData; @@ -220,7 +220,7 @@ const mapDispatchToProps = dispatch => { }); const options = { - editDescriptionOnDialog: true, + editDescriptionOnDialog: true }; getMeasurementLocationCallback(eventData, tool, options); @@ -285,7 +285,7 @@ const mapDispatchToProps = dispatch => { //dispatch(setActiveMeasurement(measurementData.measurementId)) // (later): Needs to set some property on state.extensions.cornerstone to synchronize viewport scrolling - }, + } }; }; @@ -307,7 +307,7 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { // TODO: childToolKey should come from the measurement table when it supports child tools const options = { invertViewportTimepointsOrder: false, - childToolKey: null, + childToolKey: null }; propsFromDispatch.dispatchJumpToRowItem( @@ -338,11 +338,11 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { measurementData: { _id: measurementData.measurementId, lesionNamingNumber: measurementData.lesionNamingNumber, - measurementNumber: measurementData.measurementNumber, - }, - }, + measurementNumber: measurementData.measurementNumber + } + } }); - }, + } }; }; diff --git a/platform/viewer/src/appExtensions/MeasurementsPanel/jumpToRowItem.js b/platform/viewer/src/appExtensions/MeasurementsPanel/jumpToRowItem.js index f9edbfd60..342f485e1 100644 --- a/platform/viewer/src/appExtensions/MeasurementsPanel/jumpToRowItem.js +++ b/platform/viewer/src/appExtensions/MeasurementsPanel/jumpToRowItem.js @@ -1,4 +1,4 @@ -import { measurements, utils } from 'ohif-core'; +import { measurements, utils } from "@ohif/core"; const { MeasurementApi } = measurements; const { studyMetadataManager } = utils; @@ -82,7 +82,7 @@ export default function jumpToRowItem( const study = studyMetadataManager.get(data.studyInstanceUid); if (!study) { - throw new Error('Study not found.'); + throw new Error("Study not found."); } const displaySet = study.findDisplaySet(displaySet => { @@ -90,7 +90,7 @@ export default function jumpToRowItem( }); if (!displaySet) { - throw new Error('Display set not found.'); + throw new Error("Display set not found."); } displaySet.sopInstanceUid = data.sopInstanceUid; @@ -100,12 +100,12 @@ export default function jumpToRowItem( viewportSpecificData.push({ viewportIndex, - displaySet, + displaySet }); }); return { viewportSpecificData, - layout: [], // TODO: if we need to change layout, we should return this here + layout: [] // TODO: if we need to change layout, we should return this here }; } diff --git a/platform/viewer/src/components/StudyLoadingMonitor.js b/platform/viewer/src/components/StudyLoadingMonitor.js index dc88be5d6..75698dc24 100644 --- a/platform/viewer/src/components/StudyLoadingMonitor.js +++ b/platform/viewer/src/components/StudyLoadingMonitor.js @@ -1,12 +1,12 @@ -import { Component } from 'react'; -import PropTypes from 'prop-types'; -import OHIF from 'ohif-core'; +import { Component } from "react"; +import PropTypes from "prop-types"; +import OHIF from "@ohif/core"; class StudyLoadingMonitor extends Component { static propTypes = { studies: PropTypes.array.isRequired, setStudyLoadingProgress: PropTypes.func.isRequired, - clearStudyLoadingProgress: PropTypes.func.isRequired, + clearStudyLoadingProgress: PropTypes.func.isRequired }; componentDidMount() { @@ -20,7 +20,7 @@ class StudyLoadingMonitor extends Component { }, _clearProgressById: progressId => { this.props.clearStudyLoadingProgress(progressId); - }, + } }; const { StudyLoadingListener } = OHIF.classes; diff --git a/platform/viewer/src/components/StudyPrefetcher.js b/platform/viewer/src/components/StudyPrefetcher.js index 5ce8015f2..f6500776b 100644 --- a/platform/viewer/src/components/StudyPrefetcher.js +++ b/platform/viewer/src/components/StudyPrefetcher.js @@ -1,12 +1,12 @@ -import { Component } from 'react'; -import PropTypes from 'prop-types'; -import OHIF from 'ohif-core'; +import { Component } from "react"; +import PropTypes from "prop-types"; +import OHIF from "@ohif/core"; const { StudyPrefetcher } = OHIF.classes; class StudyPrefetcherComponent extends Component { static propTypes = { - studies: PropTypes.array, + studies: PropTypes.array }; componentDidMount() { diff --git a/platform/viewer/src/config.js b/platform/viewer/src/config.js index fcfa138ea..77cfe3208 100644 --- a/platform/viewer/src/config.js +++ b/platform/viewer/src/config.js @@ -1,12 +1,12 @@ -import OHIF from 'ohif-core'; -import cornerstone from 'cornerstone-core'; -import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'; -import dicomParser from 'dicom-parser'; -import version from './version.js'; +import OHIF from "@ohif/core"; +import cornerstone from "cornerstone-core"; +import cornerstoneWADOImageLoader from "cornerstone-wado-image-loader"; +import dicomParser from "dicom-parser"; +import version from "./version.js"; window.info = { version, - homepage: `${process.env.PUBLIC_URL}`, + homepage: `${process.env.PUBLIC_URL}` }; // For debugging @@ -33,7 +33,7 @@ cornerstoneWADOImageLoader.configure({ const headers = OHIF.DICOMWeb.getAuthorizationHeader(); if (headers.Authorization) { - xhr.setRequestHeader('Authorization', headers.Authorization); + xhr.setRequestHeader("Authorization", headers.Authorization); } - }, + } }); diff --git a/platform/viewer/src/connectedComponents/ConnectedCineDialog.js b/platform/viewer/src/connectedComponents/ConnectedCineDialog.js index 761a79abe..e10d2ac03 100644 --- a/platform/viewer/src/connectedComponents/ConnectedCineDialog.js +++ b/platform/viewer/src/connectedComponents/ConnectedCineDialog.js @@ -1,13 +1,13 @@ -import { connect } from 'react-redux'; -import { CineDialog } from 'react-viewerbase'; -import OHIF from 'ohif-core'; -import csTools from 'cornerstone-tools'; +import { connect } from "react-redux"; +import { CineDialog } from "react-viewerbase"; +import OHIF from "@ohif/core"; +import csTools from "cornerstone-tools"; // Our target output kills the `as` and "import" throws a keyword error // import { import as toolImport, getToolState } from 'cornerstone-tools'; -import cloneDeep from 'lodash.clonedeep'; +import cloneDeep from "lodash.clonedeep"; const toolImport = csTools.import; -const scrollToIndex = toolImport('util/scrollToIndex'); +const scrollToIndex = toolImport("util/scrollToIndex"); const { setViewportSpecificData } = OHIF.redux.actions; // Why do I need or care about any of this info? @@ -20,14 +20,14 @@ const mapStateToProps = state => { const cineData = cine || { isPlaying: false, - cineFrameRate: 24, + cineFrameRate: 24 }; // New props we're creating? return { activeEnabledElement: dom, activeViewportCineData: cineData, - activeViewportIndex: state.viewports.activeViewportIndex, + activeViewportIndex: state.viewports.activeViewportIndex }; }; @@ -35,7 +35,7 @@ const mapDispatchToProps = dispatch => { return { dispatchSetViewportSpecificData: (viewportIndex, data) => { dispatch(setViewportSpecificData(viewportIndex, data)); - }, + } }; }; @@ -43,7 +43,7 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { const { activeEnabledElement, activeViewportCineData, - activeViewportIndex, + activeViewportIndex } = propsFromState; return { @@ -54,7 +54,7 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { cine.isPlaying = !cine.isPlaying; propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { - cine, + cine }); }, onFrameRateChanged: frameRate => { @@ -62,34 +62,34 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { cine.cineFrameRate = frameRate; propsFromDispatch.dispatchSetViewportSpecificData(activeViewportIndex, { - cine, + cine }); }, onClickNextButton: () => { - const stackData = csTools.getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, "stack"); if (!stackData || !stackData.data || !stackData.data.length) return; const { currentImageIdIndex, imageIds } = stackData.data[0]; if (currentImageIdIndex >= imageIds.length - 1) return; scrollToIndex(activeEnabledElement, currentImageIdIndex + 1); }, onClickBackButton: () => { - const stackData = csTools.getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, "stack"); if (!stackData || !stackData.data || !stackData.data.length) return; const { currentImageIdIndex } = stackData.data[0]; if (currentImageIdIndex === 0) return; scrollToIndex(activeEnabledElement, currentImageIdIndex - 1); }, onClickSkipToStart: () => { - const stackData = csTools.getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, "stack"); if (!stackData || !stackData.data || !stackData.data.length) return; scrollToIndex(activeEnabledElement, 0); }, onClickSkipToEnd: () => { - const stackData = csTools.getToolState(activeEnabledElement, 'stack'); + const stackData = csTools.getToolState(activeEnabledElement, "stack"); if (!stackData || !stackData.data || !stackData.data.length) return; const lastIndex = stackData.data[0].imageIds.length - 1; scrollToIndex(activeEnabledElement, lastIndex); - }, + } }; }; diff --git a/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js b/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js index 4842f5952..6c1ecbb10 100644 --- a/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js +++ b/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js @@ -1,12 +1,12 @@ -import { LayoutButton } from 'react-viewerbase'; -import OHIF from 'ohif-core'; -import { connect } from 'react-redux'; +import { LayoutButton } from "react-viewerbase"; +import OHIF from "@ohif/core"; +import { connect } from "react-redux"; const { setLayout } = OHIF.redux.actions; const mapStateToProps = state => { return { - currentLayout: state.viewports.layout, + currentLayout: state.viewports.layout }; }; @@ -21,15 +21,15 @@ const mapDispatchToProps = dispatch => { for (let i = 0; i < numViewports; i++) { viewports.push({ height: `${100 / rows}%`, - width: `${100 / columns}%`, + width: `${100 / columns}%` }); } const layout = { - viewports, + viewports }; dispatch(setLayout(layout)); - }, + } }; }; diff --git a/platform/viewer/src/connectedComponents/ConnectedLayoutManager.js b/platform/viewer/src/connectedComponents/ConnectedLayoutManager.js index 564645ac0..5a4cd2d8b 100644 --- a/platform/viewer/src/connectedComponents/ConnectedLayoutManager.js +++ b/platform/viewer/src/connectedComponents/ConnectedLayoutManager.js @@ -1,7 +1,7 @@ -import { LayoutManager } from 'react-viewerbase'; -import { MODULE_TYPES } from 'ohif-core'; -import { connect } from 'react-redux'; -import { extensionManager } from './../App.js'; +import { LayoutManager } from "react-viewerbase"; +import { MODULE_TYPES } from "@ohif/core"; +import { connect } from "react-redux"; +import { extensionManager } from "./../App.js"; const mapStateToProps = state => { const availableViewportModules = {}; @@ -24,7 +24,7 @@ const mapStateToProps = state => { // TODO: rename `availableViewportModules` availablePlugins: availableViewportModules, // TODO: rename `defaultViewportModule` - defaultPlugin, + defaultPlugin }; }; diff --git a/platform/viewer/src/connectedComponents/ConnectedPluginSwitch.js b/platform/viewer/src/connectedComponents/ConnectedPluginSwitch.js index 965c05350..3c5ded332 100644 --- a/platform/viewer/src/connectedComponents/ConnectedPluginSwitch.js +++ b/platform/viewer/src/connectedComponents/ConnectedPluginSwitch.js @@ -1,7 +1,7 @@ -import OHIF from 'ohif-core'; -import PluginSwitch from './PluginSwitch.js'; -import { commandsManager } from './../App.js'; -import { connect } from 'react-redux'; +import OHIF from "@ohif/core"; +import PluginSwitch from "./PluginSwitch.js"; +import { commandsManager } from "./../App.js"; +import { connect } from "react-redux"; const { setLayout } = OHIF.redux.actions; @@ -11,7 +11,7 @@ const mapStateToProps = state => { return { activeViewportIndex, viewportSpecificData, - layout, + layout }; }; @@ -19,7 +19,7 @@ const mapDispatchToProps = dispatch => { return { setLayout: data => { dispatch(setLayout(data)); - }, + } }; }; @@ -81,16 +81,16 @@ const mergeProps = (propsFromState, propsFromDispatch, ownProps) => { }, },*/ { - label: '2D MPR', - icon: 'cube', + label: "2D MPR", + icon: "cube", onClick: () => { - commandsManager.runCommand('mpr2d'); - }, - }, + commandsManager.runCommand("mpr2d"); + } + } ]; return { - buttons, + buttons }; }; diff --git a/platform/viewer/src/connectedComponents/ConnectedStudyLoadingMonitor.js b/platform/viewer/src/connectedComponents/ConnectedStudyLoadingMonitor.js index ba4153903..8bfffe88a 100644 --- a/platform/viewer/src/connectedComponents/ConnectedStudyLoadingMonitor.js +++ b/platform/viewer/src/connectedComponents/ConnectedStudyLoadingMonitor.js @@ -1,10 +1,10 @@ -import { connect } from 'react-redux'; -import StudyLoadingMonitor from '../components/StudyLoadingMonitor.js'; -import OHIF from 'ohif-core'; +import { connect } from "react-redux"; +import StudyLoadingMonitor from "../components/StudyLoadingMonitor.js"; +import OHIF from "@ohif/core"; const { setStudyLoadingProgress, - clearStudyLoadingProgress, + clearStudyLoadingProgress } = OHIF.redux.actions; const mapDispatchToProps = dispatch => { @@ -14,7 +14,7 @@ const mapDispatchToProps = dispatch => { }, clearStudyLoadingProgress: progressId => { dispatch(clearStudyLoadingProgress(progressId)); - }, + } }; }; diff --git a/platform/viewer/src/connectedComponents/ConnectedViewer.js b/platform/viewer/src/connectedComponents/ConnectedViewer.js index 35f01f4c9..3f51b03d8 100644 --- a/platform/viewer/src/connectedComponents/ConnectedViewer.js +++ b/platform/viewer/src/connectedComponents/ConnectedViewer.js @@ -1,13 +1,13 @@ -import { connect } from 'react-redux'; -import Viewer from './Viewer.js'; -import OHIF from 'ohif-core'; +import { connect } from "react-redux"; +import Viewer from "./Viewer.js"; +import OHIF from "@ohif/core"; const { setTimepoints, setMeasurements } = OHIF.redux.actions; const mapStateToProps = (state, ownProps) => { return { viewports: state.viewports.viewportSpecificData, - activeViewportIndex: state.viewports.activeViewportIndex, + activeViewportIndex: state.viewports.activeViewportIndex }; }; @@ -18,7 +18,7 @@ const mapDispatchToProps = dispatch => { }, onMeasurementsUpdated: measurements => { dispatch(setMeasurements(measurements)); - }, + } }; }; diff --git a/platform/viewer/src/connectedComponents/ConnectedViewerMain.js b/platform/viewer/src/connectedComponents/ConnectedViewerMain.js index d0ee196e0..75ae3c56c 100644 --- a/platform/viewer/src/connectedComponents/ConnectedViewerMain.js +++ b/platform/viewer/src/connectedComponents/ConnectedViewerMain.js @@ -1,10 +1,10 @@ -import OHIF from 'ohif-core'; -import ViewerMain from './ViewerMain'; -import { connect } from 'react-redux'; +import OHIF from "@ohif/core"; +import ViewerMain from "./ViewerMain"; +import { connect } from "react-redux"; const { setViewportSpecificData, - clearViewportSpecificData, + clearViewportSpecificData } = OHIF.redux.actions; const mapStateToProps = state => { @@ -14,7 +14,7 @@ const mapStateToProps = state => { activeViewportIndex, layout, viewportSpecificData, - viewports: state.viewports, + viewports: state.viewports }; }; @@ -25,7 +25,7 @@ const mapDispatchToProps = dispatch => { }, clearViewportSpecificData: () => { dispatch(clearViewportSpecificData()); - }, + } }; }; diff --git a/platform/viewer/src/connectedComponents/ToolbarRow.js b/platform/viewer/src/connectedComponents/ToolbarRow.js index a12dde0d4..121d286fe 100644 --- a/platform/viewer/src/connectedComponents/ToolbarRow.js +++ b/platform/viewer/src/connectedComponents/ToolbarRow.js @@ -1,18 +1,18 @@ -import './ToolbarRow.css'; +import "./ToolbarRow.css"; -import React, { Component } from 'react'; +import React, { Component } from "react"; import { RoundedButtonGroup, ToolbarButton, - ExpandableToolMenu, -} from 'react-viewerbase'; -import { commandsManager, extensionManager } from './../App.js'; + ExpandableToolMenu +} from "react-viewerbase"; +import { commandsManager, extensionManager } from "./../App.js"; -import ConnectedCineDialog from './ConnectedCineDialog'; -import ConnectedLayoutButton from './ConnectedLayoutButton'; -import ConnectedPluginSwitch from './ConnectedPluginSwitch.js'; -import { MODULE_TYPES } from 'ohif-core'; -import PropTypes from 'prop-types'; +import ConnectedCineDialog from "./ConnectedCineDialog"; +import ConnectedLayoutButton from "./ConnectedLayoutButton"; +import ConnectedPluginSwitch from "./ConnectedPluginSwitch.js"; +import { MODULE_TYPES } from "@ohif/core"; +import PropTypes from "prop-types"; class ToolbarRow extends Component { // TODO: Simplify these? isOpen can be computed if we say "any" value for selected, @@ -23,7 +23,7 @@ class ToolbarRow extends Component { selectedLeftSidePanel: PropTypes.string.isRequired, selectedRightSidePanel: PropTypes.string.isRequired, handleSidePanelChange: PropTypes.func, - activeContexts: PropTypes.arrayOf(PropTypes.string).isRequired, + activeContexts: PropTypes.arrayOf(PropTypes.string).isRequired }; constructor(props) { @@ -41,7 +41,7 @@ class ToolbarRow extends Component { this.state = { toolbarButtons: toolbarButtonDefinitions, activeButtons: [], - isCineDialogOpen: false, + isCineDialogOpen: false }; this._handleBuiltIn = _handleBuiltIn.bind(this); @@ -51,12 +51,12 @@ class ToolbarRow extends Component { left: [ // TODO: This should come from extensions, instead of being baked in { - value: 'studies', - icon: 'th-large', - bottomLabel: 'Series', - }, + value: "studies", + icon: "th-large", + bottomLabel: "Series" + } ], - right: [], + right: [] }; panelModules.forEach(panelExtension => { @@ -74,9 +74,9 @@ class ToolbarRow extends Component { const menuOptionEntry = { value: menuOption.target, icon: menuOption.icon, - bottomLabel: menuOption.label, + bottomLabel: menuOption.label }; - const from = menuOption.from || 'right'; + const from = menuOption.from || "right"; this.buttonGroups[from].push(menuOptionEntry); } @@ -90,7 +90,7 @@ class ToolbarRow extends Component { if (activeContextsChanged) { this.setState({ - toolbarButtons: _getVisibleToolbarButtons.call(this), + toolbarButtons: _getVisibleToolbarButtons.call(this) }); } } @@ -103,25 +103,25 @@ class ToolbarRow extends Component { ); const cineDialogContainerStyle = { - display: this.state.isCineDialogOpen ? 'block' : 'none', - position: 'absolute', - top: '82px', - zIndex: 999, + display: this.state.isCineDialogOpen ? "block" : "none", + position: "absolute", + top: "82px", + zIndex: 999 }; const onPress = (side, value) => { this.props.handleSidePanelChange(side, value); }; - const onPressLeft = onPress.bind(this, 'left'); - const onPressRight = onPress.bind(this, 'right'); + const onPressLeft = onPress.bind(this, "left"); + const onPressRight = onPress.bind(this, "right"); return ( <>