diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index bea106462..04ecd8ab4 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -531,6 +531,27 @@ PublishLogService + + + 影像质控 + + + + + + + QC质疑 + + + + + + + 影像质疑 + + + + TrialEmailNoticeConfigService diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs index 6835c7495..a7416ade2 100644 --- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs @@ -457,6 +457,13 @@ namespace IRaCIS.Core.Application.ViewModel public Guid VisitTaskId { get; set; } } + public class ClinicalDataDialog + { + public Guid Id { get; set; } + public DateTime CreateTime { get; set; } + public Guid Content { get; set; } + } + public class PIAuditDialogListView : PIAuditTaskCommand { diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 80167909a..ceb2f91f3 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -329,6 +329,28 @@ namespace IRaCIS.Core.Application.Service.Allocation } + public async Task AddClinicalDataDialog(Guid visiTaskId, string content, + [FromServices] IRepository subjectVisitClinicalDialogRepository, + [FromServices] IEmailSendService emailSendService) + { + var taskInfo = await _visitTaskRepository.Where(t => t.Id == visiTaskId).Select(t => new { t.SourceSubjectVisitId, t.Subject.Code, t.SourceSubjectVisit.VisitName, t.Trial.ResearchProgramNo, t.Trial.TrialCode }).FirstOrDefaultAsync(); + + await subjectVisitClinicalDialogRepository.AddAsync(new SubjectVisitClinicalDialog() { SubjectVisitId = (Guid)taskInfo.SourceSubjectVisitId, Content = content }, true); + + + await emailSendService.SendClinicalDataQuestionAsync(visiTaskId, content); + + return ResponseOutput.Ok(); + } + + public async Task> GetClinicalDataDialog(Guid visiTaskId, + [FromServices] IRepository _subjectVisitClinicalDialogRepository) + { + var subjectVisitId= await _visitTaskRepository.Where(t => t.Id == visiTaskId).Select(t=>t.SourceSubjectVisitId).FirstOrDefaultAsync(); + var list = _subjectVisitClinicalDialogRepository.Where(t => t.SubjectVisitId == subjectVisitId).ProjectTo(_mapper.ConfigurationProvider).OrderByDescending(t => t.CreateTime).ToList(); + + return list; + } /// diff --git a/IRaCIS.Core.Domain/Visit/SubjectVisitClinicalDialog.cs b/IRaCIS.Core.Domain/Visit/SubjectVisitClinicalDialog.cs new file mode 100644 index 000000000..9c1ac37cb --- /dev/null +++ b/IRaCIS.Core.Domain/Visit/SubjectVisitClinicalDialog.cs @@ -0,0 +1,46 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2023-08-22 16:56:15 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///SubjectVisitClinicalDialog + /// + [Table("SubjectVisitClinicalDialog")] + public class SubjectVisitClinicalDialog : Entity, IAuditAdd + { + + + /// + /// SubjectVisitId + /// + [Required] + public Guid SubjectVisitId { get; set; } + + /// + /// CreateUserId + /// + [Required] + public Guid CreateUserId { get; set; } + + /// + /// CreateTime + /// + [Required] + public DateTime CreateTime { get; set; } + + /// + /// Content + /// + [Required] + public string Content { get; set; } + + } + +} diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 9ee673fbd..89b628dd9 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -482,6 +482,7 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet PublishLog { get; set; } public virtual DbSet UserLog { get; set; } + public virtual DbSet SubjectVisitClinicalDialog { get; set; }