ohif-viewer/Packages/cornerstone/client/measurementManagerExample.js

58 lines
1.6 KiB
JavaScript

// Example usage for something like RECIST
var tumourLengthMeasurementManager = cornerstoneTools.MeasurementManager;
function singleValidator(measurement) {
var result = {
isValid: true
};
if (measurement.distance < 10) {
result.isValid = false;
result.details = 'Measurement distance must be less than 10 mm';
}
return result;
}
function setValidator(measurements) {
var result = {
isValid: true
};
if (measurements.length > 2) {
result.isValid = false;
result.details = 'The number of measurements per image must be less than 2';
}
return result;
}
// Or a remote call
function remoteSetValidator(measurements) {
var deferred = $.Deferred();
var result = {
isValid: true,
promise: deferred.promise()
};
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
var response = JSON.parse(xhr.response);
if (response.isValid) {
deferred.resolve(xhr.responseText);
} else {
deferred.reject(xhr.responseText);
}
} else {
// The request didn't succeed
deferred.reject(xhr.responseText);
}
}
};
xhr.open("POST", "/urlToValidateRECIST", true);
xhr.send(measurements);
return result;
}
tumourLengthMeasurementManager.setSingleMeasurementValidator(singleValidator);
tumourLengthMeasurementManager.setMeasurementSetValidator(setValidator);