50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
import { OHIF } from 'meteor/ohif:core';
|
|
|
|
class MeasurementManager {
|
|
|
|
/**
|
|
* Returns new measurement number given a timepointId
|
|
*/
|
|
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; |