getUserSecurityKeys: function(userId, session, ewd) { var params = { FILE: "19.1", MAX: "5000" }; var lookupTable = vistaLib.ddrLister3(params, session, ewd); params.FILE = "200.051"; params.IENS = "," + userId + ","; params.FIELDS = ".01"; // different from MDWS - was fetching fields 1,2,3 also but not using them! var userKeys = vistaLib.ddrLister3(params, session, ewd); return this.toUserSecurityKeys(userKeys, lookupTable); },
getRadiologyOrderIenFromOrderId: function(orderId, session, ewd) { if (!orderId || orderId == '') { throw new Error('Missing orderId'); } // if orderId has semicolon (e.g. 34120;2) then use just IEN piece if (orderId.indexOf(';') > 0) { orderId = orderId.split(';')[0]; } var params = { FILE: '75.1', FIELDS: '.01;7', MAX: '500', SCREEN: 'I ($P(^(0),U,7)=' + orderId + ')' }; var ddr = vistaLib.ddrLister3(params, session, ewd); if (!ddr || !ddr.data || ddr.data.length < 1) { throw new Error('Unable to determine radiology order IEN from order ID'); } for (var i = 0; i < ddr.data.length; i++) { var pieces = ddr.data[i].split('^'); if (pieces[2] == orderId) { return pieces[0]; } } // if we reached this point, didn't find match throw new Error('Unable to determine radiology order IEN from order ID'); },
getContractAndSharingAgreements: function(session, ewd) { var ddrParams = { FILE: "34", FIELDS: ".01;2;3" }; var ddrResult = vistaLib.ddrLister3(ddrParams, session, ewd); return this.toContractAndSharingAgreements(ddrResult); },
getOrderStatuses: function(session, ewd) { var ddrResponse = vistaLib.ddrLister3({ FILE: "100.01" }, session, ewd); var result = {}; for (var i = 0; i < ddrResponse.data.length; i++) { var pieces = ddrResponse.data[i].split("^"); result[pieces[0]] = { ien: pieces[0], name: pieces[1] }; } return result; },