ohif-viewer/Packages/lesiontracker/server/reviewers.js
Aysel Afsar 28a904b290 LT-274: Fix blank date in last login dialog on first logon
- Remove redundant lastLoginModal.js file
- Refactor userAccountMenu.js
2016-08-24 11:03:21 -04:00

98 lines
3.1 KiB
JavaScript

Meteor.methods({
setReviewer: function (studyInstanceUid) {
if (!studyInstanceUid) {
return;
}
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}]});
}
// Log
var hipaaEvent = {
eventType: 'modify',
userId: Meteor.userId(),
userName: Meteor.user().profile.fullName,
collectionName: "Measurements",
recordId: study.studyInstanceUid,
patientId: study.patientId,
patientName: study.patientName
};
HipaaLogger.logEvent(hipaaEvent);
},
removeReviewer: function (timepointId) {
if (!timepointId) {
return;
}
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) {
if (!userId) {
return;
}
Reviewers.find().map(function (timepoint) {
Reviewers.update({_id: timepoint._id}, {"$pull": {"reviewers": {"userId": userId}}});
});
},
getPriorLoginDate: function() {
return Meteor.users.findOne({
_id: Meteor.userId()
}, {
fields: {
priorLoginDate: 1
}
}).priorLoginDate;
}
});