diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs index f1649b38..e90993b6 100644 --- a/IRaCIS.Core.API/Controllers/InspectionController.cs +++ b/IRaCIS.Core.API/Controllers/InspectionController.cs @@ -369,9 +369,9 @@ namespace IRaCIS.Core.API.Controllers var fun = await _qCOperationService.UploadVisitCheckExcel(file, opt.trialId); - - var data = JsonConvert.DeserializeObject(opt.AuditInfo); - return await _inspectionService.Enforcement(opt.trialId, data, null, null, fun); + return ResponseOutput.Ok(); + //var data = JsonConvert.DeserializeObject(opt.AuditInfo); + //return await _inspectionService.Enforcement(opt.trialId, data, null, null, fun); } #endregion diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 5ce408d0..85758035 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -904,28 +904,84 @@ namespace IRaCIS.Core.Application.Image.QA [TypeFilter(typeof(TrialResourceFilter))] public async Task UpdateModality(Guid id, int type, [FromQuery] string modality, [FromQuery] string bodyPart) { + + var DicomSeriesdata = await _repository.GetQueryable().Where(x=>x.StudyId==id).ToListAsync(); + var study = await _repository.FirstOrDefaultAsync(t => t.Id == id); + List datas = new List(); + DateTime time = DateTime.Now.AddMilliseconds(500); if (type == 1) { - var study = await _repository.FirstOrDefaultAsync(t => t.Id == id); + if (study == null) return Null404NotFound(study); study.BodyPartForEdit = bodyPart; study.Modalities = modality; await _repository.BatchUpdateAsync(t => t.StudyId == id, r => new DicomSeries() { BodyPartForEdit = bodyPart, Modality = modality }); + DicomSeriesdata.ForEach(x => + { + datas.Add(new DataInspection() + { + TrialId = x.TrialId, + SiteId = x.SiteId, + SubjectId = x.SubjectId, + SubjectVisitId = x.SubjectVisitId, + GeneralId = x.Id, + CreateTime = time, + Identification = "Edit|DICOM Series|Info|Visit-Image Quanlity Control", + JsonDetail = JsonConvert.SerializeObject(new + { + StudyCode = study.StudyCode, + Modalities = study.Modalities, + SeriesNumber = x.SeriesNumber, + InstanceCount = x.InstanceCount, + SeriesTime = x.SeriesTime, + BodyPartForEdit = bodyPart, + Modality = modality + }) + + }); + + }); + } else if (type == 2) { var series = await _repository.FirstOrDefaultAsync(t => t.Id == id); if (series == null) return Null404NotFound(series); series.BodyPartForEdit = bodyPart; + + DicomSeriesdata.ForEach(x => + { + datas.Add(new DataInspection() + { + TrialId = x.TrialId, + SiteId = x.SiteId, + SubjectId = x.SubjectId, + SubjectVisitId = x.SubjectVisitId, + GeneralId = x.Id, + CreateTime = time, + Identification = "Edit|DICOM Series|Info|Visit-Image Quanlity Control", + JsonDetail = JsonConvert.SerializeObject(new + { + StudyCode = study.StudyCode, + Modalities = study.Modalities, + SeriesNumber = x.SeriesNumber, + InstanceCount = x.InstanceCount, + SeriesTime = x.SeriesTime, + BodyPartForEdit = bodyPart, + }) + + }); + + }); } else if (type == 3) { } await _repository.SaveChangesAsync(); - + await _trialRepository.AddListInspectionRecordAsync(datas); return ResponseOutput.Ok(); } @@ -1569,6 +1625,8 @@ namespace IRaCIS.Core.Application.Image.QA var instanceIdList = await _repository.Where(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId) .Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync(); + + instanceIdList.ForEach(t => { var path = _dicomFileStoreHelper.GetInstanceFilePath(new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId }, t.SeriesId, t.InstanceId.ToString());