diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs index e9deab588..bbeaf4e35 100644 --- a/IRaCIS.Core.API/Controllers/InspectionController.cs +++ b/IRaCIS.Core.API/Controllers/InspectionController.cs @@ -308,11 +308,28 @@ namespace IRaCIS.Core.API.Controllers } - /// - /// 提交结构化录入并签名 - /// - /// - /// + /// + /// PM签名一致性分析临床数据 + /// + /// + /// + [HttpPost, Route("Inspection/ReadingClinicalData/SignConsistencyAnalysisReadingClinicalData")] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] + + [UnitOfWork] + public async Task SignConsistencyAnalysisReadingClinicalData(DataInspectionDto opt) + { + var singid = await _inspectionService.RecordSing(opt.SignInfo); + var result = await _readingClinicalDataService.SignConsistencyAnalysisReadingClinicalData(opt.Data); + await _inspectionService.CompletedSign(singid, result); + return result; + } + + /// + /// 提交结构化录入并签名 + /// + /// + /// [HttpPost, Route("Inspection/ClinicalAnswer/SubmitClinicalFormAndSign")] [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index cb6ef0f19..f33e41df5 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -733,10 +733,11 @@ namespace IRaCIS.Application.Services if (inDto.ReadingId == null) { var visitTask = await _visitTaskRepository.FirstOrDefaultAsync(x => x.Id == inDto.VisitTaskId); - inDto.ReadingId = visitTask.SouceReadModuleId ?? visitTask.SourceSubjectVisitId; + readingNameOrTaskBlindName = visitTask.TaskBlindName; } - + inDto.SelectIsSign = false; + var result = await GetClinicalDataList(inDto); if (readingNameOrTaskBlindName.IsNullOrEmpty()) { readingNameOrTaskBlindName = await _subjectVisitRepository.Where(x => x.Id == inDto.ReadingId).Select(x => x.VisitName).FirstOrDefaultAsync(); @@ -746,8 +747,7 @@ namespace IRaCIS.Application.Services } } - inDto.SelectIsSign = false; - var result = await GetClinicalDataList(inDto); + var readingIds = result.Select(x => x.ReadingId).ToList(); @@ -878,8 +878,9 @@ namespace IRaCIS.Application.Services CriterionEnumList = x.ClinicalDataTrialSet.CriterionEnumList, TrialClinicalDataSetCriteriaList = x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList, Id = x.Id, - UploadRole = x.ClinicalDataTrialSet.UploadRole, - IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC, + // 这里现在都是PM上传的 前端会判断是否可以上传 + UploadRole = UploadRole.PM, + IsCRCUpload = false, IsBlind = x.IsBlind, IsComplete = x.IsComplete, FileCount = x.FileCount, @@ -889,6 +890,8 @@ namespace IRaCIS.Application.Services Id = y.Id, FileName = y.FileName, Path = y.Path, + Size=y.Size, + Type=y.Type, CreateTime = y.CreateTime, }).ToList(), }); @@ -928,6 +931,8 @@ namespace IRaCIS.Application.Services Id = y.Id, FileName = y.FileName, Path = y.Path, + Size = y.Size, + Type = y.Type, CreateTime = y.CreateTime, }).ToList(), }).ToListAsync(); @@ -968,6 +973,8 @@ namespace IRaCIS.Application.Services Id = y.Id, FileName = y.FileName, Path = y.Path, + Size = y.Size, + Type = y.Type, CreateTime = y.CreateTime, }).ToList(), @@ -1245,7 +1252,8 @@ namespace IRaCIS.Application.Services { IsSign = true, IsBlind = inDto.IsBlind, - IsComplete = inDto.IsComplete + IsComplete = inDto.IsComplete, + ReadingClinicalDataState= ReadingClinicalDataStatus.HaveSigned, }); await _readingClinicalDataPDFRepository.SaveChangesAsync(); return ResponseOutput.Ok(pdfCount); diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs index 795bab0fc..521a9d843 100644 --- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingClinicalDataService.cs @@ -29,5 +29,7 @@ namespace IRaCIS.Core.Application.Contracts Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId); + + Task SignConsistencyAnalysisReadingClinicalData(SignConsistencyAnalysisReadingClinicalDataInDto inDto); } } \ No newline at end of file