54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import { OHIF } from 'meteor/ohif:core';
|
|
|
|
class MeasurementManager {
|
|
|
|
/**
|
|
* Returns new measurement number given a timepointId
|
|
* @param timepointId
|
|
* @param isTarget
|
|
* @returns {number} - Number of measurements in timepoint
|
|
*/
|
|
static getNewMeasurementNumber(timepointId, Collection, timepointApi) {
|
|
// Get all current lesion measurements
|
|
const numMeasurements = Collection.find().count();
|
|
|
|
// If no measurements exist yet, start at 1
|
|
if (!numMeasurements) {
|
|
return 1;
|
|
}
|
|
|
|
const timepoint = timepointApi.timepoints.findOne({
|
|
timepointId: timepointId
|
|
});
|
|
|
|
const numMeasurementsAtTimepoint = Collection.find({
|
|
studyInstanceUid: {
|
|
$in: timepoint.studyInstanceUids
|
|
}
|
|
}).count();
|
|
|
|
return numMeasurementsAtTimepoint + 1;
|
|
}
|
|
|
|
/**
|
|
* If the current Measurements Number already exists
|
|
* for any other timepoint, returns lesion locationUID
|
|
* @param measurementData
|
|
* @returns {number} - Measurement location ID
|
|
*/
|
|
static getLocationIdIfMeasurementExists(measurementData, Collection) {
|
|
const measurement = Collection.findOne({
|
|
measurementNumber: measurementData.measurementNumber
|
|
});
|
|
|
|
if (!measurement) {
|
|
return;
|
|
}
|
|
|
|
return measurement.locationId;
|
|
}
|
|
|
|
}
|
|
|
|
OHIF.measurements.MeasurementManager = MeasurementManager;
|