Move files around to confuse James and Erik
This commit is contained in:
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
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
+13
-27
@@ -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 };
|
||||
+24
@@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
};
|
||||
Reference in new issue
Block a user