private void OnReceiveMoveStudiesRequest(ClearCanvas.Dicom.Network.DicomServer server, byte presentationID, DicomMessage message, IDicomServiceNode remoteAEInfo)
        {
            IEnumerable <string> studyUids = (string[])message.DataSet[DicomTags.StudyInstanceUid].Values;

            foreach (string studyUid in studyUids)
            {
                lock (_syncLock)
                {
                    int subOperations = 0;
                    using (var context = new DataAccessContext())
                    {
                        var s =
                            context.GetStudyStoreQuery().StudyQuery(new StudyRootStudyIdentifier
                        {
                            StudyInstanceUid = studyUid
                        });
                        var identifier = CollectionUtils.FirstElement(s);
                        if (identifier.NumberOfStudyRelatedInstances.HasValue)
                        {
                            subOperations = identifier.NumberOfStudyRelatedInstances.Value;
                        }

                        var client = new DicomSendBridge();
                        client.SendStudy(remoteAEInfo, identifier, WorkItemPriorityEnum.High);
                        _sendOperations.Add(new SendOperationInfo(client.WorkItem, message.MessageId,
                                                                  presentationID,
                                                                  server)
                        {
                            SubOperations = subOperations
                        });
                    }
                }
            }
        }
Example #2
0
        private void SendStudy(StudyTableItem study, DicomServiceNodeList destinations)
        {
            var client = new DicomSendBridge();

            foreach (var destination in destinations)
            {
                client.SendStudy(destination, study, WorkItemPriorityEnum.High);
            }
        }