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; }