Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
14fb158e13
|
@ -10,6 +10,7 @@ using System.Linq.Expressions;
|
||||||
using IRaCIS.Core.Infrastructure;
|
using IRaCIS.Core.Infrastructure;
|
||||||
using System.Linq.Dynamic.Core;
|
using System.Linq.Dynamic.Core;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
|
|
||||||
namespace IRaCIS.Application.Services
|
namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
|
@ -84,7 +85,7 @@ namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
var existsQuery = _readingClinicalDataRepository
|
var existsQuery = _readingClinicalDataRepository
|
||||||
.WhereIf(indto.Id != null, x => x.Id != indto.Id)
|
.WhereIf(indto.Id != null, x => x.Id != indto.Id)
|
||||||
.Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId && x.ReadingId == indto.ReadingId&&x.StudyId==indto.StudyId);
|
.Where(x => x.ClinicalDataTrialSetId == indto.ClinicalDataTrialSetId && x.ReadingId == indto.ReadingId && x.StudyId == indto.StudyId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -189,60 +190,60 @@ namespace IRaCIS.Application.Services
|
||||||
public async Task<List<GetCRCClinicalDataOutDto>> GetStudyClinicalData(GetStudyClinicalDataInDto inDto)
|
public async Task<List<GetCRCClinicalDataOutDto>> GetStudyClinicalData(GetStudyClinicalDataInDto inDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
var cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
|
var cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
|
||||||
.Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study).Select(x => new GetCRCClinicalDataOutDto()
|
.Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study).Select(x => new GetCRCClinicalDataOutDto()
|
||||||
{
|
{
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||||
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
||||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||||
ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
||||||
ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
|
ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
|
||||||
FileName = x.ClinicalDataTrialSet.FileName,
|
FileName = x.ClinicalDataTrialSet.FileName,
|
||||||
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
||||||
Path = x.ClinicalDataTrialSet.Path,
|
Path = x.ClinicalDataTrialSet.Path,
|
||||||
IsBlind = x.IsBlind,
|
IsBlind = x.IsBlind,
|
||||||
IsComplete = x.IsComplete,
|
IsComplete = x.IsComplete,
|
||||||
ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||||
{
|
{
|
||||||
CheckDate = y.CheckDate,
|
CheckDate = y.CheckDate,
|
||||||
ClinicalFormId = y.Id
|
ClinicalFormId = y.Id
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||||
{
|
{
|
||||||
Id = y.Id,
|
Id = y.Id,
|
||||||
Size = y.Size,
|
Size = y.Size,
|
||||||
Type = y.Type,
|
Type = y.Type,
|
||||||
FileName = y.FileName,
|
FileName = y.FileName,
|
||||||
Path = y.Path,
|
Path = y.Path,
|
||||||
CreateTime = y.CreateTime,
|
CreateTime = y.CreateTime,
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousOtherView>(_mapper.ConfigurationProvider).ToListAsync();
|
var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousOtherView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousSurgeryView>(_mapper.ConfigurationProvider).ToListAsync();
|
var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousSurgeryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
|
||||||
foreach (var item in cRCClinicalDataList)
|
foreach (var item in cRCClinicalDataList)
|
||||||
{
|
{
|
||||||
item.ClinicalTableData = new ClinicalDataTable()
|
item.ClinicalTableData = new ClinicalDataTable()
|
||||||
{
|
{
|
||||||
PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
||||||
PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
||||||
PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
return cRCClinicalDataList;
|
return cRCClinicalDataList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取CRC上传的文件
|
/// 获取CRC上传的文件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<List<GetCRCClinicalDataOutDto>> GetCRCClinicalData(GetCRCClinicalDataInDto inDto)
|
public async Task<List<GetCRCClinicalDataOutDto>> GetCRCClinicalData(GetCRCClinicalDataInDto inDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -258,26 +259,27 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||||
.Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC);
|
.Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await query
|
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await query
|
||||||
.Select(x => new GetCRCClinicalDataOutDto()
|
.Select(x => new GetCRCClinicalDataOutDto()
|
||||||
{
|
{
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us) ,
|
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||||
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
||||||
ClinicalDataLevel=x.ClinicalDataTrialSet.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||||
ClinicalDataSetEnName =x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
||||||
ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
|
ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
|
||||||
FileName = x.ClinicalDataTrialSet.FileName,
|
FileName = x.ClinicalDataTrialSet.FileName,
|
||||||
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
||||||
Path = x.ClinicalDataTrialSet.Path,
|
Path = x.ClinicalDataTrialSet.Path,
|
||||||
IsBlind = x.IsBlind,
|
IsBlind = x.IsBlind,
|
||||||
IsComplete = x.IsComplete,
|
IsComplete = x.IsComplete,
|
||||||
ClinicalFromList=x.Subject.ClinicalFormList.Where(y=>y.ReadingId==x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y=> new ClinicalFromData() {
|
ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||||
CheckDate=y.CheckDate,
|
{
|
||||||
ClinicalFormId=y.Id
|
CheckDate = y.CheckDate,
|
||||||
|
ClinicalFormId = y.Id
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||||
{
|
{
|
||||||
|
@ -288,7 +290,7 @@ namespace IRaCIS.Application.Services
|
||||||
Type = y.Type,
|
Type = y.Type,
|
||||||
CreateTime = y.CreateTime,
|
CreateTime = y.CreateTime,
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
|
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
@ -310,7 +312,7 @@ namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
cRCClinicalDataList = cRCClinicalDataList.Where(x => !(x.ClinicalFromList.Count() == 0 && x.ClinicalUploadType == ClinicalUploadType.Structuring)).ToList();
|
cRCClinicalDataList = cRCClinicalDataList.Where(x => !(x.ClinicalFromList.Count() == 0 && x.ClinicalUploadType == ClinicalUploadType.Structuring)).ToList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return cRCClinicalDataList;
|
return cRCClinicalDataList;
|
||||||
}
|
}
|
||||||
|
@ -367,7 +369,7 @@ namespace IRaCIS.Application.Services
|
||||||
//}
|
//}
|
||||||
|
|
||||||
data.IsBlind = inDto.IsBlind;
|
data.IsBlind = inDto.IsBlind;
|
||||||
data.IsComplete=inDto.IsComplete;
|
data.IsComplete = inDto.IsComplete;
|
||||||
data.IsSign = true;
|
data.IsSign = true;
|
||||||
data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
|
data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
|
||||||
|
|
||||||
|
@ -385,8 +387,8 @@ namespace IRaCIS.Application.Services
|
||||||
//await this.iServiceProvider.GetService<IReadingImageTaskService>().AddOncologyTask(readingId);
|
//await this.iServiceProvider.GetService<IReadingImageTaskService>().AddOncologyTask(readingId);
|
||||||
|
|
||||||
//如果先生成了任务,再签名subject级别 PM 临床数据,那么会导致其他标准的任务签名状态无法得到维护
|
//如果先生成了任务,再签名subject级别 PM 临床数据,那么会导致其他标准的任务签名状态无法得到维护
|
||||||
|
|
||||||
if (await _repository.AnyAsync<ClinicalDataTrialSet>(t=>t.Id == data.ClinicalDataTrialSetId && t.UploadRole == UploadRole.PM && t.ClinicalDataLevel == ClinicalLevel.Subject))
|
if (await _repository.AnyAsync<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId && t.UploadRole == UploadRole.PM && t.ClinicalDataLevel == ClinicalLevel.Subject))
|
||||||
{
|
{
|
||||||
var needDealTrialReadingCriterionIdList = _repository.Where<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId)
|
var needDealTrialReadingCriterionIdList = _repository.Where<ClinicalDataTrialSet>(t => t.Id == data.ClinicalDataTrialSetId)
|
||||||
.SelectMany(t => t.TrialClinicalDataSetCriteriaList)
|
.SelectMany(t => t.TrialClinicalDataSetCriteriaList)
|
||||||
|
@ -412,7 +414,7 @@ namespace IRaCIS.Application.Services
|
||||||
public async Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId)
|
public async Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId)
|
||||||
{
|
{
|
||||||
//获取确认的临床数据配置
|
//获取确认的临床数据配置
|
||||||
var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList();
|
var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList();
|
||||||
|
|
||||||
//var criterionType = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCritrialId).Select(t => t.CriterionType).FirstOrDefaultAsync();
|
//var criterionType = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCritrialId).Select(t => t.CriterionType).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
@ -427,7 +429,7 @@ namespace IRaCIS.Application.Services
|
||||||
{
|
{
|
||||||
var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync();
|
var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//判断是否基线
|
//判断是否基线
|
||||||
if (isBaseLine)
|
if (isBaseLine)
|
||||||
|
@ -513,7 +515,7 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
//有序阅片才维护 IsFrontTaskNeedSignButNotSign 这个状态
|
//有序阅片才维护 IsFrontTaskNeedSignButNotSign 这个状态
|
||||||
if (_readingQuestionCriterionTrialRepository.Any(t=>t.Id==trialReadingCritrialId && t.IsReadingTaskViewInOrder == ReadingOrder.InOrder))
|
if (_readingQuestionCriterionTrialRepository.Any(t => t.Id == trialReadingCritrialId && t.IsReadingTaskViewInOrder == ReadingOrder.InOrder))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@ -538,8 +540,8 @@ namespace IRaCIS.Application.Services
|
||||||
(t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
(t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
||||||
|
|
||||||
// 前序存在 未一致性核查未通过的
|
// 前序存在 未一致性核查未通过的
|
||||||
|| t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum>sv.VisitNum)
|
|| t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum)
|
||||||
|
|
||||||
))
|
))
|
||||||
.Select(t => t.Id);
|
.Select(t => t.Id);
|
||||||
|
|
||||||
|
@ -551,7 +553,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
|
|
||||||
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
||||||
|
|
||||||
.Where(t => t.IsFrontTaskNeedSignButNotSign == true &&
|
.Where(t => t.IsFrontTaskNeedSignButNotSign == true &&
|
||||||
|
|
||||||
//前序任务 不存在需要签名 但是没签名
|
//前序任务 不存在需要签名 但是没签名
|
||||||
|
@ -570,14 +572,14 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 废弃 接口合并到签名哪里
|
// 废弃 接口合并到签名哪里
|
||||||
|
|
||||||
[HttpPut]
|
[HttpPut]
|
||||||
public async Task<IResponseOutput> PMClinicalDataConfirm(PMClinicalDataConfirmCommand command)
|
public async Task<IResponseOutput> PMClinicalDataConfirm(PMClinicalDataConfirmCommand command)
|
||||||
{
|
{
|
||||||
|
@ -631,7 +633,7 @@ namespace IRaCIS.Application.Services
|
||||||
keyValuePairs.Add(ModuleTypeEnum.Oncology, ClinicalLevel.OncologyRead);
|
keyValuePairs.Add(ModuleTypeEnum.Oncology, ClinicalLevel.OncologyRead);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var usedIdsQuery = _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.ReadingId && x.Id != inDto.ReadingClinicalDataId).Select(x => x.ClinicalDataTrialSetId);
|
var usedIdsQuery = _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.ReadingId && x.Id != inDto.ReadingClinicalDataId).Select(x => x.ClinicalDataTrialSetId);
|
||||||
|
@ -646,20 +648,20 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
.WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||||
.WhereIf(!inDto.IsVisit, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
.WhereIf(!inDto.IsVisit, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||||
.WhereIf(readModule != null, x => x.ClinicalDataLevel == keyValuePairs[readModule!.ModuleType])
|
.WhereIf(readModule != null, x => x.ClinicalDataLevel == keyValuePairs[readModule!.ModuleType])
|
||||||
.WhereIf(inDto.TrialReadingCriterionId!=null,x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId== inDto.TrialReadingCriterionId))
|
.WhereIf(inDto.TrialReadingCriterionId != null, x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
|
||||||
//.WhereIf(criterion!=null,x=>x.CriterionEnumListStr.Contains($"|{(int)criterion.CriterionType}|"))
|
//.WhereIf(criterion!=null,x=>x.CriterionEnumListStr.Contains($"|{(int)criterion.CriterionType}|"))
|
||||||
.Select(x => new GetTrialClinicalDataSelectOutDto()
|
.Select(x => new GetTrialClinicalDataSelectOutDto()
|
||||||
{
|
{
|
||||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataLevel,
|
||||||
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||||
ClinicalDataSetEnName=x.ClinicalDataSetEnName,
|
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
||||||
ClinicalUploadType = x.ClinicalUploadType,
|
ClinicalUploadType = x.ClinicalUploadType,
|
||||||
FileName = x.FileName,
|
FileName = x.FileName,
|
||||||
Path = x.Path,
|
Path = x.Path,
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
CriterionEnumList = x.CriterionEnumList,
|
CriterionEnumList = x.CriterionEnumList,
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
||||||
return clinicalList;
|
return clinicalList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -713,8 +715,8 @@ namespace IRaCIS.Application.Services
|
||||||
{ClinicalLevel.ImageRead,2 },
|
{ClinicalLevel.ImageRead,2 },
|
||||||
{ClinicalLevel.OncologyRead,3 },
|
{ClinicalLevel.OncologyRead,3 },
|
||||||
{ClinicalLevel.Subject,4 },
|
{ClinicalLevel.Subject,4 },
|
||||||
{ClinicalLevel.Study,5 },
|
{ClinicalLevel.Study,5 },
|
||||||
};
|
};
|
||||||
|
|
||||||
result = result.OrderBy(x => keys[x.ClinicalDataLevel]).ToList();
|
result = result.OrderBy(x => keys[x.ClinicalDataLevel]).ToList();
|
||||||
|
|
||||||
|
@ -749,7 +751,14 @@ namespace IRaCIS.Application.Services
|
||||||
var isBaseLine = await _subjectVisitRepository.AnyAsync(x => x.Id == inDto.ReadingId && x.IsBaseLine);
|
var isBaseLine = await _subjectVisitRepository.AnyAsync(x => x.Id == inDto.ReadingId && x.IsBaseLine);
|
||||||
|
|
||||||
|
|
||||||
var result = await this.GetReadingClinicalList(inDto);
|
var result = await this.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() {
|
||||||
|
ClinicalDataTrialSetId = inDto.ClinicalDataTrialSetId,
|
||||||
|
GetClinicalType=inDto.GetClinicalType,
|
||||||
|
SubjectId=inDto.SubjectId,
|
||||||
|
TrialId=inDto.TrialId,
|
||||||
|
ReadingId=inDto.ReadingId,
|
||||||
|
TrialReadingCriterionId = inDto.TrialReadingCriterionId,
|
||||||
|
});
|
||||||
var readingIds = result.Select(x => x.ReadingId).ToList();
|
var readingIds = result.Select(x => x.ReadingId).ToList();
|
||||||
|
|
||||||
var previousHistoryList = await _previousHistoryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
var previousHistoryList = await _previousHistoryRepository.Where(x => readingIds.Contains(x.SubjectVisitId)).ProjectTo<PreviousHistoryView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
@ -787,6 +796,7 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
||||||
.WhereIf(inDto.SelectIsSign, x => x.IsSign == true)
|
.WhereIf(inDto.SelectIsSign, x => x.IsSign == true)
|
||||||
.Where(x => x.ReadingId == inDto.ReadingId)
|
.Where(x => x.ReadingId == inDto.ReadingId)
|
||||||
|
.WhereIf(inDto.TrialReadingCriterionId!=null, x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId))
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||||
{
|
{
|
||||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||||
|
@ -802,6 +812,10 @@ namespace IRaCIS.Application.Services
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
||||||
IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
|
IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
|
||||||
|
IsBlind = x.IsBlind,
|
||||||
|
IsComplete = x.IsComplete,
|
||||||
|
FileCount = x.FileCount,
|
||||||
|
ReadingClinicalDataState = x.ReadingClinicalDataState,
|
||||||
FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
||||||
{
|
{
|
||||||
Id = y.Id,
|
Id = y.Id,
|
||||||
|
@ -809,20 +823,21 @@ namespace IRaCIS.Application.Services
|
||||||
Path = y.Path,
|
Path = y.Path,
|
||||||
CreateTime = y.CreateTime,
|
CreateTime = y.CreateTime,
|
||||||
}).ToList(),
|
}).ToList(),
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var result = new List<GetReadingClinicalDataListOutDto>();
|
var result = new List<GetReadingClinicalDataListOutDto>();
|
||||||
if (!inDto.IsOnlyGetCRCReadModule)
|
if (!inDto.IsOnlyGetCRCReadModule)
|
||||||
{
|
{
|
||||||
result = await resultQuery.ToListAsync();
|
result = await resultQuery.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
var readingIds = result.Select(x => x.ReadingId).ToList();
|
var readingIds = result.Select(x => x.ReadingId).ToList();
|
||||||
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId??default(Guid))).ToListAsync();
|
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync();
|
||||||
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => {
|
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x =>
|
||||||
|
{
|
||||||
|
|
||||||
x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
||||||
{
|
{
|
||||||
CheckDate = y.CheckDate,
|
CheckDate = y.CheckDate,
|
||||||
ClinicalFormId = y.Id
|
ClinicalFormId = y.Id
|
||||||
|
@ -833,35 +848,37 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
// 这里处理CRC上传 阅片期的临床数据
|
// 这里处理CRC上传 阅片期的临床数据
|
||||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId)
|
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId)
|
||||||
.WhereIf(inDto.SelectIsSign,x=>x.IsPMConfirm)
|
//.Where(x=>x.IsCRCConfirm)
|
||||||
.WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm)
|
.WhereIf(inDto.SelectIsSign, x => x.IsPMConfirm)
|
||||||
.FirstOrDefaultAsync();
|
.WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
if (readModule != null)
|
if (readModule != null)
|
||||||
{
|
{
|
||||||
var moduleCriterionFromList = await _readModuleCriterionFromRepository
|
var moduleCriterionFromList = await _readModuleCriterionFromRepository
|
||||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId)
|
||||||
.Where(x => x.ReadModuleId == readModule.Id).Select(x => new{
|
.Where(x => x.ReadModuleId == readModule.Id).Select(x => new
|
||||||
ClinicalFormId= x.ClinicalFormId,
|
{
|
||||||
CheckDate= x.ClinicalForm.CheckDate,
|
ClinicalFormId = x.ClinicalFormId,
|
||||||
ClinicalDataTrialSetId= x.ClinicalForm.ClinicalDataTrialSetId
|
CheckDate = x.ClinicalForm.CheckDate,
|
||||||
|
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
|
||||||
|
|
||||||
}).ToListAsync();
|
|
||||||
|
}).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
|
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring)
|
||||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
|
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead)
|
||||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
||||||
.Where(x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId==readModule.TrialReadingCriterionId))
|
.Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||||
{
|
{
|
||||||
|
|
||||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataLevel,
|
||||||
SubjectId = inDto.SubjectId,
|
SubjectId = inDto.SubjectId,
|
||||||
ReadingId = default(Guid),
|
ReadingId = default(Guid),
|
||||||
IsCRCApplicationRevoke=readModule.IsCRCApplicationRevoke,
|
IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke,
|
||||||
IsCRCConfirm= readModule.IsCRCConfirm,
|
IsCRCConfirm = readModule.IsCRCConfirm,
|
||||||
IsPMConfirm= readModule.IsPMConfirm,
|
IsPMConfirm = readModule.IsPMConfirm,
|
||||||
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
||||||
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
||||||
ClinicalDataTrialSetId = x.Id,
|
ClinicalDataTrialSetId = x.Id,
|
||||||
|
@ -872,7 +889,7 @@ namespace IRaCIS.Application.Services
|
||||||
IsCRCUpload = x.UploadRole == UploadRole.CRC,
|
IsCRCUpload = x.UploadRole == UploadRole.CRC,
|
||||||
IsNeedMerge = true,
|
IsNeedMerge = true,
|
||||||
ReadModuleId = readModule.Id,
|
ReadModuleId = readModule.Id,
|
||||||
TrialClinicalDataSetCriteriaList=x.TrialClinicalDataSetCriteriaList,
|
TrialClinicalDataSetCriteriaList = x.TrialClinicalDataSetCriteriaList,
|
||||||
//FileCount = x.FileCount,
|
//FileCount = x.FileCount,
|
||||||
|
|
||||||
//ReadingClinicalDataState = x.ReadingClinicalDataState,
|
//ReadingClinicalDataState = x.ReadingClinicalDataState,
|
||||||
|
@ -901,8 +918,8 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
result.AddRange(clinicalresult);
|
result.AddRange(clinicalresult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -923,7 +940,7 @@ namespace IRaCIS.Application.Services
|
||||||
result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
|
result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
|
||||||
break;
|
break;
|
||||||
case GetClinicalType.CRCConfirm:
|
case GetClinicalType.CRCConfirm:
|
||||||
result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList();
|
result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList();
|
||||||
break;
|
break;
|
||||||
case GetClinicalType.HasSign:
|
case GetClinicalType.HasSign:
|
||||||
result = result.Where(x => x.IsSign).ToList();
|
result = result.Where(x => x.IsSign).ToList();
|
||||||
|
@ -949,155 +966,6 @@ namespace IRaCIS.Application.Services
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取临床数据集合
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
[NonDynamicMethod]
|
|
||||||
public async Task<List<GetReadingClinicalDataListOutDto>> GetReadingClinicalList(GetReadingClinicalDataListIndto inDto)
|
|
||||||
{
|
|
||||||
var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
|
|
||||||
.Where(x => x.ReadingId == inDto.ReadingId)
|
|
||||||
.WhereIf(inDto.ClinicalDataTrialSetId!=null, x=>x.ClinicalDataTrialSetId==inDto.TrialReadingCriterionId)
|
|
||||||
.Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t=>t.TrialReadingCriterionId==inDto.TrialReadingCriterionId))
|
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
|
||||||
{
|
|
||||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
|
||||||
SubjectId = x.SubjectId,
|
|
||||||
ReadingId = x.ReadingId,
|
|
||||||
ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
|
||||||
ClinicalDataSetEnName =x.ClinicalDataTrialSet.ClinicalDataSetEnName,
|
|
||||||
ClinicalDataTrialSetId = x.ClinicalDataTrialSetId,
|
|
||||||
IsSign = x.IsSign,
|
|
||||||
ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType,
|
|
||||||
Id = x.Id,
|
|
||||||
UploadRole = x.ClinicalDataTrialSet.UploadRole,
|
|
||||||
IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC,
|
|
||||||
IsBlind = x.IsBlind,
|
|
||||||
IsComplete = x.IsComplete,
|
|
||||||
FileCount = x.FileCount,
|
|
||||||
|
|
||||||
ReadingClinicalDataState = x.ReadingClinicalDataState,
|
|
||||||
|
|
||||||
FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
|
||||||
{
|
|
||||||
Id = y.Id,
|
|
||||||
FileName = y.FileName,
|
|
||||||
Path = y.Path,
|
|
||||||
CreateTime = y.CreateTime,
|
|
||||||
}).ToList()
|
|
||||||
});
|
|
||||||
|
|
||||||
var result = await resultQuery.ToListAsync();
|
|
||||||
|
|
||||||
|
|
||||||
var readingIds = result.Select(x => x.ReadingId).ToList();
|
|
||||||
var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync();
|
|
||||||
result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => {
|
|
||||||
|
|
||||||
x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData()
|
|
||||||
{
|
|
||||||
CheckDate = y.CheckDate,
|
|
||||||
ClinicalFormId = y.Id
|
|
||||||
}).ToList();
|
|
||||||
x.FileCount = x.ClinicalFromList.Count;
|
|
||||||
});
|
|
||||||
|
|
||||||
// 这里处理CRC上传 阅片期的临床数据
|
|
||||||
var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId&&x.IsCRCConfirm)
|
|
||||||
.FirstOrDefaultAsync();
|
|
||||||
if (readModule != null)
|
|
||||||
{
|
|
||||||
var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id)
|
|
||||||
|
|
||||||
.WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId)
|
|
||||||
.Select(x => new {
|
|
||||||
ClinicalFormId = x.ClinicalFormId,
|
|
||||||
CheckDate = x.ClinicalForm.CheckDate,
|
|
||||||
ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId
|
|
||||||
|
|
||||||
|
|
||||||
}).ToListAsync();
|
|
||||||
|
|
||||||
|
|
||||||
var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC&&x.ClinicalUploadType== ClinicalUploadType.Structuring)
|
|
||||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading,x=>x.ClinicalDataLevel== ClinicalLevel.ImageRead)
|
|
||||||
.WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead)
|
|
||||||
.Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId))
|
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
|
||||||
{
|
|
||||||
|
|
||||||
ClinicalDataLevel = x.ClinicalDataLevel,
|
|
||||||
SubjectId = inDto.SubjectId,
|
|
||||||
ReadingId = default(Guid),
|
|
||||||
IsCRCApplicationRevoke= readModule.IsCRCApplicationRevoke,
|
|
||||||
IsCRCConfirm = readModule.IsCRCConfirm,
|
|
||||||
IsPMConfirm=readModule.IsPMConfirm,
|
|
||||||
|
|
||||||
ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us),
|
|
||||||
ClinicalDataSetEnName = x.ClinicalDataSetEnName,
|
|
||||||
ClinicalDataTrialSetId = x.Id,
|
|
||||||
IsSign = readModule.IsPMConfirm,
|
|
||||||
ClinicalUploadType = x.ClinicalUploadType,
|
|
||||||
Id = default(Guid),
|
|
||||||
UploadRole = x.UploadRole,
|
|
||||||
IsCRCUpload = x.UploadRole == UploadRole.CRC,
|
|
||||||
IsNeedMerge = true,
|
|
||||||
ReadModuleId = readModule.Id,
|
|
||||||
//FileCount = x.FileCount,
|
|
||||||
|
|
||||||
//ReadingClinicalDataState = x.ReadingClinicalDataState,
|
|
||||||
|
|
||||||
//FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto()
|
|
||||||
//{
|
|
||||||
// Id = y.Id,
|
|
||||||
// FileName = y.FileName,
|
|
||||||
// Path = y.Path,
|
|
||||||
// CreateTime = y.CreateTime,
|
|
||||||
//}).ToList()
|
|
||||||
|
|
||||||
}).ToListAsync();
|
|
||||||
|
|
||||||
clinicalresult.ForEach(x =>
|
|
||||||
{
|
|
||||||
x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count();
|
|
||||||
x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData
|
|
||||||
{
|
|
||||||
CheckDate = x.CheckDate,
|
|
||||||
ClinicalFormId = x.ClinicalFormId
|
|
||||||
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
x.IsSign = readModule.IsPMConfirm ?true : false;
|
|
||||||
x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked;
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
result.AddRange(clinicalresult);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (inDto.GetClinicalType != null)
|
|
||||||
{
|
|
||||||
switch (inDto.GetClinicalType)
|
|
||||||
{
|
|
||||||
case GetClinicalType.PMUpload:
|
|
||||||
result = result.Where(x => x.UploadRole == UploadRole.PM).ToList();
|
|
||||||
break;
|
|
||||||
case GetClinicalType.CRCConfirm:
|
|
||||||
result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList();
|
|
||||||
break;
|
|
||||||
case GetClinicalType.HasSign:
|
|
||||||
result = result.Where(x => x.IsSign).ToList();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
|
|
||||||
public class GetReadingOrTaskClinicalDataListInDto
|
public class GetReadingOrTaskClinicalDataListInDto
|
||||||
{
|
{
|
||||||
[NotDefault]
|
|
||||||
|
public Guid? TrialReadingCriterionId { get; set; }
|
||||||
|
|
||||||
|
[NotDefault]
|
||||||
public Guid SubjectId { get; set; }
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
[NotDefault]
|
[NotDefault]
|
||||||
|
|
|
@ -22,7 +22,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
// Task<(List<GetReadingClinicalDataListOutDto>, object)> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto);
|
// Task<(List<GetReadingClinicalDataListOutDto>, object)> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto);
|
||||||
|
|
||||||
Task<List<GetReadingClinicalDataListOutDto>> GetReadingClinicalList(GetReadingClinicalDataListIndto inDto);
|
|
||||||
|
|
||||||
Task<List<GetCRCClinicalDataOutDto>> GetStudyClinicalData(GetStudyClinicalDataInDto inDto);
|
Task<List<GetCRCClinicalDataOutDto>> GetStudyClinicalData(GetStudyClinicalDataInDto inDto);
|
||||||
|
|
||||||
|
|
|
@ -470,7 +470,7 @@ namespace IRaCIS.Application.Services
|
||||||
if (finishReading)
|
if (finishReading)
|
||||||
{
|
{
|
||||||
// 获取临床数据
|
// 获取临床数据
|
||||||
var clinicalData = await _readingClinicalDataService.GetReadingClinicalList(new GetReadingClinicalDataListIndto()
|
var clinicalData = await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto()
|
||||||
{
|
{
|
||||||
SubjectId = readModuleInfo.SubjectId,
|
SubjectId = readModuleInfo.SubjectId,
|
||||||
ReadingId = readModuleInfo.Id,
|
ReadingId = readModuleInfo.Id,
|
||||||
|
|
Loading…
Reference in New Issue