public CMoveClient() : base() { LogID = "C-Move SCU"; CallingAE = "MOVE_SCU"; CalledAE = "MOVE_SCP"; _moveSopClass = DicomUID.StudyRootQueryRetrieveInformationModelMOVE; _moveQueries = new Queue <CMoveQuery>(); _current = null; }
public CMoveClient() : base() { LogID = "C-Move SCU"; CallingAE = "MOVE_SCU"; CalledAE = "MOVE_SCP"; _moveSopClass = DicomUID.StudyRootQueryRetrieveInformationModelMOVE; _moveQueries = new Queue<CMoveQuery>(); _current = null; }
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(); } }
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(); } }
public void AddQuery(CMoveQuery query) { _moveQueries.Enqueue(query); }