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; }
}