|  | @ -40,6 +40,14 @@ class ObjectSearcher extends RedisModel {
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 },
 | 
	
		
			
				|  |  |                 function (sessionIdList, keyword, targetRole, entityType, callback) {
 | 
	
		
			
				|  |  |                     var sessionList=[];
 | 
	
		
			
				|  |  |                     for(var j in sessionIdList){
 | 
	
		
			
				|  |  |                         sessionList.push(sessionIdList[j].id);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if(sessionList.length==0){
 | 
	
		
			
				|  |  |                         callback(null, "");
 | 
	
		
			
				|  |  |                         return;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (targetRole !== 'doctor' && targetRole !== 'patient') {
 | 
	
		
			
				|  |  |                         ModelUtil.emitError(self.eventEmitter, "Unknown target role: " + targetRole);
 | 
	
		
			
				|  |  |                     }
 | 
	
	
		
			
				|  | @ -48,25 +56,25 @@ class ObjectSearcher extends RedisModel {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     // 综合搜索与分类搜索
 | 
	
		
			
				|  |  |                     if (entityType === 'all') {
 | 
	
		
			
				|  |  |                         SearchRepo.searchAll(sessionIdList, keyword, userTable, function (err, res) {
 | 
	
		
			
				|  |  |                         SearchRepo.searchAll(sessionList, keyword, userTable, function (err, res) {
 | 
	
		
			
				|  |  |                             if (err) return callback(err, null);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                             callback(null, res);
 | 
	
		
			
				|  |  |                         });
 | 
	
		
			
				|  |  |                     } else if (entityType === 'user') {
 | 
	
		
			
				|  |  |                         SearchRepo.searchUser(sessionIdList, keyword, userTable, page, size, function (err, res) {
 | 
	
		
			
				|  |  |                         SearchRepo.searchUser(sessionList, keyword, userTable, page, size, function (err, res) {
 | 
	
		
			
				|  |  |                             if (err) return callback(err, null);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                             callback(null, {users: SearchRepo.userForge(res)});
 | 
	
		
			
				|  |  |                         });
 | 
	
		
			
				|  |  |                     } else if (entityType === 'session') {
 | 
	
		
			
				|  |  |                         SearchRepo.searchSessions(sessionIdList, keyword, page, size, function (err, res) {
 | 
	
		
			
				|  |  |                         SearchRepo.searchSessions(sessionList, keyword, page, size, function (err, res) {
 | 
	
		
			
				|  |  |                             if (err) return callback(err, null);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                             callback(null, {sessions: SearchRepo.sessionForge(res, keyword)});
 | 
	
		
			
				|  |  |                         });
 | 
	
		
			
				|  |  |                     } else if (entityType === 'message') {
 | 
	
		
			
				|  |  |                         SearchRepo.searchMessages(sessionIdList, keyword, page, size, function (err, res) {
 | 
	
		
			
				|  |  |                         SearchRepo.searchMessages(sessionList, keyword, page, size, function (err, res) {
 | 
	
		
			
				|  |  |                             if (err) return callback(err, null);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                             callback(null, {messages: SearchRepo.messageForge(res)});
 |