1052 lines
46 KiB
C#
1052 lines
46 KiB
C#
//using AutoMapper;
|
||
//using IRaCIS.Application.Interfaces;
|
||
//using IRaCIS.Core.Application.Contracts.Dicom.DTO;
|
||
//using IRaCIS.Core.Domain.Share;
|
||
|
||
//using IRaCIS.Core.Application.Contracts;
|
||
//using IRaCIS.Core.Application.Service.Inspection.Interface;
|
||
|
||
|
||
//namespace IRaCIS.Application.Services
|
||
//{
|
||
// //[Intercept(typeof(QANoticeAOP))]
|
||
// public class StudyService : IStudyService
|
||
// {
|
||
// private readonly IRepository<DicomStudy> _studyRepository;
|
||
|
||
// private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||
// private readonly IRepository<DicomInstance> _dicomInstanceRepository;
|
||
// private readonly IRepository<DicomSeries> _dicomSeriesRepository;
|
||
|
||
// private readonly IMapper _mapper;
|
||
|
||
|
||
// private static string _fileStorePath = string.Empty;
|
||
|
||
// private readonly IRepository<StudyMonitor> _dicomStudyMonitorRepository;
|
||
|
||
|
||
|
||
|
||
|
||
// public StudyService(IRepository<DicomStudy> studyRepository,
|
||
// IRepository<SubjectVisit> subjectVisitRepository,
|
||
// IRepository<DicomInstance> dicomInstanceRepository,
|
||
// IRepository<DicomSeries> dicomSeriesRepository,
|
||
// IInspectionService inspectionService,
|
||
// IUserInfo userInfo,
|
||
|
||
// IRepository<StudyMonitor> dicomStudyMonitorRepository,
|
||
|
||
// IMapper mapper)
|
||
// {
|
||
// _dicomStudyMonitorRepository = dicomStudyMonitorRepository;
|
||
|
||
|
||
// _userInfo = userInfo;
|
||
// _studyRepository = studyRepository;
|
||
|
||
// _subjectVisitRepository = subjectVisitRepository;
|
||
// _dicomInstanceRepository = dicomInstanceRepository;
|
||
// _dicomSeriesRepository = dicomSeriesRepository;
|
||
// this._inspectionService = inspectionService;
|
||
// _mapper = mapper;
|
||
// }
|
||
|
||
|
||
|
||
|
||
|
||
// /// <summary>
|
||
// /// 获取保存到Dicom文件中的信息
|
||
// /// </summary>
|
||
// /// <param name="subjectVisitId"></param>
|
||
// /// <returns></returns>
|
||
// public DicomTrialSiteSubjectInfo GetSaveToDicomInfo(Guid subjectVisitId)
|
||
// {
|
||
// //6表连接 subject trial trialSite sponsor subjectVisit site
|
||
// var info = _subjectVisitRepository.Where(t => t.Id == subjectVisitId).ProjectTo<DicomTrialSiteSubjectInfo>(_mapper.ConfigurationProvider).FirstOrDefault().IfNullThrowException();
|
||
|
||
// return info;
|
||
// }
|
||
|
||
// public (List<string> SeriesInstanceUid, List<string> SopInstanceUid) GetHasUploadSeriesAndInstance(Guid studyId)
|
||
// {
|
||
// var seriesInstanceUidList = _dicomSeriesRepository.Where(t => t.StudyId == studyId).Select(t => t.SeriesInstanceUid).ToList();
|
||
|
||
// var sopInstanceUidList = _dicomInstanceRepository.Where(t => t.StudyId == studyId).Select(t => t.SopInstanceUid).ToList();
|
||
|
||
// return (seriesInstanceUidList, sopInstanceUidList);
|
||
// }
|
||
|
||
|
||
|
||
|
||
// public void UploadOrReUploadNeedTodo(ArchiveStudyCommand archiveStudyCommand, List<Guid> archiveStudyIds, ref DicomArchiveResult result, StudyMonitor monitor)
|
||
// {
|
||
|
||
|
||
// var archivedStudyId = archiveStudyIds[0];
|
||
|
||
// //result.ArchivedDicomStudies = _studyRepository.Where(t => t.SubjectVisitId == archiveStudyCommand.SubjectVisitId)
|
||
// // .ProjectTo<DicomStudyBasicDTO>(_mapper.ConfigurationProvider).ToList();
|
||
|
||
// #region 更新受试者访视信息 及访视状态为待提交 最早最晚拍片时间 访视已执行
|
||
|
||
// var subjectVisit = _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == archiveStudyCommand.SubjectVisitId).Result;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// #endregion
|
||
|
||
|
||
// //按照访视维度,上传只存在重传同一份,和上传新的(不存在之前检查维度 重传同一份 和重传不同的)
|
||
|
||
// if (archiveStudyCommand.AbandonStudyId != null && archiveStudyCommand.AbandonStudyId == archivedStudyId)
|
||
// {
|
||
// result.ReuploadNewStudyId = archivedStudyId;
|
||
|
||
|
||
// // 1、普通上传后重传
|
||
// // 2、QC后重传
|
||
// //_studyService.ReUploadSameStudy(archiveStudyCommand.SubjectVisitId, archivedDicomStudy.Id);
|
||
|
||
// }//上传
|
||
// else
|
||
// {
|
||
// //汇总 Series的Modality 更新到检查里面 检查状态 上传人
|
||
// var seriesModalityList = _dicomSeriesRepository.Where(t => t.StudyId == archivedStudyId).Select(u => u.Modality).Distinct();
|
||
// string ModaliyStr = string.Join('、', seriesModalityList.ToList());
|
||
|
||
// var study = _studyRepository.FirstOrDefaultAsync(t => t.Id == archivedStudyId).Result.IfNullThrowException();
|
||
// study.Status = (int)StudyStatus.Uploaded;
|
||
// study.Modalities = ModaliyStr;
|
||
|
||
// }
|
||
// _ = _dicomStudyMonitorRepository.AddAsync(monitor).Result;
|
||
// _ = _studyRepository.SaveChangesAsync().Result;
|
||
|
||
|
||
|
||
|
||
|
||
// }
|
||
|
||
|
||
|
||
|
||
|
||
// //public virtual IResponseOutput ForwardStudy(Guid studyId)
|
||
// //{
|
||
|
||
// // var study = _studyRepository.FirstOrDefault(u => u.Id == studyId);
|
||
|
||
|
||
|
||
// // //数据库状态,其他人已经操作过了,此时提醒
|
||
// // if (study.Status != (int)StudyStatus.Anonymized)
|
||
// // {
|
||
// // ResponseOutput.NotOk($"当前界面Study:{study.StudyCode} 状态被其他人已变更,不允许该操作,请刷新界面");
|
||
// // }
|
||
|
||
// // _studyRepository.Update(t => t.Id == studyId, u => new DicomStudy()
|
||
// // {
|
||
// // Status = (int)StudyStatus.Forwarding
|
||
// // });
|
||
|
||
// // var subject = _subjectRepository.FirstOrDefault(u => u.Id == study.SubjectId);
|
||
// // var trial = _trialRepository.FirstOrDefault(u => u.Id == study.TrialId);
|
||
// // var subjectVisit = _subjectVisitRepository.FirstOrDefault(u => u.Id == study.SubjectVisitId);
|
||
// // var targetPath = Path.Combine("/IMPORT-IMAGES",
|
||
// // trial.TrialCode + "_" + subject.Code + "_" + subjectVisit.VisitName + "_" + study.StudyCode);
|
||
// // var path = Path.Combine(_fileStorePath, study.CreateTime.Year.ToString(), study.TrialId.ToString(),
|
||
// // study.SiteId.ToString(), study.SubjectId.ToString(), study.SubjectVisitId.ToString(), study.Id.ToString(), "Data");
|
||
// // try
|
||
// // {
|
||
// // // 主机及端口信息后面可以改到 配置文件
|
||
// // SessionOptions sessionOptions = new SessionOptions
|
||
// // {
|
||
// // Protocol = Protocol.Sftp,
|
||
// // PortNumber = 8022,
|
||
// // HostName = "CS-690-sftp.mint-imaging.com",
|
||
// // UserName = "zdong",
|
||
// // Password = "Everest@2021",
|
||
// // //GiveUpSecurityAndAcceptAnySshHostKey = true,
|
||
// // SshHostKeyFingerprint = @"ecdsa-sha2-nistp384 384 59gkjJ5lMwv3jsB8Wz2B35tBAIor5pSd8PcJYtoamPo="
|
||
// // };
|
||
// // using (Session session = new Session())
|
||
// // {
|
||
// // session.Open(sessionOptions);
|
||
// // if (!session.FileExists(targetPath))
|
||
// // {
|
||
// // session.CreateDirectory(targetPath);
|
||
// // }
|
||
|
||
// // var files = (new DirectoryInfo(path)).GetFiles();
|
||
// // foreach (var file in files)
|
||
// // {
|
||
// // if (file.Name.Contains("Anonymize") && file.Extension.Contains("dcm"))
|
||
// // {
|
||
// // string remoteFilePath =
|
||
// // RemotePath.TranslateLocalPathToRemote(file.FullName, path, targetPath);
|
||
// // var result = session.PutFiles(file.FullName, remoteFilePath, false);
|
||
// // if (!result.IsSuccess)
|
||
// // {
|
||
// // return ResponseOutput.NotOk("Forward Failed");
|
||
// // }
|
||
// // }
|
||
// // }
|
||
|
||
// // //_studyStatusDetailRepository.Add(new StudyStatusDetail
|
||
// // //{
|
||
// // // Status = (int)StudyStatus.Forwarded,
|
||
// // // StudyId = studyId,
|
||
// // // Note = string.Empty,
|
||
// // // OptUserName = _userInfo.RealName,
|
||
// // // OptTime = DateTime.Now
|
||
// // //});
|
||
|
||
// // study.Status = (int)StudyStatus.Forwarded;
|
||
// // _studyRepository.Update(study);
|
||
|
||
// // //_workloadTPRepository.Add(new WorkloadTP
|
||
// // //{
|
||
// // // SiteId = study.SiteId,
|
||
// // // StudyId = study.Id,
|
||
// // // SubjectId = study.SubjectId,
|
||
// // // SubjectVisitId = study.SubjectVisitId,
|
||
// // // Status = 0,
|
||
// // // ReviewerId = Guid.Empty,
|
||
// // // TrialId = study.TrialId,
|
||
// // // UpdateTime = DateTime.Now,
|
||
// // // TimepointCode = study.StudyCode + "_T01"
|
||
// // //});
|
||
// // //if (study.IsDoubleReview) //双重阅片,则再添加一条,编号变为T02
|
||
// // //{
|
||
// // // _workloadTPRepository.Add(new WorkloadTP
|
||
// // // {
|
||
// // // SiteId = study.SiteId,
|
||
// // // StudyId = study.Id,
|
||
// // // SubjectId = study.SubjectId,
|
||
// // // SubjectVisitId = study.SubjectVisitId,
|
||
// // // Status = 0,
|
||
// // // ReviewerId = Guid.Empty,
|
||
// // // TrialId = study.TrialId,
|
||
// // // UpdateTime = DateTime.Now,
|
||
// // // TimepointCode = study.StudyCode + "_T02"
|
||
// // // });
|
||
// // //}
|
||
|
||
|
||
// // return ResponseOutput.Result(_studyRepository.SaveChanges());
|
||
// // }
|
||
// // }
|
||
// // catch (Exception e)
|
||
// // {
|
||
// // _studyRepository.Update(t => t.Id == studyId, u => new DicomStudy()
|
||
// // {
|
||
// // Status = (int)StudyStatus.ForwardFailed
|
||
// // });
|
||
// // return ResponseOutput.NotOk("Forward Failed " + e.Message);
|
||
// // }
|
||
// //}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// #region 暂存 读片
|
||
|
||
// //public IEnumerable<DicomSeriesDTO> GetSeriesList(Guid studyId)
|
||
// //{
|
||
// // return _dicomSeriesRepository.Where(s => s.StudyId == studyId).OrderBy(s => s.SeriesNumber).
|
||
// // ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
|
||
// // .ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider);
|
||
// //}
|
||
|
||
|
||
// //public IEnumerable<ImageLabelDTO> GetImageLabel(string tpCode)
|
||
// //{
|
||
// // return _imageLabelRepository.Where(s => s.TpCode == tpCode)
|
||
// // .ProjectTo<ImageLabelDTO>(_mapper.ConfigurationProvider);
|
||
// //}
|
||
|
||
// //public bool SaveImageLabelList(ImageLabelCommand imageLabelCommand)
|
||
// //{
|
||
// // var success = _imageLabelRepository.Delete(u => u.TpCode == imageLabelCommand.TpCode);
|
||
// // _keyInstanceRepository.Delete(u => u.TpCode == imageLabelCommand.TpCode);
|
||
// // if (imageLabelCommand.ImageLabelList.Count == 0)
|
||
// // {
|
||
// // return true;
|
||
// // }
|
||
// // else
|
||
// // {
|
||
|
||
// // foreach (var label in imageLabelCommand.ImageLabelList)
|
||
// // {
|
||
// // _imageLabelRepository.Add(new ImageLabel
|
||
// // {
|
||
// // TpCode = imageLabelCommand.TpCode,
|
||
// // StudyId = label.StudyId,
|
||
// // SeriesId = label.SeriesId,
|
||
// // InstanceId = label.InstanceId,
|
||
// // LabelValue = label.LabelValue
|
||
// // });
|
||
// // _keyInstanceRepository.Add(new KeyInstance
|
||
// // {
|
||
// // TpCode = imageLabelCommand.TpCode,
|
||
// // SeriesId = label.SeriesId,
|
||
// // InstanceId = label.InstanceId,
|
||
// // });
|
||
// // }
|
||
// // success = _imageLabelRepository.SaveChanges();
|
||
// // return success;
|
||
// // }
|
||
// //}
|
||
|
||
|
||
// #endregion
|
||
|
||
|
||
|
||
|
||
// #region 废弃
|
||
// //public DicomStudyDTO GetStudyItem(Guid studyId)
|
||
// //{
|
||
// // return _mapper.Map<DicomStudyDTO>(_studyRepository.FirstOrDefault(s => s.Id == studyId));
|
||
// //}
|
||
// //public virtual async Task<IResponseOutput> DicomAnonymize(Guid studyId, string optUserName)
|
||
// //{
|
||
// // var study = _studyRepository.FirstOrDefault(t => t.Id == studyId);
|
||
|
||
// // //数据库状态,其他人已经操作过了,此时提醒
|
||
// // if (study.Status != (int)StudyStatus.QAFinish)
|
||
// // {
|
||
// // ResponseOutput.NotOk($"当前界面Study:{study.StudyCode} 状态被其他人已变更,不允许该操作,请刷新界面");
|
||
// // }
|
||
|
||
// // var subject = _subjectRepository.Select(t => new { Id = t.Id, Code = t.Code }).FirstOrDefault(u => u.Id == study.SubjectId).IfNullThrowException();
|
||
// // var trial = _trialRepository.Select(t => new { Id = t.Id, Code = t.TrialCode }).FirstOrDefault(u => u.Id == study.TrialId).IfNullThrowException();
|
||
|
||
// // study.Status = (int)StudyStatus.Anonymizing;
|
||
|
||
|
||
// // // 查询受试者 信息
|
||
// // //string subjectCde = string.Empty;
|
||
// // //string subjectSex = string.Empty;
|
||
|
||
// // //读取Dicom 文件,匿名化
|
||
|
||
// // //按照配置文件 匿名化
|
||
// // var dicomSeries = _dicomSeriesRepository.Where(s => s.StudyId == studyId).ToList();
|
||
// // foreach (var seriesItem in dicomSeries)
|
||
// // {
|
||
// // var dicomInstances = _dicomInstanceRepository.Where(s => s.SeriesId == seriesItem.Id).ToList();
|
||
|
||
// // foreach (var instanceItem in dicomInstances)
|
||
// // {
|
||
// // _dicomInstanceRepository.Attach(instanceItem);
|
||
|
||
// // try
|
||
// // {
|
||
// // string filePath = _dicomFileStoreHelper.CreateInstanceFilePath(study, seriesItem.Id, instanceItem.Id);
|
||
// // DicomFile dicomFile = await DicomFile.OpenAsync(filePath, Encoding.Default);
|
||
|
||
// // #region 废弃
|
||
|
||
// // //if (SystemConfig.AddClinicalInfo) //是否需要写入临床信息
|
||
// // //{
|
||
// // // dicomFile.Dataset.AddOrUpdate(DicomTag.ClinicalTrialSubjectID, subjectCde + " " + subjectSex);//SubjectId
|
||
// // //}
|
||
// // //DicomDataset dataset = dicomFile.Dataset;
|
||
|
||
// // #endregion
|
||
|
||
// // foreach (var anonymizeItem in AppSettings.AnonymizeTagList)
|
||
// // {
|
||
// // if (anonymizeItem.Enable)
|
||
// // {
|
||
// // ushort group = Convert.ToUInt16(anonymizeItem.Group, 16);
|
||
// // ushort element = Convert.ToUInt16(anonymizeItem.Element, 16);
|
||
// // dicomFile.Dataset.AddOrUpdate(new DicomTag(group, element), anonymizeItem.ReplaceValue);
|
||
// // }
|
||
// // }
|
||
|
||
// // dicomFile.Dataset.AddOrUpdate(DicomTag.PatientID, trial.Code + "_" + subject.Code);
|
||
|
||
// // //_dicomFileStoreHelper.CreateInstanceFilePath(study, seriesItem.Id, instanceItem.Id);
|
||
|
||
// // string path = Path.Combine(_fileStorePath, study.CreateTime.Year.ToString(),
|
||
// // study.TrialId.ToString(),
|
||
// // study.SiteId.ToString(), study.SubjectId.ToString(), study.SubjectVisitId.ToString(), study.Id.ToString(), "Data");
|
||
|
||
// // //await dicomFile.SaveAsync(Path.Combine(path, instanceItem.Id.ToString() + ".dcm"));
|
||
// // await dicomFile.SaveAsync(
|
||
// // Path.Combine(path, instanceItem.Id.ToString() + ".Anonymize" + ".dcm"));
|
||
|
||
// // instanceItem.Anonymize = true;
|
||
|
||
// // //_dicomInstanceRepository.Update(instanceItem);
|
||
// // }
|
||
// // catch (Exception ex)
|
||
// // {
|
||
|
||
// // study.Status = (int)StudyStatus.AnonymizeFailed;
|
||
|
||
// // _dicomInstanceRepository.SaveChanges();
|
||
|
||
// // //这个地方返回没用
|
||
// // return ResponseOutput.NotOk(ex.Message);
|
||
// // }
|
||
// // }
|
||
|
||
// // }
|
||
|
||
// // study.Status = (int)StudyStatus.Anonymized;
|
||
|
||
// // var success = _dicomInstanceRepository.SaveChanges();
|
||
|
||
// // return ResponseOutput.Result(success);
|
||
// //}
|
||
// //public string GetStudyPreview(Guid studyId)
|
||
// //{
|
||
// // DicomInstance dicomInstance = _dicomInstanceRepository.FirstOrDefault(s => s.StudyId == studyId);
|
||
// // if (dicomInstance != null)
|
||
// // {
|
||
// // DicomStudy dicomStudy = _studyRepository.FirstOrDefault(s => s.Id == dicomInstance.StudyId);
|
||
// // if (dicomStudy != null)
|
||
// // {
|
||
// // return _dicomFileStoreHelper.GetInstanceFilePath(dicomStudy, dicomInstance.SeriesId, dicomInstance.Id.ToString());
|
||
// // }
|
||
// // }
|
||
// // return string.Empty;
|
||
// //}
|
||
|
||
// //public IEnumerable<RelationStudyDTO> GetAllRelationStudyList(Guid subjectVisitId)
|
||
// //{
|
||
// // #region 废弃
|
||
// // //var studylist = _studyRepository.Where(u => u.SubjectVisitId == subjectVisitId && u.IsDeleted == false).Select(t => new { StudyId = t.Id, t.SubjectId, t.TrialId }).ToList();
|
||
// // //var subjectId = studylist.FirstOrDefault().SubjectId;
|
||
// // //var trialId = studylist.FirstOrDefault().TrialId;
|
||
// // //var studyIds = studylist.Select(t => t.StudyId).ToList();
|
||
|
||
|
||
// // //var query = from studyItem in _studyRepository.Where(u => u.SubjectId == subjectId
|
||
// // // && u.TrialId == trialId && u.IsDeleted == false &&
|
||
// // // !studyIds.Contains(u.Id)
|
||
// // // /* && u.Status != (int)StudyStatus.Abandon*/)
|
||
// // // join visitItem in _subjectVisitRepository.AsQueryable()
|
||
// // // on studyItem.SubjectVisitId equals visitItem.Id
|
||
// // // select new RelationStudyDTO
|
||
// // // {
|
||
// // // StudyId = studyItem.Id,
|
||
// // // StudyCode = studyItem.StudyCode,
|
||
// // // VisitName = visitItem.VisitName,
|
||
// // // Modalities = studyItem.Modalities,
|
||
// // // Description = studyItem.Description,
|
||
// // // SeriesCount = studyItem.SeriesCount
|
||
// // // };
|
||
// // #endregion
|
||
|
||
// // var studyInfo = _studyRepository.Where(u => u.SubjectVisitId == subjectVisitId).Select(t => new { t.SubjectId, t.TrialId }).FirstOrDefault().IfNullThrowException();
|
||
|
||
// // var query = _studyRepository.Where(t => t.SubjectVisitId != subjectVisitId && t.TrialId == studyInfo.TrialId && t.SubjectId == studyInfo.SubjectId)
|
||
// // .ProjectTo<RelationStudyDTO>(_mapper.ConfigurationProvider).ToList();
|
||
|
||
// // return query.OrderBy(u => u.VisitName).ThenBy(s => s.StudyCode).ToList();
|
||
// //}
|
||
|
||
|
||
// ///// <summary>
|
||
// ///// 检查列表
|
||
// ///// </summary>
|
||
// ///// <param name="queryDto"></param>
|
||
// ///// <returns></returns>
|
||
// //public PageOutput<StudyDTO> GetStudyList(StudyQueryDTO queryDto)
|
||
// //{
|
||
// // var query = _studyRepository.Where(x => x.TrialId == queryDto.TrialId)
|
||
// // .WhereIf(queryDto.SubjectId != null, t => t.SubjectId == queryDto.SubjectId)
|
||
// // .WhereIf(queryDto.SubjectVisitId != null, t => t.SubjectId == queryDto.SubjectVisitId)
|
||
// // .WhereIf(!string.IsNullOrEmpty(queryDto.VisitPlanInfo), queryDto.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(queryDto.VisitPlanInfo))
|
||
// // .WhereIf(queryDto.StudyTimeBegin != null, t => t.StudyTime >= queryDto.StudyTimeBegin)
|
||
// // .WhereIf(queryDto.StudyTimeEnd != null, t => t.StudyTime <= queryDto.StudyTimeEnd)
|
||
// // .WhereIf(queryDto.UpdateTimeBegin != null, t => t.StudyTime >= queryDto.UpdateTimeBegin)
|
||
// // .WhereIf(queryDto.UpdateTimeEnd != null, t => t.StudyTime <= queryDto.UpdateTimeEnd)
|
||
// // .WhereIf(queryDto.SiteId != null, t => t.SiteId == queryDto.SiteId)
|
||
// // .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
||
// // .WhereIf(!string.IsNullOrWhiteSpace(queryDto.SubjectInfo), t => t.Subject.Code.Contains(queryDto.SubjectInfo))
|
||
// // .ProjectTo<StudyDTO>(_mapper.ConfigurationProvider);
|
||
|
||
|
||
// // var list = query.ToPagedList(queryDto.PageIndex, queryDto.PageSize, queryDto.SortField == string.Empty ? "StudyCode" : queryDto.SortField, queryDto.Asc);
|
||
|
||
|
||
// // foreach (var item in list.CurrentPageData)
|
||
// // {
|
||
// // if (item.PatientBirthDate.Length == 8)
|
||
// // {
|
||
// // item.PatientBirthDate =
|
||
// // $"{item.PatientBirthDate[0]}{item.PatientBirthDate[1]}{item.PatientBirthDate[2]}{item.PatientBirthDate[3]}-{item.PatientBirthDate[4]}{item.PatientBirthDate[5]}-{item.PatientBirthDate[6]}{item.PatientBirthDate[7]}";
|
||
// // }
|
||
// // }
|
||
|
||
// // return list;
|
||
// //}
|
||
|
||
|
||
|
||
// //public IResponseOutput DeleteStudy(Guid id)
|
||
// //{
|
||
// // var needDelete = _studyRepository.FirstOrDefault(t => t.Id == id);
|
||
|
||
// // if (needDelete == null)
|
||
// // {
|
||
// // return ResponseOutput.DBNotExistIfNUll(needDelete);
|
||
// // }
|
||
// // else //移除内存中缓存的StudyCode 这样刚上传的,删除 再上传还是用同样的Code
|
||
// // {
|
||
|
||
// // if (_provider.Get<string>($"{needDelete.TrialId }_{ StaticData.StudyMaxCode}").Value == needDelete.StudyCode)
|
||
// // {
|
||
// // _provider.Remove($"{needDelete.TrialId }_{ StaticData.StudyMaxCode}");
|
||
// // }
|
||
// // }
|
||
|
||
|
||
|
||
// // //if (study.Status != (int)StudyStatus.Uploaded)
|
||
// // //{
|
||
// // // return ResponseOutput.NotOk("This study has been quality controlled and couldn't be deleted ");
|
||
// // //}
|
||
|
||
// // #region 废弃的直接删除了 这里不用处理了
|
||
|
||
// // ////处理废弃的Study 如果有的话
|
||
// // //var oldStudy = _studyRepository.FirstOrDefault(t => t.StudyCode == study.StudyCode && t.Id != id);
|
||
// // //if (oldStudy != null)
|
||
// // //{
|
||
// // // _studyRepository.Delete(t => t.Id == oldStudy.Id);
|
||
// // // _dicomInstanceRepository.Delete(t => t.StudyId == oldStudy.Id);
|
||
// // // _dicomSeriesRepository.Delete(t => t.StudyId == oldStudy.Id);
|
||
// // //}
|
||
// // //处理废弃的Study
|
||
// // //var success5 = _studyRepository.Delete(t => t.StudyCode == study.StudyCode);
|
||
// // #endregion
|
||
|
||
|
||
// // //清除现有Study记录
|
||
// // var success1 = _studyRepository.Delete(t => t.Id == id);
|
||
// // var succeess2 = _dicomInstanceRepository.Delete(t => t.StudyId == id);
|
||
// // var success3 = _dicomSeriesRepository.Delete(t => t.StudyId == id);
|
||
|
||
|
||
// // //一个访视下面有多个检查,所以需要检测 没有的时候才清空
|
||
// // if (_studyRepository.Count(t => t.SubjectVisitId == needDelete.SubjectVisitId) == 0)
|
||
// // {
|
||
// // _subjectVisitRepository.Update(t => t.Id == needDelete.SubjectVisitId,
|
||
|
||
// // u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.UnExecuted, SVENDTC = null, SVSTDTC = null });
|
||
|
||
// // _qcChallengeRepository.Delete(t => t.SubjectVisitId == needDelete.SubjectVisitId);
|
||
|
||
// // //_qcChallengeRepository.Delete(t => t.SubjectVisitId == subjectVisitId);
|
||
|
||
// // //_trialQCQuestionAnswerRepository.Delete(t => t.SubjectVisitId == subjectVisitId);
|
||
// // }
|
||
|
||
|
||
|
||
|
||
|
||
// // return ResponseOutput.Result(success1 || succeess2 || success3);
|
||
// //}
|
||
|
||
// //public void ClearStudyInstanceAndSeriseData(Guid studyId)
|
||
// //{
|
||
// // //重新开始计数,怕数据库又脏数据,影响数量
|
||
// // _studyRepository.Update(t => t.Id == studyId, u => new DicomStudy()
|
||
// // {
|
||
// // InstanceCount = 0,
|
||
// // SeriesCount = 0
|
||
// // });
|
||
|
||
// // _dicomSeriesRepository.Delete(t => t.StudyId == studyId);
|
||
// // _dicomInstanceRepository.Delete(t => t.StudyId == studyId);
|
||
// //}
|
||
|
||
|
||
|
||
// //public bool ReUploadDifferentStudy(Guid subjectVisitId, Guid abandonStudyId, Guid newStudyId)
|
||
// //{
|
||
// // //_qcChallengeRepository.Update(t => t.SubjectVisitId == subjectVisitId && t.NeedReUpload == true, u => new QCChallenge() { ReUploadedTime = DateTime.Now, ReUploader = _userInfo.RealName });
|
||
|
||
// // //注意这里不是用SeqId 主键查询,因为Seq id 是后续加的,为了不改变代码和前端接口参数
|
||
// // var study = _studyRepository.FirstOrDefault(t => t.Id == abandonStudyId);
|
||
|
||
// // var code = study.StudyCode;
|
||
|
||
// // //清理以前的数据
|
||
// // _studyRepository.Delete(t => t.Id == abandonStudyId);
|
||
// // _dicomInstanceRepository.Delete(t => t.StudyId == abandonStudyId);
|
||
// // _dicomSeriesRepository.Delete(t => t.StudyId == abandonStudyId);
|
||
|
||
// // ////将以前的qa记录数据绑定到现在新生成的Study上
|
||
// // //_qaNoticeRepository.Update(t => t.SubjectVisitId == abandonStudyId, u => new QANotice() { SubjectVisitId = newStudyId });
|
||
// // //_qaNoticeUserRepository.Update(t => t.SubjectVisitId == abandonStudyId,
|
||
// // // u => new QANoticeUser() { SubjectVisitId = newStudyId });
|
||
// // //_qaRecordRepository.Update(t => t.SubjectVisitId == abandonStudyId, u => new QARecord() { SubjectVisitId = newStudyId });
|
||
|
||
|
||
// // var success = false;
|
||
// // if (study.Status == (int)StudyStatus.Uploading)
|
||
// // {
|
||
// // success = _studyRepository.Update(t => t.Id == newStudyId, u => new DicomStudy()
|
||
// // {
|
||
// // Status = (int)StudyStatus.Uploaded,
|
||
// // StudyCode = code
|
||
// // });
|
||
// // }
|
||
// // else
|
||
// // {
|
||
// // //新一份的影像状态为旧影像的状态 不改变
|
||
// // success = _studyRepository.Update(t => t.Id == newStudyId, u => new DicomStudy()
|
||
// // {
|
||
// // Status = study.Status,
|
||
// // StudyCode = code
|
||
// // });
|
||
// // }
|
||
|
||
|
||
|
||
// // #region 废弃之前的Study记录 讲新产生的记录的StudyCode 变更为老的 这样可以关联在一起
|
||
|
||
// // //var realName = _userInfo.RealName;
|
||
// // //var code = _studyRepository.GetAll().First(t => t.Id == abandonStudyId).StudyCode;
|
||
// // //_studyRepository.Update(t => t.Id == abandonStudyId, u => new DicomStudy()
|
||
// // //{
|
||
// // // Status = (int)StudyStatus.Abandon
|
||
// // //});
|
||
// // //_studyRepository.Update(t => t.Id == newStudyId, u => new DicomStudy()
|
||
// // //{
|
||
// // // Status = (int)StudyStatus.Uploaded,
|
||
// // // StudyCode = code
|
||
// // //});
|
||
// // //_studyStatusDetailRepository.Add(new StudyStatusDetail
|
||
// // //{
|
||
// // // Status = (int)StudyStatus.Abandon,
|
||
// // // StudyId = abandonStudyId,
|
||
// // // Note = string.Empty,
|
||
// // // OptUserName = realName,
|
||
// // // OptTime = DateTime.Now
|
||
// // //});
|
||
// // //_studyStatusDetailRepository.Add(new StudyStatusDetail
|
||
// // //{
|
||
// // // Status = (int)StudyStatus.Uploaded,
|
||
// // // StudyId = newStudyId,
|
||
// // // Note = string.Empty,
|
||
// // // OptUserName = realName,
|
||
// // // OptTime = DateTime.Now
|
||
// // //});
|
||
|
||
// // //_studyStatusDetailRepository.SaveChanges();
|
||
|
||
// // #endregion
|
||
|
||
|
||
// // return success;
|
||
|
||
// //}
|
||
|
||
|
||
// //public virtual void ReUploadSameStudy(Guid subjectVisitId, Guid studyId)
|
||
// //{
|
||
// // //_qcChallengeRepository.Update(t => t.SubjectVisitId == subjectVisitId && t.NeedReUpload == true, u => new QCChallenge() { ReUploadedTime = DateTime.Now, ReUploader = _userInfo.RealName });
|
||
|
||
// // #region 之前整个上传过程操作没有放在一个整体事务 会有脏数据 现在整体一个事务,不会产生,废弃 但是切入AOP 所以保留空方法
|
||
// // //var study = _studyRepository.FirstOrDefault(t=>t.Id== studyId);
|
||
// // //var status = study.Status;
|
||
|
||
// // //if (status == (int)StudyStatus.Uploading)
|
||
// // //{
|
||
// // // _studyRepository.Update(t => t.Id == studyId, u => new DicomStudy()
|
||
// // // {
|
||
// // // Status = (int)StudyStatus.Uploaded
|
||
// // // });
|
||
// // //}
|
||
// // #endregion
|
||
// //}
|
||
// ///// <summary>
|
||
// ///// 上传完检查后,处理检查 汇总 Series的Modality 更新到检查里面 检查状态 上传人
|
||
// ///// </summary>
|
||
// ///// <param name="studyId"></param>
|
||
// //public void UploadStudyDeal(Guid studyId)
|
||
// //{
|
||
|
||
// // var seriesModalityList = _dicomSeriesRepository.Where(t => t.StudyId == studyId).Select(u => u.Modality).Distinct();
|
||
// // string ModaliyStr = string.Join('、', seriesModalityList.ToList());
|
||
|
||
// // var study = _studyRepository.FirstOrDefault(t => t.Id == studyId);
|
||
// // study.Status = (int)StudyStatus.Uploaded;
|
||
// // study.Modalities = ModaliyStr;
|
||
// // _studyRepository.SaveChanges();
|
||
// //}
|
||
|
||
|
||
// //public List<SubjectVisitStudyDTO> GetSubjectVisitStudyList(Guid trialId, Guid siteId, Guid subjectId, Guid subjectVisitId)
|
||
// //{
|
||
// // var query = _studyRepository.Where(t => t.TrialId == trialId && t.SiteId == siteId && t.SubjectId == t.SubjectId && t.SubjectVisitId == subjectVisitId)
|
||
// // .Select(u => new SubjectVisitStudyDTO() { Modalities = u.Modalities, StudyCode = u.StudyCode, StudyId = u.Id, Status = u.Status });
|
||
|
||
// // return query.ToList();
|
||
// //}
|
||
|
||
// ////此处有AOP操作,不要更改为动态Api
|
||
// //public virtual IResponseOutput UpdateStudyStatus(StudyStatusDetailCommand studyStatus)
|
||
// //{
|
||
|
||
// // //注意这里不是用SeqId 主键查询,因为Seq id 是后续加的,为了不改变代码和前端接口参数
|
||
// // var study = _studyRepository.FirstOrDefault(t => t.Id == studyStatus.StudyId);
|
||
|
||
// // //数据库状态,其他人已经操作过了,此时提醒
|
||
// // if (study.Status > studyStatus.Status)
|
||
// // {
|
||
// // ResponseOutput.NotOk($"当前界面Study:{study.StudyCode} 状态被其他人已变更,不允许该操作,请刷新界面");
|
||
// // }
|
||
|
||
// // ////防止多次调用,更新 没必要
|
||
// // //if (study.Status == studyStatus.Status)
|
||
// // //{
|
||
// // // return ResponseOutput.Ok();
|
||
// // //}
|
||
|
||
// // study.Status = studyStatus.Status;
|
||
// // study.UpdateTime = DateTime.Now;
|
||
|
||
// // //if (studyStatus.Status == (int)StudyStatus.Uploaded)
|
||
// // //{
|
||
// // // study.UploadedTime = DateTime.Now;
|
||
// // // study.Uploader = _userInfo.RealName;
|
||
|
||
|
||
// // //}
|
||
// // //if (study.Status == (int)StudyStatus.QAing)
|
||
// // //{
|
||
// // // study.DeadlineTime = studyStatus.DeadlineTime;
|
||
// // //}
|
||
|
||
// // if (studyStatus.Status == (int)StudyStatus.QAFInishNotPass)
|
||
// // {
|
||
// // study.QAComment = studyStatus.QAComment;
|
||
// // }
|
||
|
||
|
||
// // return ResponseOutput.Ok(_studyRepository.SaveChanges());
|
||
// //}
|
||
|
||
// //public List<StudyStatusDetailDTO> GetStudyStatusDetailList(Guid studyId)
|
||
// //{
|
||
// // return _studyStatusDetailRepository.Where(s => s.StudyId == studyId).OrderByDescending(s => s.OptTime)
|
||
// // .ProjectTo<StudyStatusDetailDTO>(_mapper.ConfigurationProvider).ToList();
|
||
// //}
|
||
|
||
|
||
// //public bool DistributeStudy(StudyReviewerCommand studyReviewer)
|
||
// //{
|
||
// // //更新Study表中,总的状态
|
||
// // // 插入中间表
|
||
// // studyReviewer.StudyList.ForEach(study =>
|
||
// // {
|
||
// // var workloadType = 1;
|
||
// // StudyStatus studyStatus = StudyStatus.Distributed;
|
||
|
||
// // if (study.Status >= (int)StudyStatus.NeedAd)
|
||
// // {
|
||
// // workloadType = 2;
|
||
// // studyStatus = StudyStatus.AdDistributed;
|
||
// // }
|
||
|
||
// // var tempStudy = _studyRepository.FirstOrDefault(s => s.Id == study.StudyId);
|
||
// // tempStudy.Status = (int)studyStatus;
|
||
// // _studyRepository.Update(tempStudy);
|
||
|
||
// // _studyReviewerRepository.Add(new StudyReviewer()
|
||
// // {
|
||
// // ReviewerId = studyReviewer.ReviewerId,
|
||
// // StudyId = study.StudyId,
|
||
// // WorkloadType = workloadType,
|
||
// // TrialId = studyReviewer.TrialId,
|
||
// // Status = (int)studyStatus
|
||
// // });
|
||
// // });
|
||
|
||
// // return _studyReviewerRepository.SaveChanges();
|
||
// //}
|
||
|
||
|
||
// //public IResponseOutput EditStudyReviewer(StudyReviewerEditCommand studyReviewerEditCommand)
|
||
// //{
|
||
// // _studyReviewerRepository.Delete(t => studyReviewerEditCommand.StudyId == t.StudyId);
|
||
|
||
// // if (studyReviewerEditCommand.IsDoubleReview)
|
||
// // {
|
||
// // if (studyReviewerEditCommand.ReviewerId1 != null)
|
||
// // {
|
||
// // _studyReviewerRepository.Add(
|
||
// // new StudyReviewer()
|
||
// // {
|
||
// // StudyId = studyReviewerEditCommand.StudyId,
|
||
// // TrialId = studyReviewerEditCommand.TrialId,
|
||
// // ReviewerId = studyReviewerEditCommand.ReviewerId1.Value,
|
||
// // WorkloadType = 1
|
||
// // });
|
||
// // }
|
||
|
||
// // if (studyReviewerEditCommand.ReviewerId2 != null)
|
||
// // {
|
||
// // _studyReviewerRepository.Add(
|
||
// // new StudyReviewer()
|
||
// // {
|
||
// // StudyId = studyReviewerEditCommand.StudyId,
|
||
// // TrialId = studyReviewerEditCommand.TrialId,
|
||
// // ReviewerId = studyReviewerEditCommand.ReviewerId2.Value,
|
||
// // WorkloadType = 1
|
||
// // });
|
||
// // }
|
||
|
||
// // if (studyReviewerEditCommand.ReviewerIdForAD != null)
|
||
// // {
|
||
// // _studyReviewerRepository.Add(
|
||
// // new StudyReviewer()
|
||
// // {
|
||
// // StudyId = studyReviewerEditCommand.StudyId,
|
||
// // TrialId = studyReviewerEditCommand.TrialId,
|
||
// // ReviewerId = studyReviewerEditCommand.ReviewerIdForAD.Value,
|
||
// // WorkloadType = 2
|
||
// // });
|
||
// // }
|
||
|
||
// // if (studyReviewerEditCommand.ReviewerId2 == null || studyReviewerEditCommand.ReviewerId1 == null)
|
||
// // {
|
||
// // _studyRepository.Update(t => t.Id == studyReviewerEditCommand.StudyId,
|
||
// // u => new DicomStudy()
|
||
// // {
|
||
// // Status = (int)StudyStatus.QAFinish
|
||
// // });
|
||
// // }
|
||
// // }
|
||
// // else
|
||
// // {
|
||
// // if (studyReviewerEditCommand.ReviewerId1 != null)
|
||
// // {
|
||
// // _studyReviewerRepository.Add(
|
||
// // new StudyReviewer()
|
||
// // {
|
||
// // StudyId = studyReviewerEditCommand.StudyId,
|
||
// // TrialId = studyReviewerEditCommand.TrialId,
|
||
// // ReviewerId = studyReviewerEditCommand.ReviewerId1.Value,
|
||
// // WorkloadType = 1
|
||
// // });
|
||
// // }
|
||
// // else
|
||
// // {
|
||
// // _studyRepository.Update(t => t.Id == studyReviewerEditCommand.StudyId,
|
||
// // u => new DicomStudy()
|
||
// // {
|
||
// // Status = (int)StudyStatus.QAFinish
|
||
// // });
|
||
// // }
|
||
// // }
|
||
|
||
// // var success = _studyReviewerRepository.SaveChanges();
|
||
// // return ResponseOutput.Result(success);
|
||
// //}
|
||
|
||
// //public List<ReviewerDistributionDTO> GetReviewerListByTrialId(Guid trialId)
|
||
// //{
|
||
// // var query = from enrollItem in _enrollRepository
|
||
// // .Where(t => t.TrialId == trialId && t.EnrollStatus >= 10)
|
||
// // join doctorItem in _doctorRepository.AsQueryable()
|
||
// // on enrollItem.DoctorId equals doctorItem.Id into g
|
||
// // from doctor in g.DefaultIfEmpty()
|
||
// // select new
|
||
// // {
|
||
// // ReviewerCode = doctor.ReviewerCode,
|
||
// // FirstName = doctor.FirstName,
|
||
// // LastName = doctor.LastName,
|
||
// // ReviewerId = enrollItem.DoctorId,
|
||
// // ActivelyReading = doctor.ActivelyReading,
|
||
// // };
|
||
|
||
// // return query.Where(s => s.ActivelyReading).Select(s => new ReviewerDistributionDTO
|
||
// // {
|
||
// // ReviewerCode = s.ReviewerCode,
|
||
// // FirstName = s.FirstName,
|
||
// // LastName = s.LastName,
|
||
// // ReviewerId = s.ReviewerId,
|
||
|
||
// // }).ToList();
|
||
// //}
|
||
|
||
|
||
// //public PageOutput<DistributeReviewerStudyStatusDTO> GetDistributeStudyList(
|
||
// // StudyStatusQueryDTO studyStatusQueryDto)
|
||
// //{
|
||
// // Expression<Func<StudyReviewer, bool>> studyReviewerLambda = x => x.TrialId == studyStatusQueryDto.TrialId;
|
||
|
||
// // if (studyStatusQueryDto.ReviewerId != null)
|
||
// // {
|
||
// // studyReviewerLambda = studyReviewerLambda.And(t => t.ReviewerId == studyStatusQueryDto.ReviewerId);
|
||
// // }
|
||
|
||
// // if (studyStatusQueryDto.StudyStatus != null)
|
||
// // {
|
||
// // studyReviewerLambda = studyReviewerLambda.And(t => t.Status == studyStatusQueryDto.StudyStatus);
|
||
// // }
|
||
|
||
// // var query = from studyReviewer in _studyReviewerRepository.Where(studyReviewerLambda)
|
||
// // join doctor in _doctorRepository.AsQueryable() on studyReviewer.ReviewerId equals doctor.Id
|
||
// // join study in _studyRepository.AsQueryable() on studyReviewer.StudyId equals study.Id
|
||
// // select new DistributeReviewerStudyStatusDTO()
|
||
// // {
|
||
// // Name = doctor.LastName + " / " + doctor.FirstName,
|
||
// // NameCN = doctor.ChineseName,
|
||
// // ReviewerCode = doctor.ReviewerCode,
|
||
// // Status = studyReviewer.Status,
|
||
// // StudyCode = study.StudyCode
|
||
// // };
|
||
|
||
// // return query.ToPagedList(studyStatusQueryDto.PageIndex,
|
||
// // studyStatusQueryDto.PageSize, studyStatusQueryDto.SortField == string.Empty
|
||
// // ? "ReviewerCode"
|
||
// // : studyStatusQueryDto.SortField, studyStatusQueryDto.Asc);
|
||
|
||
|
||
// //}
|
||
|
||
// //public IEnumerable<RelationVisitDTO> GetRelationVisitList(decimal visitNum, string tpCode)
|
||
// //{
|
||
// // string tpGroup = tpCode.Substring(tpCode.Length - 3, 3);
|
||
// // var tp = _workloadTPRepository.FirstOrDefault(u => u.TimepointCode == tpCode);
|
||
// // var query = from workloadTp in _workloadTPRepository.Where(u => u.SubjectId == tp.SubjectId
|
||
// // && u.TrialId == tp.TrialId &&
|
||
// // u.TimepointCode.Contains(tpGroup))
|
||
// // join subjectVisit in _subjectVisitRepository.Where(u => u.VisitNum <= visitNum)
|
||
// // on workloadTp.SubjectVisitId equals subjectVisit.Id
|
||
// // select new RelationVisitDTO
|
||
// // {
|
||
// // StudyId = workloadTp.StudyId,
|
||
// // TpCode = workloadTp.TimepointCode,
|
||
// // VisitName = subjectVisit.VisitName
|
||
// // };
|
||
// // return query.ToList();
|
||
// //}
|
||
|
||
// //public List<QANoticeDTO> GetQANoticeList(Guid subjectVisitId)
|
||
// //{
|
||
|
||
// // var query = from noticeUser in _qaNoticeUserRepository.AsQueryable()
|
||
// // .Where(t => t.ToUserId == _userInfo.Id && t.SubjectVisitId == subjectVisitId)
|
||
// // join notice in _qaNoticeRepository.Where(u => u.NeedDeal == true && u.SubjectVisitId == subjectVisitId) on
|
||
// // noticeUser.QANoticeId equals notice.Id
|
||
// // select notice.Id;
|
||
|
||
// // var noticeUserList = query.ToList();
|
||
|
||
// // //待处理的消息数量
|
||
// // var count = noticeUserList.Count;
|
||
|
||
|
||
// // var list = _qaNoticeRepository.Where(t => t.SubjectVisitId == subjectVisitId)
|
||
// // .ProjectTo<QANoticeDTO>(_mapper.ConfigurationProvider).OrderByDescending(t => t.SendTime).ToList();
|
||
|
||
// // list.ForEach(t => t.IsMessageReceiver = count > 0 && noticeUserList.Contains(t.Id) ? t.NeedDeal : false);
|
||
|
||
|
||
// // return list;
|
||
// //}
|
||
|
||
// //public IResponseOutput DealNonDicomFile(Dictionary<string, string> filePathDic,
|
||
// // ArchiveStudyCommand archiveStudyCommand)
|
||
// //{
|
||
|
||
|
||
// // var savedInfo = GetSaveToDicomInfo(archiveStudyCommand.SubjectVisitId);
|
||
|
||
// // var dicomStudy = new DicomStudy
|
||
// // {
|
||
// // Id = Guid.NewGuid(),
|
||
|
||
// // //SiteId = addtionalInfo.SiteId,
|
||
// // //TrialId = addtionalInfo.TrialId,
|
||
// // //SubjectId = addtionalInfo.SubjectId,
|
||
// // //SubjectVisitId = addtionalInfo.SubjectVisitId,
|
||
// // IsDoubleReview = savedInfo.IsDoubleReview,
|
||
// // Comment = savedInfo.Comment
|
||
// // };
|
||
|
||
|
||
|
||
// // #region Setting Code
|
||
|
||
// // //var last = _studyRepository.Where(s => s.TrialId == addtionalInfo.TrialId)
|
||
// // // .OrderByDescending(c => c.StudyCode).FirstOrDefault();
|
||
// // //if (last != null)
|
||
// // //{
|
||
// // // var len = last.StudyCode.Length;
|
||
// // // if (len > 5 && int.TryParse(last.StudyCode.Substring(len - 5, 5), out var num))
|
||
// // // {
|
||
// // // dicomStudy.StudyCode = "ST" + (++num).ToString().PadLeft(5, '0');
|
||
// // // }
|
||
// // // else
|
||
// // // {
|
||
// // // return ResponseOutput.NotOk("Generate StudyCode failed");
|
||
// // // }
|
||
// // //}
|
||
// // //else
|
||
// // //{
|
||
// // // dicomStudy.StudyCode = "ST" + 1.ToString().PadLeft(5, '0');
|
||
// // //}
|
||
|
||
// // #endregion
|
||
|
||
// // var study = _studyRepository.Add(dicomStudy);
|
||
// // var saveFileList = new List<NoneDicomFile>();
|
||
|
||
// // foreach (var key in filePathDic.Keys)
|
||
// // {
|
||
// // saveFileList.Add(new NoneDicomFile() { FileName = filePathDic[key], StudyId = study.Id, Path = key });
|
||
// // }
|
||
|
||
|
||
// // _noneDicomFileRepository.AddRange(saveFileList);
|
||
|
||
|
||
|
||
// // var success = _noneDicomFileRepository.SaveChanges();
|
||
|
||
// // UpdateStudyStatus(new StudyStatusDetailCommand
|
||
// // {
|
||
// // StudyId = study.Id,
|
||
// // Status = (int)StudyStatus.Uploaded,
|
||
// // Note = string.Empty
|
||
// // });
|
||
|
||
|
||
// // return ResponseOutput.Result(success);
|
||
|
||
// //}
|
||
// #endregion
|
||
|
||
|
||
// }
|
||
//}
|