diff --git a/Packages/dimseservice/server/DIMSE.js b/Packages/dimseservice/server/DIMSE.js
index bbeeecbaa..092f0acc4 100755
--- a/Packages/dimseservice/server/DIMSE.js
+++ b/Packages/dimseservice/server/DIMSE.js
@@ -54,7 +54,8 @@ var getInstanceRetrievalParams = function(studyInstanceUID, seriesInstanceUID) {
};
Meteor.startup(function() {
- if (!Meteor.settings.servers.dimse) return;
+ if (!Meteor.settings.servers.dimse || !Meteor.settings.servers.dimse.length) return;
+ // TODO: [custom-servers] use active server and check if type is DIMSE
var peers = Meteor.settings.servers.dimse[0].peers;
console.log('Adding DIMSE peers');
if (peers && peers.length) {
diff --git a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js
index c2f8a9ab2..69a8c1465 100644
--- a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js
+++ b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationForm.js
@@ -19,7 +19,7 @@ Template.serverInformationForm.events({
submit: function(event, instance) {
event.preventDefault();
var formData = FormUtils.getFormData(instance.data.$form);
- Meteor.call('saveServer', formData, function(error) {
+ Meteor.call('serverSave', formData, function(error) {
if (error) {
// TODO: check for errors: not-authorized, data-write
console.log('>>>>ERROR', error);
diff --git a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html
index d91421378..87bc2c65d 100644
--- a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html
+++ b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.html
@@ -14,6 +14,13 @@
{{this.type}} |
+
diff --git a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js
index d3081675e..b00097dd3 100644
--- a/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js
+++ b/Packages/lesiontracker/client/components/serverInformationModal/serverInformationList.js
@@ -1,4 +1,7 @@
Template.serverInformationList.helpers({
+ isActive: function(server) {
+ return server._id === Meteor.user().profile.activeServer;
+ },
servers: function() {
return Servers.find().fetch();
}
@@ -14,11 +17,15 @@ Template.serverInformationList.events({
},
'click .js-remove-server': function(event, instance) {
var id = this._id;
- Meteor.call('removeServer', this._id, function(error) {
- if (error) {
- // TODO: check for errors: not-authorized, data-write
- console.log('>>>>ERROR', error);
- }
+ Meteor.call('serverRemove', this._id, function(error) {
+ // TODO: [custom-servers] check for errors: not-authorized, data-write
+ });
+ },
+ 'click .js-use-server': function(event, instance) {
+ console.debug('>>>>clicked');
+ var id = this._id;
+ Meteor.call('serverSetActive', this._id, function(error) {
+ // TODO: [custom-servers] check for errors: not-authorized, data-write
});
}
});
diff --git a/Packages/lesiontracker/server/servers.js b/Packages/lesiontracker/server/servers.js
index b588e15cd..e562bcd3f 100644
--- a/Packages/lesiontracker/server/servers.js
+++ b/Packages/lesiontracker/server/servers.js
@@ -11,13 +11,22 @@ Meteor.startup(function() {
});
-Meteor.methods({
+class ServersControl {
- saveServer: function(serverSettings) {
+ static validateUser() {
if (!Meteor.userId()) {
throw new Meteor.Error('not-authorized');
}
+ }
+ static writeCallback(error, affected) {
+ if (error) {
+ throw new Meteor.Error('data-write', error);
+ }
+ }
+
+ static save(serverSettings) {
+ this.validateUser();
var query = {
_id: serverSettings._id
};
@@ -29,21 +38,34 @@ Meteor.methods({
delete serverSettings._id;
}
- var callback = function(error, affected) {
- if (error) {
- throw new Meteor.Error('data-write', error);
- }
+ return Servers.update(query, serverSettings, options, this.writeCallback);
+ }
+ static setActive(serverId) {
+ this.validateUser();
+ var query = {
+ _id: Meteor.userId()
};
+ var data = {
+ $set: {
+ 'profile.activeServer': serverId
+ }
+ };
+ Accounts.users.update(query, data, this.writeCallback);
+ }
- Servers.update(query, serverSettings, options, callback);
- },
-
- removeServer: function(serverId) {
+ static remove(serverId) {
+ this.validateUser();
var query = {
_id: serverId
};
- Servers.remove(query, true);
+ return Servers.remove(query, this.writeCallback);
}
+}
+
+Meteor.methods({
+ serverSave: serverSettings => ServersControl.save(serverSettings),
+ serverSetActive: serverId => ServersControl.setActive(serverId),
+ serverRemove: serverId => ServersControl.remove(serverId)
});
diff --git a/Packages/worklist/server/services/dimse/instances.js b/Packages/worklist/server/services/dimse/instances.js
index 6a3080e2d..6e222452f 100755
--- a/Packages/worklist/server/services/dimse/instances.js
+++ b/Packages/worklist/server/services/dimse/instances.js
@@ -31,7 +31,7 @@ function resultDataToStudyMetadata(resultData) {
seriesList.push(series);
}
- // TODO: Check which peer it should point to | brunoalvesdefaria
+ // TODO: [custom-servers] Check which peer it should point to
var server = Meteor.settings.servers.dimse[0].peers[0];
var host = Meteor.settings.servers.dimse.host,
port = Meteor.settings.servers.dimse.port;
|