diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 58aa65ab0..29e3365a5 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -172,7 +172,7 @@ namespace IRaCIS.Application.Services List cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId) - .WhereIf(inDto.IsBaseline,x=>x.ClinicalDataTrialSet.ClinicalDataLevel==ClinicalLevel.Subject) + .WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject) .WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit) .Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) .Select(x => new GetCRCClinicalDataOutDto() @@ -292,8 +292,8 @@ namespace IRaCIS.Application.Services // 获取确认的项目标准 废弃 签名的时候 传递标准Id //var confirmedCtritrialList = _repository.Where(t => t.TrialId == trialId && t.ReadingInfoSignTime != null).Select(t => new { t.Id, t.CriterionType }).ToList(); - var needSignCount = 0; - var haveSignedCount = _readingClinicalDataRepository.Where(t => t.TrialId==trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count(); + var needSignCount = 0; + var haveSignedCount = _readingClinicalDataRepository.Where(t => t.TrialId == trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count(); Expression> visitTaskLambda = x => x.TrialId == trialId && x.SubjectId == subjectId && x.TrialReadingCriterionId == trialReadingCritrialId; @@ -305,14 +305,14 @@ namespace IRaCIS.Application.Services if (isBaseLine) { //CRC 的自动签名 不用管 只用处理PM 的就好 - needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && (t.ClinicalDataLevel == ClinicalLevel.Subject || t.ClinicalDataLevel == ClinicalLevel.SubjectVisit) && t.UploadRole == UploadRole.PM).Count(); + needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && (t.ClinicalDataLevel == ClinicalLevel.Subject || t.ClinicalDataLevel == ClinicalLevel.SubjectVisit) && t.UploadRole == UploadRole.PM).Count(); } else { - needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.SubjectVisit && t.UploadRole == UploadRole.PM).Count(); + needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.SubjectVisit && t.UploadRole == UploadRole.PM).Count(); } - if (needSignCount == haveSignedCount && needSignCount!=0 ) + if (needSignCount == haveSignedCount && needSignCount != 0) { //将该标准 该subject 该访视 任务临床数据状态变更 @@ -333,12 +333,12 @@ namespace IRaCIS.Application.Services //影像学 if (readingSetType == ReadingSetType.ImageReading) { - needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.ImageRead).Count(); + needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.ImageRead).Count(); } //肿瘤学 else { - needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead).Count(); + needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead).Count(); } if (needSignCount == haveSignedCount && needSignCount != 0) @@ -349,7 +349,7 @@ namespace IRaCIS.Application.Services IsClinicalDataSign = true }); - + } } @@ -409,7 +409,7 @@ namespace IRaCIS.Application.Services } ReadModule readModule = null; - if (inDto.IsVisit ==false) + if (inDto.IsVisit == false) { readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId).FirstOrDefaultAsync(); } @@ -428,7 +428,7 @@ namespace IRaCIS.Application.Services .WhereIf(inDto.UploadRole != null, x => x.UploadRole == inDto.UploadRole) .Where(x => !usedIdsQuery.Contains(x.Id)) - + .WhereIf(inDto.IsVisit && inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataLevel == ClinicalLevel.SubjectVisit) .WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit) @@ -443,7 +443,7 @@ namespace IRaCIS.Application.Services FileName = x.FileName, Path = x.Path, Id = x.Id, - CriterionEnumList=x.CriterionEnumList, + CriterionEnumList = x.CriterionEnumList, }).ToListAsync(); clinicalList = clinicalList.WhereIf(criterion != null, x => x.CriterionEnumList.Contains((int)criterion.CriterionType)).ToList(); return clinicalList; @@ -517,7 +517,7 @@ namespace IRaCIS.Application.Services IsBaseLine = inDto.IsBaseLine, SubjectId = inDto.SubjectId, IsVisit = inDto.IsVisit, - TrialReadingCriterionId=inDto.TrialReadingCriterionId + TrialReadingCriterionId = inDto.TrialReadingCriterionId }; var clinicalDataList = await this.GetTrialClinicalDataSelect(getTrialClinicalDataSelectIndto); @@ -633,7 +633,7 @@ namespace IRaCIS.Application.Services .Where(x => x.ReadingId == inDto.ReadingId || (x.SubjectId == inDto.SubjectId && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject)) //.WhereIf(inDto.UploadRole == UploadRole.CRC, x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) - .Where(x => x.ClinicalDataTrialSet.CriterionEnumListStr.Contains(((int)criterionType).ToString())) + .Where(x => x.ClinicalDataTrialSet.CriterionEnumListStr.Contains($"{((int)criterionType).ToString()}")) .Select(x => new GetReadingClinicalDataListOutDto() { ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel, @@ -694,7 +694,13 @@ namespace IRaCIS.Application.Services [HttpDelete("{id:guid}")] public async Task DeleteReadingClinicalDataPDF(Guid id) { - await _readingClinicalDataPDFRepository.DeleteFromQueryAsync(x => x.Id == id, true); + var pdf = await _readingClinicalDataPDFRepository.FirstOrDefaultAsync(t => t.Id == id); + + await _readingClinicalDataPDFRepository.DeleteAsync(pdf, true); + + var fileCount = await _readingClinicalDataPDFRepository.Where(t => t.ReadingClinicalDataId == pdf.ReadingClinicalDataId).CountAsync(); + + await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(pdf.ReadingClinicalDataId, c => new ReadingClinicalData() { FileCount = fileCount }, true); return ResponseOutput.Result(true); }