109 lines
2.3 KiB
JavaScript
109 lines
2.3 KiB
JavaScript
/**
|
|
*
|
|
*/
|
|
export default {
|
|
/**
|
|
* Only required property. Should be a unique value across all extensions.
|
|
*/
|
|
id: 'example-extension',
|
|
|
|
/**
|
|
* LIFECYCLE HOOKS
|
|
*/
|
|
|
|
preRegistration({
|
|
servicesManager,
|
|
configuration: extensionConfiguration,
|
|
}) {},
|
|
|
|
/**
|
|
* MODULE GETTERS
|
|
*/
|
|
|
|
getViewportModule() {
|
|
return '... react component ...';
|
|
},
|
|
getSopClassHandlerModule() {
|
|
return sopClassHandlerModule;
|
|
},
|
|
getPanelModule() {
|
|
return panelModule;
|
|
},
|
|
getToolbarModule() {
|
|
return panelModule;
|
|
},
|
|
getCommandsModule(/* store */) {
|
|
return commandsModule;
|
|
},
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
const commandsModule = {
|
|
actions: {
|
|
// Store Contexts + Options
|
|
exampleAction: ({ viewports, param1 }) => {
|
|
console.log(`There are ${viewports.length} viewports`);
|
|
console.log(`param1's value is: ${param1}`);
|
|
},
|
|
},
|
|
definitions: {
|
|
exampleActionDef: {
|
|
commandFn: this.actions.exampleAction,
|
|
storeContexts: ['viewports'],
|
|
options: { param1: 'hello world' },
|
|
},
|
|
},
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
const sopClassHandlerModule = {
|
|
id: 'OHIFDicomHtmlSopClassHandler',
|
|
sopClassUids: Object.values({
|
|
BASIC_TEXT_SR: '1.2.840.10008.5.1.4.1.1.88.11',
|
|
ENHANCED_SR: '1.2.840.10008.5.1.4.1.1.88.22',
|
|
COMPREHENSIVE_SR: '1.2.840.10008.5.1.4.1.1.88.33',
|
|
PROCEDURE_LOG_STORAGE: '1.2.840.10008.5.1.4.1.1.88.40',
|
|
MAMMOGRAPHY_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.50',
|
|
CHEST_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.65',
|
|
X_RAY_RADIATION_DOSE_SR: '1.2.840.10008.5.1.4.1.1.88.67',
|
|
}),
|
|
getDisplaySetFromSeries(series, study, dicomWebClient, authorizationHeaders) {
|
|
const instance = series.getFirstInstance();
|
|
|
|
return {
|
|
plugin: 'html',
|
|
displaySetInstanceUid: 0, //utils.guid(),
|
|
wadoRoot: study.getData().wadoRoot,
|
|
wadoUri: instance.getData().wadouri,
|
|
sopInstanceUid: instance.getSOPInstanceUID(),
|
|
seriesInstanceUid: series.getSeriesInstanceUID(),
|
|
studyInstanceUid: study.getStudyInstanceUID(),
|
|
authorizationHeaders,
|
|
};
|
|
},
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
const panelModule = {
|
|
menuOptions: [
|
|
{
|
|
icon: 'th-list',
|
|
label: 'Segments',
|
|
target: 'segment-panel',
|
|
},
|
|
],
|
|
components: [
|
|
{
|
|
id: 'segment-panel',
|
|
component: '... react component ...',
|
|
},
|
|
],
|
|
defaultContext: ['VIEWER'],
|
|
};
|