- {/* TODO: Needs to be moved from Meteor package to react-viewerbase: */}
+
{/*{{> measurementLightTable (clone this)}}*/}
diff --git a/OHIFViewer-react/src/index.js b/OHIFViewer-react/src/index.js
index bb5c5544c..817064250 100644
--- a/OHIFViewer-react/src/index.js
+++ b/OHIFViewer-react/src/index.js
@@ -4,11 +4,34 @@ import { BrowserRouter } from 'react-router-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import App from './App.js';
-import { OHIF } from 'ohif-core';
+import OHIF from 'ohif-core';
import './config';
const store = createStore(OHIF.redux.combinedReducer);
+const servers = {
+ dicomWeb: [
+ {
+ "name": "DCM4CHEE",
+ "wadoUriRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/wado",
+ "qidoRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs",
+ "wadoRoot": "http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs",
+ "qidoSupportsIncludeField": true,
+ "imageRendering": "wadors",
+ "thumbnailRendering": "wadors",
+ "requestOptions": {
+ "requestFromBrowser": true,
+ "logRequests": true,
+ "logResponses": false,
+ "logTiming": true,
+ "auth": "admin:admin"
+ }
+ }
+ ]
+};
+
+OHIF.utils.addServers(servers, store);
+
// TODO[react] Use a provider when the whole tree is React
window.store = store;
diff --git a/OHIFViewer-react/src/lib/StackManager.js b/OHIFViewer-react/src/lib/StackManager.js
new file mode 100644
index 000000000..c98c026f7
--- /dev/null
+++ b/OHIFViewer-react/src/lib/StackManager.js
@@ -0,0 +1,151 @@
+import OHIF from 'ohif-core';
+import { getImageId } from './getImageId';
+
+let stackMap = {};
+let configuration = {};
+const stackUpdatedCallbacks = [];
+
+const { OHIFError } = OHIF.classes;
+
+
+/**
+ * Loop through the current series and add metadata to the
+ * Cornerstone meta data provider. This will be used to fill information
+ * into the viewport overlays, and to calculate reference lines and orientation markers
+ * @param {Object} stackMap stackMap object
+ * @param {Object} study Study object
+ * @param {Object} displaySet The set of images to make the stack from
+ * @return {Array} Array with image IDs
+ */
+function createAndAddStack(stackMap, study, displaySet) {
+ const metadataProvider = OHIF.viewer.metadataProvider;
+ const numImages = displaySet.images.length;
+ const imageIds = [];
+ let imageId;
+
+ displaySet.images.forEach((instance, imageIndex) => {
+ const image = instance.getData();
+ const metaData = {
+ instance: image, // in this context, instance will be the data of the InstanceMetadata object...
+ series: displaySet, // TODO: Check this
+ study,
+ numImages,
+ imageIndex: imageIndex + 1
+ };
+
+ const numberOfFrames = image.numberOfFrames;
+ if (numberOfFrames > 1) {
+ OHIF.log.info('Multiframe image detected');
+ for (let i = 0; i < numberOfFrames; i++) {
+ metaData.frameNumber = i;
+ imageId = getImageId(image, i);
+ imageIds.push(imageId);
+ metadataProvider.addMetadata(imageId, metaData);
+ }
+ } else {
+ metaData.frameNumber = 1;
+ imageId = getImageId(image);
+ imageIds.push(imageId);
+ metadataProvider.addMetadata(imageId, metaData);
+ }
+ });
+
+ const stack = {
+ displaySetInstanceUid: displaySet.displaySetInstanceUid,
+ imageIds,
+ frameRate: displaySet.frameRate,
+ isClip: displaySet.isClip
+ };
+
+ stackMap[displaySet.displaySetInstanceUid] = stack;
+
+ return stack;
+}
+
+configuration = {
+ createAndAddStack
+};
+
+/**
+ * This object contains all the functions needed for interacting with the stack manager.
+ * Generally, findStack is the only function used. If you want to know when new stacks
+ * come in, you can register a callback with addStackUpdatedCallback.
+ */
+const StackManager = {
+ /**
+ * Removes all current stacks
+ */
+ clearStacks() {
+ stackMap = {};
+ },
+ /**
+ * Create a stack from an image set, as well as add in the metadata on a per image bases.
+ * @param study The study who's metadata will be added
+ * @param displaySet The set of images to make the stack from
+ * @return {Array} Array with image IDs
+ */
+ makeAndAddStack(study, displaySet) {
+ return configuration.createAndAddStack(stackMap, study, displaySet, stackUpdatedCallbacks);
+ },
+ /**
+ * Find a stack from the currently created stacks.
+ * @param displaySetInstanceUid The UID of the stack to find.
+ * @returns {*} undefined if not found, otherwise the stack object is returned.
+ */
+ findStack(displaySetInstanceUid) {
+ return stackMap[displaySetInstanceUid];
+ },
+ /**
+ * Find a stack or reate one if it has not been created yet
+ * @param study The study who's metadata will be added
+ * @param displaySet The set of images to make the stack from
+ * @return {Array} Array with image IDs
+ */
+ findOrCreateStack(study, displaySet) {
+ let stack = this.findStack(displaySet.displaySetInstanceUid);
+
+ if (!stack || !stack.imageIds) {
+ stack = this.makeAndAddStack(study, displaySet);
+ }
+
+ return stack;
+ },
+ /**
+ * Gets the underlying map of displaySetInstanceUid to stack object.
+ * WARNING: Do not change this object. It directly affects the manager.
+ * @returns {{}} map of displaySetInstanceUid -> stack.
+ */
+ getAllStacks() {
+ return stackMap;
+ },
+ /**
+ * Adds in a callback to be called on a stack being added / updated.
+ * @param callback must accept at minimum one argument,
+ * which is the stack that was added / updated.
+ */
+ addStackUpdatedCallback(callback) {
+ if (typeof callback !== 'function') {
+ throw new OHIFError('callback must be provided as a function');
+ }
+ stackUpdatedCallbacks.push(callback);
+ },
+ /**
+ * Return configuration
+ */
+ getConfiguration() {
+ return configuration;
+ },
+ /**
+ * Set configuration, in order to provide compatibility
+ * with other systems by overriding this functions
+ * @param {Object} config object with functions to be overrided
+ *
+ * For now, only makeAndAddStack can be overrided
+ */
+ setConfiguration(config) {
+ configuration = config;
+ }
+};
+
+export { StackManager };
+export default StackManager;
diff --git a/OHIFViewer-react/src/lib/createStacks.js b/OHIFViewer-react/src/lib/createStacks.js
new file mode 100644
index 000000000..647c766f9
--- /dev/null
+++ b/OHIFViewer-react/src/lib/createStacks.js
@@ -0,0 +1,128 @@
+import OHIF from 'ohif-core';
+import { isImage } from './isImage';
+
+const { ImageSet } = OHIF.classes;
+
+const isMultiFrame = instance => {
+ // NumberOfFrames (0028,0008)
+ return instance.getRawValue('x00280008') > 1;
+};
+
+const makeDisplaySet = (series, instances) => {
+ const instance = instances[0];
+
+ const imageSet = new ImageSet(instances);
+ const seriesData = series.getData();
+
+ // set appropriate attributes to image set...
+ imageSet.setAttributes({
+ displaySetInstanceUid: imageSet.uid, // create a local alias for the imageSet UID
+ seriesDate: seriesData.seriesDate,
+ seriesTime: seriesData.seriesTime,
+ seriesInstanceUid: series.getSeriesInstanceUID(),
+ seriesNumber: instance.getRawValue('x00200011'),
+ seriesDescription: instance.getRawValue('x0008103e'),
+ numImageFrames: instances.length,
+ frameRate: instance.getRawValue('x00181063'),
+ modality: instance.getRawValue('x00080060'),
+ isMultiFrame: isMultiFrame(instance)
+ });
+
+ // Sort the images in this series if needed
+ const shallSort = true//!OHIF.utils.ObjectPath.get(Meteor, 'settings.public.ui.sortSeriesByIncomingOrder');
+ if (shallSort) {
+ imageSet.sortBy((a, b) => {
+ // Sort by InstanceNumber (0020,0013)
+ return (parseInt(a.getRawValue('x00200013', 0)) || 0) - (parseInt(b.getRawValue('x00200013', 0)) || 0);
+ });
+ }
+
+ // Include the first image instance number (after sorted)
+ imageSet.setAttribute('instanceNumber', imageSet.getImage(0).getRawValue('x00200013'));
+
+ return imageSet;
+};
+
+const isSingleImageModality = modality => {
+ return (modality === 'CR' ||
+ modality === 'MG' ||
+ modality === 'DX');
+};
+
+/**
+ * Creates a set of series to be placed in the Study Metadata
+ * The series that appear in the Study Metadata must represent
+ * imaging modalities.
+ *
+ * Furthermore, for drag/drop functionality,
+ * it is easiest if the stack objects also contain information about
+ * which study they are linked to.
+ *
+ * @param study The study instance metadata to be used
+ * @returns {Array} An array of series to be placed in the Study Metadata
+ */
+const createStacks = study => {
+ // Define an empty array of display sets
+ const displaySets = [];
+
+ if (!study || !study.getSeriesCount()) {
+ return displaySets;
+ }
+
+ // Loop through the series (SeriesMetadata)
+ study.forEachSeries(series => {
+ // If the series has no instances, skip it
+ if (!series.getInstanceCount()) {
+ return;
+ }
+
+ // Search through the instances (InstanceMedatada object) of this series
+ // Split Multi-frame instances and Single-image modalities
+ // into their own specific display sets. Place the rest of each
+ // series into another display set.
+ const stackableInstances = [];
+ series.forEachInstance(instance => {
+ // All imaging modalities must have a valid value for sopClassUid (x00080016) or rows (x00280010)
+ if (!isImage(instance.getRawValue('x00080016')) && !instance.getRawValue('x00280010')) {
+ return;
+ }
+
+ let displaySet;
+ if (isMultiFrame(instance)) {
+ displaySet = makeDisplaySet(series, [ instance ]);
+ displaySet.setAttributes({
+ isClip: true,
+ studyInstanceUid: study.getStudyInstanceUID(), // Include the study instance Uid for drag/drop purposes
+ numImageFrames: instance.getRawValue('x00280008'), // Override the default value of instances.length
+ instanceNumber: instance.getRawValue('x00200013'), // Include the instance number
+ acquisitionDatetime: instance.getRawValue('x0008002a') // Include the acquisition datetime
+ });
+ displaySets.push(displaySet);
+ } else if (isSingleImageModality(instance.modality)) {
+ displaySet = makeDisplaySet(series, [ instance ]);
+ displaySet.setAttributes({
+ studyInstanceUid: study.getStudyInstanceUID(), // Include the study instance Uid
+ instanceNumber: instance.getRawValue('x00200013'), // Include the instance number
+ acquisitionDatetime: instance.getRawValue('x0008002a') // Include the acquisition datetime
+ });
+ displaySets.push(displaySet);
+ } else {
+ stackableInstances.push(instance);
+ }
+ });
+
+ if (stackableInstances.length) {
+ const displaySet = makeDisplaySet(series, stackableInstances);
+ displaySet.setAttribute('studyInstanceUid', study.getStudyInstanceUID());
+ displaySets.push(displaySet);
+ }
+ });
+
+ return displaySets;
+};
+
+/**
+ * Expose "createStacks"...
+ */
+
+export { createStacks };
diff --git a/OHIFViewer-react/src/lib/getImageId.js b/OHIFViewer-react/src/lib/getImageId.js
new file mode 100644
index 000000000..1f14d0d20
--- /dev/null
+++ b/OHIFViewer-react/src/lib/getImageId.js
@@ -0,0 +1,51 @@
+import { getWADORSImageId } from './getWADORSImageId';
+
+// https://stackoverflow.com/a/6021027/3895126
+function updateQueryStringParameter(uri, key, value) {
+ const regex = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
+ const separator = uri.indexOf('?') !== -1 ? '&' : '?';
+ if (uri.match(regex)) {
+ return uri.replace(regex, '$1' + key + '=' + value + '$2');
+ } else {
+ return uri + separator + key + '=' + value;
+ }
+}
+
+/**
+ * Obtain an imageId for Cornerstone from an image instance
+ *
+ * @param instance
+ * @param frame
+ * @param thumbnail
+ * @returns {string} The imageId to be used by Cornerstone
+ */
+export function getImageId(instance, frame, thumbnail=false) {
+ if (!instance) {
+ return;
+ }
+
+ if (typeof instance.getImageId === 'function') {
+ return instance.getImageId();
+ }
+
+ if (instance.url) {
+ if (frame !== undefined) {
+ instance.url = updateQueryStringParameter(instance.url, 'frame', frame);
+ }
+
+ return instance.url;
+ }
+
+ const renderingAttr = thumbnail ? 'thumbnailRendering' : 'imageRendering';
+
+ if (!instance[renderingAttr] || instance[renderingAttr] === 'wadouri' || !instance.wadorsuri) {
+ let imageId = 'dicomweb:' + instance.wadouri;
+ if (frame !== undefined) {
+ imageId += '&frame=' + frame;
+ }
+
+ return imageId;
+ } else {
+ return getWADORSImageId(instance, frame, thumbnail); // WADO-RS Retrieve Frame
+ }
+}
diff --git a/OHIFViewer-react/src/lib/getWADORSImageId.js b/OHIFViewer-react/src/lib/getWADORSImageId.js
new file mode 100644
index 000000000..c1df420d9
--- /dev/null
+++ b/OHIFViewer-react/src/lib/getWADORSImageId.js
@@ -0,0 +1,31 @@
+function getWADORSImageUrl(instance, frame) {
+ let wadorsuri = instance.wadorsuri;
+
+ if (!wadorsuri) {
+ return;
+ }
+
+ // We need to sum 1 because WADO-RS frame number is 1-based
+ frame = (frame || 0) + 1;
+
+ // Replaces /frame/1 by /frame/{frame}
+ wadorsuri = wadorsuri.replace(/(%2Fframes%2F)(\d+)/, `$1${frame}`);
+
+ return wadorsuri;
+}
+
+/**
+ * Obtain an imageId for Cornerstone based on the WADO-RS scheme
+ *
+ * @param {object} instanceMetada metadata object (InstanceMetadata)
+ * @returns {string} The imageId to be used by Cornerstone
+ */
+export function getWADORSImageId(instance, frame) {
+ const uri = getWADORSImageUrl(instance, frame);
+
+ if (!uri) {
+ return;
+ }
+
+ return `wadors:${uri}`;
+};
diff --git a/OHIFViewer-react/src/lib/isImage.js b/OHIFViewer-react/src/lib/isImage.js
new file mode 100644
index 000000000..f90d26ce5
--- /dev/null
+++ b/OHIFViewer-react/src/lib/isImage.js
@@ -0,0 +1,61 @@
+import { sopClassDictionary } from './sopClassDictionary';
+
+/**
+ * Checks whether dicom files with specified SOP Class UID have image data
+ * @param {string} sopClassUid - SOP Class UID to be checked
+ * @returns {boolean} - true if it has image data
+ */
+export function isImage(sopClassUid) {
+ if (sopClassUid === sopClassDictionary.ComputedRadiographyImageStorage
+ || sopClassUid === sopClassDictionary.DigitalXRayImageStorageForPresentation
+ || sopClassUid === sopClassDictionary.DigitalXRayImageStorageForProcessing
+ || sopClassUid === sopClassDictionary.DigitalMammographyXRayImageStorageForPresentation
+ || sopClassUid === sopClassDictionary.DigitalMammographyXRayImageStorageForProcessing
+ || sopClassUid === sopClassDictionary.DigitalIntraOralXRayImageStorageForPresentation
+ || sopClassUid === sopClassDictionary.DigitalIntraOralXRayImageStorageForProcessing
+ || sopClassUid === sopClassDictionary.CTImageStorage
+ || sopClassUid === sopClassDictionary.EnhancedCTImageStorage
+ || sopClassUid === sopClassDictionary.LegacyConvertedEnhancedCTImageStorage
+ || sopClassUid === sopClassDictionary.UltrasoundMultiframeImageStorage
+ || sopClassUid === sopClassDictionary.MRImageStorage
+ || sopClassUid === sopClassDictionary.EnhancedMRImageStorage
+ || sopClassUid === sopClassDictionary.EnhancedMRColorImageStorage
+ || sopClassUid === sopClassDictionary.LegacyConvertedEnhancedMRImageStorage
+ || sopClassUid === sopClassDictionary.UltrasoundImageStorage
+ || sopClassUid === sopClassDictionary.SecondaryCaptureImageStorage
+ || sopClassUid === sopClassDictionary.MultiframeSingleBitSecondaryCaptureImageStorage
+ || sopClassUid === sopClassDictionary.MultiframeGrayscaleByteSecondaryCaptureImageStorage
+ || sopClassUid === sopClassDictionary.MultiframeGrayscaleWordSecondaryCaptureImageStorage
+ || sopClassUid === sopClassDictionary.MultiframeTrueColorSecondaryCaptureImageStorage
+ || sopClassUid === sopClassDictionary.XRayAngiographicImageStorage
+ || sopClassUid === sopClassDictionary.EnhancedXAImageStorage
+ || sopClassUid === sopClassDictionary.XRayRadiofluoroscopicImageStorage
+ || sopClassUid === sopClassDictionary.EnhancedXRFImageStorage
+ || sopClassUid === sopClassDictionary.XRay3DAngiographicImageStorage
+ || sopClassUid === sopClassDictionary.XRay3DCraniofacialImageStorage
+ || sopClassUid === sopClassDictionary.BreastTomosynthesisImageStorage
+ || sopClassUid === sopClassDictionary.BreastProjectionXRayImageStorageForPresentation
+ || sopClassUid === sopClassDictionary.BreastProjectionXRayImageStorageForProcessing
+ || sopClassUid === sopClassDictionary.IntravascularOpticalCoherenceTomographyImageStorageForPresentation
+ || sopClassUid === sopClassDictionary.IntravascularOpticalCoherenceTomographyImageStorageForProcessing
+ || sopClassUid === sopClassDictionary.NuclearMedicineImageStorage
+ || sopClassUid === sopClassDictionary.VLEndoscopicImageStorage
+ || sopClassUid === sopClassDictionary.VideoEndoscopicImageStorage
+ || sopClassUid === sopClassDictionary.VLMicroscopicImageStorage
+ || sopClassUid === sopClassDictionary.VideoMicroscopicImageStorage
+ || sopClassUid === sopClassDictionary.VLSlideCoordinatesMicroscopicImageStorage
+ || sopClassUid === sopClassDictionary.VLPhotographicImageStorage
+ || sopClassUid === sopClassDictionary.VideoPhotographicImageStorage
+ || sopClassUid === sopClassDictionary.OphthalmicPhotography8BitImageStorage
+ || sopClassUid === sopClassDictionary.OphthalmicPhotography16BitImageStorage
+ || sopClassUid === sopClassDictionary.OphthalmicTomographyImageStorage
+ || sopClassUid === sopClassDictionary.VLWholeSlideMicroscopyImageStorage
+ || sopClassUid === sopClassDictionary.PositronEmissionTomographyImageStorage
+ || sopClassUid === sopClassDictionary.EnhancedPETImageStorage
+ || sopClassUid === sopClassDictionary.LegacyConvertedEnhancedPETImageStorage
+ || sopClassUid === sopClassDictionary.RTImageStorage) {
+ return true;
+ }
+
+ return false;
+}
diff --git a/OHIFViewer-react/src/lib/sopClassDictionary.js b/OHIFViewer-react/src/lib/sopClassDictionary.js
new file mode 100644
index 000000000..7be21ce3a
--- /dev/null
+++ b/OHIFViewer-react/src/lib/sopClassDictionary.js
@@ -0,0 +1,116 @@
+// TODO: Deprecate since we have the same thing in dcmjs?
+export const sopClassDictionary = {
+ ComputedRadiographyImageStorage: "1.2.840.10008.5.1.4.1.1.1",
+ DigitalXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.1",
+ DigitalXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.1.1",
+ DigitalMammographyXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.2",
+ DigitalMammographyXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.2.1",
+ DigitalIntraOralXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.1.3",
+ DigitalIntraOralXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.1.3.1",
+ CTImageStorage: "1.2.840.10008.5.1.4.1.1.2",
+ EnhancedCTImageStorage: "1.2.840.10008.5.1.4.1.1.2.1",
+ LegacyConvertedEnhancedCTImageStorage: "1.2.840.10008.5.1.4.1.1.2.2",
+ UltrasoundMultiframeImageStorage: "1.2.840.10008.5.1.4.1.1.3.1",
+ MRImageStorage: "1.2.840.10008.5.1.4.1.1.4",
+ EnhancedMRImageStorage: "1.2.840.10008.5.1.4.1.1.4.1",
+ MRSpectroscopyStorage: "1.2.840.10008.5.1.4.1.1.4.2",
+ EnhancedMRColorImageStorage: "1.2.840.10008.5.1.4.1.1.4.3",
+ LegacyConvertedEnhancedMRImageStorage: "1.2.840.10008.5.1.4.1.1.4.4",
+ UltrasoundImageStorage: "1.2.840.10008.5.1.4.1.1.6.1",
+ EnhancedUSVolumeStorage: "1.2.840.10008.5.1.4.1.1.6.2",
+ SecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7",
+ MultiframeSingleBitSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.1",
+ MultiframeGrayscaleByteSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.2",
+ MultiframeGrayscaleWordSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.3",
+ MultiframeTrueColorSecondaryCaptureImageStorage: "1.2.840.10008.5.1.4.1.1.7.4",
+ Sop12LeadECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.1",
+ GeneralECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.2",
+ AmbulatoryECGWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.1.3",
+ HemodynamicWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.2.1",
+ CardiacElectrophysiologyWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.3.1",
+ BasicVoiceAudioWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.4.1",
+ GeneralAudioWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.4.2",
+ ArterialPulseWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.5.1",
+ RespiratoryWaveformStorage: "1.2.840.10008.5.1.4.1.1.9.6.1",
+ GrayscaleSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.1",
+ ColorSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.2",
+ PseudoColorSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.3",
+ BlendingSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.4",
+ XAXRFGrayscaleSoftcopyPresentationStateStorage: "1.2.840.10008.5.1.4.1.1.11.5",
+ XRayAngiographicImageStorage: "1.2.840.10008.5.1.4.1.1.12.1",
+ EnhancedXAImageStorage: "1.2.840.10008.5.1.4.1.1.12.1.1",
+ XRayRadiofluoroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.12.2",
+ EnhancedXRFImageStorage: "1.2.840.10008.5.1.4.1.1.12.2.1",
+ XRay3DAngiographicImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.1",
+ XRay3DCraniofacialImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.2",
+ BreastTomosynthesisImageStorage: "1.2.840.10008.5.1.4.1.1.13.1.3",
+ BreastProjectionXRayImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.13.1.4",
+ BreastProjectionXRayImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.13.1.5",
+ IntravascularOpticalCoherenceTomographyImageStorageForPresentation: "1.2.840.10008.5.1.4.1.1.14.1",
+ IntravascularOpticalCoherenceTomographyImageStorageForProcessing: "1.2.840.10008.5.1.4.1.1.14.2",
+ NuclearMedicineImageStorage: "1.2.840.10008.5.1.4.1.1.20",
+ RawDataStorage: "1.2.840.10008.5.1.4.1.1.66",
+ SpatialRegistrationStorage: "1.2.840.10008.5.1.4.1.1.66.1",
+ SpatialFiducialsStorage: "1.2.840.10008.5.1.4.1.1.66.2",
+ DeformableSpatialRegistrationStorage: "1.2.840.10008.5.1.4.1.1.66.3",
+ SegmentationStorage: "1.2.840.10008.5.1.4.1.1.66.4",
+ SurfaceSegmentationStorage: "1.2.840.10008.5.1.4.1.1.66.5",
+ RealWorldValueMappingStorage: "1.2.840.10008.5.1.4.1.1.67",
+ SurfaceScanMeshStorage: "1.2.840.10008.5.1.4.1.1.68.1",
+ SurfaceScanPointCloudStorage: "1.2.840.10008.5.1.4.1.1.68.2",
+ VLEndoscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.1",
+ VideoEndoscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.1.1",
+ VLMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.2",
+ VideoMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.2.1",
+ VLSlideCoordinatesMicroscopicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.3",
+ VLPhotographicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.4",
+ VideoPhotographicImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.4.1",
+ OphthalmicPhotography8BitImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.1",
+ OphthalmicPhotography16BitImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.2",
+ StereometricRelationshipStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.3",
+ OphthalmicTomographyImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.5.4",
+ VLWholeSlideMicroscopyImageStorage: "1.2.840.10008.5.1.4.1.1.77.1.6",
+ LensometryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.1",
+ AutorefractionMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.2",
+ KeratometryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.3",
+ SubjectiveRefractionMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.4",
+ VisualAcuityMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.5",
+ SpectaclePrescriptionReportStorage: "1.2.840.10008.5.1.4.1.1.78.6",
+ OphthalmicAxialMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.78.7",
+ IntraocularLensCalculationsStorage: "1.2.840.10008.5.1.4.1.1.78.8",
+ MacularGridThicknessandVolumeReport: "1.2.840.10008.5.1.4.1.1.79.1",
+ OphthalmicVisualFieldStaticPerimetryMeasurementsStorage: "1.2.840.10008.5.1.4.1.1.80.1",
+ OphthalmicThicknessMapStorage: "1.2.840.10008.5.1.4.1.1.81.1",
+ CornealTopographyMapStorage: "1.2.840.10008.5.1.4.1.1.82.1",
+ BasicTextSR: "1.2.840.10008.5.1.4.1.1.88.11",
+ EnhancedSR: "1.2.840.10008.5.1.4.1.1.88.22",
+ ComprehensiveSR: "1.2.840.10008.5.1.4.1.1.88.33",
+ Comprehensive3DSR: "1.2.840.10008.5.1.4.1.1.88.34",
+ ProcedureLog: "1.2.840.10008.5.1.4.1.1.88.40",
+ MammographyCADSR: "1.2.840.10008.5.1.4.1.1.88.50",
+ KeyObjectSelection: "1.2.840.10008.5.1.4.1.1.88.59",
+ ChestCADSR: "1.2.840.10008.5.1.4.1.1.88.65",
+ XRayRadiationDoseSR: "1.2.840.10008.5.1.4.1.1.88.67",
+ RadiopharmaceuticalRadiationDoseSR: "1.2.840.10008.5.1.4.1.1.88.68",
+ ColonCADSR: "1.2.840.10008.5.1.4.1.1.88.69",
+ ImplantationPlanSRDocumentStorage: "1.2.840.10008.5.1.4.1.1.88.70",
+ EncapsulatedPDFStorage: "1.2.840.10008.5.1.4.1.1.104.1",
+ EncapsulatedCDAStorage: "1.2.840.10008.5.1.4.1.1.104.2",
+ PositronEmissionTomographyImageStorage: "1.2.840.10008.5.1.4.1.1.128",
+ EnhancedPETImageStorage: "1.2.840.10008.5.1.4.1.1.130",
+ LegacyConvertedEnhancedPETImageStorage: "1.2.840.10008.5.1.4.1.1.128.1",
+ BasicStructuredDisplayStorage: "1.2.840.10008.5.1.4.1.1.131",
+ RTImageStorage: "1.2.840.10008.5.1.4.1.1.481.1",
+ RTDoseStorage: "1.2.840.10008.5.1.4.1.1.481.2",
+ RTStructureSetStorage: "1.2.840.10008.5.1.4.1.1.481.3",
+ RTBeamsTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.4",
+ RTPlanStorage: "1.2.840.10008.5.1.4.1.1.481.5",
+ RTBrachyTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.6",
+ RTTreatmentSummaryRecordStorage: "1.2.840.10008.5.1.4.1.1.481.7",
+ RTIonPlanStorage: "1.2.840.10008.5.1.4.1.1.481.8",
+ RTIonBeamsTreatmentRecordStorage: "1.2.840.10008.5.1.4.1.1.481.9",
+ RTBeamsDeliveryInstructionStorage: "1.2.840.10008.5.1.4.34.7",
+ GenericImplantTemplateStorage: "1.2.840.10008.5.1.4.43.1",
+ ImplantAssemblyTemplateStorage: "1.2.840.10008.5.1.4.44.1",
+ ImplantTemplateGroupStorage: "1.2.840.10008.5.1.4.45.1"
+};
diff --git a/OHIFViewer-react/src/lib/sortingManager.js b/OHIFViewer-react/src/lib/sortingManager.js
new file mode 100644
index 000000000..b1bd9f3d3
--- /dev/null
+++ b/OHIFViewer-react/src/lib/sortingManager.js
@@ -0,0 +1,13 @@
+import { createStacks } from './createStacks';
+
+const getDisplaySets = (studyMetadata, seriesNumber, iteratorFunction) => {
+ const iteratorFn = typeof iteratorFunction !== 'function' ? createStacks : iteratorFunction;
+
+ return iteratorFn(studyMetadata, seriesNumber);
+};
+
+const sortingManager = {
+ getDisplaySets
+};
+
+export { sortingManager };
diff --git a/OHIFViewer-react/src/lib/updateMetaDataManager.js b/OHIFViewer-react/src/lib/updateMetaDataManager.js
new file mode 100644
index 000000000..0f9f37ece
--- /dev/null
+++ b/OHIFViewer-react/src/lib/updateMetaDataManager.js
@@ -0,0 +1,88 @@
+import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader';
+import OHIF from 'ohif-core';
+import { getWADORSImageId } from './getWADORSImageId';
+
+function getRadiopharmaceuticalInfoMetaData(instance) {
+ const radiopharmaceuticalInfo = instance.radiopharmaceuticalInfo;
+
+ if ((instance.modality !== 'PT') || !radiopharmaceuticalInfo) {
+ return;
+ }
+ const { WadoRsMetaDataBuilder } = OHIF.metadata;
+
+ return new WadoRsMetaDataBuilder()
+ .addTag('00181072', radiopharmaceuticalInfo.radiopharmaceuticalStartTime)
+ .addTag('00181074', radiopharmaceuticalInfo.radionuclideTotalDose)
+ .addTag('00181075', radiopharmaceuticalInfo.radionuclideHalfLife)
+ .toJSON();
+}
+
+const getWadoRsInstanceMetaData = (study, series, instance) => {
+ const { WadoRsMetaDataBuilder } = OHIF.metadata;
+ return new WadoRsMetaDataBuilder()
+ .addTag('00080016', instance.sopClassUid)
+ .addTag('00080018', instance.sopInstanceUid)
+ .addTag('00080021', series.seriesDate)
+ .addTag('00080031', series.seriesTime)
+ .addTag('00080060', instance.modality)
+ .addTag('00101010', study.patientAge)
+ .addTag('00101020', study.patientSize)
+ .addTag('00101030', study.patientWeight)
+ .addTag('00180050', instance.sliceThickness)
+ .addTag('0020000e', series.seriesInstanceUid)
+ .addTag('00200011', series.seriesNumber)
+ .addTag('0020000d', study.studyInstanceUid)
+ .addTag('00200013', instance.instanceNumber)
+ .addTag('00200032', instance.imagePositionPatient, true)
+ .addTag('00200037', instance.imageOrientationPatient, true)
+ .addTag('00200052', instance.frameOfReferenceUID)
+ .addTag('00201041', instance.sliceLocation)
+ .addTag('00280002', instance.samplesPerPixel)
+ .addTag('00280004', instance.photometricInterpretation)
+ .addTag('00280006', instance.planarConfiguration)
+ .addTag('00280010', instance.rows)
+ .addTag('00280011', instance.columns)
+ .addTag('00280030', instance.pixelSpacing, true)
+ .addTag('00280034', instance.pixelAspectRatio, true)
+ .addTag('00280100', instance.bitsAllocated)
+ .addTag('00280101', instance.bitsStored)
+ .addTag('00280102', instance.highBit)
+ .addTag('00280103', instance.pixelRepresentation)
+ .addTag('00280106', instance.smallestPixelValue)
+ .addTag('00280107', instance.largestPixelValue)
+ .addTag('00281050', instance.windowCenter, true)
+ .addTag('00281051', instance.windowWidth, true)
+ .addTag('00281052', instance.rescaleIntercept)
+ .addTag('00281053', instance.rescaleSlope)
+ .addTag('00281054', instance.rescaleType)
+ .addTag('00281101', instance.redPaletteColorLookupTableDescriptor)
+ .addTag('00281102', instance.greenPaletteColorLookupTableDescriptor)
+ .addTag('00281103', instance.bluePaletteColorLookupTableDescriptor)
+ .addTag('00281201', instance.redPaletteColorLookupTableData)
+ .addTag('00281202', instance.greenPaletteColorLookupTableData)
+ .addTag('00281203', instance.bluePaletteColorLookupTableData)
+ .addTag('00540016', getRadiopharmaceuticalInfoMetaData(instance))
+ .toJSON();
+};
+
+export function updateMetaDataManager(study) {
+ study.seriesList.forEach(series => {
+ series.instances.forEach(instance => {
+ // Cache just images that are going to be loaded via WADO-RS
+ if ((instance.imageRendering !== 'wadors') && (instance.thumbnailRendering !== 'wadors')) {
+ return;
+ }
+
+ const metaData = getWadoRsInstanceMetaData(study, series, instance);
+ const numberOfFrames = instance.numberOfFrames || 1;
+
+ // We can share the same metaData with all frames because it doesn't have
+ // any frame specific data, such as frameNumber, pixelData, offset, etc.
+ // WADO-RS frame number is 1-based
+ for (let frameNumber = 0; frameNumber < numberOfFrames; frameNumber++) {
+ const imageId = getWADORSImageId(instance, frameNumber);
+ cornerstoneWADOImageLoader.wadors.metaDataManager.add(imageId, metaData);
+ }
+ });
+ });
+}
diff --git a/OHIFViewer-react/src/sha.js b/OHIFViewer-react/src/sha.js
index 6e0504d74..79b206e73 100644
--- a/OHIFViewer-react/src/sha.js
+++ b/OHIFViewer-react/src/sha.js
@@ -1 +1 @@
-export default '7b66dec163174eae2f6aca133f740529c8b4d08c';
+export default 'fc5bd73c1ed247b233bfc7ebed1fb00c990f98d5';
diff --git a/OHIFViewer-react/src/viewer/viewer.js b/OHIFViewer-react/src/viewer/viewer.js
index 8f16b9717..0e5cc60b6 100644
--- a/OHIFViewer-react/src/viewer/viewer.js
+++ b/OHIFViewer-react/src/viewer/viewer.js
@@ -2,7 +2,7 @@ import React, { Component } from "react";
import PropTypes from "prop-types";
import cornerstone from 'cornerstone-core';
import cornerstoneTools from 'cornerstone-tools';
-import { OHIF } from 'ohif-core';
+import OHIF from 'ohif-core';
import { CineDialog } from 'react-viewerbase';
import FlexboxLayout from '../flexboxLayout/flexboxLayout.js';
@@ -48,7 +48,7 @@ OHIF.viewer.cine = {
loop: true
};
-const viewportUtils = OHIF.viewerbase.viewportUtils;
+/*const viewportUtils = OHIF.viewerbase.viewportUtils;
OHIF.viewer.functionList = {
toggleCineDialog: viewportUtils.toggleCineDialog,
@@ -56,7 +56,7 @@ OHIF.viewer.functionList = {
clearTools: viewportUtils.clearTools,
resetViewport: viewportUtils.resetViewport,
invert: viewportUtils.invert
-};
+};*/
// Create the synchronizer used to update reference lines
OHIF.viewer.updateImageSynchronizer = new cornerstoneTools.Synchronizer('cornerstonenewimage', cornerstoneTools.updateImageSynchronizer);
diff --git a/OHIFViewer-react/yarn-error.log b/OHIFViewer-react/yarn-error.log
index 0f6126c7d..c426f796a 100644
--- a/OHIFViewer-react/yarn-error.log
+++ b/OHIFViewer-react/yarn-error.log
@@ -1,5 +1,5 @@
Arguments:
- /usr/local/Cellar/node/11.1.0/bin/node /usr/local/Cellar/yarn/1.12.1/libexec/bin/yarn.js add ohif-core
+ /usr/local/Cellar/node/11.1.0/bin/node /usr/local/Cellar/yarn/1.12.1/libexec/bin/yarn.js install
PATH:
/usr/local/bin:/usr/local/opt/openldap/sbin:/usr/local/opt/openldap/bin:/Developer/NVIDIA/CUDA-10.0/bin:/Users/Erik/anaconda/bin:/usr/local/opt/llvm/bin/:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/:/Users/Erik/SourceCode/Orthanc/OrthancBuild/Release:/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Erik/npm/bin
@@ -14,17 +14,7 @@ Platform:
darwin x64
Trace:
- Error: https://registry.yarnpkg.com/ohif-core: Not found
- at Request.params.callback [as _callback] (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:63139:18)
- at Request.self.callback (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:124547:22)
- at Request.emit (events.js:182:13)
- at Request.
(/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:125519:10)
- at Request.emit (events.js:182:13)
- at IncomingMessage. (/usr/local/Cellar/yarn/1.12.1/libexec/lib/cli.js:125441:12)
- at Object.onceWrapper (events.js:273:13)
- at IncomingMessage.emit (events.js:187:15)
- at endReadableNT (_stream_readable.js:1094:12)
- at process.internalTickCallback (internal/process/next_tick.js:72:19)
+ Error: ENOENT: no such file or directory, open '/Users/Erik/Library/Caches/Yarn/v3/npm-ohif-core-0.1.0-90ae53cc5876abc07d2399aa9b2123ef1d2296ca/node_modules/ohif-core/.yarn-metadata.json'
npm manifest:
{
@@ -41,12 +31,17 @@ npm manifest:
"hammerjs": "^2.0.8",
"lodash.debounce": "^4.0.8",
"moment": "^2.22.2",
+ "ohif-core": "git://github.com/OHIF/ohif-core#master",
"prop-types": "^15.6.2",
"react": "^16.4.1",
"react-cornerstone-viewport": "^0.1.1",
"react-dom": "^16.4.1",
+ "react-redux": "^6.0.0",
+ "react-router": "^4.3.1",
+ "react-router-dom": "^4.3.1",
"react-scripts": "^2.1.1",
- "react-viewerbase": "^0.1.2"
+ "react-viewerbase": "git://github.com/OHIF/react-viewerbase#master",
+ "redux": "^4.0.1"
},
"scripts": {
"copy:webworkers": "cp node_modules/cornerstone-wado-image-loader/dist/*.min.js* public",
@@ -905,6 +900,13 @@ Lockfile:
dependencies:
regenerator-runtime "^0.12.0"
+ "@babel/runtime@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
+ integrity sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==
+ dependencies:
+ regenerator-runtime "^0.12.0"
+
"@babel/template@^7.1.0", "@babel/template@^7.1.2":
version "7.1.2"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
@@ -2320,6 +2322,11 @@ Lockfile:
kind-of "^6.0.0"
shallow-clone "^1.0.0"
+ clone@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -3711,7 +3718,7 @@ Lockfile:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
- extend@~3.0.2:
+ extend@^3.0.1, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@@ -4450,6 +4457,17 @@ Lockfile:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
+ history@^4.7.2:
+ version "4.7.2"
+ resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b"
+ integrity sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==
+ dependencies:
+ invariant "^2.2.1"
+ loose-envify "^1.2.0"
+ resolve-pathname "^2.2.0"
+ value-equal "^0.4.0"
+ warning "^3.0.0"
+
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -4464,6 +4482,18 @@ Lockfile:
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
+ hoist-non-react-statics@^2.5.0:
+ version "2.5.5"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
+ integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
+
+ hoist-non-react-statics@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz#c09c0555c84b38a7ede6912b61efddafd6e75e1e"
+ integrity sha512-TFsu3TV3YLY+zFTZDrN8L2DTFanObwmBLpWvJs1qfUuEQ5bTAdFcwfx2T/bsCXfM9QHSLvjfP+nihEl0yvozxw==
+ dependencies:
+ react-is "^16.3.2"
+
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -4802,7 +4832,7 @@ Lockfile:
default-gateway "^2.6.0"
ipaddr.js "^1.5.2"
- invariant@^2.2.2, invariant@^2.2.4:
+ invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -5192,6 +5222,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+ 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"
@@ -5598,6 +5633,16 @@ Lockfile:
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-levenshtein@^1.1.3:
version "1.1.4"
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e"
@@ -5933,6 +5978,67 @@ Lockfile:
p-locate "^3.0.0"
path-exists "^3.0.0"
+ lodash._basecallback@^3.0.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27"
+ integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=
+ dependencies:
+ lodash._baseisequal "^3.0.0"
+ lodash._bindcallback "^3.0.0"
+ lodash.isarray "^3.0.0"
+ lodash.pairs "^3.0.0"
+
+ lodash._baseeach@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3"
+ integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM=
+ dependencies:
+ lodash.keys "^3.0.0"
+
+ lodash._basefind@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae"
+ integrity sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=
+
+ lodash._basefindindex@^3.0.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f"
+ integrity sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=
+
+ lodash._baseisequal@^3.0.0:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1"
+ integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=
+ dependencies:
+ lodash.isarray "^3.0.0"
+ lodash.istypedarray "^3.0.0"
+ lodash.keys "^3.0.0"
+
+ lodash._baseismatch@^3.0.0:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/lodash._baseismatch/-/lodash._baseismatch-3.1.3.tgz#0728fc48efa11699d3d5f2d73049f2ab13c40fd5"
+ integrity sha1-Byj8SO+hFpnT1fLXMEnyqxPED9U=
+ dependencies:
+ lodash._baseisequal "^3.0.0"
+
+ lodash._basematches@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash._basematches/-/lodash._basematches-3.2.0.tgz#f47e03f07ec20784ab0968d0cb6cb597e2101158"
+ integrity sha1-9H4D8H7CB4SrCWjQy2y1l+IQEVg=
+ dependencies:
+ lodash._baseismatch "^3.0.0"
+ lodash.pairs "^3.0.0"
+
+ lodash._bindcallback@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
+ integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
+
+ lodash._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+ integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
+
lodash._reinterpolate@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -5948,11 +6054,107 @@ Lockfile:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+ lodash.every@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7"
+ integrity sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=
+
+ lodash.find@^3.0.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad"
+ integrity sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=
+ dependencies:
+ lodash._basecallback "^3.0.0"
+ lodash._baseeach "^3.0.0"
+ lodash._basefind "^3.0.0"
+ lodash._basefindindex "^3.0.0"
+ lodash.isarray "^3.0.0"
+ lodash.keys "^3.0.0"
+
+ lodash.find@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
+ integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=
+
+ lodash.findwhere@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.findwhere/-/lodash.findwhere-3.1.0.tgz#7937d34f3eac818dec7fa94e8ca5e26fdba1cfc1"
+ integrity sha1-eTfTTz6sgY3sf6lOjKXib9uhz8E=
+ dependencies:
+ lodash._basematches "^3.0.0"
+ lodash.find "^3.0.0"
+
+ lodash.foreach@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+ integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
+
+ lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
+ lodash.isarguments@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+ integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+
+ lodash.isarray@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
+ integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
+
+ lodash.isempty@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
+ integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
+
+ lodash.isobject@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
+ integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=
+
+ lodash.istypedarray@^3.0.0:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
+ integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=
+
+ lodash.keys@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
+ integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
+ dependencies:
+ lodash._getnative "^3.0.0"
+ lodash.isarguments "^3.0.0"
+ lodash.isarray "^3.0.0"
+
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+ lodash.merge@^4.6.0:
+ 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.omit@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
+ integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+
+ lodash.pairs@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9"
+ integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=
+ dependencies:
+ lodash.keys "^3.0.0"
+
+ lodash.pick@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
+ integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
+
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
@@ -5978,11 +6180,21 @@ Lockfile:
dependencies:
lodash._reinterpolate "~3.0.0"
+ lodash.union@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
+ integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
+
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
+ lodash.without@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
+ integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=
+
"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
@@ -5993,7 +6205,7 @@ Lockfile:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
- loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
+ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -6130,6 +6342,14 @@ Lockfile:
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
+ message-box@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/message-box/-/message-box-0.2.0.tgz#f93da217cb11f2a13cb501846fa713f21d6eabb7"
+ integrity sha512-SPLfVDEM2YcAgV2IB0B5vOGjvqXSSw7ZibEeXcff8HYpxyG1Uj+XjgnGUGyR1C0EQCvPI3MBx3p7opt2CIQ2hw==
+ dependencies:
+ lodash.merge "^4.6.0"
+ lodash.template "^4.4.0"
+
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -6329,6 +6549,16 @@ Lockfile:
resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
+ mongo-object@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/mongo-object/-/mongo-object-0.1.3.tgz#56b2a46d3ae4f0bdb1935241928fb444034b92e5"
+ integrity sha512-m3vs+a1JkvRXELJMe2ieMmBe03NUy6bctGjWicRhReYj8brDi0ojKHLKLmXWr/RupNaFP8Q7/x8xG8GpFtp9wg==
+ dependencies:
+ lodash.foreach "^4.5.0"
+ lodash.isempty "^4.4.0"
+ lodash.isobject "^3.0.2"
+ lodash.without "^4.4.0"
+
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -6670,6 +6900,18 @@ Lockfile:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
+ "ohif-core@git://github.com/OHIF/ohif-core#master":
+ version "0.1.0"
+ resolved "git://github.com/OHIF/ohif-core#130e621cf3c13817c1c120f91f0e9378b3eba993"
+ dependencies:
+ cornerstone-math "^0.1.7"
+ isomorphic-base64 "^1.0.2"
+ jquery "^3.3.1"
+ jquery.hotkeys "^0.1.0"
+ redux "^4.0.1"
+ simpl-schema "^1.5.3"
+ underscore "^1.9.1"
+
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@@ -6966,6 +7208,13 @@ Lockfile:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+ path-to-regexp@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+ integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
+ dependencies:
+ isarray "0.0.1"
+
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -7766,7 +8015,7 @@ Lockfile:
kleur "^2.0.1"
sisteransi "^0.1.1"
- prop-types@^15.6.2:
+ prop-types@^15.6.1, prop-types@^15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
@@ -8001,6 +8250,48 @@ Lockfile:
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8"
integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ==
+ react-is@^16.3.2, react-is@^16.6.3:
+ version "16.6.3"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0"
+ integrity sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA==
+
+ react-redux@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz#09e86eeed5febb98e9442458ad2970c8f1a173ef"
+ integrity sha512-EmbC3uLl60pw2VqSSkj6HpZ6jTk12RMrwXMBdYtM6niq0MdEaRq9KYCwpJflkOZj349BLGQm1MI/JO1W96kLWQ==
+ dependencies:
+ "@babel/runtime" "^7.2.0"
+ hoist-non-react-statics "^3.2.1"
+ invariant "^2.2.4"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+ react-is "^16.6.3"
+
+ react-router-dom@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"
+ integrity sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==
+ dependencies:
+ history "^4.7.2"
+ invariant "^2.2.4"
+ loose-envify "^1.3.1"
+ prop-types "^15.6.1"
+ react-router "^4.3.1"
+ warning "^4.0.1"
+
+ react-router@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e"
+ integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==
+ dependencies:
+ history "^4.7.2"
+ hoist-non-react-statics "^2.5.0"
+ invariant "^2.2.4"
+ loose-envify "^1.3.1"
+ path-to-regexp "^1.7.0"
+ prop-types "^15.6.1"
+ warning "^4.0.1"
+
react-scripts@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5"
@@ -8056,10 +8347,9 @@ Lockfile:
optionalDependencies:
fsevents "1.2.4"
- react-viewerbase@^0.1.2:
+ "react-viewerbase@git://github.com/OHIF/react-viewerbase#master":
version "0.1.2"
- resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.1.2.tgz#3af6e31f72183b0cef4b9c36a3534234039e7b8f"
- integrity sha512-ibhnYNe6eVavzZGPN9s/gzRJ7cnkYz8nGMesjH6nigVDdkYgQTCnHzC1laJRFQBgeoNlsd9uKPyvOwjD9ftVuA==
+ resolved "git://github.com/OHIF/react-viewerbase#851631857f037f8db32534a1d2a74dfa945429e4"
dependencies:
classnames "^2.2.6"
@@ -8153,6 +8443,14 @@ Lockfile:
dependencies:
minimatch "3.0.4"
+ redux@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5"
+ integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg==
+ dependencies:
+ loose-envify "^1.4.0"
+ symbol-observable "^1.2.0"
+
regenerate-unicode-properties@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c"
@@ -8380,6 +8678,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+ resolve-pathname@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
+ integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -8706,6 +9009,26 @@ Lockfile:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+ simpl-schema@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/simpl-schema/-/simpl-schema-1.5.3.tgz#c1d12ebddd7ff6dd32ace5e6364824ae506d4a9a"
+ integrity sha512-J24gSh39gBc3TYRFgaWx81bRf9unNML9u3dTAgxL1KI3F9JOv+Z29yEbosJFqmHfuuZ3K7ET/tTQKX4r4+f8/w==
+ dependencies:
+ clone "^2.1.1"
+ extend "^3.0.1"
+ lodash.every "^4.6.0"
+ lodash.find "^4.6.0"
+ lodash.findwhere "^3.1.0"
+ lodash.includes "^4.3.0"
+ lodash.isempty "^4.4.0"
+ lodash.isobject "^3.0.2"
+ lodash.omit "^4.5.0"
+ lodash.pick "^4.4.0"
+ lodash.union "^4.6.0"
+ lodash.uniq "^4.5.0"
+ message-box "^0.2.0"
+ mongo-object "^0.1.3"
+
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
@@ -9162,6 +9485,11 @@ Lockfile:
unquote "~1.1.1"
util.promisify "~1.0.0"
+ symbol-observable@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+ integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+
symbol-tree@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
@@ -9435,6 +9763,11 @@ Lockfile:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
+ underscore@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
+ integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
+
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -9617,6 +9950,11 @@ Lockfile:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
+ value-equal@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
+ integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==
+
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@@ -9666,6 +10004,20 @@ Lockfile:
dependencies:
makeerror "1.0.x"
+ warning@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
+ integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=
+ dependencies:
+ loose-envify "^1.0.0"
+
+ warning@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.2.tgz#aa6876480872116fa3e11d434b0d0d8d91e44607"
+ integrity sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==
+ dependencies:
+ loose-envify "^1.0.0"
+
watch@~0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
diff --git a/OHIFViewer-react/yarn.lock b/OHIFViewer-react/yarn.lock
index cc4ef6326..c4fbf3ef2 100644
--- a/OHIFViewer-react/yarn.lock
+++ b/OHIFViewer-react/yarn.lock
@@ -832,6 +832,13 @@
dependencies:
regenerator-runtime "^0.12.0"
+"@babel/runtime@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
+ integrity sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==
+ dependencies:
+ regenerator-runtime "^0.12.0"
+
"@babel/template@^7.1.0", "@babel/template@^7.1.2":
version "7.1.2"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644"
@@ -2247,6 +2254,11 @@ clone-deep@^2.0.1:
kind-of "^6.0.0"
shallow-clone "^1.0.0"
+clone@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -3638,7 +3650,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@~3.0.2:
+extend@^3.0.1, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@@ -4377,6 +4389,17 @@ hex-color-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
+history@^4.7.2:
+ version "4.7.2"
+ resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b"
+ integrity sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==
+ dependencies:
+ invariant "^2.2.1"
+ loose-envify "^1.2.0"
+ resolve-pathname "^2.2.0"
+ value-equal "^0.4.0"
+ warning "^3.0.0"
+
hmac-drbg@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -4391,6 +4414,18 @@ hoek@4.x.x:
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==
+hoist-non-react-statics@^2.5.0:
+ version "2.5.5"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
+ integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
+
+hoist-non-react-statics@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz#c09c0555c84b38a7ede6912b61efddafd6e75e1e"
+ integrity sha512-TFsu3TV3YLY+zFTZDrN8L2DTFanObwmBLpWvJs1qfUuEQ5bTAdFcwfx2T/bsCXfM9QHSLvjfP+nihEl0yvozxw==
+ dependencies:
+ react-is "^16.3.2"
+
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -4729,7 +4764,7 @@ internal-ip@^3.0.1:
default-gateway "^2.6.0"
ipaddr.js "^1.5.2"
-invariant@^2.2.2, invariant@^2.2.4:
+invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -5875,6 +5910,67 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
+lodash._basecallback@^3.0.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27"
+ integrity sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=
+ dependencies:
+ lodash._baseisequal "^3.0.0"
+ lodash._bindcallback "^3.0.0"
+ lodash.isarray "^3.0.0"
+ lodash.pairs "^3.0.0"
+
+lodash._baseeach@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3"
+ integrity sha1-z4cGVyyhROjZ11InyZDamC+TKvM=
+ dependencies:
+ lodash.keys "^3.0.0"
+
+lodash._basefind@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae"
+ integrity sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=
+
+lodash._basefindindex@^3.0.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f"
+ integrity sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=
+
+lodash._baseisequal@^3.0.0:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1"
+ integrity sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=
+ dependencies:
+ lodash.isarray "^3.0.0"
+ lodash.istypedarray "^3.0.0"
+ lodash.keys "^3.0.0"
+
+lodash._baseismatch@^3.0.0:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/lodash._baseismatch/-/lodash._baseismatch-3.1.3.tgz#0728fc48efa11699d3d5f2d73049f2ab13c40fd5"
+ integrity sha1-Byj8SO+hFpnT1fLXMEnyqxPED9U=
+ dependencies:
+ lodash._baseisequal "^3.0.0"
+
+lodash._basematches@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash._basematches/-/lodash._basematches-3.2.0.tgz#f47e03f07ec20784ab0968d0cb6cb597e2101158"
+ integrity sha1-9H4D8H7CB4SrCWjQy2y1l+IQEVg=
+ dependencies:
+ lodash._baseismatch "^3.0.0"
+ lodash.pairs "^3.0.0"
+
+lodash._bindcallback@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
+ integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
+
+lodash._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+ integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
+
lodash._reinterpolate@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -5890,11 +5986,107 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+lodash.every@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7"
+ integrity sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=
+
+lodash.find@^3.0.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad"
+ integrity sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=
+ dependencies:
+ lodash._basecallback "^3.0.0"
+ lodash._baseeach "^3.0.0"
+ lodash._basefind "^3.0.0"
+ lodash._basefindindex "^3.0.0"
+ lodash.isarray "^3.0.0"
+ lodash.keys "^3.0.0"
+
+lodash.find@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
+ integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=
+
+lodash.findwhere@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.findwhere/-/lodash.findwhere-3.1.0.tgz#7937d34f3eac818dec7fa94e8ca5e26fdba1cfc1"
+ integrity sha1-eTfTTz6sgY3sf6lOjKXib9uhz8E=
+ dependencies:
+ lodash._basematches "^3.0.0"
+ lodash.find "^3.0.0"
+
+lodash.foreach@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+ integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
+
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
+lodash.isarguments@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+ integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
+
+lodash.isarray@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
+ integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
+
+lodash.isempty@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
+ integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
+
+lodash.isobject@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
+ integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=
+
+lodash.istypedarray@^3.0.0:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
+ integrity sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=
+
+lodash.keys@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
+ integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
+ dependencies:
+ lodash._getnative "^3.0.0"
+ lodash.isarguments "^3.0.0"
+ lodash.isarray "^3.0.0"
+
lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+lodash.merge@^4.6.0:
+ 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.omit@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
+ integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
+
+lodash.pairs@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9"
+ integrity sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=
+ dependencies:
+ lodash.keys "^3.0.0"
+
+lodash.pick@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
+ integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
+
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
@@ -5920,11 +6112,21 @@ lodash.templatesettings@^4.0.0:
dependencies:
lodash._reinterpolate "~3.0.0"
+lodash.union@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
+ integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=
+
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
+lodash.without@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
+ integrity sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=
+
"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
@@ -5935,7 +6137,7 @@ loglevel@^1.4.1:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
-loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -6072,6 +6274,14 @@ merge@^1.2.0:
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
+message-box@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/message-box/-/message-box-0.2.0.tgz#f93da217cb11f2a13cb501846fa713f21d6eabb7"
+ integrity sha512-SPLfVDEM2YcAgV2IB0B5vOGjvqXSSw7ZibEeXcff8HYpxyG1Uj+XjgnGUGyR1C0EQCvPI3MBx3p7opt2CIQ2hw==
+ dependencies:
+ lodash.merge "^4.6.0"
+ lodash.template "^4.4.0"
+
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -6271,6 +6481,16 @@ moment@^2.23.0:
resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
+mongo-object@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/mongo-object/-/mongo-object-0.1.3.tgz#56b2a46d3ae4f0bdb1935241928fb444034b92e5"
+ integrity sha512-m3vs+a1JkvRXELJMe2ieMmBe03NUy6bctGjWicRhReYj8brDi0ojKHLKLmXWr/RupNaFP8Q7/x8xG8GpFtp9wg==
+ dependencies:
+ lodash.foreach "^4.5.0"
+ lodash.isempty "^4.4.0"
+ lodash.isobject "^3.0.2"
+ lodash.without "^4.4.0"
+
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -6612,9 +6832,17 @@ obuf@^1.0.0, obuf@^1.1.1:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-"ohif-core@link:../../ohif-core":
- version "0.0.0"
- uid ""
+"ohif-core@git://github.com/OHIF/ohif-core#master":
+ version "0.1.0"
+ resolved "git://github.com/OHIF/ohif-core#130e621cf3c13817c1c120f91f0e9378b3eba993"
+ dependencies:
+ cornerstone-math "^0.1.7"
+ isomorphic-base64 "^1.0.2"
+ jquery "^3.3.1"
+ jquery.hotkeys "^0.1.0"
+ redux "^4.0.1"
+ simpl-schema "^1.5.3"
+ underscore "^1.9.1"
on-finished@~2.3.0:
version "2.3.0"
@@ -6912,6 +7140,13 @@ path-to-regexp@0.1.7:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+path-to-regexp@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+ integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
+ dependencies:
+ isarray "0.0.1"
+
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -7712,7 +7947,7 @@ prompts@^0.1.9:
kleur "^2.0.1"
sisteransi "^0.1.1"
-prop-types@^15.6.2:
+prop-types@^15.6.1, prop-types@^15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
@@ -7947,6 +8182,48 @@ react-error-overlay@^5.1.0:
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8"
integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ==
+react-is@^16.3.2, react-is@^16.6.3:
+ version "16.6.3"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0"
+ integrity sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA==
+
+react-redux@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz#09e86eeed5febb98e9442458ad2970c8f1a173ef"
+ integrity sha512-EmbC3uLl60pw2VqSSkj6HpZ6jTk12RMrwXMBdYtM6niq0MdEaRq9KYCwpJflkOZj349BLGQm1MI/JO1W96kLWQ==
+ dependencies:
+ "@babel/runtime" "^7.2.0"
+ hoist-non-react-statics "^3.2.1"
+ invariant "^2.2.4"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+ react-is "^16.6.3"
+
+react-router-dom@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz#4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6"
+ integrity sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==
+ dependencies:
+ history "^4.7.2"
+ invariant "^2.2.4"
+ loose-envify "^1.3.1"
+ prop-types "^15.6.1"
+ react-router "^4.3.1"
+ warning "^4.0.1"
+
+react-router@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e"
+ integrity sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==
+ dependencies:
+ history "^4.7.2"
+ hoist-non-react-statics "^2.5.0"
+ invariant "^2.2.4"
+ loose-envify "^1.3.1"
+ path-to-regexp "^1.7.0"
+ prop-types "^15.6.1"
+ warning "^4.0.1"
+
react-scripts@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5"
@@ -8002,10 +8279,9 @@ react-scripts@^2.1.1:
optionalDependencies:
fsevents "1.2.4"
-react-viewerbase@^0.1.2:
+"react-viewerbase@git://github.com/OHIF/react-viewerbase#master":
version "0.1.2"
- resolved "https://registry.yarnpkg.com/react-viewerbase/-/react-viewerbase-0.1.2.tgz#3af6e31f72183b0cef4b9c36a3534234039e7b8f"
- integrity sha512-ibhnYNe6eVavzZGPN9s/gzRJ7cnkYz8nGMesjH6nigVDdkYgQTCnHzC1laJRFQBgeoNlsd9uKPyvOwjD9ftVuA==
+ resolved "git://github.com/OHIF/react-viewerbase#851631857f037f8db32534a1d2a74dfa945429e4"
dependencies:
classnames "^2.2.6"
@@ -8334,6 +8610,11 @@ resolve-from@^3.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+resolve-pathname@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
+ integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -8660,6 +8941,26 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+simpl-schema@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/simpl-schema/-/simpl-schema-1.5.3.tgz#c1d12ebddd7ff6dd32ace5e6364824ae506d4a9a"
+ integrity sha512-J24gSh39gBc3TYRFgaWx81bRf9unNML9u3dTAgxL1KI3F9JOv+Z29yEbosJFqmHfuuZ3K7ET/tTQKX4r4+f8/w==
+ dependencies:
+ clone "^2.1.1"
+ extend "^3.0.1"
+ lodash.every "^4.6.0"
+ lodash.find "^4.6.0"
+ lodash.findwhere "^3.1.0"
+ lodash.includes "^4.3.0"
+ lodash.isempty "^4.4.0"
+ lodash.isobject "^3.0.2"
+ lodash.omit "^4.5.0"
+ lodash.pick "^4.4.0"
+ lodash.union "^4.6.0"
+ lodash.uniq "^4.5.0"
+ message-box "^0.2.0"
+ mongo-object "^0.1.3"
+
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
@@ -9581,6 +9882,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
+value-equal@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7"
+ integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==
+
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@@ -9630,6 +9936,20 @@ walker@~1.0.5:
dependencies:
makeerror "1.0.x"
+warning@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
+ integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=
+ dependencies:
+ loose-envify "^1.0.0"
+
+warning@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.2.tgz#aa6876480872116fa3e11d434b0d0d8d91e44607"
+ integrity sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==
+ dependencies:
+ loose-envify "^1.0.0"
+
watch@~0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"