private static WorkQueueDetails CreateWebMoveStudyWorkQueueItemDetails(Model.WorkQueue item) { var deviceAdaptor = new DeviceDataAdapter(); var studyStorageAdaptor = new StudyStorageAdaptor(); StudyStorage studyStorage = studyStorageAdaptor.Get(item.StudyStorageKey); var wqUidsAdaptor = new WorkQueueUidAdaptor(); var studyAdaptor = new StudyAdaptor(); Device dest = deviceAdaptor.Get(item.DeviceKey); var detail = new WebMoveStudyWorkQueueDetails(); detail.Key = item.GetKey(); detail.DestinationAE = dest == null ? string.Empty : dest.AeTitle; detail.StudyInstanceUid = studyStorage == null ? string.Empty : studyStorage.StudyInstanceUid; detail.ScheduledDateTime = item.ScheduledTime; detail.ExpirationTime = item.ExpirationTime; detail.InsertTime = item.InsertTime; detail.FailureCount = item.FailureCount; detail.Type = item.WorkQueueTypeEnum; detail.Status = item.WorkQueueStatusEnum; detail.Priority = item.WorkQueuePriorityEnum; detail.ServerDescription = item.ProcessorID; detail.FailureDescription = item.FailureDescription; StudyStorageLocation storage = WorkQueueController.GetLoadStorageLocation(item); detail.StorageLocationPath = storage.GetStudyPath(); // Fetch UIDs var uidCriteria = new WorkQueueUidSelectCriteria(); uidCriteria.WorkQueueKey.EqualTo(item.GetKey()); IList <WorkQueueUid> uids = wqUidsAdaptor.Get(uidCriteria); var mapSeries = new Hashtable(); foreach (WorkQueueUid uid in uids) { if (mapSeries.ContainsKey(uid.SeriesInstanceUid) == false) { mapSeries.Add(uid.SeriesInstanceUid, uid.SopInstanceUid); } } detail.NumInstancesPending = uids.Count; detail.NumSeriesPending = mapSeries.Count; // Fetch the study and patient info if (studyStorage != null) { var studycriteria = new StudySelectCriteria(); studycriteria.StudyInstanceUid.EqualTo(studyStorage.StudyInstanceUid); studycriteria.ServerPartitionKey.EqualTo(item.ServerPartitionKey); Study study = studyAdaptor.GetFirst(studycriteria); // Study may not be available until the images are processed. if (study != null) { var studyAssembler = new StudyDetailsAssembler(); detail.Study = studyAssembler.CreateStudyDetail(study); } } return(detail); }
private static WorkQueueDetails CreateWebMoveStudyWorkQueueItemDetails(Model.WorkQueue item) { var deviceAdaptor = new DeviceDataAdapter(); var studyStorageAdaptor = new StudyStorageAdaptor(); StudyStorage studyStorage = studyStorageAdaptor.Get(item.StudyStorageKey); var wqUidsAdaptor = new WorkQueueUidAdaptor(); var studyAdaptor = new StudyAdaptor(); Device dest = deviceAdaptor.Get(item.DeviceKey); var detail = new WebMoveStudyWorkQueueDetails(); detail.Key = item.GetKey(); detail.DestinationAE = dest == null ? string.Empty : dest.AeTitle; detail.StudyInstanceUid = studyStorage == null ? string.Empty : studyStorage.StudyInstanceUid; detail.ScheduledDateTime = item.ScheduledTime; detail.ExpirationTime = item.ExpirationTime; detail.InsertTime = item.InsertTime; detail.FailureCount = item.FailureCount; detail.Type = item.WorkQueueTypeEnum; detail.Status = item.WorkQueueStatusEnum; detail.Priority = item.WorkQueuePriorityEnum; detail.ServerDescription = item.ProcessorID; detail.FailureDescription = item.FailureDescription; StudyStorageLocation storage = WorkQueueController.GetLoadStorageLocation(item); detail.StorageLocationPath = storage.GetStudyPath(); // Fetch UIDs var uidCriteria = new WorkQueueUidSelectCriteria(); uidCriteria.WorkQueueKey.EqualTo(item.GetKey()); IList<WorkQueueUid> uids = wqUidsAdaptor.Get(uidCriteria); var mapSeries = new Hashtable(); foreach (WorkQueueUid uid in uids) { if (mapSeries.ContainsKey(uid.SeriesInstanceUid) == false) mapSeries.Add(uid.SeriesInstanceUid, uid.SopInstanceUid); } detail.NumInstancesPending = uids.Count; detail.NumSeriesPending = mapSeries.Count; // Fetch the study and patient info if (studyStorage != null) { var studycriteria = new StudySelectCriteria(); studycriteria.StudyInstanceUid.EqualTo(studyStorage.StudyInstanceUid); studycriteria.ServerPartitionKey.EqualTo(item.ServerPartitionKey); Study study = studyAdaptor.GetFirst(studycriteria); // Study may not be available until the images are processed. if (study != null) { var studyAssembler = new StudyDetailsAssembler(); detail.Study = studyAssembler.CreateStudyDetail(study); } } return detail; }