mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
latest bits
This commit is contained in:
@ -1,176 +1,211 @@
|
||||
|
||||
var mongoose = require('mongoose'),
|
||||
Client = mongoose.model('Client'),
|
||||
Workorder = mongoose.model('Workorder'),
|
||||
Tag = mongoose.model('Tag');
|
||||
Client = mongoose.model('Client'),
|
||||
Workorder = mongoose.model('Workorder'),
|
||||
Device = mongoose.model('Device'),
|
||||
Tag = mongoose.model('Tag');
|
||||
|
||||
var log = require('log4node');
|
||||
|
||||
var frequencies = ["Medical Device","Sterilizer - TT","Vaporizer","Ice Maker","Anesthesia","Waste Management System","Imaging","Medical Gas Systems","RAE","ERT","N2O Trace Gas","Sterilizer - F","Quarterly","Semi","Annual","legacy","DLLR", "Isolation Panel", "Battery Backup", "Sterilizer - Cleaning"];
|
||||
var frequencies = [
|
||||
"Medical Device","Sterilizer - TT",
|
||||
"Vaporizer",
|
||||
"Ice Maker",
|
||||
"Anesthesia",
|
||||
"Waste Management System",
|
||||
"Imaging",
|
||||
"Medical Gas Systems",
|
||||
"RAE",
|
||||
"ERT",
|
||||
"N2O Trace Gas",
|
||||
"Sterilizer - F",
|
||||
"Quarterly",
|
||||
"Semi",
|
||||
"Annual",
|
||||
"legacy",
|
||||
"DLLR",
|
||||
"Isolation Panel",
|
||||
"Battery Backup",
|
||||
"Sterilizer - Cleaning"
|
||||
];
|
||||
|
||||
exports.index = function(req, res) {
|
||||
log.info("clients.index");
|
||||
var query = Client.find({ deleted: false })
|
||||
.select('name identifier address')
|
||||
.slice('contacts', 1)
|
||||
.sort('name')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
log.info("clients.index");
|
||||
var query = Client.find({ deleted: false })
|
||||
.select('name identifier address')
|
||||
.slice('contacts', 1)
|
||||
.sort('name')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
exports.get = function(req, res, next) {
|
||||
var id = req.param('client_id');
|
||||
var id = req.param('client_id');
|
||||
|
||||
log.info("clients.get %s", id);
|
||||
Client.findById(id)
|
||||
.exec(function(err, client) {
|
||||
if (err) return next(err);
|
||||
if (!client) return next(new Error('Failed to load client ' + id));
|
||||
log.info("clients.get %s", id);
|
||||
Client.findById(id)
|
||||
.exec(function(err, client) {
|
||||
if (err) return next(err);
|
||||
if (!client) return next(new Error('Failed to load client ' + id));
|
||||
|
||||
res.json(client);
|
||||
});
|
||||
res.json(client);
|
||||
});
|
||||
}
|
||||
|
||||
exports.frequencies = function(req, res, next) {
|
||||
log.info("clients.frequencies");
|
||||
log.info("clients.frequencies");
|
||||
|
||||
var query = Client.find({ deleted: false })
|
||||
.select('name identifier frequencies')
|
||||
.slice('contacts', 1)
|
||||
.sort('name')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
var query = Client.find({ deleted: false })
|
||||
.select('name identifier frequencies')
|
||||
.slice('contacts', 1)
|
||||
.sort('name')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.workorders = function(req, res, next) {
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.workorders %s", id);
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.workorders %s", id);
|
||||
|
||||
Workorder.find({ client: id, deleted: false })
|
||||
.populate({path: 'techs', select: 'name'})
|
||||
.sort('-scheduling.start')
|
||||
.exec(function(err, workorders) {
|
||||
if (err) return next(err);
|
||||
if (!workorders) return next(new Error('Failed to load workorders ' + id));
|
||||
Workorder.find({ client: id, deleted: false })
|
||||
.populate({path: 'techs', select: 'name'})
|
||||
.sort('-scheduling.start')
|
||||
.exec(function(err, workorders) {
|
||||
if (err) return next(err);
|
||||
if (!workorders) return next(new Error('Failed to load workorders ' + id));
|
||||
|
||||
res.json(workorders);
|
||||
});
|
||||
res.json(workorders);
|
||||
});
|
||||
};
|
||||
|
||||
exports.tags = function(req, res, next) {
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.tags %s", id);
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.tags %s", id);
|
||||
|
||||
Tag.find({ client: id })
|
||||
.exec(function(err, tags) {
|
||||
if (err) return next(err);
|
||||
if (!tags) return next(new Error('Failed to load tags ' + id));
|
||||
Tag.find({ client: id })
|
||||
.exec(function(err, tags) {
|
||||
if (err) return next(err);
|
||||
if (!tags) return next(new Error('Failed to load tags ' + id));
|
||||
|
||||
res.json(tags);
|
||||
});
|
||||
res.json(tags);
|
||||
});
|
||||
};
|
||||
|
||||
exports.devices = function(req, res, next) {
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.devices %s", id);
|
||||
|
||||
Device.find({client: id, deleted: false })
|
||||
.populate({path: 'deviceType'})
|
||||
.exec(function(err, devices) {
|
||||
if (err) return next(err);
|
||||
if (!devices) return next(new Error('Failed to load devices ' + id));
|
||||
|
||||
res.json(devices);
|
||||
});
|
||||
}
|
||||
|
||||
exports.create = function(req, res, next) {
|
||||
log.info("clients.create %j", req.body);
|
||||
log.info("clients.create %j", req.body);
|
||||
|
||||
var client = new Client({
|
||||
name: req.body.name,
|
||||
identifier: req.body.identifier.toUpperCase(),
|
||||
contacts: req.body.contacts,
|
||||
address: req.body.address,
|
||||
notes: req.body.notes,
|
||||
frequencies: {}
|
||||
});
|
||||
var client = new Client({
|
||||
name: req.body.name,
|
||||
identifier: req.body.identifier.toUpperCase(),
|
||||
contacts: req.body.contacts,
|
||||
address: req.body.address,
|
||||
notes: req.body.notes,
|
||||
frequencies: {}
|
||||
});
|
||||
|
||||
var freq = {};
|
||||
var freq = {};
|
||||
|
||||
for (key in frequencies) {
|
||||
client.frequencies[frequencies[key]] = [false, false, false, false, false, false, false, false, false, false, false, false];
|
||||
}
|
||||
for (key in frequencies) {
|
||||
client.frequencies[frequencies[key]] = [false, false, false, false, false, false, false, false, false, false, false, false];
|
||||
}
|
||||
|
||||
return client.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
return client.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
|
||||
return res.json(client);
|
||||
})
|
||||
return res.json(client);
|
||||
})
|
||||
};
|
||||
|
||||
exports.isUnique = function(req, res, next) {
|
||||
|
||||
var field = req.param('field');
|
||||
var value = req.param('value');
|
||||
var key = req.param('key');
|
||||
|
||||
var field = req.param('field');
|
||||
var value = req.param('value');
|
||||
var key = req.param('key');
|
||||
|
||||
if (!field || !value) {
|
||||
return res.json(400, 'missing field or value');
|
||||
}
|
||||
if (!field || !value) {
|
||||
return res.json(400, 'missing field or value');
|
||||
}
|
||||
|
||||
var query = {};
|
||||
|
||||
if (field === 'identifier') {
|
||||
query[field] = value.toUpperCase();
|
||||
} else {
|
||||
query[field] = value;
|
||||
}
|
||||
var query = {};
|
||||
|
||||
if (field === 'identifier') {
|
||||
query[field] = value.toUpperCase();
|
||||
} else {
|
||||
query[field] = value;
|
||||
}
|
||||
|
||||
if (key) {
|
||||
query['_id'] = { $ne: key };
|
||||
}
|
||||
if (key) {
|
||||
query['_id'] = { $ne: key };
|
||||
}
|
||||
|
||||
Client.find(query)
|
||||
.exec(function(err, result) {
|
||||
if (err) return next(err);
|
||||
res.json({
|
||||
isUnique: result.length === 0
|
||||
});
|
||||
});
|
||||
Client.find(query)
|
||||
.exec(function(err, result) {
|
||||
if (err) return next(err);
|
||||
res.json({
|
||||
isUnique: result.length === 0
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
exports.update = function(req, res, next) {
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.update %s %j", id, req.body);
|
||||
var id = req.param('client_id');
|
||||
log.info("clients.update %s %j", id, req.body);
|
||||
|
||||
return Client.findById(id, function(err, client) {
|
||||
client.name = req.body.name;
|
||||
client.identifier = req.body.identifier.toUpperCase();
|
||||
client.contacts = req.body.contacts;
|
||||
client.address = req.body.address;
|
||||
client.frequencies = req.body.frequencies;
|
||||
client.notes = req.body.notes;
|
||||
return Client.findById(id, function(err, client) {
|
||||
client.name = req.body.name;
|
||||
client.identifier = req.body.identifier.toUpperCase();
|
||||
client.contacts = req.body.contacts;
|
||||
client.address = req.body.address;
|
||||
client.frequencies = req.body.frequencies;
|
||||
client.notes = req.body.notes;
|
||||
|
||||
return client.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
return client.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
|
||||
return res.json(client);
|
||||
});
|
||||
});
|
||||
return res.json(client);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
exports.destroy = function(req, res, next) {
|
||||
var id = req.param('client_id');
|
||||
var id = req.param('client_id');
|
||||
|
||||
log.info("clients.destroy %s", id);
|
||||
log.info("clients.destroy %s", id);
|
||||
|
||||
return Client.findById(id, function(err, client) {
|
||||
client.deleted = true;
|
||||
return Client.findById(id, function(err, client) {
|
||||
client.deleted = true;
|
||||
|
||||
return client.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
return client.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
|
||||
return res.json(client);
|
||||
})
|
||||
});
|
||||
return res.json(client);
|
||||
})
|
||||
});
|
||||
};
|
||||
|
120
app/controllers/deviceTypes.js
Normal file
120
app/controllers/deviceTypes.js
Normal file
@ -0,0 +1,120 @@
|
||||
var mongoose = require('mongoose'),
|
||||
DeviceType = mongoose.model('DeviceType');
|
||||
|
||||
var _ = require('lodash');
|
||||
var md5 = require('MD5');
|
||||
|
||||
var log = require('log4node');
|
||||
|
||||
exports.index = function(req, res, next) {
|
||||
log.info('device_types.index');
|
||||
|
||||
DeviceType.find({ deleted: false })
|
||||
.exec(returnResult(res));
|
||||
};
|
||||
|
||||
exports.get = function(req, res, next) {
|
||||
var id = req.param('device_type_id');
|
||||
|
||||
log.info("device_types.get %s", id);
|
||||
|
||||
DeviceType.findById(id)
|
||||
.exec(returnResult(res));
|
||||
};
|
||||
|
||||
exports.categories = function(req, res, next) {
|
||||
log.info("device_types.categories");
|
||||
|
||||
DeviceType.find({ deleted: false })
|
||||
.select('category')
|
||||
.exec(mutateResult(res, function(data) {
|
||||
return _.uniq(_.pluck(data, 'category'));
|
||||
}));
|
||||
};
|
||||
|
||||
exports.makes = function(req, res, next) {
|
||||
log.info("device_types.makes");
|
||||
|
||||
DeviceType.find({ deleted: false })
|
||||
.select('make')
|
||||
.exec(mutateResult(res, function(data) {
|
||||
return _.uniq(_.pluck(data, 'make'));
|
||||
}));
|
||||
};
|
||||
|
||||
exports.models = function(req, res, next) {
|
||||
log.info("device_types.models");
|
||||
|
||||
DeviceType.find({ deleted: false })
|
||||
.select('model')
|
||||
.exec(mutateResult(res, function(data) {
|
||||
return _.uniq(_.pluck(data, 'model'));
|
||||
}));
|
||||
};
|
||||
|
||||
exports.create = function(req, res, next) {
|
||||
log.info("device_types.create %j", res.body);
|
||||
|
||||
var deviceType = new DeviceType(req.body);
|
||||
deviceType.save(returnResult(res));
|
||||
};
|
||||
|
||||
exports.update = function(req, res, next) {
|
||||
var id = req.param('device_type_id');
|
||||
log.info('device_types.update %s %j', id, req.body);
|
||||
|
||||
DeviceType.findById(id, function(err, deviceType) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else if (!deviceType) {
|
||||
res.json(404, 'Unknown DeviceType: %s', id);
|
||||
} else {
|
||||
_.assign(deviceType, req.body);
|
||||
deviceType.save(returnResult(res, deviceType));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.upload = function(req, res, next) {
|
||||
var path = req.files.file.path;
|
||||
|
||||
fs.readFile(path, function(err, data) {
|
||||
var hash = md5(data);
|
||||
|
||||
fs.writeFile('/srv/biomed-site/images/devices/' + hash, data, function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
|
||||
return res.json({
|
||||
filename: hash
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function returnResult(res, result) {
|
||||
return function(err, data) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
if (result) {
|
||||
res.json(result);
|
||||
} else {
|
||||
res.json(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function mutateResult(res, mutator) {
|
||||
return function(err, results) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(mutator(results));
|
||||
}
|
||||
}
|
||||
}
|
@ -6,127 +6,93 @@ var md5 = require('MD5');
|
||||
|
||||
var log = require('log4node');
|
||||
|
||||
exports.index = function(req, res) {
|
||||
log.info('devices.index');
|
||||
var query = Device.find({ deleted: false })
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
exports.index = function(req, res, next) {
|
||||
log.info('devices.index');
|
||||
|
||||
Device.find({ deleted: false })
|
||||
.exec(returnResult(res));
|
||||
};
|
||||
|
||||
exports.get = function(req, res, next) {
|
||||
var id = req.param('device_id');
|
||||
var id = req.param('device_id');
|
||||
|
||||
log.info("devices.get %s", id);
|
||||
Device.findById(id)
|
||||
.exec(function(err, device) {
|
||||
if (err) return next(err);
|
||||
if (!device) return next(new Error('failed to load device ' + id));
|
||||
log.info("devices.get %s", id);
|
||||
|
||||
res.json(device);
|
||||
});
|
||||
};
|
||||
|
||||
exports.deviceTypes = function(req, res, next) {
|
||||
log.info("devices.deviceTypes");
|
||||
|
||||
var query = Device.find({ deleted: false })
|
||||
.select('deviceType')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(_.uniq(_.pluck(results, 'deviceType')));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.makes = function(req, res, next) {
|
||||
log.info("devices.makes");
|
||||
|
||||
var query = Device.find({ deleted: false })
|
||||
.select('make')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(_.uniq(_.pluck(results, 'make')));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.models = function(req, res, next) {
|
||||
log.info("devices.models");
|
||||
|
||||
var query = Device.find({ deleted: false })
|
||||
.select('model')
|
||||
.exec(function(err, results) {
|
||||
if (err) {
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(_.uniq(_.pluck(results, 'model')));
|
||||
}
|
||||
});
|
||||
Device.findById(id)
|
||||
.exec(returnResult(res));
|
||||
};
|
||||
|
||||
exports.create = function(req, res, next) {
|
||||
log.info("devices.create %j", res.body);
|
||||
log.info("devices.create %j", res.body);
|
||||
|
||||
var device = new Device({
|
||||
deviceType: req.body.deviceType,
|
||||
make: req.body.make,
|
||||
model: req.body.model,
|
||||
technicalData: req.body.technicalData,
|
||||
links: req.body.links,
|
||||
partsRecommended: req.body.partsRecommended,
|
||||
images: req.body.images
|
||||
});
|
||||
|
||||
return device.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
return res.json(device);
|
||||
});
|
||||
var device = new Device(req.body);
|
||||
device.save(returnResult(res));
|
||||
};
|
||||
|
||||
exports.update = function(req, res, next) {
|
||||
var id = req.param('device_id');
|
||||
log.info('devices.update %s %j', id, req.body);
|
||||
var id = req.param('device_id');
|
||||
log.info('devices.update %s %j', id, req.body);
|
||||
|
||||
return Device.findById(id, function(err, device) {
|
||||
device.deviceType = req.body.deviceType;
|
||||
device.make = req.body.make;
|
||||
device.model = req.body.model;
|
||||
device.technicalData = req.body.technicalData;
|
||||
device.links = req.body.links;
|
||||
device.partsRecommended = req.body.partsRecommended;
|
||||
device.images = req.body.images;
|
||||
|
||||
return device.save(function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
return res.json(device);
|
||||
});
|
||||
});
|
||||
Device.findById(id, function(err, device) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else if (!device) {
|
||||
res.json(404, 'Unknown Device: %s', id);
|
||||
} else {
|
||||
_.assign(device, req.body);
|
||||
device.save(returnResult(res, device));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.upload = function(req, res, next) {
|
||||
var path = req.files.file.path;
|
||||
exports.isUnique = function(req, res, next) {
|
||||
var field = req.param('field');
|
||||
var value = req.param('value');
|
||||
var key = req.param('key');
|
||||
|
||||
fs.readFile(path, function(err, data) {
|
||||
var hash = md5(data);
|
||||
if (!field || !value) {
|
||||
return res.json(400, 'missing field or value');
|
||||
}
|
||||
|
||||
fs.writeFile('/srv/biomed-site/images/devices/' + hash, data, function(err) {
|
||||
if (err)
|
||||
log.error("Error: %s", err);
|
||||
var query = {};
|
||||
query[field] = value;
|
||||
|
||||
return res.json({
|
||||
filename: hash
|
||||
});
|
||||
});
|
||||
});
|
||||
if (key) {
|
||||
query['_id'] = { $ne: key };
|
||||
}
|
||||
|
||||
Device.find(query)
|
||||
.exec(function(err, result) {
|
||||
if (err) return next(err);
|
||||
res.json({
|
||||
isUnique: result.length === 0
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function returnResult(res, result) {
|
||||
return function(err, data) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
if (result) {
|
||||
res.json(result);
|
||||
} else {
|
||||
res.json(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function mutateResult(res, mutator) {
|
||||
return function(err, results) {
|
||||
if (err) {
|
||||
log.error("Error: %s", err);
|
||||
res.json(500, err);
|
||||
} else {
|
||||
res.json(mutator(results));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user