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:
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}}});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user