diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 9dd479b22..6601f2281 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1465,6 +1465,36 @@ 答案 + + + 是否有问题 + + + + + 质询问题 + + + + + 图片路径 + + + + + 审核建议 + + + + + 是否完成 + + + + + 是否关闭 + + 是否有问题 @@ -2272,6 +2302,26 @@ + + + 保存医学审核问题 + + + + + + 保存医学审核信息 + + + + + + + 发送对话消息 + + + + 医学审核问题 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs index 5991f6699..9106e2658 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs @@ -9,12 +9,21 @@ using System.Threading.Tasks; 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; } + } public class SaveMedicineQuestionInDto { public Guid TaskMedicalReviewId { get; set; } public Guid VisitTaskId { get; set; } + public List QuestionAnswerList { get; set; } } @@ -55,8 +64,46 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } + + public class SaveMedicalReviewInfoInDto + { + public Guid TaskMedicalReviewId { get; set; } + + + /// + /// 是否有问题 + /// + public bool IsHaveQuestion { get; set; } = false; + + /// + /// 质询问题 + /// + public string Questioning { get; set; } = string.Empty; + + /// + /// 图片路径 + /// + public string ImagePath { get; set; } = string.Empty; + + /// + /// 审核建议 + /// + public AuditAdvice AuditAdviceEnum { get; set; } + + /// + /// 是否完成 + /// + public bool IsFinish { get; set; } + + /// + /// 是否关闭 + /// + public bool IsClosed { get; set; } + } + public class MedicalReviewInfo { + public Guid TaskMedicalReviewId { get; set; } public Guid VisitTaskId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs index 8ee23be79..1d6b20a16 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingMedicalReviewService.cs @@ -22,6 +22,7 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _trialRepository; private readonly IRepository _visitTaskRepository; private readonly IRepository _taskMedicalReviewRepository; + private readonly IRepository _readingMedicalReviewDialogRepository; private readonly IRepository _readingMedicineQuestionAnswerRepository; private readonly IRepository _readingMedicineSystemQuestionRepository; @@ -30,6 +31,7 @@ namespace IRaCIS.Core.Application.Service IRepository trialRepository, IRepository visitTaskRepository, IRepository taskMedicalReviewRepository, + IRepository readingMedicalReviewDialogRepository, IRepository readingMedicineQuestionAnswerRepository, IRepository readingMedicineSystemQuestionRepository ) @@ -38,6 +40,7 @@ namespace IRaCIS.Core.Application.Service this._trialRepository = trialRepository; this._visitTaskRepository = visitTaskRepository; this._taskMedicalReviewRepository = taskMedicalReviewRepository; + this._readingMedicalReviewDialogRepository = readingMedicalReviewDialogRepository; this._readingMedicineQuestionAnswerRepository = readingMedicineQuestionAnswerRepository; this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository; } @@ -191,16 +194,74 @@ namespace IRaCIS.Core.Application.Service } } - ///// - ///// 保存医学审核问题 - ///// - ///// - //[HttpPost] - //public async Task SaveMedicineQuestion(SaveMedicineQuestionInDto inDto) - //{ - // await _readingMedicineQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.TaskMedicalReviewId == inDto.TaskMedicalReviewId); + /// + /// 保存医学审核问题 + /// + /// + [HttpPost] + public async Task SaveMedicineQuestion(SaveMedicineQuestionInDto inDto) + { + await _readingMedicineQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.TaskMedicalReviewId == inDto.TaskMedicalReviewId); - //} + List questionAnswerList = inDto.QuestionAnswerList.Select(x => new ReadingMedicineQuestionAnswer() + { + Answer = x.Answer, + ReadingMedicineQuestionId = x.MedicineQuestionId, + TaskMedicalReviewId = inDto.TaskMedicalReviewId, + VisitTaskId = inDto.VisitTaskId, + + }).ToList(); + + await _readingMedicineQuestionAnswerRepository.AddRangeAsync(questionAnswerList); + + var result = await _readingMedicineQuestionAnswerRepository.SaveChangesAsync(); + + return ResponseOutput.Result(result); + + } + + /// + /// 保存医学审核信息 + /// + /// + /// + public async Task SaveMedicalReviewInfo(SaveMedicalReviewInfoInDto inDto) + { + await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(inDto.TaskMedicalReviewId, x => new TaskMedicalReview() + { + IsHaveQuestion = inDto.IsHaveQuestion, + Questioning = inDto.Questioning, + ImagePath = inDto.ImagePath, + AuditAdviceEnum = inDto.AuditAdviceEnum, + IsFinish = inDto.IsFinish, + IsClosed = inDto.IsClosed + }); + + var result = await _taskMedicalReviewRepository.SaveChangesAsync(); + return ResponseOutput.Result(result); + } + + /// + /// 发送对话消息 + /// + /// + /// + public async Task SendMedicalReviewDialog(SendMedicalReviewDialogInDto inDto) + { + ReadingMedicalReviewDialog dialog = new ReadingMedicalReviewDialog() + { + TaskMedicalReviewId = inDto.TaskMedicalReviewId, + UserTypeShortName = _userInfo.UserTypeShortName, + Content = inDto.Content, + UserTypeEnumInt = _userInfo.UserTypeEnumInt, + VisitTaskId = inDto.VisitTaskId, + }; + + await _readingMedicalReviewDialogRepository.AddAsync(dialog); + + var result=await _readingMedicalReviewDialogRepository.SaveChangesAsync(); + return ResponseOutput.Result(result); + } } } diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index f86ea0520..8f757fb7f 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -93,7 +93,8 @@ namespace IRaCIS.Core.Application.Service CreateMap(); - CreateMap(); + CreateMap() + .ForMember(x => x.TaskMedicalReviewId, y => y.MapFrom(n => n.Id)); #endregion