Move files around to confuse James and Erik

This commit is contained in:
dannyrb committed 2020-05-21 16:24:35 -04:00
1 parent b5070dd518
commit 715377c565
21 files changed
+122 -101

No files matched your search

@@ -1,4 +1,6 @@
import { dicomMetadataStore } from '@ohif/core';
import { DicomMetadataStore } from '@ohif/core';
// TODO: Use above to inject so dependent datasources don't need to import or
// depend on @ohif/core?
/**
* Factory function that creates a new "Web API" data source.
@@ -10,7 +12,12 @@ import { dicomMetadataStore } from '@ohif/core';
* It's worth noting that a single implementation of this interface
* can define different underlying sources for "read" and "write" operations.
*/
function create({ query, retrieve, getImageIdsForDisplaySet }) {
function create({
query,
retrieve,
retrieveSeriesMetadata,
getImageIdsForDisplaySet,
}) {
const defaultQuery = {
studies: {
/**
@@ -41,6 +48,7 @@ function create({ query, retrieve, getImageIdsForDisplaySet }) {
query: query || defaultQuery,
retrieve: retrieve || defaultRetrieve,
getImageIdsForDisplaySet,
retrieveSeriesMetadata,
// then go get all series level metadata.
// Store this in the DICOM MetadataStore.
};
@@ -4,7 +4,7 @@ import dicomParser from 'dicom-parser';
import getPixelSpacingInformation from '../utils/metadataProvider/getPixelSpacingInformation';
import fetchPaletteColorLookupTableData from '../utils/metadataProvider/fetchPaletteColorLookupTableData';
import fetchOverlayData from '../utils/metadataProvider/fetchOverlayData';
import dicomMetadataStore from '../dicomMetadataStore';
import DicomMetadataStore from '../services/DicomMetadataStore';
class MetadataProvider {
constructor() {
@@ -123,7 +123,7 @@ class MetadataProvider {
const { StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID } = uids;
return dicomMetadataStore.getInstance(
return DicomMetadataStore.getInstance(
StudyInstanceUID,
SeriesInstanceUID,
SOPInstanceUID
+5 -4
View File
@@ -19,18 +19,19 @@ import string from './string.js';
import studies from './studies/';
import ui from './ui';
import user from './user.js';
import dicomMetadataStore from './dicomMetadataStore';
import { ViewModelProvider, useViewModel } from './ViewModelContext';
import utils, { hotkeys } from './utils/';
import {
MeasurementService,
UIDialogService,
UIModalService,
UINotificationService,
UIViewportDialogService,
//
DicomMetadataStore,
DisplaySetService,
ToolBarSerivce,
MeasurementService,
} from './services';
import IWebApiDataSource from './DataSources/IWebApiDataSource';
@@ -71,7 +72,7 @@ const OHIF = {
MeasurementService,
ToolBarSerivce,
IWebApiDataSource,
dicomMetadataStore,
DicomMetadataStore,
//
ViewModelProvider,
useViewModel,
@@ -112,7 +113,7 @@ export {
MeasurementService,
ToolBarSerivce,
IWebApiDataSource,
dicomMetadataStore,
DicomMetadataStore,
ViewModelProvider,
useViewModel,
};
@@ -1,26 +1,6 @@
import {
createStudyFromSOPInstanceList,
addInstancesToStudy,
} from './studies/services/wado/studyInstanceHelpers';
class StudyMetadata {
constructor(StudyInstanceUID) {
this.StudyInstanceUID = StudyInstanceUID;
this.series = [];
}
addSeries(instances) {
this.series.push(new SeriesMetadata(instances));
}
}
class SeriesMetadata {
constructor(instances) {
const { SeriesInstanceUID } = instances[0];
this.SeriesInstanceUID = SeriesInstanceUID;
this.instances = instances;
}
}
import pubSubServiceInterface from '../_shared/pubSubServiceInterface';
import StudyMetadata from './StudyMetadata';
import EVENTS from './EVENTS';
const _model = {
studies: [],
@@ -74,7 +54,9 @@ function _getInstance(StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID) {
);
}
const dicomMetadataStore = {
const BaseImplementation = {
EVENTS,
listeners: {},
addInstances(instances) {
const { StudyInstanceUID } = instances[0];
@@ -116,10 +98,14 @@ const dicomMetadataStore = {
getInstance: _getInstance,
};
//
const DicomMetadataStore = Object.assign(
{},
BaseImplementation,
pubSubServiceInterface
);
// TODO => Add instances
//_addInstance(input) // arraybuffer, or other stuff
export { dicomMetadataStore };
export default dicomMetadataStore;
export { DicomMetadataStore };
export default DicomMetadataStore;
@@ -0,0 +1,6 @@
const EVENTS = {
DISPLAY_SETS_ADDED: 'event::displaySetService:displaySetsAdded',
DISPLAY_SETS_CHANGED: 'event::displaySetService:displaySetsChanged',
};
export default EVENTS;
@@ -0,0 +1,9 @@
class SeriesMetadata {
constructor(instances) {
const { SeriesInstanceUID } = instances[0];
this.SeriesInstanceUID = SeriesInstanceUID;
this.instances = instances;
}
}
export default SeriesMetadata;
@@ -0,0 +1,14 @@
import SeriesMetadata from './SeriesMetadata';
class StudyMetadata {
constructor(StudyInstanceUID) {
this.StudyInstanceUID = StudyInstanceUID;
this.series = [];
}
addSeries(instances) {
this.series.push(new SeriesMetadata(instances));
}
}
export default StudyMetadata;
@@ -0,0 +1,4 @@
import DicomMetadataStore from './DicomMetadataStore';
export { DicomMetadataStore };
export default DicomMetadataStore;
@@ -1,17 +1,13 @@
import pubSubServiceInterface from '../pubSubServiceInterface';
const EVENTS = {
DISPLAY_SETS_ADDED: 'event::displaySetService:displaySetsAdded',
DISPLAY_SETS_CHANGED: 'event::displaySetService:displaySetsChanged',
};
import pubSubServiceInterface from '../_shared/pubSubServiceInterface';
import EVENTS from './EVENTS';
const displaySetCache = [];
export default class DisplaySetService {
constructor() {
this.displaySets = {};
this.EVENTS = EVENTS;
this.listeners = {};
this.EVENTS = EVENTS;
Object.assign(this, pubSubServiceInterface);
}
@@ -50,27 +46,11 @@ export default class DisplaySetService {
* @param {string} displaySetInstanceUID
* @returns {object} displaySet
*/
getDisplaySetByUID = displaySetInstanceUid => displaySetCache.find(
getDisplaySetByUID = displaySetInstanceUid =>
displaySetCache.find(
displaySet => displaySet.displaySetInstanceUID === displaySetInstanceUid
);
/**
* Broadcasts displaySetService changes.
*
* @param {string} eventName The event name
* @return void
*/
_broadcastChange = (eventName, callbackProps) => {
const hasListeners = Object.keys(this.listeners).length > 0;
const hasCallbacks = Array.isArray(this.listeners[eventName]);
if (hasListeners && hasCallbacks) {
this.listeners[eventName].forEach(listener => {
listener.callback(callbackProps);
});
}
};
makeDisplaySets = (input, batch = false) => {
if (!input || !input.length) {
throw new Error('No instances were provided.');
@@ -98,12 +78,9 @@ export default class DisplaySetService {
}
if (displaySetsAdded && displaySetsAdded.length) {
this._broadcastChange(EVENTS.DISPLAY_SETS_ADDED, displaySetsAdded);
this._broadcastEvent(EVENTS.DISPLAY_SETS_ADDED, displaySetsAdded);
this._broadcastChange(
EVENTS.DISPLAY_SETS_CHANGED,
this.activeDisplaySets
);
this._broadcastEvent(EVENTS.DISPLAY_SETS_CHANGED, this.activeDisplaySets);
}
};
@@ -0,0 +1,6 @@
const EVENTS = {
DISPLAY_SETS_ADDED: 'event::displaySetService:displaySetsAdded',
DISPLAY_SETS_CHANGED: 'event::displaySetService:displaySetsChanged',
};
export default EVENTS;
@@ -1,6 +1,6 @@
import log from '../../log';
import guid from '../../utils/guid';
import pubSubServiceInterface from '../pubSubServiceInterface';
import pubSubServiceInterface from '../_shared/pubSubServiceInterface';
/**
* Measurement source schema
@@ -1,4 +1,4 @@
import pubSubServiceInterface from '../pubSubServiceInterface';
import pubSubServiceInterface from '../_shared/pubSubServiceInterface';
const EVENTS = {
TOOL_BAR_MODIFIED: 'event::toolBarService:toolBarModified',
@@ -0,0 +1,3 @@
import pubSubServiceInterface from './pubSubServiceInterface';
export { pubSubServiceInterface };
@@ -1,7 +1,13 @@
import guid from '../../utils/guid';
/**
* Consumer must implement:
* this.listeners = {}
* this.EVENTS = { "EVENT_KEY": "EVENT_VALUE" }
*/
export default {
subscribe,
_broadcastEvent,
_unsubscribe,
_isValidEvent,
};
@@ -62,3 +68,21 @@ function _unsubscribe(eventName, listenerId) {
function _isValidEvent(eventName) {
return Object.values(this.EVENTS).includes(eventName);
}
/**
* Broadcasts displaySetService changes.
*
* @param {string} eventName - The event name
* @param {func} callbackProps - Properties to pass callback
* @return void
*/
function _broadcastEvent(eventName, callbackProps) {
const hasListeners = Object.keys(this.listeners).length > 0;
const hasCallbacks = Array.isArray(this.listeners[eventName]);
if (hasListeners && hasCallbacks) {
this.listeners[eventName].forEach(listener => {
listener.callback(callbackProps);
});
}
}
+2
View File
@@ -4,6 +4,7 @@ import UIDialogService from './UIDialogService';
import UIModalService from './UIModalService';
import UINotificationService from './UINotificationService';
import UIViewportDialogService from './UIViewportDialogService';
import DicomMetadataStore from './DicomMetadataStore';
import DisplaySetService from './DisplaySetService';
import ToolBarSerivce from './ToolBarService';
@@ -14,6 +15,7 @@ export {
UIModalService,
UINotificationService,
UIViewportDialogService,
DicomMetadataStore,
DisplaySetService,
ToolBarSerivce,
};