From 045c6bfc9f8ad1cb8c85bd4d3bfa65dc1a63bb47 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 27 Jun 2023 18:05:00 +0800 Subject: [PATCH 1/3] =?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/ClinicalDataSetService.cs | 15 +++++++++++++-- IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 7 ++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs index 726d5388f..75207345c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalDataSetService.cs @@ -61,7 +61,13 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task ApplySystemClinical(ApplySystemClinicalInDto inDto) { - if (_systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.IsCheckDate).Count() != 1) + + var isNeedVerify = await _clinicalDataSystemSetRepository.AnyAsync(x => x.Id == inDto.SystemClinicalId && (x.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataLevel == ClinicalLevel.OncologyRead) + && x.ClinicalUploadType == ClinicalUploadType.Structuring && x.UploadRole == UploadRole.CRC + ); + + + if (_systemClinicalQuestionRepository.Where(x => isNeedVerify&& x.SystemClinicalId == inDto.SystemClinicalId && x.IsCheckDate).Count() != 1) { throw new BusinessValidationFailedException(_localizer["ClinicalDataSet_Apply"]); @@ -87,7 +93,12 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task ApplyTrialClinical(ApplyTrialClinicalInDto inDto) { - if (_trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.IsCheckDate).Count() != 1) + + var isNeedVerify = await _clinicalDataTrialSetRepository.AnyAsync(x => x.Id == inDto.TrialClinicalId && (x.ClinicalDataLevel == ClinicalLevel.ImageRead|| x.ClinicalDataLevel==ClinicalLevel.OncologyRead) + && x.ClinicalUploadType == ClinicalUploadType.Structuring && x.UploadRole == UploadRole.CRC + ); + + if (_trialClinicalQuestionRepository.Where(x => isNeedVerify&& x.TrialClinicalId == inDto.TrialClinicalId && x.IsCheckDate).Count() != 1) { throw new BusinessValidationFailedException(_localizer["ClinicalDataSet_Apply"]); diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 64b2ce88a..826d10683 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -1239,7 +1239,12 @@ namespace IRaCIS.Core.Domain.Share [Display(Name = "PDF")] PDF = 1, - } + /// + /// 结构化录入 + /// + Structuring = 2, + + } /// /// 数据类型 From a718aa9c696bf2abf22e2e5c5cc69766f01ec5ef Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 28 Jun 2023 09:14:08 +0800 Subject: [PATCH 2/3] =?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 | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 52d3f7a1f..448292134 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -187,23 +187,26 @@ namespace IRaCIS.Core.Application.Service public async Task SubmitClinicalForm(SubmitClinicalFormInDto inDto) { - var checkDateQuestionId = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.ClinicalDataTrialSetId && x.IsCheckDate).Select(x => x.Id).FirstNotNullAsync(); + + ClinicalForm clinicalForm = new ClinicalForm() { }; - try + clinicalForm = new ClinicalForm() + { + ClinicalDataTrialSetId = inDto.ClinicalDataTrialSetId, + SubjectId = inDto.SubjectId, + Id = inDto.ClinicalFormId ?? NewId.NextGuid(), + ReadingId = inDto.ReadingId, + VisitId = inDto.VisitId, + }; + try { - clinicalForm = new ClinicalForm() - { - ClinicalDataTrialSetId = inDto.ClinicalDataTrialSetId, - SubjectId = inDto.SubjectId, - Id = inDto.ClinicalFormId ?? NewId.NextGuid(), - ReadingId=inDto.ReadingId, - VisitId=inDto.VisitId, - CheckDate = DateTime.Parse(inDto.QuestionAnswers.Where(x => x.QuestionId == checkDateQuestionId).Select(x => x.Answer).First()), - }; - } - catch (Exception) + var checkDateQuestionId = await _trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.ClinicalDataTrialSetId && x.IsCheckDate).Select(x => x.Id).FirstNotNullAsync(); + clinicalForm.CheckDate = DateTime.Parse(inDto.QuestionAnswers.Where(x => x.QuestionId == checkDateQuestionId).Select(x => x.Answer).First()); + + } + catch () { - throw new BusinessValidationFailedException("检查日期问题答案填写错误!"); + } List clinicalQuestionAnswers = inDto.QuestionAnswers.Select(x => new ClinicalQuestionAnswer() From e66b56af58b475414ac8b185dbe1862d845c3bfd Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 28 Jun 2023 09:20:38 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E8=88=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/ClinicalData/ClinicalAnswerService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 448292134..7fa925768 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -204,9 +204,9 @@ namespace IRaCIS.Core.Application.Service clinicalForm.CheckDate = DateTime.Parse(inDto.QuestionAnswers.Where(x => x.QuestionId == checkDateQuestionId).Select(x => x.Answer).First()); } - catch () + catch (Exception) { - + } List clinicalQuestionAnswers = inDto.QuestionAnswers.Select(x => new ClinicalQuestionAnswer()