LT-117: Add warning icon in study list row and give tip about user when warning icon is hovered if study is in-use by another user

This commit is contained in:
Aysel Afsar committed 2016-04-04 00:00:33 -04:00
1 parent 064743a8f7
commit 2da841bab0
15 files changed
+206 -8

No files matched your search

@@ -30,6 +30,11 @@ Meteor.publish('singlePatientImageMeasurements', function(patientId) {
});
});
Meteor.publish('reviewers', function() {
return Reviewers.find();
});
// Temporary fix to drop all Collections on server restart
// http://stackoverflow.com/questions/23891631/meteor-how-can-i-drop-all-mongo-collections-and-clear-all-data-on-startup
Meteor.startup(function() {
@@ -0,0 +1,66 @@
Meteor.methods({
setReviewer: function (studyInstanceUid) {
var study = Studies.findOne({
studyInstanceUid: studyInstanceUid
});
if (!study) {
return;
}
var timepoint = Timepoints.findOne({
timepointId: study.timepointId
});
if (!timepoint) {
return;
}
var reviewerTimepoint = Reviewers.findOne({timepointId: timepoint.timepointId});
var user = Meteor.users.findOne(Meteor.userId());
if (reviewerTimepoint) {
if (reviewerTimepoint.reviewers) {
// Check whether the user exists
var isReviewerFound = reviewerTimepoint.reviewers.filter(function ( reviewer ) {
return reviewer.userId === user._id;
})[0];
// Return if user eixistes for related timepoint
if (isReviewerFound) {
return;
}
var existedReviewers = reviewerTimepoint.reviewers;
existedReviewers.push({userId: user._id, userName: user.profile.fullName});
// Update reviewers array after pushing the user
Reviewers.update(reviewerTimepoint._id, {$set: {reviewers: existedReviewers}});
} else {
Reviewers.update(reviewerTimepoint._id, {$set: {reviewers: [{userId: user._id, userName: user.profile.fullName}]}});
}
} else {
Reviewers.insert({timepointId: timepoint.timepointId, reviewers: [{userId: user._id, userName: user.profile.fullName}]});
}
},
removeReviewer: function (timepointId) {
var reviewerTimepoint = Reviewers.findOne({timepointId: timepointId});
if (!reviewerTimepoint || !reviewerTimepoint.reviewers) {
return;
}
// Initalize a new array without the current user
var reviewers = reviewerTimepoint.reviewers.filter(function ( reviewer ) {
return reviewer.userId !== Meteor.userId();
});
Reviewers.update(reviewerTimepoint._id, {$set: {reviewers: reviewers}});
},
removeUserFromReviewers: function(userId) {
Reviewers.find().map(function (timepoint) {
Reviewers.update({_id: timepoint._id}, {"$pull": {"reviewers": {"userId": userId}}});
});
}
});