diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs index 29970c85a..95e21113e 100644 --- a/IRaCIS.Core.API/Controllers/InspectionController.cs +++ b/IRaCIS.Core.API/Controllers/InspectionController.cs @@ -140,7 +140,7 @@ namespace IRaCIS.Core.API.Controllers /// /// /// - [HttpPost, Route("Inspection/Inspection/AddOrUpdateNoneDicomStudy")] + [HttpPost, Route("Inspection/noneDicomStudy/AddOrUpdateNoneDicomStudy")] [UnitOfWork] public async Task AddOrUpdateNoneDicomStudy(DataInspectionDto opt) { diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index f3a8d1bde..eee852d82 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -703,7 +703,12 @@ - + + + 上传非Dicom 文件 支持压缩包 + + + 上传非Dicom 文件 支持压缩包 diff --git a/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs index d79a8f583..474e18520 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs @@ -3,6 +3,9 @@ // 生成时间 2021-12-06 10:56:50 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- +using IRaCIS.Core.Application.Service.Inspection.DTO; +using Microsoft.AspNetCore.Http; + namespace IRaCIS.Core.Application.Contracts { /// NoneDicomStudyFileView 列表视图模型 @@ -19,6 +22,15 @@ namespace IRaCIS.Core.Application.Contracts } + + public class UploadNoneDicomFileDto + { + public Guid subjectVisitId { get; set; } + public Guid noneDicomStudyId { get; set; } + + public string AuditInfo { get; set; } = string.Empty; + } + public class NoneDicomStudyAndFile { public string NoneDicomStudyCode { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/QC/Interface/INoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/QC/Interface/INoneDicomStudyService.cs index 7ceb36381..0467bfb06 100644 --- a/IRaCIS.Core.Application/Service/QC/Interface/INoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/QC/Interface/INoneDicomStudyService.cs @@ -18,6 +18,6 @@ namespace IRaCIS.Core.Application.Contracts Task> GetNoneDicomStudyFileList(Guid noneDicomStudyId); Task> GetNoneDicomStudyList(Guid subjectVisitId); Task> GetVisitNoneDicomStudyFileList(Guid subjectVisitId); - Task UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId, [FromServices] IWebHostEnvironment _hostEnvironment); + Task UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId); } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs index 9a38f64bd..0b79a70e1 100644 --- a/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs @@ -10,6 +10,9 @@ using IRaCIS.Core.Domain.Share; using SharpCompress.Archives; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Infra.EFCore; +using Newtonsoft.Json; +using IRaCIS.Core.Application.Service.Inspection.Interface; +using IRaCIS.Core.Application.Service.Inspection.DTO; namespace IRaCIS.Core.Application.Contracts { @@ -20,11 +23,22 @@ namespace IRaCIS.Core.Application.Contracts public class NoneDicomStudyService : BaseService, INoneDicomStudyService { private readonly IRepository _noneDicomStudyRepository; + private readonly IHttpContextAccessor _httpContext; + private readonly IWebHostEnvironment _hostEnvironment; + private readonly IInspectionService _inspectionService; private readonly IRepository _noneDicomStudyFileRepository; - public NoneDicomStudyService(IRepository noneDicomStudyRepository,IRepository noneDicomStudyFileRepository) + public NoneDicomStudyService(IRepository noneDicomStudyRepository, + IHttpContextAccessor httpContext, + IWebHostEnvironment hostEnvironment, + IInspectionService inspectionService, + IRepository noneDicomStudyFileRepository) { _noneDicomStudyRepository = noneDicomStudyRepository; + + this._httpContext = httpContext; + this._hostEnvironment = hostEnvironment; + this._inspectionService = inspectionService; _noneDicomStudyFileRepository = noneDicomStudyFileRepository; } @@ -158,6 +172,23 @@ namespace IRaCIS.Core.Application.Contracts return await _repository.Where(t => t.NoneDicomStudy.SubjectVisitId == subjectVisitId).ProjectTo(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }).ToListAsync(); } + /// + /// 上传非Dicom 文件 支持压缩包 + /// + [HttpPost] + public async Task NewUploadNoneDicomFile([FromForm]UploadNoneDicomFileDto fileDto) + { + var file = this._httpContext.HttpContext?.Request.Form; + var result= await UploadNoneDicomFile(file, fileDto.subjectVisitId, fileDto.noneDicomStudyId); + if (result.IsSuccess) + { + await _inspectionService.AddInspectionRecordAsync( + JsonConvert.DeserializeObject(fileDto.AuditInfo)); + } + + return result; + } + /// /// 上传非Dicom 文件 支持压缩包 @@ -167,10 +198,10 @@ namespace IRaCIS.Core.Application.Contracts /// /// /// - //[DisableRequestSizeLimit] - [RequestSizeLimit(1_073_741_824)] - [HttpPost("{noneDicomStudyId:guid}/{subjectVisitId:guid}")] - public async Task UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId, [FromServices] IWebHostEnvironment _hostEnvironment) + //[DisableRequestSizeLimit] + [RequestSizeLimit(1_073_741_824)] + [HttpPost("{noneDicomStudyId:guid}/{subjectVisitId:guid}")] + public async Task UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId) { var rootPath = Directory.GetParent(_hostEnvironment.ContentRootPath.TrimEnd('\\')).IfNullThrowException().FullName; diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectService.cs index f07d1a865..e6bfe167a 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectService.cs @@ -149,6 +149,7 @@ namespace IRaCIS.Application.Services SubjectId = mapedSubject.Id, SubjectCode = subjectCommand.Code, SubjectVisitId = item.Id, + BlindName = item.BlindName, SubjectVisitName = item.VisitName, IsSign = false, diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index a887efdd3..db6fc0f8e 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -143,8 +143,7 @@ namespace IRaCIS.Core.Application.Services { TrialId = svCommand.TrialId, SiteId = svCommand.SiteId, - SubjectId = svCommand.Id, - + SubjectId = svCommand.SubjectId, SubjectVisitId = svCommand.Id, SubjectVisitName = svCommand.VisitName, IsSign = false, diff --git a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs index 41b4c394e..6f141e8c1 100644 --- a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs +++ b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs @@ -339,11 +339,25 @@ namespace IRaCIS.Application.Services //找到访视计划修改的Item var changedList = await _visitStageRepository.Where(t => t.TrialId == trialId && t.IsConfirmed == false) - .Select(t => new { t.Trial.IsHaveFirstGiveMedicineDate, t.Id, t.VisitName, t.VisitWindowLeft, t.VisitWindowRight, t.VisitDay, t.VisitNum, t.IsBaseLine }).ToListAsync(); - + .Select(t => new { t.Trial.IsHaveFirstGiveMedicineDate, t.Id, t.VisitName, t.TrialId, t.VisitWindowLeft, t.VisitWindowRight, t.VisitDay, t.VisitNum, t.IsBaseLine }).ToListAsync(); + var createtime = DateTime.Now.AddSeconds(1); changedList.ForEach(x => { - + datas.Add(new DataInspection() + { + IsSign = false, + SubjectVisitId = x.Id, + CreateTime = createtime, + SubjectVisitName = x.VisitName, + VisitStageId=x.Id, + TrialId = x.TrialId, + JsonDetail = JsonConvert.SerializeObject(new + { + IsConfirmed = true, + VisitPlanStatus = true, + }), + Identification = "Edit|Visit Plan Template|Data|Tria" + }); }); @@ -466,7 +480,7 @@ namespace IRaCIS.Application.Services - var createtime = DateTime.Now.AddSeconds(1); + var list = await _subjectVisitRepository.Where(t => t.TrialId == trialId && t.VisitStageId == changedItem.Id).ToListAsync(); list.ForEach(x =>