eirenerx-sdk
Version:
EireneRx JavaScript SDK
63 lines (53 loc) • 1.57 kB
JavaScript
var request = require('request');
var _ = require('lodash');
module.exports = function(opts) {
var url = opts.api + '/api/vendor/v2/patients/';
var handler = _.curry(function(cb, e, r, b) {
if(e) { return cb(e); }
cb(null, b);
});
var defaults = {
auth: {
user: opts.key,
pass: opts.secret
},
headers: {
'X-Sponsor-Id': opts.sponsor
},
json: true
};
var getPatient = function(criteria, cb) {
var defaultsCopy = _.cloneDeep(defaults);
_.extend(defaultsCopy, { qs: { where: JSON.stringify(criteria) } });
request.get(url, defaultsCopy, handler(cb));
};
var setIdentifier = function(erxId, identifier, cb) {
var defaultsCopy = _.cloneDeep(defaults);
_.extend(defaultsCopy, { json: { identifier: identifier } });
request.put(
url + erxId + '/external_identifiers',
defaultsCopy,
handler(cb)
);
};
var updateAllergies = function(identifier, allergies, cb) {
var defaultsCopy = _.cloneDeep(defaults);
_.extend(defaultsCopy, { json: { allergies: allergies } });
request.put(
url + identifier + '/allergies',
defaultsCopy,
handler(cb)
);
};
var setAvatar = function(identifier, fileReadStream, cb) {
var r = request.post(url + identifier + '/avatar', defaults, handler(cb));
var form = r.form();
form.append('file', fileReadStream);
};
return Object.freeze({
getPatient: getPatient,
setIdentifier: setIdentifier,
updateAllergies: updateAllergies,
setAvatar: setAvatar
});
};