S-002 临床数据修改

Uat_Study
he 2023-07-04 15:24:34 +08:00
parent 2930c2b640
commit 8358d67f3e
2 changed files with 52 additions and 20 deletions

View File

@ -405,27 +405,52 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Ok(true); return ResponseOutput.Ok(true);
} }
/// <summary> /// <summary>
/// 获取CRC确认列表 /// 删除表单数据
/// </summary> /// </summary>
/// <param name="inDto"></param> /// <param name="inDto"></param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception>
[HttpPost] [HttpPost]
public async Task<List<GetCRCConfirmListOutDto>> GetCRCConfirmList(GetCRCConfirmListInDto inDto) public async Task<IResponseOutput> DeleteClinicalForm(DeleteClinicalFormInDto inDto)
{ {
List<GetCRCConfirmListOutDto> result = await _readModuleRepository.Where(x => x.TrialId == inDto.TrialId)
.WhereIf(inDto.ReadModuleId!=null,x=>x.Id==inDto.ReadModuleId) if (await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId))
.Select(x => new GetCRCConfirmListOutDto() {
{ throw new BusinessValidationFailedException("当前表单已确认,无法删除!");
SubjectId= x.SubjectId, }
IsCRCConfirm = x.IsCRCConfirm,
LatestScanDate = x.SubjectVisit.LatestScanDate, await _clinicalFormRepository.BatchDeleteNoTrackingAsync(x => x.Id == inDto.ClinicalFormId);
ReadingSetType = x.ReadingSetType, await _clinicalQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.ClinicalFormId == inDto.ClinicalFormId);
IsPMConfirm = x.IsPMConfirm, await _clinicalAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => x.ClinicalFormId == inDto.ClinicalFormId);
SubjectCode=x.Subject.Code, await _clinicalTableAnswerRepository.BatchDeleteNoTrackingAsync(x => x.ClinicalFormId == inDto.ClinicalFormId);
ReadModuleId = x.Id, return ResponseOutput.Ok(true);
}).OrderBy(x => x.LatestScanDate).ToListAsync(); }
/// <summary>
/// 获取CRC确认列表
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<GetCRCConfirmListOutDto>> GetCRCConfirmList(GetCRCConfirmListInDto inDto)
{
var query = _readModuleRepository.Where(x => x.TrialId == inDto.TrialId)
.WhereIf(inDto.ReadModuleId != null, x => x.Id == inDto.ReadModuleId)
.Select(x => new GetCRCConfirmListOutDto()
{
SubjectId = x.SubjectId,
IsCRCConfirm = x.IsCRCConfirm,
LatestScanDate = x.SubjectVisit.LatestScanDate,
ReadingSetType = x.ReadingSetType,
IsPMConfirm = x.IsPMConfirm,
SubjectCode = x.Subject.Code,
ReadModuleId = x.Id,
});
var result = await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, string.IsNullOrWhiteSpace(inDto.SortField) ? nameof(GetCRCConfirmListOutDto.LatestScanDate) : inDto.SortField, inDto.Asc);
var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId) var formList = await _clinicalFormRepository.Where(x => x.TrialId == inDto.TrialId)
.Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) .Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
.Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead) .Where(x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead)
@ -435,11 +460,12 @@ namespace IRaCIS.Core.Application.Service
CheckDate = x.CheckDate, CheckDate = x.CheckDate,
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel, ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
ClinicalFormId = x.Id, ClinicalFormId = x.Id,
ClinicalDataSetName=x.ClinicalDataTrialSet.ClinicalDataSetName, ClinicalDataTrialSetId= x.ClinicalDataTrialSet.Id,
ClinicalDataSetName =x.ClinicalDataTrialSet.ClinicalDataSetName,
ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName, ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName,
}).ToListAsync(); }).ToListAsync();
var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).Include(x=>x.ClinicalForm).Include(x=>x.ClinicalForm.ClinicalDataTrialSet).ToListAsync(); var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).Include(x=>x.ClinicalForm).Include(x=>x.ClinicalForm.ClinicalDataTrialSet).ToListAsync();
result.ForEach(x => result.CurrentPageData.ForEach(x =>
{ {
if (x.IsCRCConfirm) if (x.IsCRCConfirm)
{ {
@ -448,6 +474,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetName, ClinicalDataSetName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetName,
ClinicalDataSetEnName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetEnName, ClinicalDataSetEnName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetEnName,
ClinicalFormId=y.ClinicalFormId, ClinicalFormId=y.ClinicalFormId,
ClinicalDataTrialSetId=y.ClinicalForm.ClinicalDataTrialSet.Id,
}).ToList(); }).ToList();
} }
else else
@ -461,6 +488,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetName = y.ClinicalDataSetName, ClinicalDataSetName = y.ClinicalDataSetName,
ClinicalDataSetEnName = y.ClinicalDataSetEnName, ClinicalDataSetEnName = y.ClinicalDataSetEnName,
ClinicalFormId = y.ClinicalFormId, ClinicalFormId = y.ClinicalFormId,
ClinicalDataTrialSetId = y.ClinicalDataTrialSetId,
}).ToList(); }).ToList();
} }
else else
@ -472,6 +500,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetName = y.ClinicalDataSetName, ClinicalDataSetName = y.ClinicalDataSetName,
ClinicalDataSetEnName = y.ClinicalDataSetEnName, ClinicalDataSetEnName = y.ClinicalDataSetEnName,
ClinicalFormId = y.ClinicalFormId, ClinicalFormId = y.ClinicalFormId,
ClinicalDataTrialSetId = y.ClinicalDataTrialSetId,
}).ToList(); }).ToList();
} }
} }
@ -490,8 +519,11 @@ namespace IRaCIS.Core.Application.Service
var result = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto() var result = (await this.GetCRCConfirmList(new GetCRCConfirmListInDto()
{ {
ReadModuleId = inDto.ReadModuleId, ReadModuleId = inDto.ReadModuleId,
TrialId = inDto.TrialId TrialId = inDto.TrialId,
})).SelectMany(x => x.ClinicalFormIdList).ToList(); PageIndex=1,
PageSize=9999,
})).CurrentPageData.SelectMany(x => x.ClinicalFormIdList).ToList();
result.ForEach(x => { result.ForEach(x => {

View File

@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string Answer { get; set; } = string.Empty; public string Answer { get; set; } = string.Empty;
} }
public class GetCRCConfirmListInDto public class GetCRCConfirmListInDto:PageInput
{ {
public Guid TrialId { get; set; } public Guid TrialId { get; set; }