From 22225dd84185a4bfdfab9d3227b8ec402f168c97 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Wed, 5 Jul 2023 11:43:33 +0800 Subject: [PATCH] =?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 | 109 ++++++++++++++++-- .../Service/Reading/Dto/ClinicalAnswerDto.cs | 27 ++++- 2 files changed, 124 insertions(+), 12 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index e1a995262..5ee443924 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -487,7 +487,7 @@ namespace IRaCIS.Core.Application.Service { x.ClinicalFormList = confirmList.Where(y => y.ReadModuleId == x.ReadModuleId).Select(y=>new GetCRCBeConfirmListOutDto() { CheckDate = y.CheckDate, - ClinicalDataSetName= y.ClinicalDataSetName, + ClinicalDataSetName= y.ClinicalDataSetName.LanguageName(y.ClinicalDataSetEnName, _userInfo.IsEn_Us), ClinicalDataSetEnName= y.ClinicalDataSetEnName, ClinicalFormId=y.ClinicalFormId, ClinicalDataTrialSetId=y.ClinicalDataTrialSetId, @@ -502,7 +502,7 @@ namespace IRaCIS.Core.Application.Service .Select(y => new GetCRCBeConfirmListOutDto() { CheckDate = y.CheckDate ?? default(DateTime), - ClinicalDataSetName = y.ClinicalDataSetName, + ClinicalDataSetName = y.ClinicalDataSetName.LanguageName(y.ClinicalDataSetEnName, _userInfo.IsEn_Us), ClinicalDataSetEnName = y.ClinicalDataSetEnName, ClinicalFormId = y.ClinicalFormId, ClinicalDataTrialSetId = y.ClinicalDataTrialSetId, @@ -515,7 +515,7 @@ namespace IRaCIS.Core.Application.Service .Select(y => new GetCRCBeConfirmListOutDto() { CheckDate = y.CheckDate ?? default(DateTime), - ClinicalDataSetName = y.ClinicalDataSetName, + ClinicalDataSetName = y.ClinicalDataSetName.LanguageName(y.ClinicalDataSetEnName, _userInfo.IsEn_Us), ClinicalDataSetEnName = y.ClinicalDataSetEnName, ClinicalFormId = y.ClinicalFormId, ClinicalDataTrialSetId = y.ClinicalDataTrialSetId, @@ -543,18 +543,107 @@ namespace IRaCIS.Core.Application.Service PageSize=9999, })).CurrentPageData.SelectMany(x => x.ClinicalFormList).ToList(); - - result.ForEach(x => { - - x.ClinicalDataSetName = _userInfo.IsEn_Us ? x.ClinicalDataSetEnName : x.ClinicalDataSetName; - - }); - return result.OrderBy(x => x.ClinicalDataSetName).ThenBy(x => x.CheckDate).ToList(); + } + + + /// + /// 获取临床数据表格信息 查看没有表格问题的列表 + /// + /// + /// + [HttpPost] + public async Task> GetClinicalTableList(GetClinicalTableListInDto inDto) + { + + var readModule=await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync(): + + var confirmList = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto() + { + ReadModuleId = inDto.ReadModuleId, + TrialId = inDto.TrialId, + PageIndex = 1, + PageSize = 9999, + + })).CurrentPageData.SelectMany(x => x.ClinicalFormList).ToList(); + + var clinicalDataTrialSetIds = confirmList.Select(x => x.ClinicalDataTrialSetId).Distinct().ToList(); + var questionList = await _trialClinicalQuestionRepository.Where(x => clinicalDataTrialSetIds.Contains( x.TrialClinicalId) + && x.ClinicalQuestionType != ReadingQestionType.Group + && x.ClinicalQuestionType != ReadingQestionType.Table).OrderBy(x=>x.TrialClinicalId).ThenBy(x => x.ShowOrder) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var answers = await _clinicalQuestionAnswerRepository.Where(x => x.SubjectId == readModule.SubjectId && clinicalDataTrialSetIds.Contains( x.ClinicalDataTrialSetId)) + .Select(x => new + { + x.ClinicalDataTrialSetId, + x.ClinicalFormId, + x.ClinicalForm.CheckDate, + x.QuestionId, + x.Answer + }) + .ToListAsync(); + List result = new List(); + clinicalDataTrialSetIds.ForEach(x => { + GetClinicalTableListOutDto dto = new GetClinicalTableListOutDto(); + dto.ClinicalDataSetName = confirmList.Where(y => y.ClinicalDataTrialSetId == x).Select(y => y.ClinicalDataSetName).First(); + dto.QuestionList = questionList.Where(y => y.TrialClinicalId == x).OrderBy(y => y.ShowOrder).ToList(); + dto.AnswerList = new List>(); + var ClinicalFormIds= answers.Where(y => y.ClinicalDataTrialSetId == x).OrderBy(x => x.CheckDate).Select(x => x.ClinicalFormId).Distinct().ToList(); + ClinicalFormIds.ForEach(z => + { + var dic = answers.Where(y => y.ClinicalDataTrialSetId == x).OrderBy(y => y.CheckDate).ToDictionary(x => x.QuestionId.ToString(), x => x.Answer); + dic.Add("ClinicalFormId", z.ToString()); + dic.Add("TrialId", inDto.TrialId.ToString()); + dic.Add("SubjectId", readModule.SubjectId.ToString()); + dic.Add("ClinicalDataTrialSetId", x.ToString()); + + dto.AnswerList.Add(dic); + + }); + result.Add(dto); + }); + return result; } + /// + /// 获取临床数据表格信息 查看有表格问题的列表 + /// + /// + /// + [HttpPost] + public async Task> GetClinicalDateList(GetCRCBeConfirmListInDto inDto) + { + var confirmList = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto() + { + ReadModuleId = inDto.ReadModuleId, + TrialId = inDto.TrialId, + PageIndex = 1, + PageSize = 9999, + + })).CurrentPageData.SelectMany(x => x.ClinicalFormList).ToList(); + + var clinicalDataTrialSetIds = confirmList.Select(x => x.ClinicalDataTrialSetId).Distinct().ToList(); + + List result = new List(); + + clinicalDataTrialSetIds.ForEach(x => + { + + result.Add(new GetClinicalDateListOutDto() + { + + ClinicalDataSetName = confirmList.Where(y => y.ClinicalDataTrialSetId == x).Select(y => y.ClinicalDataSetName).First(), + DateList = confirmList.Where(y => y.ClinicalDataTrialSetId == x).ToList() + + }); + + }); + + return result; + } + /// /// CRC 确认临床数据 /// diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs index d6f7c5a4a..f94ede42a 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs @@ -118,14 +118,37 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid ReadModuleId { get; set; } } - public class GetCRCBeConfirmListInDto + public class GetClinicalDateListOutDto + { + public string ClinicalDataSetName { get; set; } + + public List DateList { get; set; } + } + + + public class GetCRCBeConfirmListInDto { public Guid TrialId { get; set; } public Guid ReadModuleId { get; set; } } - public class GetCRCBeConfirm: GetCRCBeConfirmListOutDto + + public class GetClinicalTableListInDto + { + public Guid TrialId { get; set; } + + public Guid ReadModuleId { get; set; } + } + + + public class GetClinicalTableListOutDto: GetClinicalQuestionAnswerListOutDto + { + public string ClinicalDataSetName { get; set; } + } + + + public class GetCRCBeConfirm: GetCRCBeConfirmListOutDto { public Guid ReadModuleId { get; set; } }