public void FindProcess( ) { using (DicomDataSet ds = GetDS()) { byte pid = GetPresentationID(type); if (pid == 0 || (Association.GetResult(pid) != DicomAssociateAcceptResultType.Success)) { InvokeStatusEvent(StatusType.Error, DicomExceptionCode.Success); return; } if (ds == null) { return; } string uid = ""; if (type == FindType.Patient || type == FindType.PatientSeries) { uid = DicomUidType.PatientRootQueryFind; } else if (type == FindType.Study || type == FindType.StudySeries) { uid = DicomUidType.StudyRootQueryFind; } else if (type == FindType.MWLBroad || type == FindType.MWLPatient) { uid = DicomUidType.ModalityWorklistFind; } InvokeStatusEvent(StatusType.SendCFindRequest, DicomExceptionCode.Success); SendCFindRequest(pid, MessageId++, uid, DicomCommandPriorityType.Medium, ds); if (!Wait()) { // // Connection timed out // InvokeStatusEvent(StatusType.Timeout, DicomExceptionCode.Success); Terminate(); } InvokeStatusEvent(StatusType.SendReleaseRequest, DicomExceptionCode.Success); SendReleaseRequest(); if (!Wait()) { InvokeStatusEvent(StatusType.Timeout, DicomExceptionCode.Success); Terminate(); } FindCompleteEventArgs e = new FindCompleteEventArgs(); e._Datasets = dsCollection; e._Type = type; OnFindComplete(e); } }
protected virtual void OnFindComplete(FindCompleteEventArgs e) { //LastError = e.Error; if (FindComplete != null) { // Invokes the delegates. FindComplete(this, e); } }