Example #1
0
	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;
	},