|
|
|
@ -83,12 +83,19 @@ namespace Shentun.Peis.QueueRegisters |
|
|
|
{ |
|
|
|
queueRegister, |
|
|
|
room, |
|
|
|
patientName = patientRegister.PatientName |
|
|
|
patientName = patientRegister.PatientName, |
|
|
|
isVip = patientRegister.IsVip, |
|
|
|
}).FirstOrDefault(); |
|
|
|
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 |
|
|
|
{ |
|
|
|
@ -372,7 +379,8 @@ namespace Shentun.Peis.QueueRegisters |
|
|
|
patientRegisterNo = patientRegister.PatientRegisterNo, |
|
|
|
roomId = queueRegister.RoomId, |
|
|
|
asbitemId = roomDetail.AsbitemId, |
|
|
|
lastModificationTime = queueRegister.LastModificationTime, |
|
|
|
//lastModificationTime = queueRegister.LastModificationTime,
|
|
|
|
callTime = queueRegister.CallTime |
|
|
|
}; |
|
|
|
|
|
|
|
if (input.ItemTypeIds.Any()) |
|
|
|
@ -407,41 +415,46 @@ namespace Shentun.Peis.QueueRegisters |
|
|
|
isVip = s.FirstOrDefault().isVip, |
|
|
|
queueRegisterId = s.Key, |
|
|
|
queueRegisterNumber = s.FirstOrDefault().queueRegisterNumber, |
|
|
|
lastModificationTime = s.FirstOrDefault().lastModificationTime, |
|
|
|
//lastModificationTime = s.FirstOrDefault().lastModificationTime,
|
|
|
|
patientRegisterId = s.FirstOrDefault().patientRegisterId, |
|
|
|
patientRegisterNo = s.FirstOrDefault().patientRegisterNo, |
|
|
|
callTime = s.FirstOrDefault().callTime |
|
|
|
}).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 |
|
|
|
{ |
|
|
|
IsVip = s.isVip, |
|
|
|
PatientName = s.patientName, |
|
|
|
QueueRegisterId = s.queueRegisterId, |
|
|
|
QueueRegisterNumber = s.queueRegisterNumber, |
|
|
|
QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(), |
|
|
|
PatientRegisterId = s.patientRegisterId, |
|
|
|
PatientRegisterNo = s.patientRegisterNo |
|
|
|
}).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 |
|
|
|
{ |
|
|
|
IsVip = s.isVip, |
|
|
|
PatientName = s.patientName, |
|
|
|
QueueRegisterId = s.queueRegisterId, |
|
|
|
QueueRegisterNumber = s.queueRegisterNumber, |
|
|
|
QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(), |
|
|
|
PatientRegisterId = s.patientRegisterId, |
|
|
|
PatientRegisterNo = s.patientRegisterNo |
|
|
|
}).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 |
|
|
|
{ |
|
|
|
IsVip = s.isVip, |
|
|
|
PatientName = s.patientName, |
|
|
|
QueueRegisterId = s.queueRegisterId, |
|
|
|
QueueRegisterNumber = s.queueRegisterNumber, |
|
|
|
QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(), |
|
|
|
PatientRegisterId = s.patientRegisterId, |
|
|
|
PatientRegisterNo = s.patientRegisterNo |
|
|
|
}).ToList(); |
|
|
|
@ -459,23 +472,26 @@ namespace Shentun.Peis.QueueRegisters |
|
|
|
public async Task<GetScreenQueueRegisterListByRoomIdDto> GetScreenQueueRegisterListByRoomIdAsync(RoomNoInputDto input) |
|
|
|
{ |
|
|
|
var entDto = new GetScreenQueueRegisterListByRoomIdDto(); |
|
|
|
var query = from queueRegister in await _queueRegisterRepository.GetQueryableAsync() |
|
|
|
join patientRegister in await _patientRegisterRepository.GetQueryableAsync() |
|
|
|
on queueRegister.PatientRegisterId equals patientRegister.Id |
|
|
|
join room in await _roomRepository.GetQueryableAsync() on queueRegister.RoomId equals room.Id |
|
|
|
where queueRegister.CreationTime >= DateTime.Now.Date |
|
|
|
&& room.RoomNo == input.RoomNo |
|
|
|
select new |
|
|
|
{ |
|
|
|
completeFlag = queueRegister.CompleteFlag, |
|
|
|
patientName = patientRegister.PatientName, |
|
|
|
isVip = patientRegister.IsVip, |
|
|
|
queueRegisterId = queueRegister.Id, |
|
|
|
queueRegisterNumber = queueRegister.DisplayOrder |
|
|
|
}; |
|
|
|
var query = (from queueRegister in await _queueRegisterRepository.GetQueryableAsync() |
|
|
|
join patientRegister in await _patientRegisterRepository.GetQueryableAsync() |
|
|
|
on queueRegister.PatientRegisterId equals patientRegister.Id |
|
|
|
join room in await _roomRepository.GetQueryableAsync() on queueRegister.RoomId equals room.Id |
|
|
|
where queueRegister.CreationTime >= DateTime.Now.Date |
|
|
|
&& room.RoomNo == input.RoomNo |
|
|
|
select new |
|
|
|
{ |
|
|
|
completeFlag = queueRegister.CompleteFlag, |
|
|
|
patientName = patientRegister.PatientName, |
|
|
|
isVip = patientRegister.IsVip, |
|
|
|
queueRegisterId = queueRegister.Id, |
|
|
|
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) |
|
|
|
{ |
|
|
|
@ -483,18 +499,18 @@ namespace Shentun.Peis.QueueRegisters |
|
|
|
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 |
|
|
|
{ |
|
|
|
PatientName = s.patientName, |
|
|
|
QueueRegisterNumber = s.queueRegisterNumber |
|
|
|
QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString() |
|
|
|
}).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 |
|
|
|
{ |
|
|
|
PatientName = s.patientName, |
|
|
|
QueueRegisterNumber = s.queueRegisterNumber |
|
|
|
QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString() |
|
|
|
}).ToList(); |
|
|
|
|
|
|
|
return entDto; |
|
|
|
|