ohif-viewer/Packages/ohif-servers/server/lib/control.js

69 lines
1.6 KiB
JavaScript
Raw Normal View History

2016-08-10 15:39:31 +02:00
import { Meteor } from 'meteor/meteor';
2017-06-16 21:36:34 +02:00
import { OHIF } from 'meteor/ohif:core';
import { Servers, CurrentServer } from 'meteor/ohif:servers/both/collections';
2017-06-16 21:36:34 +02:00
OHIF.servers.control = {
writeCallback(error, affected) {
if (error) {
throw new Meteor.Error('data-write', error);
}
2017-06-16 21:36:34 +02:00
},
2017-06-16 21:36:34 +02:00
resetCurrentServer() {
const currentServer = CurrentServer.findOne();
if (currentServer && Servers.find({ _id: currentServer.serverId }).count()) {
return;
}
const newServer = Servers.findOne({
origin: 'json',
type: Meteor.settings.defaultServiceType || 'dicomWeb'
});
if (newServer) {
CurrentServer.remove({});
CurrentServer.insert({
serverId: newServer._id
});
}
2017-06-16 21:36:34 +02:00
},
2017-06-16 21:36:34 +02:00
find(query) {
return Servers.find(query).fetch();
2017-06-16 21:36:34 +02:00
},
2017-06-16 21:36:34 +02:00
save(serverSettings) {
const query = {
_id: serverSettings._id
};
const options = {
upsert: true
};
2016-05-14 17:30:11 +02:00
if (!serverSettings._id) {
delete serverSettings._id;
}
return Servers.update(query, serverSettings, options, this.writeCallback);
2017-06-16 21:36:34 +02:00
},
2017-06-16 21:36:34 +02:00
setActive(serverId) {
CurrentServer.remove({});
CurrentServer.insert({
serverId: serverId
});
2017-06-16 21:36:34 +02:00
},
2017-06-16 21:36:34 +02:00
remove(serverId) {
2016-10-01 18:58:21 +02:00
const query = {
_id: serverId
};
const removeStatus = Servers.remove(query, this.writeCallback);
2017-06-16 21:36:34 +02:00
OHIF.servers.control.resetCurrentServer();
return removeStatus;
}
2017-06-16 21:36:34 +02:00
};