private static EMRFileItemDto CreateDCMEMRFileItem(EMRFileItemDto emrFileItemDto, StudyDto studyDto) { EMRFileItemDto newItemDto = new EMRFileItemDto(); newItemDto.UniqueID = Guid.NewGuid().ToString(); newItemDto.ParentID = emrFileItemDto.ParentID; newItemDto.ItemType = 0; newItemDto.FileType = (int)FileType.DICOM; newItemDto.FileSize = 0; newItemDto.DestFilePath = studyDto.UniqueID; newItemDto.DicomPrefix = emrFileItemDto.DicomPrefix; newItemDto.FileStatus = 1; newItemDto.FileName = studyDto.AccessionNo; newItemDto.SrcFilePath = emrFileItemDto.SrcFilePath; newItemDto.SrcInfo = emrFileItemDto.SrcInfo; newItemDto.CreatorID = emrFileItemDto.CreatorID; newItemDto.CreateTime = emrFileItemDto.CreateTime; newItemDto.UploadedTime = emrFileItemDto.UploadedTime; newItemDto.Progress = emrFileItemDto.Progress; newItemDto.Description = emrFileItemDto.Description; newItemDto.ExtraConfigID = emrFileItemDto.ExtraConfigID; newItemDto.Visible = emrFileItemDto.Visible; newItemDto.LastEditUser = emrFileItemDto.LastEditUser; newItemDto.LastEditTime = emrFileItemDto.LastEditTime; return(newItemDto); }
private static bool ProcessEMRItemByType(EMRFileItemDto emrFileItemDto, List <RegEMRFileItemDto> regEMRFileItemList, List <string> files, string file) { int type = GetFileType(file); //non dcm if (type != (int)FileType.Unknown && type != (int)FileType.DICOM) { RegEMRFileItemDto regEMRFileItemDto = new RegEMRFileItemDto(); regEMRFileItemDto.UniqueID = Guid.NewGuid().ToString(); regEMRFileItemDto.ParentID = emrFileItemDto.ParentID; regEMRFileItemDto.DicomPrefix = emrFileItemDto.DicomPrefix; regEMRFileItemDto.CreatorID = emrFileItemDto.CreatorID; regEMRFileItemDto.Description = emrFileItemDto.Description; regEMRFileItemDto.ItemType = 0; regEMRFileItemDto.SrcFilePath = file; regEMRFileItemDto.SrcInfo = emrFileItemDto.SrcInfo; try { FileInfo fileInfo = new FileInfo(file); regEMRFileItemDto.FileSize = fileInfo.Length; } catch { return(false); } regEMRFileItemList.Add(regEMRFileItemDto); } else { files.Add(file); } return(true); }
private static bool RegisterFolder(DamDetail dam, HttpClient client, EMRFileItemDto emrFileItemDto) { string[] filePaths = GetFiles(emrFileItemDto); if (filePaths == null || filePaths.Length == 0) { var parametersFail = String.Format("/api/v1/registration/setstatus?id={0}&status={1}&description={2}", emrFileItemDto.UniqueID, 10, "SendFTPError004"); HttpResponseMessage responseFail = client.GetAsync(dam.WebApiurl + parametersFail).Result; return(false); } List <RegEMRFileItemDto> regEMRFileItemList = new List <RegEMRFileItemDto>(); List <string> files = new List <string>(); foreach (string file in filePaths) { if (!ProcessEMRItemByType(emrFileItemDto, regEMRFileItemList, files, file)) { return(false); } } //Non dcm if (regEMRFileItemList.Count > 0) { HttpResponseMessage response3 = client.PostAsync <List <RegEMRFileItemDto> >(dam.WebApiurl + "/api/v1/registration/newitemlistfolder", regEMRFileItemList, new JsonMediaTypeFormatter()).Result; } //dcm if (files.Count > 0) { RegisterDCMEMRFileItems(emrFileItemDto, files, dam); } return(true); }
private static void RegisterDCMEMRFileItems(EMRFileItemDto emrFileItemDto, List <string> files, DamDetail dam) { List <DCMInfo> dcmInfoList = new List <DCMInfo>(); try { DCMParser.GetDcmInfo(files, out dcmInfoList); } catch (Exception ex) { _logger.Error("DCMParser error:" + ex.ToString()); } if (dcmInfoList.Count > 0) { //dcm list List <DCMDto> dcmList = new List <DCMDto>(); foreach (DCMInfo dcmInfo in dcmInfoList) { DCMDto dcmDto = new DCMDto(); dcmDto.StudyDto = dcmInfo.StudyDto; dcmDto.StudyDto.AccessionNo = emrFileItemDto.DicomPrefix + dcmDto.StudyDto.AccessionNo; dcmDto.StudyDto.PatientID = emrFileItemDto.DicomPrefix + dcmDto.StudyDto.PatientID; dcmDto.SeriesDto = dcmInfo.SeriesDto; dcmDto.ImageDto = dcmInfo.ImageDto; dcmDto.ImageDto.ExtraConfigID = emrFileItemDto.ExtraConfigID; dcmDto.ImageDto.SrcInfo = emrFileItemDto.SrcInfo; dcmDto.ImageDto.CreatorID = emrFileItemDto.CreatorID; dcmDto.ImageDto.CreateTime = emrFileItemDto.CreateTime; dcmDto.ImageDto.ObjectFile = System.DateTime.Now.ToString("yyyy-MM-dd") + "\\" + dcmDto.StudyDto.AccessionNo + "\\" + dcmDto.ImageDto.UniqueID + ".dcm"; dcmDto.EMRFileItemDto = CreateDCMEMRFileItem(emrFileItemDto, dcmInfo.StudyDto); dcmList.Add(dcmDto); } if (dcmList.Count > 0) { try { using (var client = new HttpClient()) { var parameters = "/api/v1/registration/dcmitems"; HttpResponseMessage response = client.PostAsync <List <DCMDto> >(dam.WebApiurl + parameters, dcmList, new JsonMediaTypeFormatter()).Result; } } catch (Exception ex) { _logger.Error("dcmitems error:" + ex.ToString()); } } } }
private static string[] GetFiles(EMRFileItemDto emrFileItemDto) { string[] filePaths = null; try { filePaths = Directory.GetFiles(emrFileItemDto.SrcFilePath, "*.*", SearchOption.AllDirectories); } catch (Exception ex) { _logger.Error("RegisterERMFile error:" + ex.ToString()); } return(filePaths); }