90 lines
2.2 KiB
JavaScript
90 lines
2.2 KiB
JavaScript
import { SimpleSchema } from 'meteor/aldeed:simple-schema';
|
|
import { MeasurementSchemaTypes } from 'meteor/ohif:measurements/both/schema/measurements';
|
|
// import { OHIF } from 'meteor/ohif:core';
|
|
|
|
const CornerstoneHandleSchema = MeasurementSchemaTypes.CornerstoneHandleSchema;
|
|
|
|
const BidirectionalHandlesSchema = new SimpleSchema({
|
|
start: {
|
|
type: CornerstoneHandleSchema,
|
|
label: 'Start'
|
|
},
|
|
end: {
|
|
type: CornerstoneHandleSchema,
|
|
label: 'End'
|
|
},
|
|
perpendicularStart: {
|
|
type: CornerstoneHandleSchema,
|
|
label: 'Perpendicular Start'
|
|
},
|
|
perpendicularEnd: {
|
|
type: CornerstoneHandleSchema,
|
|
label: 'Perpendicular End'
|
|
},
|
|
textBox: {
|
|
type: CornerstoneHandleSchema,
|
|
label: 'Text Box'
|
|
},
|
|
});
|
|
|
|
const BidirectionalSchema = new SimpleSchema([MeasurementSchemaTypes.CornerstoneToolMeasurement, {
|
|
handles: {
|
|
type: BidirectionalHandlesSchema,
|
|
label: 'Handles'
|
|
},
|
|
measurementNumber: {
|
|
type: Number,
|
|
label: 'Measurement Number'
|
|
},
|
|
location: {
|
|
type: String,
|
|
label: 'Location',
|
|
optional: true
|
|
},
|
|
description: {
|
|
type: String,
|
|
label: 'Description',
|
|
optional: true
|
|
},
|
|
longestDiameter: {
|
|
type: Number,
|
|
label: 'Longest Diameter',
|
|
decimal: true
|
|
},
|
|
shortestDiameter: {
|
|
type: Number,
|
|
label: 'Shortest Diameter',
|
|
decimal: true
|
|
},
|
|
locationUid: {
|
|
type: String,
|
|
label: 'Location UID',
|
|
optional: true // Optional because it is added after initial drawing, via a callback
|
|
}
|
|
}]);
|
|
|
|
const displayFunction = data => {
|
|
if (data.shortestDiameter) {
|
|
// TODO: Make this check criteria again to see if we should display shortest x longest
|
|
return data.longestDiameter + ' x ' + data.shortestDiameter;
|
|
}
|
|
|
|
return data.longestDiameter;
|
|
};
|
|
|
|
export const bidirectional = {
|
|
id: 'bidirectional',
|
|
name: 'Target',
|
|
toolGroup: 'targets',
|
|
cornerstoneToolType: 'bidirectional',
|
|
schema: BidirectionalSchema,
|
|
options: {
|
|
measurementTable: {
|
|
displayFunction
|
|
},
|
|
caseProgress: {
|
|
include: true
|
|
}
|
|
}
|
|
};
|