diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 9cb07801..56c3c4ed 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -460,7 +460,39 @@ namespace IRaCIS.Core.API.Controllers } - + /// + /// 上传医学审核图片 + /// + /// + /// + /// + [HttpPost("TaskMedicalReview/UploadMedicalReviewImage/{trialId:guid}/{taskMedicalReviewId:guid}")] + [TypeFilter(typeof(TrialResourceFilter))] + public async Task UploadMedicalReviewImage(Guid trialId, Guid taskMedicalReviewId) + { + string path = string.Empty; + + await FileUploadAsync(async (fileName) => + { + + var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetMedicalReviewImage(_hostEnvironment, fileName, trialId, taskMedicalReviewId); + + + await _repository.UpdatePartialFromQueryAsync(x => x.Id == taskMedicalReviewId, x => new TaskMedicalReview() + { + ImagePath = relativePath + }); + + path = relativePath; + + return serverFilePath; + }); + + await _repository.SaveChangesAsync(); + return ResponseOutput.Ok(path); + } + + /// /// 上传非Dicom 文件 支持压缩包 多文件上传 diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml index cae7df97..4542724c 100644 --- a/IRaCIS.Core.API/IRaCIS.Core.API.xml +++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml @@ -215,6 +215,14 @@ + + + 上传医学审核图片 + + + + + 上传非Dicom 文件 支持压缩包 多文件上传 diff --git a/IRaCIS.Core.Application/Helper/FileStoreHelper.cs b/IRaCIS.Core.Application/Helper/FileStoreHelper.cs index 22ca09d1..8e4bcd7b 100644 --- a/IRaCIS.Core.Application/Helper/FileStoreHelper.cs +++ b/IRaCIS.Core.Application/Helper/FileStoreHelper.cs @@ -345,6 +345,23 @@ public static class FileStoreHelper } + public static (string PhysicalPath, string RelativePath, string FileRealName) GetMedicalReviewImage(IWebHostEnvironment _hostEnvironment, string fileName, Guid trialId, Guid taskMedicalReviewId) + { + var rootPath = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment); + + string uploadFolderPath = Path.Combine(rootPath, StaticData.Folder.TrialDataFolder, trialId.ToString(), taskMedicalReviewId.ToString(), StaticData.Folder.NoneDicomFolder); + + if (!Directory.Exists(uploadFolderPath)) Directory.CreateDirectory(uploadFolderPath); + + var (trustedFileNameForFileStorage, fileRealName) = FileStoreHelper.GetStoreFileName(fileName); + + + var relativePath = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{trialId}/{taskMedicalReviewId}/{StaticData.Folder.NoneDicomFolder}/{trustedFileNameForFileStorage}"; + + var serverFilePath = Path.Combine(uploadFolderPath, trustedFileNameForFileStorage); + + return (serverFilePath, relativePath, fileRealName); + } //获取非dicom文件存放路径 public static (string PhysicalPath, string RelativePath, string FileRealName) GetNoneDicomFilePath(IWebHostEnvironment _hostEnvironment, string fileName, Guid trialId, Guid siteId, Guid subjectId, Guid subjectVisitId) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index d2c1cb31..02cf5067 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1472,6 +1472,16 @@ 答案 + + + 是否完成 + + + + + 是否关闭 + + 是否有问题 @@ -1492,12 +1502,7 @@ 审核建议 - - - 是否完成 - - - + 是否关闭 @@ -1522,12 +1527,12 @@ 审核建议 - + 是否完成 - + 是否关闭 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs index 5d7d1e50..c37d9070 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs @@ -12,9 +12,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class SendMedicalReviewDialogInDto { public Guid TaskMedicalReviewId { get; set; } - - public Guid VisitTaskId { get; set; } - public string Content { get; set; } } @@ -65,7 +62,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 是否关闭 /// - public bool IsClosedDialo { get; set; } + public bool IsClosedDialog { get; set; } public List TaskList { get; set; } = new List(); @@ -103,15 +100,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public AuditAdvice AuditAdviceEnum { get; set; } - /// - /// 是否完成 - /// - public bool IsReviewFinish { get; set; } - /// /// 是否关闭 /// - public bool IsClosedDialo { get; set; } + public bool IsClosedDialog { get; set; } } public class MedicalReviewInfo @@ -148,7 +140,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 是否关闭 /// - public bool IsClosedDialo { get; set; } + public bool IsClosedDialog { get; set; } } public class ReadingMedicineQuestion @@ -224,6 +216,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string TaskName { get; set; } + /// + /// 是否有全局更新 + /// + public bool IsGlobalChange { get; set; } + /// /// 盲态名称 /// diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs index 6e8476d5..4dd48822 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs @@ -66,7 +66,7 @@ namespace IRaCIS.Core.Application.Service medicalReviewInfo.VisitTaskId = taskInfo.Id; medicalReviewInfo.ArmEnum = taskInfo.ArmEnum; - medicalReviewInfo.IsClosedDialo = medicalReviewInfo.MedicalReviewInfo.IsClosedDialo; + medicalReviewInfo.IsClosedDialog = medicalReviewInfo.MedicalReviewInfo.IsClosedDialog; medicalReviewInfo.IsReviewFinish = medicalReviewInfo.MedicalReviewInfo.IsReviewFinish; @@ -250,8 +250,7 @@ namespace IRaCIS.Core.Application.Service Questioning = inDto.Questioning, ImagePath = inDto.ImagePath, AuditAdviceEnum = inDto.AuditAdviceEnum, - IsReviewFinish = inDto.IsReviewFinish, - IsClosedDialo = inDto.IsClosedDialo + IsClosedDialog = inDto.IsClosedDialog }); var result = await _taskMedicalReviewRepository.SaveChangesAsync(); @@ -265,13 +264,14 @@ namespace IRaCIS.Core.Application.Service /// public async Task SendMedicalReviewDialog(SendMedicalReviewDialogInDto inDto) { + var visitTaskId = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.TaskMedicalReviewId).Select(x => x.VisitTaskId).FirstOrDefaultAsync(); ReadingMedicalReviewDialog dialog = new ReadingMedicalReviewDialog() { TaskMedicalReviewId = inDto.TaskMedicalReviewId, UserTypeShortName = _userInfo.UserTypeShortName, Content = inDto.Content, UserTypeEnumInt = _userInfo.UserTypeEnumInt, - VisitTaskId = inDto.VisitTaskId, + VisitTaskId = visitTaskId, }; await _readingMedicalReviewDialogRepository.AddAsync(dialog); @@ -281,6 +281,9 @@ namespace IRaCIS.Core.Application.Service } + //public async Task + + } } diff --git a/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs b/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs index 6abc319a..45fe7361 100644 --- a/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs +++ b/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Domain.Models /// /// 是否关闭对话 /// - public bool IsClosedDialo { get; set; } + public bool IsClosedDialog { get; set; } /// /// 保存问题的时间