diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs index 744f8dbc5..6f3910b2d 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DownloadAndUploadDTO.cs @@ -21,6 +21,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc.DTO public string TaskName { get; set; } + public bool IsImageFilter { get; set; } public string CriterionModalitys { get; set; } public Guid? SourceSubjectVisitId { get; set; } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index fda43c6ae..bdf79c7ea 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -12,6 +12,7 @@ using Medallion.Threading; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; +using System.Data; using System.IO.Compression; using System.Linq; using System.Text; @@ -63,6 +64,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc TrialSiteId = u.Subject.TrialSiteId, + IsImageFilter=u.TrialReadingCriterion.IsImageFilter, + CriterionModalitys= u.TrialReadingCriterion.CriterionModalitys, SubjectCode = u.IsSelfAnalysis == true ? u.BlindSubjectCode : u.Subject.Code , @@ -535,50 +538,59 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc if (isAnonymize) { + //受试者随机阅片,需要匿名化检查时间 DicomFile dicomFile = await DicomFile.OpenAsync(destinationPath, Encoding.Default); + DicomDataset dataset = dicomFile.Dataset; + dataset.AddOrUpdate(DicomTag.StudyDate, string.Empty); + dataset.AddOrUpdate(DicomTag.StudyTime, string.Empty); - DicomDataset dataset = dicomFile.Dataset; + #region 前端已经匿名化,不需要做相关tag匿名化 + //DicomFile dicomFile = await DicomFile.OpenAsync(destinationPath, Encoding.Default); - foreach (var item in addOrUpdateFixedFieldList) - { + //DicomDataset dataset = dicomFile.Dataset; - var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16)); + //foreach (var item in addOrUpdateFixedFieldList) + //{ - dataset.AddOrUpdate(dicomTag, item.ReplaceValue); - } + // var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16)); - foreach (var item in ircFieldList) - { + // dataset.AddOrUpdate(dicomTag, item.ReplaceValue); + //} - var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16)); + //foreach (var item in ircFieldList) + //{ - if (dicomTag == DicomTag.ClinicalTrialProtocolID) - { - dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode); + // var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16)); - } - if (dicomTag == DicomTag.ClinicalTrialSiteID) - { - //dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialSiteCode); + // if (dicomTag == DicomTag.ClinicalTrialProtocolID) + // { + // dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode); - } - if (dicomTag == DicomTag.ClinicalTrialSubjectID) - { - dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.SubjectCode); + // } + // if (dicomTag == DicomTag.ClinicalTrialSiteID) + // { + // //dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialSiteCode); - } - if (dicomTag == DicomTag.ClinicalTrialTimePointID) - { - dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.VisitNum.ToString()); + // } + // if (dicomTag == DicomTag.ClinicalTrialSubjectID) + // { + // dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.SubjectCode); - } - if (dicomTag == DicomTag.PatientID) - { - dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode + "_" + subjectAndVisitInfo.SubjectCode); + // } + // if (dicomTag == DicomTag.ClinicalTrialTimePointID) + // { + // dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.VisitNum.ToString()); - } + // } + // if (dicomTag == DicomTag.PatientID) + // { + // dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode + "_" + subjectAndVisitInfo.SubjectCode); + + // } + + //} + #endregion - } } #endregion } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 9236b19a1..b06600394 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -344,6 +344,8 @@ namespace IRaCIS.Core.Application.Contracts { public string TrialModalitys { get; set;} + public bool IsImageFilter { get; set; } + /// /// 项目ID @@ -864,6 +866,7 @@ namespace IRaCIS.Core.Application.Contracts public class SetCriterionReadingInfoInDto { + public bool IsImageFilter { get; set; } public string CriterionModalitys { get; set; } public ReadingImageDownload? ImageDownloadEnum { get; set; } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index dabf10d1e..ef9c33a6d 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -317,12 +317,12 @@ namespace IRaCIS.Core.Application #endregion - var trialModalitys = _readingQuestionCriterionTrialRepository.Where(t => t.Id == inDto.TrialReadingCriterionId).Select(t => t.Trial.Modalitys).FirstOrDefault(); + //var trialModalitys = _readingQuestionCriterionTrialRepository.Where(t => t.Id == inDto.TrialReadingCriterionId).Select(t => t.Trial.Modalitys).FirstOrDefault(); var systemCriterion = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == trialCriterion.ReadingQuestionCriterionSystemId).FirstNotNullAsync(); await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() { - CriterionModalitys= trialModalitys, + //CriterionModalitys= trialModalitys, IsOncologyReading = systemCriterion.IsOncologyReading, IsSystemSetOncology = systemCriterion.IsOncologyReading, IseCRFShowInDicomReading = systemCriterion.IseCRFShowInDicomReading, @@ -604,6 +604,7 @@ namespace IRaCIS.Core.Application await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() { + IsImageFilter=inDto.IsImageFilter, ImageDownloadEnum = inDto.ImageDownloadEnum, ImageUploadEnum = inDto.ImageUploadEnum, CriterionModalitys = inDto.CriterionModalitys, @@ -953,7 +954,7 @@ namespace IRaCIS.Core.Application trialInfo.UpdateTime = DateTime.Now; - await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialConfig.TrialId && t.IsSigned == false, u => new ReadingQuestionCriterionTrial() { CriterionModalitys = trialConfig.Modalitys }); + //await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialConfig.TrialId && t.IsSigned == false, u => new ReadingQuestionCriterionTrial() { CriterionModalitys = trialConfig.Modalitys }); return ResponseOutput.Ok(await _repository.SaveChangesAsync()); } @@ -1039,7 +1040,8 @@ namespace IRaCIS.Core.Application if (trialConfig.TrialCriterionIds.Contains(item.Id)) { item.IsConfirm = true; - item.CriterionModalitys = trialInfo.Modalitys; + + //item.CriterionModalitys = trialInfo.Modalitys; } else { diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs index 0f69ee9c4..c27d34b15 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionTrial.cs @@ -279,6 +279,8 @@ namespace IRaCIS.Core.Domain.Models public ReadingImageDownload? ImageDownloadEnum { get; set; } public ReadingImageUpload? ImageUploadEnum { get; set; } + + public bool IsImageFilter { get; set; } } public enum ReadingImageDownload