| 
					
					
						
							
						
					
					
				 | 
				@ -83,12 +83,19 @@ namespace Shentun.Peis.QueueRegisters | 
			
		
		
	
		
			
				 | 
				 | 
				                                    { | 
				 | 
				 | 
				                                    { | 
			
		
		
	
		
			
				 | 
				 | 
				                                        queueRegister, | 
				 | 
				 | 
				                                        queueRegister, | 
			
		
		
	
		
			
				 | 
				 | 
				                                        room, | 
				 | 
				 | 
				                                        room, | 
			
		
		
	
		
			
				 | 
				 | 
				                                        patientName = patientRegister.PatientName | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        patientName = patientRegister.PatientName, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        isVip = patientRegister.IsVip, | 
			
		
		
	
		
			
				 | 
				 | 
				                                    }).FirstOrDefault(); | 
				 | 
				 | 
				                                    }).FirstOrDefault(); | 
			
		
		
	
		
			
				 | 
				 | 
				            if (queueRegisterEnt != null) | 
				 | 
				 | 
				            if (queueRegisterEnt != null) | 
			
		
		
	
		
			
				 | 
				 | 
				            { | 
				 | 
				 | 
				            { | 
			
		
		
	
		
			
				 | 
				 | 
				                var queueCount = await _queueRegisterRepository.CountAsync(c => c.RoomId == queueRegisterEnt.queueRegister.RoomId | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                && c.CompleteFlag == QueueRegisterCompleteFlag.Wait && c.CreationTime >= DateTime.Now.Date && c.DisplayOrder < queueRegisterEnt.queueRegister.DisplayOrder); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                var queueCount = await (from queueRegister in await _queueRegisterRepository.GetQueryableAsync() | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on queueRegister.PatientRegisterId equals patientRegister.Id | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        where queueRegister.RoomId == queueRegisterEnt.queueRegister.RoomId | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        && queueRegister.CompleteFlag == QueueRegisterCompleteFlag.Wait | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        && queueRegister.CreationTime >= DateTime.Now.Date | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        && queueRegister.DisplayOrder < queueRegisterEnt.queueRegister.DisplayOrder | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        && patientRegister.IsVip == queueRegisterEnt.isVip | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                                        select queueRegister).CountAsync(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                var entDto = new QueueRegisterByPatientRegisterIdDto | 
				 | 
				 | 
				                var entDto = new QueueRegisterByPatientRegisterIdDto | 
			
		
		
	
		
			
				 | 
				 | 
				                { | 
				 | 
				 | 
				                { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -372,7 +379,8 @@ namespace Shentun.Peis.QueueRegisters | 
			
		
		
	
		
			
				 | 
				 | 
				                            patientRegisterNo = patientRegister.PatientRegisterNo, | 
				 | 
				 | 
				                            patientRegisterNo = patientRegister.PatientRegisterNo, | 
			
		
		
	
		
			
				 | 
				 | 
				                            roomId = queueRegister.RoomId, | 
				 | 
				 | 
				                            roomId = queueRegister.RoomId, | 
			
		
		
	
		
			
				 | 
				 | 
				                            asbitemId = roomDetail.AsbitemId, | 
				 | 
				 | 
				                            asbitemId = roomDetail.AsbitemId, | 
			
		
		
	
		
			
				 | 
				 | 
				                            lastModificationTime = queueRegister.LastModificationTime, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                            //lastModificationTime = queueRegister.LastModificationTime,
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                            callTime = queueRegister.CallTime | 
			
		
		
	
		
			
				 | 
				 | 
				                        }; | 
				 | 
				 | 
				                        }; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            if (input.ItemTypeIds.Any()) | 
				 | 
				 | 
				            if (input.ItemTypeIds.Any()) | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -407,41 +415,46 @@ namespace Shentun.Peis.QueueRegisters | 
			
		
		
	
		
			
				 | 
				 | 
				                isVip = s.FirstOrDefault().isVip, | 
				 | 
				 | 
				                isVip = s.FirstOrDefault().isVip, | 
			
		
		
	
		
			
				 | 
				 | 
				                queueRegisterId = s.Key, | 
				 | 
				 | 
				                queueRegisterId = s.Key, | 
			
		
		
	
		
			
				 | 
				 | 
				                queueRegisterNumber = s.FirstOrDefault().queueRegisterNumber, | 
				 | 
				 | 
				                queueRegisterNumber = s.FirstOrDefault().queueRegisterNumber, | 
			
		
		
	
		
			
				 | 
				 | 
				                lastModificationTime = s.FirstOrDefault().lastModificationTime, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                //lastModificationTime = s.FirstOrDefault().lastModificationTime,
 | 
			
		
		
	
		
			
				 | 
				 | 
				                patientRegisterId = s.FirstOrDefault().patientRegisterId, | 
				 | 
				 | 
				                patientRegisterId = s.FirstOrDefault().patientRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                patientRegisterNo = s.FirstOrDefault().patientRegisterNo, | 
				 | 
				 | 
				                patientRegisterNo = s.FirstOrDefault().patientRegisterNo, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                callTime = s.FirstOrDefault().callTime | 
			
		
		
	
		
			
				 | 
				 | 
				            }).ToList(); | 
				 | 
				 | 
				            }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            entDto.WaitDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait).OrderBy(o => o.queueRegisterNumber) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var queueRegisterList = roomGroup.Where(m => m.isVip == 'Y').OrderBy(o => o.queueRegisterNumber).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            queueRegisterList.AddRange(roomGroup.Where(m => m.isVip == 'N').OrderBy(o => o.queueRegisterNumber).ToList()); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            entDto.WaitDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait) | 
			
		
		
	
		
			
				 | 
				 | 
				                .Select(s => new GetQueueRegisterListByRoomIdDetailDto | 
				 | 
				 | 
				                .Select(s => new GetQueueRegisterListByRoomIdDetailDto | 
			
		
		
	
		
			
				 | 
				 | 
				                { | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				                    IsVip = s.isVip, | 
				 | 
				 | 
				                    IsVip = s.isVip, | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientName = s.patientName, | 
				 | 
				 | 
				                    PatientName = s.patientName, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterId = s.queueRegisterId, | 
				 | 
				 | 
				                    QueueRegisterId = s.queueRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterNumber = s.queueRegisterNumber, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(), | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientRegisterId = s.patientRegisterId, | 
				 | 
				 | 
				                    PatientRegisterId = s.patientRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientRegisterNo = s.patientRegisterNo | 
				 | 
				 | 
				                    PatientRegisterNo = s.patientRegisterNo | 
			
		
		
	
		
			
				 | 
				 | 
				                }).ToList(); | 
				 | 
				 | 
				                }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            entDto.AlreadyCalledDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).OrderByDescending(o => o.lastModificationTime) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            entDto.AlreadyCalledDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).OrderByDescending(o => o.callTime) | 
			
		
		
	
		
			
				 | 
				 | 
				                .Select(s => new GetQueueRegisterListByRoomIdDetailDto | 
				 | 
				 | 
				                .Select(s => new GetQueueRegisterListByRoomIdDetailDto | 
			
		
		
	
		
			
				 | 
				 | 
				                { | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				                    IsVip = s.isVip, | 
				 | 
				 | 
				                    IsVip = s.isVip, | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientName = s.patientName, | 
				 | 
				 | 
				                    PatientName = s.patientName, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterId = s.queueRegisterId, | 
				 | 
				 | 
				                    QueueRegisterId = s.queueRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterNumber = s.queueRegisterNumber, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(), | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientRegisterId = s.patientRegisterId, | 
				 | 
				 | 
				                    PatientRegisterId = s.patientRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientRegisterNo = s.patientRegisterNo | 
				 | 
				 | 
				                    PatientRegisterNo = s.patientRegisterNo | 
			
		
		
	
		
			
				 | 
				 | 
				                }).ToList(); | 
				 | 
				 | 
				                }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            entDto.OverNumberDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber).OrderByDescending(o => o.lastModificationTime) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            entDto.OverNumberDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber).OrderByDescending(o => o.callTime) | 
			
		
		
	
		
			
				 | 
				 | 
				                .Select(s => new GetQueueRegisterListByRoomIdDetailDto | 
				 | 
				 | 
				                .Select(s => new GetQueueRegisterListByRoomIdDetailDto | 
			
		
		
	
		
			
				 | 
				 | 
				                { | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				                    IsVip = s.isVip, | 
				 | 
				 | 
				                    IsVip = s.isVip, | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientName = s.patientName, | 
				 | 
				 | 
				                    PatientName = s.patientName, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterId = s.queueRegisterId, | 
				 | 
				 | 
				                    QueueRegisterId = s.queueRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterNumber = s.queueRegisterNumber, | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(), | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientRegisterId = s.patientRegisterId, | 
				 | 
				 | 
				                    PatientRegisterId = s.patientRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientRegisterNo = s.patientRegisterNo | 
				 | 
				 | 
				                    PatientRegisterNo = s.patientRegisterNo | 
			
		
		
	
		
			
				 | 
				 | 
				                }).ToList(); | 
				 | 
				 | 
				                }).ToList(); | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -459,7 +472,7 @@ namespace Shentun.Peis.QueueRegisters | 
			
		
		
	
		
			
				 | 
				 | 
				        public async Task<GetScreenQueueRegisterListByRoomIdDto> GetScreenQueueRegisterListByRoomIdAsync(RoomNoInputDto input) | 
				 | 
				 | 
				        public async Task<GetScreenQueueRegisterListByRoomIdDto> GetScreenQueueRegisterListByRoomIdAsync(RoomNoInputDto input) | 
			
		
		
	
		
			
				 | 
				 | 
				        { | 
				 | 
				 | 
				        { | 
			
		
		
	
		
			
				 | 
				 | 
				            var entDto = new GetScreenQueueRegisterListByRoomIdDto(); | 
				 | 
				 | 
				            var entDto = new GetScreenQueueRegisterListByRoomIdDto(); | 
			
		
		
	
		
			
				 | 
				 | 
				            var query = from queueRegister in await _queueRegisterRepository.GetQueryableAsync() | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var query = (from queueRegister in await _queueRegisterRepository.GetQueryableAsync() | 
			
		
		
	
		
			
				 | 
				 | 
				                         join patientRegister in await _patientRegisterRepository.GetQueryableAsync() | 
				 | 
				 | 
				                         join patientRegister in await _patientRegisterRepository.GetQueryableAsync() | 
			
		
		
	
		
			
				 | 
				 | 
				                         on queueRegister.PatientRegisterId equals patientRegister.Id | 
				 | 
				 | 
				                         on queueRegister.PatientRegisterId equals patientRegister.Id | 
			
		
		
	
		
			
				 | 
				 | 
				                         join room in await _roomRepository.GetQueryableAsync() on queueRegister.RoomId equals room.Id | 
				 | 
				 | 
				                         join room in await _roomRepository.GetQueryableAsync() on queueRegister.RoomId equals room.Id | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -471,11 +484,14 @@ namespace Shentun.Peis.QueueRegisters | 
			
		
		
	
		
			
				 | 
				 | 
				                             patientName = patientRegister.PatientName, | 
				 | 
				 | 
				                             patientName = patientRegister.PatientName, | 
			
		
		
	
		
			
				 | 
				 | 
				                             isVip = patientRegister.IsVip, | 
				 | 
				 | 
				                             isVip = patientRegister.IsVip, | 
			
		
		
	
		
			
				 | 
				 | 
				                             queueRegisterId = queueRegister.Id, | 
				 | 
				 | 
				                             queueRegisterId = queueRegister.Id, | 
			
		
		
	
		
			
				 | 
				 | 
				                            queueRegisterNumber = queueRegister.DisplayOrder | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                        }; | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                             queueRegisterNumber = queueRegister.DisplayOrder, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                             callTime = queueRegister.CallTime | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                         }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var queueRegisterList = query.Where(m => m.isVip == 'Y').OrderBy(o => o.queueRegisterNumber).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            queueRegisterList.AddRange(query.Where(m => m.isVip == 'N').OrderBy(o => o.queueRegisterNumber).ToList()); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            var visitEnt = query.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).OrderByDescending(o => o.queueRegisterNumber).FirstOrDefault(); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var visitEnt = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).FirstOrDefault(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            if (visitEnt != null) | 
				 | 
				 | 
				            if (visitEnt != null) | 
			
		
		
	
		
			
				 | 
				 | 
				            { | 
				 | 
				 | 
				            { | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -483,18 +499,18 @@ namespace Shentun.Peis.QueueRegisters | 
			
		
		
	
		
			
				 | 
				 | 
				                entDto.VisitName = visitEnt.patientName; | 
				 | 
				 | 
				                entDto.VisitName = visitEnt.patientName; | 
			
		
		
	
		
			
				 | 
				 | 
				            } | 
				 | 
				 | 
				            } | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            entDto.WaitDetail = query.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            entDto.WaitDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait) | 
			
		
		
	
		
			
				 | 
				 | 
				                .Select(s => new GetScreenQueueRegisterListByRoomIdDetailDto | 
				 | 
				 | 
				                .Select(s => new GetScreenQueueRegisterListByRoomIdDetailDto | 
			
		
		
	
		
			
				 | 
				 | 
				                { | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientName = s.patientName, | 
				 | 
				 | 
				                    PatientName = s.patientName, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterNumber = s.queueRegisterNumber | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString() | 
			
		
		
	
		
			
				 | 
				 | 
				                }).ToList(); | 
				 | 
				 | 
				                }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            entDto.OverNumberDetail = query.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber) | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            entDto.OverNumberDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber).OrderByDescending(o => o.callTime) | 
			
		
		
	
		
			
				 | 
				 | 
				                .Select(s => new GetScreenQueueRegisterListByRoomIdDetailDto | 
				 | 
				 | 
				                .Select(s => new GetScreenQueueRegisterListByRoomIdDetailDto | 
			
		
		
	
		
			
				 | 
				 | 
				                { | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				                    PatientName = s.patientName, | 
				 | 
				 | 
				                    PatientName = s.patientName, | 
			
		
		
	
		
			
				 | 
				 | 
				                    QueueRegisterNumber = s.queueRegisterNumber | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString() | 
			
		
		
	
		
			
				 | 
				 | 
				                }).ToList(); | 
				 | 
				 | 
				                }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            return entDto; | 
				 | 
				 | 
				            return entDto; | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |