LT-327: Added functionality to disassociate timepoints from studies
This commit is contained in:
1 parent
e957968494
commit
01d22aa3c5
9 files changed
+106
-63
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
import { measurementTools } from './measurementTools';
|
||||
import { retrieveMeasurements, storeMeasurements, retrieveTimepoints, storeTimepoints, removeTimepoint, updateTimepoint } from './dataExchange';
|
||||
import { retrieveMeasurements, storeMeasurements, retrieveTimepoints, storeTimepoints, removeTimepoint, updateTimepoint, disassociateStudy } from './dataExchange';
|
||||
import { validateMeasurements } from './dataValidation';
|
||||
|
||||
console.log('OHIF-LesionTracker: Defining Configuration for Measurements');
|
||||
@@ -28,6 +28,7 @@ OHIF.measurements.TimepointApi.setConfiguration({
|
||||
retrieve: retrieveTimepoints,
|
||||
store: storeTimepoints,
|
||||
remove: removeTimepoint,
|
||||
update: updateTimepoint
|
||||
update: updateTimepoint,
|
||||
disassociate: disassociateStudy
|
||||
}
|
||||
});
|
||||
@@ -95,3 +95,19 @@ export const removeTimepoint = timepointData => {
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
export const disassociateStudy = (timepointIds, studyInstanceUid) => {
|
||||
console.log('disassociateStudy');
|
||||
console.log(timepointIds);
|
||||
console.log(studyInstanceUid);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
Meteor.call('disassociateStudy', timepointIds, studyInstanceUid, (error, response) => {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -37,8 +37,50 @@ Meteor.methods({
|
||||
});
|
||||
},
|
||||
|
||||
disassociateStudy(timepointIds, studyInstanceUid) {
|
||||
OHIF.log.info('Disassociating Study from Timepoints');
|
||||
timepointIds.forEach(timepointId => {
|
||||
const timepoint = Timepoints.findOne({timepointId});
|
||||
if (!timepoint) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the index of the current studyInstanceUid in the array
|
||||
// of reference studyInstanceUids
|
||||
const index = timepoint.studyInstanceUids.indexOf(studyInstanceUid);
|
||||
if (index < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove the specified studyInstanceUid from the array of associated studyInstanceUids
|
||||
timepoint.studyInstanceUids.splice(index, 1);
|
||||
|
||||
let updated = [];
|
||||
let removed = [];
|
||||
if (timepoint.studyInstanceUids.length) {
|
||||
Timepoints.update(timepoint._id, {
|
||||
$set: {
|
||||
studyInstanceUids: timepoint.studyInstanceUids
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Timepoints.remove(timepoint._id);
|
||||
}
|
||||
|
||||
// Remove all Measurement Data for this timepoint and study
|
||||
measurementTools.forEach(tool => {
|
||||
const filter = {
|
||||
studyInstanceUid: studyInstanceUid,
|
||||
timepointId: timepointId
|
||||
};
|
||||
|
||||
MeasurementCollections[tool.id].remove(filter)
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
removeTimepoint(timepointData) {
|
||||
OHIF.log.info('Removing Timepoint off the Server');
|
||||
OHIF.log.info('Removing Timepoint from the Server');
|
||||
OHIF.log.info(JSON.stringify(timepointData, null, 2));
|
||||
Timepoints.remove(timepointData);
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user