private List <Study> GetStudies(RetriveEntity RetriveFrom, DicomCFindRequest request) { DicomClient _client = new DicomClient(); _studyList = new List <Study>(); request.OnResponseReceived = (DicomCFindRequest rec_request, DicomCFindResponse response) => { if (response.HasDataset) { _studyList.Add(FillStudy(response.Dataset)); } autoEvent.Set(); }; _client.AddRequest(request); if (RetriveFrom == RetriveEntity.Modality) { _client.Send(_MoverSettings.Host, _MoverSettings.Port, false, _MoverSettings.Store_AE_Name, _MoverSettings.CalledAE); } else { _client.Send(_MoverSettings.StoreHost, _MoverSettings.StorePort, false, _MoverSettings.Store_AE_Name, _MoverSettings.CalledAE); } autoEvent.WaitOne(); return(_studyList); }
public void SendStudies(RetriveEntity RetriveFrom, string StudyInstanceUID, string SeriesInstanceUid, string Modality) { var path = GetStudyFolderPath(StudyInstanceUID); if (!Directory.Exists(GetSeriesFolderPath(StudyInstanceUID, SeriesInstanceUid))) { MoveStudies(RetriveFrom, StudyInstanceUID, SeriesInstanceUid); } SendStudies(Directory.GetFiles(GetSeriesFolderPath(StudyInstanceUID, SeriesInstanceUid), "*.*", SearchOption.AllDirectories)); }
public List <Study> GetStudiesStudyLevel(RetriveEntity RetriveFrom, string PatientId, string PatientName, DateTime?Fromdate, DateTime?Todate, string accession, string studyId, string modalitiesInStudy, string studyInstanceUid) { DicomDateRange dcmdateRange = null; if (Fromdate.HasValue && Todate.HasValue) { dcmdateRange = new DicomDateRange(Fromdate.Value, Todate.Value); } var request = DicomCFindRequest.CreateStudyQuery(PatientId, PatientName, dcmdateRange, accession, studyId, modalitiesInStudy, studyInstanceUid); return(GetStudies(RetriveFrom, request)); }
private void GetEntityInfo(RetriveEntity EntityType, out string HostName, out int Port, out string CalledAE) { if (EntityType == RetriveEntity.Modality) { HostName = _MoverSettings.Host; Port = _MoverSettings.Port; CalledAE = _MoverSettings.CalledAE; } else { HostName = _MoverSettings.StoreHost; Port = _MoverSettings.StorePort; CalledAE = _MoverSettings.StoreCalledAE; } }
private void MoveStudies(RetriveEntity RetriveFrom, DicomCMoveRequest cmoveRequest) { //Try to open Local SCP for CStore Support for comming files if (_scuStore == null) { _scuStore = new DicomServer <CStoreSCU>(_MoverSettings.LocalPort); } DicomClient clt = new DicomClient(); cmoveRequest.OnResponseReceived = (request, response) => { }; // Add request to Dicom Client Object. clt.AddRequest(cmoveRequest); string Host, CalledAE; int Port; GetEntityInfo(RetriveFrom, out Host, out Port, out CalledAE); clt.Send(Host, Port, false, _MoverSettings.Store_AE_Name, CalledAE); autoEvent.WaitOne(); }
public void SendStudies(RetriveEntity RetriveFrom, string StudyInstanceUID, string Modality) { var path = GetStudyFolderPath(StudyInstanceUID); List <Study> StudiesToTransfer = GetStudiesSeriesLevel(RetriveFrom, StudyInstanceUID, Modality); if (!Directory.Exists(path)) { MoveStudies(RetriveFrom, StudyInstanceUID); } else { foreach (var item in StudiesToTransfer) { if (!Directory.Exists(Path.Combine(path, item.SeriesUID))) { MoveStudies(RetriveFrom, StudyInstanceUID, item.SeriesUID); } } } SendStudies(Directory.GetFiles(GetStudyFolderPath(StudyInstanceUID), "*.*", SearchOption.AllDirectories)); }
public void MoveStudies(RetriveEntity RetriveFrom, string StudyInstanceUID, string seriesInstanceUid) { DicomCMoveRequest cmove = new DicomCMoveRequest(_MoverSettings.Store_AE_Name, StudyInstanceUID, seriesInstanceUid); MoveStudies(RetriveFrom, cmove); }
//public List<Study> GetStudies(RetriveEntity RetriveFrom, string PatientId, string PatientName, DicomDateRange DateRange, string accession, // string studyId, string modalitiesInStudy, string studyInstanceUid) //{ // var request = DicomCFindRequest.CreateStudyQuery(PatientId, PatientName, DateRange, accession, studyId, modalitiesInStudy, studyInstanceUid); // return GetStudies(RetriveFrom, request); //} public List <Study> GetStudiesSeriesLevel(RetriveEntity RetriveFrom, string studyInstanceUid, string modality) { var request = DicomCFindRequest.CreateSeriesQuery(studyInstanceUid, modality); return(GetStudies(RetriveFrom, request)); }
public List <Study> GetStudiesPatientLevel(RetriveEntity RetriveFrom, string PatientID = null, string PatientName = null) { var request = DicomCFindRequest.CreatePatientQuery(PatientID, PatientName); return(GetStudies(RetriveFrom, request)); }