LT-275: Migrating ohif:lesiontracker to the new import structure
This commit is contained in:
parent
a49fca71d2
commit
826bf9bf16
@ -17,7 +17,7 @@ Template.viewer.onCreated(() => {
|
||||
const contentId = instance.data.contentId;
|
||||
|
||||
OHIF.viewer.functionList = $.extend(OHIF.viewer.functionList, {
|
||||
toggleLesionTrackerTools: toggleLesionTrackerTools,
|
||||
toggleLesionTrackerTools: OHIF.lesiontracker.toggleLesionTrackerTools,
|
||||
clearTools: clearTools,
|
||||
bidirectional: () => {
|
||||
// Used for hotkeys
|
||||
@ -49,7 +49,7 @@ Template.viewer.onCreated(() => {
|
||||
Session.set('activeViewport', ViewerData[contentId].activeViewport || false);
|
||||
|
||||
// Set lesion tool buttons as disabled if pixel spacing is not available for active element
|
||||
instance.autorun(pixelSpacingAutorunCheck);
|
||||
instance.autorun(OHIF.lesiontracker.pixelSpacingAutorunCheck);
|
||||
|
||||
// Update the ViewerStudies collection with the loaded studies
|
||||
ViewerStudies.remove({});
|
||||
|
||||
@ -46,7 +46,7 @@ Router.route('/viewer/timepoints/:_id', {
|
||||
var timepointId = this.params._id;
|
||||
|
||||
this.render('app', routerOptions);
|
||||
openNewTabWithTimepoint(timepointId);
|
||||
OHIF.lesiontracker.openNewTabWithTimepoint(timepointId);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ Router.route('/viewer/timepoints/:_id', {
|
||||
var timepointId = this.params._id;
|
||||
|
||||
this.render('app', routerOptions);
|
||||
openNewTabWithTimepoint(timepointId);
|
||||
OHIF.lesiontracker.openNewTabWithTimepoint(timepointId);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
3
Packages/ohif-lesiontracker/both/base.js
Normal file
3
Packages/ohif-lesiontracker/both/base.js
Normal file
@ -0,0 +1,3 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
OHIF.lesiontracker = {};
|
||||
@ -60,7 +60,7 @@ function displayFunction(data) {
|
||||
return criteria.id;
|
||||
});
|
||||
|
||||
const currentConstraints = getTrialCriteriaConstraints(criteriaTypes, data.imageId);
|
||||
const currentConstraints = OHIF.lesiontracker.getTrialCriteriaConstraints(criteriaTypes, data.imageId);
|
||||
|
||||
if (data.shortestDiameter) {
|
||||
// TODO: Make this check criteria again to see if we should display
|
||||
@ -81,6 +81,6 @@ export const bidirectional = {
|
||||
measurementTableOptions: {
|
||||
displayFunction: displayFunction
|
||||
},
|
||||
includeInCaseProgress: true,
|
||||
includeInCaseProgress: true,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
7
Packages/ohif-lesiontracker/both/configuration/index.js
Normal file
7
Packages/ohif-lesiontracker/both/configuration/index.js
Normal file
@ -0,0 +1,7 @@
|
||||
import './nonTarget.js';
|
||||
import './ellipse.js';
|
||||
import './length.js';
|
||||
import './measurementTools.js';
|
||||
import './dataExchange.js';
|
||||
import './dataValidation.js';
|
||||
import './configuration.js';
|
||||
2
Packages/ohif-lesiontracker/both/index.js
Normal file
2
Packages/ohif-lesiontracker/both/index.js
Normal file
@ -0,0 +1,2 @@
|
||||
import './base.js';
|
||||
import './configuration';
|
||||
2
Packages/ohif-lesiontracker/client/collections/index.js
Normal file
2
Packages/ohif-lesiontracker/client/collections/index.js
Normal file
@ -0,0 +1,2 @@
|
||||
import './LesionLocations.js';
|
||||
import './LocationResponses.js';
|
||||
@ -0,0 +1,5 @@
|
||||
import './bidirectionalTool.js';
|
||||
import './nonTargetTool.js';
|
||||
import './scaleOverlayTool.js';
|
||||
import './deleteLesionKeyboardTool.js';
|
||||
import './qualitativeTargetTools.js';
|
||||
22
Packages/ohif-lesiontracker/client/components/index.js
Normal file
22
Packages/ohif-lesiontracker/client/components/index.js
Normal file
@ -0,0 +1,22 @@
|
||||
import './optionsModal/optionsModal.html';
|
||||
import './optionsModal/optionsModal.styl';
|
||||
import './optionsModal/optionsModal.js';
|
||||
|
||||
import './optionsModal/recistDescription/recistDescription.html';
|
||||
import './optionsModal/irRCDescription/irRCDescription.html';
|
||||
|
||||
import './measurementLocationDialog/measurementLocationDialog.html';
|
||||
import './measurementLocationDialog/measurementLocationDialog.js';
|
||||
import './measurementLocationDialog/measurementLocationDialog.styl';
|
||||
|
||||
import './nonTargetLesionDialog/nonTargetLesionDialog.html';
|
||||
import './nonTargetLesionDialog/nonTargetLesionDialog.styl';
|
||||
import './nonTargetLesionDialog/nonTargetLesionDialog.js';
|
||||
|
||||
import './nonTargetResponseDialog/nonTargetResponseDialog.html';
|
||||
import './nonTargetResponseDialog/nonTargetResponseDialog.styl';
|
||||
import './nonTargetResponseDialog/nonTargetResponseDialog.js';
|
||||
|
||||
import './measureFlow/measureFlow.html';
|
||||
import './measureFlow/measureFlow.styl';
|
||||
import './measureFlow/measureFlow.js';
|
||||
@ -268,7 +268,7 @@ Template.measurementLocationDialog.events({
|
||||
|
||||
const instance = Template.instance();
|
||||
const measurementApi = instance.data.measurementApi;
|
||||
convertToNonTarget(measurementApi, measurementData);
|
||||
OHIF.lesiontracker.convertToNonTarget(measurementApi, measurementData);
|
||||
|
||||
closeHandler(dialog);
|
||||
},
|
||||
|
||||
12
Packages/ohif-lesiontracker/client/index.js
Normal file
12
Packages/ohif-lesiontracker/client/index.js
Normal file
@ -0,0 +1,12 @@
|
||||
// Client-side collections
|
||||
import './collections';
|
||||
|
||||
// Additional Custom Cornerstone Tools for Lesion Tracker
|
||||
import './compatibility';
|
||||
|
||||
import './tools.js';
|
||||
|
||||
// UI Components
|
||||
import './components';
|
||||
|
||||
import './lib';
|
||||
@ -223,7 +223,7 @@ function validateSingleMeasurement(measurementData) {
|
||||
}).map(function(criteria) {
|
||||
return criteria.id;
|
||||
});
|
||||
var currentConstraints = getTrialCriteriaConstraints(criteriaTypes, measurementData.imageId);
|
||||
var currentConstraints = OHIF.lesiontracker.getTrialCriteriaConstraints(criteriaTypes, measurementData.imageId);
|
||||
|
||||
// If we have no relevant constraints, stop here
|
||||
if (!currentConstraints) {
|
||||
@ -275,7 +275,7 @@ function validateGroups() {
|
||||
});
|
||||
|
||||
// Criteria for the specific image are retrieved from the general set of criteria.
|
||||
var currentConstraints = getTrialCriteriaConstraints(criteriaTypes);
|
||||
var currentConstraints = OHIF.lesiontracker.getTrialCriteriaConstraints(criteriaTypes);
|
||||
if (!currentConstraints) {
|
||||
return;
|
||||
}
|
||||
@ -320,7 +320,7 @@ function validateAll() {
|
||||
currentMeasurement._id = measurement._id;
|
||||
|
||||
// Criteria for the specific image are retrieved from the general set of criteria.
|
||||
var currentConstraints = getTrialCriteriaConstraints(criteriaTypes, currentMeasurement.imageId);
|
||||
var currentConstraints = OHIF.lesiontracker.getTrialCriteriaConstraints(criteriaTypes, currentMeasurement.imageId);
|
||||
if (!currentConstraints) {
|
||||
return;
|
||||
}
|
||||
@ -1,7 +1,8 @@
|
||||
import { Template } from 'meteor/templating';
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
// Define the Trial Criteria Structure
|
||||
TrialCriteriaConstraints = {
|
||||
OHIF.lesiontracker.TrialCriteriaConstraints = {
|
||||
RECIST: RECIST,
|
||||
irRC: irRC
|
||||
};
|
||||
@ -331,41 +332,41 @@ function irRC(image) {
|
||||
* @param imageId A Cornerstone Image ID
|
||||
* @returns {*} An Object of Trial Criteria that can be used to validate measurements' conformance
|
||||
*/
|
||||
getTrialCriteriaConstraints = function(criteriaTypes, imageId) {
|
||||
OHIF.lesiontracker.getTrialCriteriaConstraints = (criteriaTypes, imageId) => {
|
||||
// TODO: update this when we allow multiple criteria
|
||||
var allCriteria = [];
|
||||
const allCriteria = [];
|
||||
criteriaTypes.forEach(function(criteriaType) {
|
||||
if (!TrialCriteriaConstraints[criteriaType]) {
|
||||
if (!OHIF.lesiontracker.TrialCriteriaConstraints[criteriaType]) {
|
||||
throw 'No such Trial Criteria defined: ' + criteriaType;
|
||||
}
|
||||
|
||||
// If no imageId was specified, skip customization of the criteria
|
||||
// and return the requested criteria right away
|
||||
var criteria;
|
||||
let criteria;
|
||||
if (!imageId) {
|
||||
criteria = TrialCriteriaConstraints[criteriaType]();
|
||||
criteria = OHIF.lesiontracker.TrialCriteriaConstraints[criteriaType]();
|
||||
allCriteria.push(criteria);
|
||||
return;
|
||||
}
|
||||
|
||||
// Otherwise, retrieve the series metaData to identify the modality of the image
|
||||
var seriesMetaData = cornerstoneTools.metaData.get('series', imageId);
|
||||
const seriesMetaData = cornerstoneTools.metaData.get('series', imageId);
|
||||
if (!seriesMetaData) {
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: Get the rest of the metaData that has already been loaded by Cornerstone
|
||||
var image = {};
|
||||
const image = {};
|
||||
|
||||
// If we are looking at an MR or CT image, we should pass the slice thickness
|
||||
// to the Trial Criteria functions so that they can customize the validation rules
|
||||
if (seriesMetaData.modality === 'MR' || seriesMetaData.modality === 'CT') {
|
||||
var instanceMetaData = cornerstoneTools.metaData.get('instance', imageId);
|
||||
const instanceMetaData = cornerstoneTools.metaData.get('instance', imageId);
|
||||
image.acquisitionSliceThickness = instanceMetaData.sliceThickness;
|
||||
}
|
||||
|
||||
// Retrieve the study metaData in order to find the timepoint type
|
||||
var studyMetaData = cornerstoneTools.metaData.get('study', imageId);
|
||||
const studyMetaData = cornerstoneTools.metaData.get('study', imageId);
|
||||
if (!studyMetaData) {
|
||||
return;
|
||||
}
|
||||
@ -383,10 +384,10 @@ getTrialCriteriaConstraints = function(criteriaTypes, imageId) {
|
||||
}
|
||||
|
||||
// Retrieve the Timepoint's type (e.g. 'baseline' or 'followup')
|
||||
var timepointType = timepoint.timepointType;
|
||||
const timepointType = timepoint.timepointType;
|
||||
|
||||
// Obtain the customized trial criteria given the image metaData
|
||||
criteria = TrialCriteriaConstraints[criteriaType](image);
|
||||
criteria = OHIF.lesiontracker.TrialCriteriaConstraints[criteriaType](image);
|
||||
|
||||
// Return the relevant criteria given the current timepoint type
|
||||
allCriteria.push(criteria[timepointType]);
|
||||
@ -1,38 +1,21 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
clearMeasurementTimepointData = function(measurementId, timepointId) {
|
||||
var data = Measurements.findOne(measurementId);
|
||||
|
||||
// Clear the Measurement data for this timepoint
|
||||
var imageId = data.timepoints[timepointId].imageId;
|
||||
var toolType = data.toolType;
|
||||
removeToolDataWithMeasurementId(imageId, toolType, measurementId);
|
||||
|
||||
// Update any viewports that are currently displaying this imageId
|
||||
var enabledElements = cornerstone.getEnabledElementsByImageId(imageId);
|
||||
enabledElements.forEach(function(enabledElement) {
|
||||
cornerstone.updateImage(enabledElement.element);
|
||||
});
|
||||
|
||||
|
||||
};
|
||||
|
||||
function removeToolDataWithMeasurementId(imageId, toolType, measurementId) {
|
||||
const removeToolDataWithMeasurementId = (imageId, toolType, measurementId) => {
|
||||
OHIF.log.info('removeToolDataWithMeasurementId');
|
||||
var toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.toolState;
|
||||
const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.toolState;
|
||||
|
||||
// Find any related toolData
|
||||
if (!toolState[imageId] || !toolState[imageId][toolType]) {
|
||||
return;
|
||||
}
|
||||
|
||||
var toolData = toolState[imageId][toolType].data;
|
||||
const toolData = toolState[imageId][toolType].data;
|
||||
if (!toolData.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Search toolData for entries linked to the specified Measurement
|
||||
var toRemove = [];
|
||||
const toRemove = [];
|
||||
toolData.forEach(function(measurement, index) {
|
||||
if (measurement.id === measurementId ||
|
||||
measurement._id === measurementId) {
|
||||
@ -50,3 +33,16 @@ function removeToolDataWithMeasurementId(imageId, toolType, measurementId) {
|
||||
toolData.splice(index, 1);
|
||||
});
|
||||
};
|
||||
|
||||
OHIF.lesiontracker.clearMeasurementTimepointData = (measurementId, timepointId) => {
|
||||
const data = Measurements.findOne(measurementId);
|
||||
|
||||
// Clear the Measurement data for this timepoint
|
||||
const imageId = data.timepoints[timepointId].imageId;
|
||||
const toolType = data.toolType;
|
||||
removeToolDataWithMeasurementId(imageId, toolType, measurementId);
|
||||
|
||||
// Update any viewports that are currently displaying this imageId
|
||||
const enabledElements = cornerstone.getEnabledElementsByImageId(imageId);
|
||||
enabledElements.forEach(enabledElement => cornerstone.updateImage(enabledElement.element));
|
||||
};
|
||||
@ -67,6 +67,6 @@ convertNonTarget = function(measurementApi, measurementData, newTooltype) {
|
||||
if (measurement) {
|
||||
// Remove the timepointData from this Measurement and update it
|
||||
// in the database, if it is already in the database
|
||||
clearMeasurementTimepointData(measurement._id, measurementData.timepointId);
|
||||
OHIF.lesiontracker.clearMeasurementTimepointData(measurement._id, measurementData.timepointId);
|
||||
}
|
||||
};
|
||||
@ -1,17 +1,19 @@
|
||||
convertToNonTarget = function(measurementApi, measurementData) {
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
OHIF.lesiontracker.convertToNonTarget = (measurementApi, measurementData) => {
|
||||
if (measurementData.isTarget === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
var measurement = Measurements.findOne(measurementData.id);
|
||||
const measurement = Measurements.findOne(measurementData.id);
|
||||
|
||||
var timepoint = Timepoints.findOne({
|
||||
const timepoint = Timepoints.findOne({
|
||||
timepointId: measurementData.timepointId
|
||||
});
|
||||
|
||||
// Next, update the measurementData and add it to the new tool type
|
||||
var toolType = 'nonTarget';
|
||||
var newMeasurement = {
|
||||
const toolType = 'nonTarget';
|
||||
const newMeasurement = {
|
||||
id: 'notready',
|
||||
lesionNumber: LesionManager.getNewLesionNumber(measurementData.timepointId, false),
|
||||
visible: true,
|
||||
@ -23,7 +25,7 @@ convertToNonTarget = function(measurementApi, measurementData) {
|
||||
isTarget: false,
|
||||
toolType: toolType
|
||||
};
|
||||
|
||||
|
||||
if (timepoint && timepoint.timepointType === 'baseline') {
|
||||
newMeasurement.response = 'Present';
|
||||
} else {
|
||||
@ -79,6 +81,6 @@ convertToNonTarget = function(measurementApi, measurementData) {
|
||||
if (measurement) {
|
||||
// Remove the timepointData from this Measurement and update it
|
||||
// in the database, if it is already in the database
|
||||
clearMeasurementTimepointData(measurement._id, measurementData.timepointId);
|
||||
OHIF.lesiontracker.clearMeasurementTimepointData(measurement._id, measurementData.timepointId);
|
||||
}
|
||||
};
|
||||
12
Packages/ohif-lesiontracker/client/lib/index.js
Normal file
12
Packages/ohif-lesiontracker/client/lib/index.js
Normal file
@ -0,0 +1,12 @@
|
||||
// StudyList-related functions
|
||||
import './studylist/openNewTabWithTimepoint.js';
|
||||
import './studylist/studylistModification.js';
|
||||
|
||||
// Library functions
|
||||
import './TrialCriteriaConstraints.js';
|
||||
import './MeasurementValidation.js';
|
||||
import './pixelSpacingAutorunCheck.js';
|
||||
import './toggleLesionTrackerTools.js';
|
||||
import './clearMeasurementTimepointData.js';
|
||||
import './convertToNonTarget.js';
|
||||
import './convertNonTarget.js';
|
||||
@ -1,24 +1,26 @@
|
||||
import { Session } from 'meteor/session';
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
pixelSpacingAutorunCheck = function() {
|
||||
OHIF.lesiontracker.pixelSpacingAutorunCheck = () => {
|
||||
OHIF.log.info('lesionTool button change autorun');
|
||||
|
||||
// Get oncology tools
|
||||
var oncologyTools = $('button#lesion, button#nonTarget');
|
||||
const $oncologyTools = $('button#lesion, button#nonTarget');
|
||||
|
||||
// TODO: Set activeViewport for empty viewport element
|
||||
var activeViewportIndex = Session.get('activeViewport');
|
||||
const activeViewportIndex = Session.get('activeViewport');
|
||||
if (activeViewportIndex === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
var element = $('.imageViewerViewport').get(activeViewportIndex);
|
||||
const element = $('.imageViewerViewport').get(activeViewportIndex);
|
||||
if (!element) {
|
||||
return;
|
||||
}
|
||||
|
||||
let enabledElement;
|
||||
try {
|
||||
var enabledElement = cornerstone.getEnabledElement(element);
|
||||
enabledElement = cornerstone.getEnabledElement(element);
|
||||
} catch(error) {
|
||||
return;
|
||||
}
|
||||
@ -29,10 +31,10 @@ pixelSpacingAutorunCheck = function() {
|
||||
!enabledElement.image.rowPixelSpacing ||
|
||||
!enabledElement.image.columnPixelSpacing) {
|
||||
// Disable Lesion Buttons
|
||||
oncologyTools.prop('disabled', true);
|
||||
$oncologyTools.prop('disabled', true);
|
||||
} else {
|
||||
// Enable Lesion Buttons
|
||||
oncologyTools.prop('disabled', false);
|
||||
$oncologyTools.prop('disabled', false);
|
||||
}
|
||||
|
||||
};
|
||||
@ -7,7 +7,7 @@ import { OHIF } from 'meteor/ohif:core';
|
||||
* @param timepointId The UID of the Timepoint to be opened
|
||||
* @param title The title to be used for the tab heading
|
||||
*/
|
||||
openNewTabWithTimepoint = function(timepointId, title) {
|
||||
OHIF.lesiontracker.openNewTabWithTimepoint = (timepointId, title) => {
|
||||
const contentId = 'viewerTab';
|
||||
|
||||
const Timepoints = StudyList.timepointApi.timepoints;
|
||||
@ -28,7 +28,7 @@ function dblClickOnStudy(data) {
|
||||
if (timepoint) {
|
||||
// Add the Timepoint name to the Patient name to create the tab title
|
||||
title += ' ' + timepointApi.name(timepoint);
|
||||
openNewTabWithTimepoint(timepoint.timepointId, title);
|
||||
OHIF.lesiontracker.openNewTabWithTimepoint(timepoint.timepointId, title);
|
||||
} else {
|
||||
open(data.studyInstanceUid, title);
|
||||
}
|
||||
@ -1,20 +1,22 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
/**
|
||||
* Show / hide lesion tracker tools
|
||||
*/
|
||||
|
||||
var previousStates;
|
||||
var previousActiveTool;
|
||||
let previousStates;
|
||||
let previousActiveTool;
|
||||
|
||||
var toolsShown = true;
|
||||
let toolsShown = true;
|
||||
|
||||
toggleLesionTrackerTools = function() {
|
||||
OHIF.lesiontracker.toggleLesionTrackerTools = () => {
|
||||
if (toolsShown === true) {
|
||||
// Save the current settings for later
|
||||
previousStates = toolManager.getToolDefaultStates();
|
||||
previousActiveTool = toolManager.getActiveTool();
|
||||
|
||||
// Hide the tools (set them all to disabled)
|
||||
var toolDefaultStates = {
|
||||
const toolDefaultStates = {
|
||||
activate: [ 'deleteLesionKeyboardTool' ],
|
||||
deactivate: [],
|
||||
enable: [],
|
||||
@ -25,89 +25,15 @@ Package.onUse(function(api) {
|
||||
api.use('ohif:cornerstone');
|
||||
api.use('ohif:measurements');
|
||||
|
||||
api.addFiles('both/configuration/bidirectional.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/configuration/nonTarget.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/configuration/ellipse.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/configuration/length.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/configuration/measurementTools.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/index.js', [ 'client', 'server' ]);
|
||||
|
||||
api.addFiles('both/configuration/dataExchange.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/configuration/dataValidation.js', [ 'client', 'server' ]);
|
||||
api.addFiles('both/configuration/configuration.js', [ 'client', 'server' ]);
|
||||
api.addFiles('server/index.js', 'server');
|
||||
|
||||
|
||||
api.addFiles('server/methods.js', 'server');
|
||||
|
||||
|
||||
// Client-side collections
|
||||
api.addFiles('client/collections/LesionLocations.js', 'client');
|
||||
api.addFiles('client/collections/LocationResponses.js', 'client');
|
||||
|
||||
// Additional Custom Cornerstone Tools for Lesion Tracker
|
||||
api.addFiles([
|
||||
'client/compatibility/bidirectionalTool.js',
|
||||
'client/compatibility/nonTargetTool.js',
|
||||
'client/compatibility/scaleOverlayTool.js',
|
||||
'client/compatibility/deleteLesionKeyboardTool.js',
|
||||
'client/compatibility/qualitativeTargetTools.js'
|
||||
], 'client', {
|
||||
bare: true
|
||||
});
|
||||
|
||||
api.addFiles('client/tools.js', 'client');
|
||||
|
||||
// UI Components
|
||||
api.addFiles('client/components/optionsModal/optionsModal.html', 'client');
|
||||
api.addFiles('client/components/optionsModal/optionsModal.styl', 'client');
|
||||
api.addFiles('client/components/optionsModal/optionsModal.js', 'client');
|
||||
|
||||
api.addFiles('client/components/optionsModal/recistDescription/recistDescription.html', 'client');
|
||||
api.addFiles('client/components/optionsModal/irRCDescription/irRCDescription.html', 'client');
|
||||
|
||||
api.addFiles('client/components/measurementLocationDialog/measurementLocationDialog.html', 'client');
|
||||
api.addFiles('client/components/measurementLocationDialog/measurementLocationDialog.js', 'client');
|
||||
api.addFiles('client/components/measurementLocationDialog/measurementLocationDialog.styl', 'client');
|
||||
|
||||
api.addFiles('client/components/nonTargetLesionDialog/nonTargetLesionDialog.html', 'client');
|
||||
api.addFiles('client/components/nonTargetLesionDialog/nonTargetLesionDialog.styl', 'client');
|
||||
api.addFiles('client/components/nonTargetLesionDialog/nonTargetLesionDialog.js', 'client');
|
||||
|
||||
api.addFiles('client/components/nonTargetResponseDialog/nonTargetResponseDialog.html', 'client');
|
||||
api.addFiles('client/components/nonTargetResponseDialog/nonTargetResponseDialog.styl', 'client');
|
||||
api.addFiles('client/components/nonTargetResponseDialog/nonTargetResponseDialog.js', 'client');
|
||||
|
||||
api.addFiles('client/components/measureFlow/measureFlow.html', 'client');
|
||||
api.addFiles('client/components/measureFlow/measureFlow.styl', 'client');
|
||||
api.addFiles('client/components/measureFlow/measureFlow.js', 'client');
|
||||
|
||||
// StudyList-related functions
|
||||
api.addFiles('lib/studylist/openNewTabWithTimepoint.js', 'client');
|
||||
api.addFiles('lib/studylist/studylistModification.js', 'client');
|
||||
|
||||
// Library functions
|
||||
api.addFiles('lib/TrialCriteriaConstraints.js', 'client');
|
||||
api.addFiles('lib/MeasurementValidation.js', 'client');
|
||||
|
||||
api.addFiles('lib/pixelSpacingAutorunCheck.js', 'client');
|
||||
api.addFiles('lib/toggleLesionTrackerTools.js', 'client');
|
||||
api.addFiles('lib/clearMeasurementTimepointData.js', 'client');
|
||||
api.addFiles('lib/convertToNonTarget.js', 'client');
|
||||
api.addFiles('lib/convertNonTarget.js', 'client');
|
||||
api.addFiles('client/index.js', 'client');
|
||||
|
||||
// Export global functions
|
||||
api.export('pixelSpacingAutorunCheck', 'client');
|
||||
api.export('syncImageMeasurementAndToolData', 'client');
|
||||
api.export('openNewTabWithTimepoint', 'client');
|
||||
api.export('toggleLesionTrackerTools', 'client');
|
||||
api.export('clearMeasurementTimepointData', 'client');
|
||||
api.export('getTrialCriteriaConstraints', 'client');
|
||||
api.export('convertToNonTarget', 'client');
|
||||
api.export('convertNonTarget', 'client');
|
||||
|
||||
// Export global objects
|
||||
api.export('MeasurementValidation', 'client');
|
||||
api.export('TrialCriteriaConstraints', 'client');
|
||||
|
||||
// Export client-side collections
|
||||
api.export('ValidationErrors', 'client');
|
||||
api.export('LesionLocations', 'client');
|
||||
@ -116,9 +42,5 @@ Package.onUse(function(api) {
|
||||
|
||||
// Export collections spanning both client and server
|
||||
api.export('AdditionalFindings', [ 'client', 'server' ]);
|
||||
|
||||
// Export utility classes
|
||||
api.export('FormUtils', 'client');
|
||||
|
||||
api.export('Configuration', ['client', 'server']);
|
||||
});
|
||||
|
||||
1
Packages/ohif-lesiontracker/server/index.js
Normal file
1
Packages/ohif-lesiontracker/server/index.js
Normal file
@ -0,0 +1 @@
|
||||
import './methods.js';
|
||||
@ -29,7 +29,7 @@ Template.measurementTableHeaderRow.onCreated(() => {
|
||||
return criteria.id;
|
||||
});
|
||||
|
||||
const currentConstraints = getTrialCriteriaConstraints(criteriaTypes);
|
||||
const currentConstraints = OHIF.lesiontracker.getTrialCriteriaConstraints(criteriaTypes);
|
||||
if (!currentConstraints) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ function doneCallback(measurementData, deleteTool) {
|
||||
// the specified Timepoint Cell
|
||||
if (deleteTool === true) {
|
||||
OHIF.log.info('Confirm clicked!');
|
||||
clearMeasurementTimepointData(measurementData.id, measurementData.timepointId);
|
||||
OHIF.lesiontracker.clearMeasurementTimepointData(measurementData.id, measurementData.timepointId);
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ Template.measurementTableTimepointCell.events({
|
||||
|
||||
if (currentMeasurement.isTarget) {
|
||||
showConfirmDialog(function() {
|
||||
clearMeasurementTimepointData(currentMeasurement._id, currentTimepointID);
|
||||
OHIF.lesiontracker.clearMeasurementTimepointData(currentMeasurement._id, currentTimepointID);
|
||||
});
|
||||
} else {
|
||||
changeNonTargetResponse(measurementData, null, doneCallback);
|
||||
@ -94,7 +94,7 @@ Template.measurementTableTimepointCell.events({
|
||||
const currentTimepointID = this.timepointId;
|
||||
|
||||
showConfirmDialog(function() {
|
||||
clearMeasurementTimepointData(currentMeasurement._id, currentTimepointID);
|
||||
OHIF.lesiontracker.clearMeasurementTimepointData(currentMeasurement._id, currentTimepointID);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user