コード例 #1
0
ファイル: CMoveClient.cs プロジェクト: scottshea/monodicom
 public CMoveClient() : base()
 {
     LogID         = "C-Move SCU";
     CallingAE     = "MOVE_SCU";
     CalledAE      = "MOVE_SCP";
     _moveSopClass = DicomUID.StudyRootQueryRetrieveInformationModelMOVE;
     _moveQueries  = new Queue <CMoveQuery>();
     _current      = null;
 }
コード例 #2
0
ファイル: CMoveClient.cs プロジェクト: fo-dicom/mdcm
 public CMoveClient()
     : base()
 {
     LogID = "C-Move SCU";
     CallingAE = "MOVE_SCU";
     CalledAE = "MOVE_SCP";
     _moveSopClass = DicomUID.StudyRootQueryRetrieveInformationModelMOVE;
     _moveQueries = new Queue<CMoveQuery>();
     _current = null;
 }
コード例 #3
0
        private void PerformQueryOrRelease()
        {
            if (_moveQueries.Count > 0)
            {
                byte pcid = Associate.FindAbstractSyntax(MoveSopClassUID);
                if (Associate.GetPresentationContextResult(pcid) == DcmPresContextResult.Accept)
                {
                    CMoveQuery query   = _moveQueries.Dequeue();
                    DcmDataset dataset = new DcmDataset(Associate.GetAcceptedTransferSyntax(pcid));
                    switch (query.QueryRetrieveLevel)
                    {
                    case DcmQueryRetrieveLevel.Patient:
                        dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "PATIENT");
                        dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
                        break;

                    case DcmQueryRetrieveLevel.Study:
                        dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "STUDY");
                        dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
                        dataset.AddElementWithValue(DicomTags.StudyInstanceUID, query.StudyInstanceUID);
                        break;

                    case DcmQueryRetrieveLevel.Series:
                        dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "SERIES");
                        dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
                        dataset.AddElementWithValue(DicomTags.StudyInstanceUID, query.StudyInstanceUID);
                        dataset.AddElementWithValue(DicomTags.SeriesInstanceUID, query.SeriesInstanceUID);
                        break;

                    case DcmQueryRetrieveLevel.Image:
                        dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "IMAGE");
                        dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
                        dataset.AddElementWithValue(DicomTags.StudyInstanceUID, query.StudyInstanceUID);
                        dataset.AddElementWithValue(DicomTags.SeriesInstanceUID, query.SeriesInstanceUID);
                        dataset.AddElementWithValue(DicomTags.SOPInstanceUID, query.SOPInstanceUID);
                        break;

                    default:
                        break;
                    }
                    _current = query;
                    SendCMoveRequest(pcid, 1, DestinationAE, Priority, dataset);
                }
                else
                {
                    Log.Info("{0} -> Presentation context rejected: {1}", LogID, Associate.GetPresentationContextResult(pcid));
                    SendReleaseRequest();
                }
            }
            else
            {
                SendReleaseRequest();
            }
        }
コード例 #4
0
ファイル: CMoveClient.cs プロジェクト: scottshea/monodicom
 private void PerformQueryOrRelease()
 {
     if (_moveQueries.Count > 0)
     {
         byte pcid = Associate.FindAbstractSyntax(MoveSopClassUID);
         if (Associate.GetPresentationContextResult(pcid) == DcmPresContextResult.Accept)
         {
             _current = _moveQueries.Dequeue();
             SendCMoveRequest(pcid, 1, DestinationAE, Priority, _current.ToDataset());
         }
         else
         {
             Log.Info("{0} -> Presentation context rejected: {1}", LogID, Associate.GetPresentationContextResult(pcid));
             SendReleaseRequest();
         }
     }
     else
     {
         SendReleaseRequest();
     }
 }
コード例 #5
0
ファイル: CMoveClient.cs プロジェクト: fo-dicom/mdcm
 public void AddQuery(CMoveQuery query)
 {
     _moveQueries.Enqueue(query);
 }
コード例 #6
0
ファイル: CMoveClient.cs プロジェクト: fo-dicom/mdcm
 private void PerformQueryOrRelease()
 {
     if (_moveQueries.Count > 0) {
         byte pcid = Associate.FindAbstractSyntax(MoveSopClassUID);
         if (Associate.GetPresentationContextResult(pcid) == DcmPresContextResult.Accept) {
             _current = _moveQueries.Dequeue();
             SendCMoveRequest(pcid, 1, DestinationAE, Priority, _current.ToDataset());
         }
         else {
             Log.Info("{0} -> Presentation context rejected: {1}", LogID, Associate.GetPresentationContextResult(pcid));
             SendReleaseRequest();
         }
     }
     else {
         SendReleaseRequest();
     }
 }
コード例 #7
0
ファイル: CMoveClient.cs プロジェクト: scottshea/monodicom
 public void AddQuery(CMoveQuery query)
 {
     _moveQueries.Enqueue(query);
 }
コード例 #8
0
ファイル: CMoveClient.cs プロジェクト: mcmssupereditor/mdcm
		private void PerformQueryOrRelease() {
			if (_moveQueries.Count > 0) {
				byte pcid = Associate.FindAbstractSyntax(MoveSopClassUID);
				if (Associate.GetPresentationContextResult(pcid) == DcmPresContextResult.Accept) {
					CMoveQuery query = _moveQueries.Dequeue();
					DcmDataset dataset = new DcmDataset(Associate.GetAcceptedTransferSyntax(pcid));
					switch (query.QueryRetrieveLevel) {
					case DcmQueryRetrieveLevel.Patient:
						dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "PATIENT");
						dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
						break;
					case DcmQueryRetrieveLevel.Study:
						dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "STUDY");
						dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
						dataset.AddElementWithValue(DicomTags.StudyInstanceUID, query.StudyInstanceUID);
						break;
					case DcmQueryRetrieveLevel.Series:
						dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "SERIES");
						dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
						dataset.AddElementWithValue(DicomTags.StudyInstanceUID, query.StudyInstanceUID);
						dataset.AddElementWithValue(DicomTags.SeriesInstanceUID, query.SeriesInstanceUID);
						break;
					case DcmQueryRetrieveLevel.Image:
						dataset.AddElementWithValue(DicomTags.QueryRetrieveLevel, "IMAGE");
						dataset.AddElementWithValue(DicomTags.PatientID, query.PatientID);
						dataset.AddElementWithValue(DicomTags.StudyInstanceUID, query.StudyInstanceUID);
						dataset.AddElementWithValue(DicomTags.SeriesInstanceUID, query.SeriesInstanceUID);
						dataset.AddElementWithValue(DicomTags.SOPInstanceUID, query.SOPInstanceUID);
						break;
					default:
						break;
					}
					_current = query;
					SendCMoveRequest(pcid, 1, DestinationAE, Priority, dataset);
				}
				else {
					Log.Info("{0} -> Presentation context rejected: {1}", LogID, Associate.GetPresentationContextResult(pcid));
					SendReleaseRequest();
				}
			}
			else {
				SendReleaseRequest();
			}
		}