From 6f4186ae0764b72804b1ad81da6d199bd4a7f3f0 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 14:15:26 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index caa107ed2..eb8338e15 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -193,7 +193,7 @@ namespace IRaCIS.Core.Application.Service }).ToListAsync(); - var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC) + var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC&&x.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.SubjectVisit) .Where(x=>!x.IsSign) .Include(x=>x.ClinicalDataTrialSet).Select(x=>new GetCRCSubjectClinicalOutDto() { SubjectId=x.SubjectId, From e6dd0f0abec12637ebec7caa021a4caff4d07486 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 13:55:46 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index eb8338e15..caa107ed2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -193,7 +193,7 @@ namespace IRaCIS.Core.Application.Service }).ToListAsync(); - var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC&&x.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.SubjectVisit) + var clinicalData=await _readingClinicalDataRepository.Where(x=>x.TrialId == inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole==UploadRole.CRC) .Where(x=>!x.IsSign) .Include(x=>x.ClinicalDataTrialSet).Select(x=>new GetCRCSubjectClinicalOutDto() { SubjectId=x.SubjectId, From b2fc4b988691f9d7f88e91bcf89aa9d26a4ad48f Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 13:55:16 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index caa107ed2..10486a722 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -186,6 +186,7 @@ namespace IRaCIS.Core.Application.Service + var subjects = await _subjectRepository.Where(x => x.TrialId == inDto.TrialId).Select(x => new GetCRCSubjectClinicalResultDto() { SubjectId = x.Id, From 19d109b3bfcd627f231089e31832662960830612 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 4 Jul 2023 13:34:22 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClinicalData/ClinicalAnswerService.cs | 17 ++++---- .../ReadingClinicalDataService.cs | 8 ++-- .../Interface/IClinicalAnswerService.cs | 14 +++++++ .../Triggers/AddCRCCliniaclDataTrigger.cs | 39 +++++++++++++++++++ 4 files changed, 67 insertions(+), 11 deletions(-) create mode 100644 IRaCIS.Core.Application/Service/Reading/Interface/IClinicalAnswerService.cs create mode 100644 IRaCIS.Core.Application/Triggers/AddCRCCliniaclDataTrigger.cs diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 10486a722..b6102886c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -14,6 +14,7 @@ using MassTransit; using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Infrastructure.Extention; +using IRaCIS.Core.Application.Service.Reading.Interface; namespace IRaCIS.Core.Application.Service { @@ -21,8 +22,8 @@ namespace IRaCIS.Core.Application.Service /// 临床答案 /// [ApiExplorerSettings(GroupName = "Reading")] - public class ClinicalAnswerService : BaseService - { + public class ClinicalAnswerService : BaseService, IClinicalAnswerService + { private readonly IRepository _trialClinicalQuestionRepository; @@ -106,7 +107,9 @@ namespace IRaCIS.Core.Application.Service x.IsBaseLine, }).ToListAsync(); - var clinicalDataList =await _readingClinicalDataRepository.Where(x =>x.TrialId==inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole== UploadRole.CRC).IgnoreAutoIncludes().ToListAsync(); + var clinicalDataList =await _readingClinicalDataRepository + .WhereIf(inDto.SubjectId != null, x => x.SubjectId == inDto.SubjectId) + .Where(x =>x.TrialId==inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole== UploadRole.CRC).IgnoreAutoIncludes().ToListAsync(); List readingClinicalDatas = new List(); @@ -178,11 +181,11 @@ namespace IRaCIS.Core.Application.Service public async Task> GetCRCSubjectClinicalList(GetCRCSubjectClinicalInDto inDto) { - await AutoAddCRCClinical(new AutoAddClinicalInDto() - { + //await AutoAddCRCClinical(new AutoAddClinicalInDto() + //{ - TrialId = inDto.TrialId - }) ; + // TrialId = inDto.TrialId + //}) ; diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 0c072ec28..967d63a51 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -179,10 +179,10 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetCRCClinicalData(GetCRCClinicalDataInDto inDto) { - if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator) - { - await this.AddCRCClinicalData(inDto); - } + //if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator) + //{ + // await this.AddCRCClinicalData(inDto); + //} List cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId) diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IClinicalAnswerService.cs new file mode 100644 index 000000000..29775bb1f --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/Interface/IClinicalAnswerService.cs @@ -0,0 +1,14 @@ +using IRaCIS.Core.Application.Service.Reading.Dto; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Application.Service.Reading.Interface +{ + public interface IClinicalAnswerService + { + Task AutoAddCRCClinical(AutoAddClinicalInDto inDto); + } +} diff --git a/IRaCIS.Core.Application/Triggers/AddCRCCliniaclDataTrigger.cs b/IRaCIS.Core.Application/Triggers/AddCRCCliniaclDataTrigger.cs new file mode 100644 index 000000000..8ee6c4463 --- /dev/null +++ b/IRaCIS.Core.Application/Triggers/AddCRCCliniaclDataTrigger.cs @@ -0,0 +1,39 @@ +using EntityFrameworkCore.Triggered; +using IRaCIS.Core.Application.Service.Reading.Interface; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Application.Triggers +{ + public class AddCRCCliniaclDataTrigger : IAfterSaveTrigger + { + private readonly IRepository _subjectVisitRepository; + private readonly IRepository _repository; + private readonly IClinicalAnswerService _iClinicalAnswerService; + + public AddCRCCliniaclDataTrigger(IRepository subjectVisitRepository, IRepository repository, IClinicalAnswerService iClinicalAnswerService) + { + _subjectVisitRepository = subjectVisitRepository; + + _repository = repository; + this._iClinicalAnswerService = iClinicalAnswerService; + } + + //注意删除不能用扩展方法,必须用EF跟踪的实体 否则不能取到 SubjectVisitId + public async Task AfterSave(ITriggerContext context, CancellationToken cancellationToken) + { + var subjectVisit = context.Entity; + + await _iClinicalAnswerService.AutoAddCRCClinical(new Service.Reading.Dto.AutoAddClinicalInDto() + { + TrialId = subjectVisit.TrialId, + SubjectId = subjectVisit.SubjectId, + + }); + } + + } +} From e7cb246639aaf2cc2948253bb00872e302cb63e3 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 16:57:33 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index b6102886c..3a08de629 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -491,7 +491,7 @@ namespace IRaCIS.Core.Application.Service { needAddList.Add(new ReadModuleCriterionFrom() { - ClinicalFormId = y, + ClinicalFormId = y.ClinicalFormId, ReadModuleId = x.ReadModuleId, SubjectId = x.SubjectId, TrialId = inDto.TrialId, From f2dc43b47f10f5fcff36024149218677eac76840 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 14:11:44 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 3a08de629..dd0e91a31 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -268,7 +268,7 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - public async Task GetClinicalFormInfo(GetClinicalFormInfoInDto inDto) + public async Task> GetClinicalFormInfo(GetClinicalFormInfoInDto inDto) { var formInfo = await _clinicalFormRepository.Where(x => x.Id == inDto.ClinicalFormId).FirstNotNullAsync(); @@ -300,11 +300,7 @@ namespace IRaCIS.Core.Application.Service _iClinicalQuestionService.FindChildQuestion(x, questions, tableQuestions, questionAnswer, tableAnswer); }); - return new GetClinicalFormInfoOutDto() - { - - Question = result - }; + return result; } From d158c13c7cbe89a88dba6737d18192847105d44d Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 14:19:56 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 4 +++- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index dd0e91a31..8643997a3 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -256,7 +256,9 @@ namespace IRaCIS.Core.Application.Service { var dic = answers.Where(y => y.ClinicalFormId == x).ToDictionary(x => x.QuestionId.ToString(), x => x.Answer); dic.Add("clinicalFormId", x.ToString()); - result.AnswerList.Add(dic); + dic.Add("trialId", inDto.TrialId.ToString()); + dic.Add("subjectId", inDto.SubjectId.ToString()); + result.AnswerList.Add(dic); }); return result; diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index 4e125fd93..65dc09ceb 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -57,7 +57,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto { public Guid SubjectId { get; set; } - public Guid ClinicalDataTrialSetId { get; set; } + + public Guid TrialId { get; set; } + + public Guid ClinicalDataTrialSetId { get; set; } } From edfcb534918f5efd4cba739ae079cacb539b454d Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 14:25:01 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 8643997a3..bdf31fdb5 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -291,7 +291,7 @@ namespace IRaCIS.Core.Application.Service var questions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var tableQuestions = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId) + var tableQuestions = await _trialClinicalTableQuestionRepository.Where(x => x.TrialClinicalId == formInfo.ClinicalDataTrialSetId) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); From c9c5e5658f42b335e3bd28f8675501c4eb8c9fff Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 14:34:59 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index bdf31fdb5..d5ca4df13 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -258,6 +258,8 @@ namespace IRaCIS.Core.Application.Service dic.Add("clinicalFormId", x.ToString()); dic.Add("trialId", inDto.TrialId.ToString()); dic.Add("subjectId", inDto.SubjectId.ToString()); + dic.Add("trialClinicalId", inDto.ClinicalDataTrialSetId.ToString()); + result.AnswerList.Add(dic); }); From a002eeed25286db97b8db564f0eb2da7069a1b65 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 14:42:45 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index d5ca4df13..64923abf7 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -258,7 +258,7 @@ namespace IRaCIS.Core.Application.Service dic.Add("clinicalFormId", x.ToString()); dic.Add("trialId", inDto.TrialId.ToString()); dic.Add("subjectId", inDto.SubjectId.ToString()); - dic.Add("trialClinicalId", inDto.ClinicalDataTrialSetId.ToString()); + dic.Add("clinicalDataTrialSetId", inDto.ClinicalDataTrialSetId.ToString()); result.AnswerList.Add(dic); From 859f10ee1f4f4702c2fe7535d0c774f5d7826c07 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 14:48:05 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 64923abf7..390d36d8d 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -255,10 +255,10 @@ namespace IRaCIS.Core.Application.Service ClinicalFormIds.ForEach(x => { var dic = answers.Where(y => y.ClinicalFormId == x).ToDictionary(x => x.QuestionId.ToString(), x => x.Answer); - dic.Add("clinicalFormId", x.ToString()); - dic.Add("trialId", inDto.TrialId.ToString()); - dic.Add("subjectId", inDto.SubjectId.ToString()); - dic.Add("clinicalDataTrialSetId", inDto.ClinicalDataTrialSetId.ToString()); + dic.Add("ClinicalFormId", x.ToString()); + dic.Add("TrialId", inDto.TrialId.ToString()); + dic.Add("SubjectId", inDto.SubjectId.ToString()); + dic.Add("ClinicalDataTrialSetId", inDto.ClinicalDataTrialSetId.ToString()); result.AnswerList.Add(dic); From 735f9a95345b20ff7df4cb97a8d5f498631ab2e6 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 15:58:47 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/QC/QCOperationService.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 2f382f67a..1a9e7f4e5 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1204,7 +1204,12 @@ namespace IRaCIS.Core.Application.Image.QA // CRC 上传的基线数据签名 - await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == dbSubjectVisit.Id && x.IsSign==false, x => new ReadingClinicalData() + await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(x => + + (x.ClinicalDataTrialSet.ClinicalDataLevel== ClinicalLevel.Subject|| x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)&& + + + x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == dbSubjectVisit.Id && x.IsSign==false, x => new ReadingClinicalData() { IsSign = true, ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned From dee350742fae98201c7d16044872cb09825d8740 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Mon, 3 Jul 2023 16:45:17 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClinicalData/ClinicalAnswerService.cs | 64 ++++++++++++++++--- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 30 ++++++++- .../ReadModuleCriterionFrom.cs | 9 ++- 3 files changed, 91 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 390d36d8d..58b4ff165 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -423,6 +423,7 @@ namespace IRaCIS.Core.Application.Service public async Task> GetCRCConfirmList(GetCRCConfirmListInDto inDto) { List result = await _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) + .WhereIf(inDto.ReadModuleId!=null,x=>x.Id==inDto.ReadModuleId) .Select(x => new GetCRCConfirmListOutDto() { SubjectId= x.SubjectId, @@ -430,46 +431,93 @@ namespace IRaCIS.Core.Application.Service LatestScanDate = x.SubjectVisit.LatestScanDate, ReadingSetType = x.ReadingSetType, IsPMConfirm = x.IsPMConfirm, + SubjectCode=x.Subject.Code, ReadModuleId = x.Id, }).OrderBy(x => x.LatestScanDate).ToListAsync(); var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId) .Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) .Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead) - .Select(x => new CRCClinicalForm + .Include(x=>x.ClinicalDataTrialSet) + .Select(x => new CRCClinicalForm { - CkeckDate = x.CheckDate, + CheckDate = x.CheckDate, ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel, ClinicalFormId = x.Id, + ClinicalDataSetName=x.ClinicalDataTrialSet.ClinicalDataSetName, + ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName, }).ToListAsync(); - var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).ToListAsync(); + var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).Include(x=>x.ClinicalForm).Include(x=>x.ClinicalForm.ClinicalDataTrialSet).ToListAsync(); result.ForEach(x => { if (x.IsCRCConfirm) { - x.ClinicalFormIdList = confirmList.Where(y => y.ReadModuleId == x.ReadModuleId).Select(y=>y.ClinicalFormId).ToList(); + x.ClinicalFormIdList = confirmList.Where(y => y.ReadModuleId == x.ReadModuleId).Select(y=>new GetCRCBeConfirmListOutDto() { + CheckDate = y.ClinicalForm.CheckDate??default(DateTime), + ClinicalDataSetName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetName, + ClinicalDataSetEnName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetEnName, + ClinicalFormId=y.ClinicalFormId, + }).ToList(); } else { if (x.ReadingSetType == ReadingSetType.ImageReading) { - x.ClinicalFormIdList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.ImageRead&&y.CkeckDate<=x.LatestScanDate).Select(y => y.ClinicalFormId).ToList(); + x.ClinicalFormIdList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.ImageRead&&y.CheckDate <= x.LatestScanDate) + .Select(y => new GetCRCBeConfirmListOutDto() + { + CheckDate = y.CheckDate ?? default(DateTime), + ClinicalDataSetName = y.ClinicalDataSetName, + ClinicalDataSetEnName = y.ClinicalDataSetEnName, + ClinicalFormId = y.ClinicalFormId, + }).ToList(); } else { - x.ClinicalFormIdList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.OncologyRead&&y.CkeckDate <= x.LatestScanDate).Select(y => y.ClinicalFormId).ToList(); + x.ClinicalFormIdList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.OncologyRead&&y.CheckDate <= x.LatestScanDate) + .Select(y => new GetCRCBeConfirmListOutDto() + { + CheckDate = y.CheckDate ?? default(DateTime), + ClinicalDataSetName = y.ClinicalDataSetName, + ClinicalDataSetEnName = y.ClinicalDataSetEnName, + ClinicalFormId = y.ClinicalFormId, + }).ToList(); } } }); return result; } - /// - /// CRC 确认临床数据 + /// 获取CRC待确认列表 /// /// /// [HttpPost] + public async Task> GetCRCBeConfirmList(GetCRCBeConfirmListInDto inDto) + { + var result = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto() + { + ReadModuleId = inDto.ReadModuleId, + TrialId = inDto.TrialId + })).SelectMany(x => x.ClinicalFormIdList).ToList(); + + result.ForEach(x => { + + x.ClinicalDataSetName = _userInfo.IsEn_Us ? x.ClinicalDataSetEnName : x.ClinicalDataSetName; + + }); + + return result.OrderBy(x => x.ClinicalDataSetName).ThenBy(x => x.CheckDate).ToList(); + + } + + + /// + /// CRC 确认临床数据 + /// + /// + /// + [HttpPost] public async Task CRCConfirmClinical(CRCConfirmClinicalInDto inDto) { var dataList =await this.GetCRCConfirmList(new GetCRCConfirmListInDto() diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index 65dc09ceb..c0562e954 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -102,6 +102,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetCRCConfirmListInDto { public Guid TrialId { get; set; } + + public Guid? ReadModuleId { get; set; } } public class CRCCancelConfirmClinicalInDto @@ -111,6 +113,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid ReadModuleId { get; set; } } + public class GetCRCBeConfirmListInDto + { + public Guid TrialId { get; set; } + + public Guid ReadModuleId { get; set; } + } + + + public class GetCRCBeConfirmListOutDto + { + public Guid ClinicalFormId { get; set; } + + public string ClinicalDataSetName { get; set; } + + public string ClinicalDataSetEnName { get; set; } + + public DateTime CheckDate { get; set; } + } + public class CRCConfirmClinicalInDto { public Guid TrialId { get; set; } @@ -121,7 +142,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class CRCClinicalForm { - public DateTime? CkeckDate { get; set; } + public DateTime? CheckDate { get; set; } public Guid ClinicalFormId { get; set; } @@ -129,6 +150,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// 临床级别 /// public ClinicalLevel ClinicalDataLevel { get; set; } + + public string ClinicalDataSetName { get; set; } + + public string ClinicalDataSetEnName { get; set; } } @@ -147,13 +172,14 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool IsCRCConfirm { get; set; } = false; + public string SubjectCode { get; set; } /// /// 最晚拍片日期 /// public DateTime? LatestScanDate { get; set; } - public List ClinicalFormIdList { get; set; } + public List ClinicalFormIdList { get; set; } public int FormCount { diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs index dbfa8d0a7..27a661289 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs @@ -45,8 +45,13 @@ namespace IRaCIS.Core.Domain.Models /// 创建时间 /// public DateTime CreateTime { get; set; } - - } + + [JsonIgnore] + [ForeignKey("ClinicalFormId")] + public ClinicalForm ClinicalForm { get; set; } + + + } }