diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index cd061cf5..07ce6258 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -2438,6 +2438,11 @@
问题英文分组
+
+
+ 全局阅片修改的答案
+
+
序号标记
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
index 0bfd8fe0..069c00c1 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
@@ -419,6 +419,9 @@ namespace IRaCIS.Core.Application.Service
int currentMaxCodeInt = cacheMaxCodeInt > dbMaxCode ? cacheMaxCodeInt : dbMaxCode;
+
+
+
switch (generateTaskCommand.ReadingCategory)
{
case GenerateTaskCategory.Visit:
@@ -1010,8 +1013,6 @@ namespace IRaCIS.Core.Application.Service
}
-
-
break;
@@ -1019,8 +1020,7 @@ namespace IRaCIS.Core.Application.Service
var reReadingVisitTask = generateTaskCommand.ReReadingTask;
-
-
+ var subjectVisitUrgent = _subjectVisitRepository.Where(t => t.Id == reReadingVisitTask.SourceSubjectVisitId).Select(t=>t.IsUrgent).FirstOrDefault();
var newTask = await _visitTaskRepository.AddAsync(new VisitTask()
{
@@ -1031,6 +1031,8 @@ namespace IRaCIS.Core.Application.Service
TaskName = reReadingVisitTask.TaskName,
TaskBlindName = reReadingVisitTask.TaskBlindName,
+ IsUrgent = reReadingVisitTask.IsAnalysisCreate?false: subjectVisitUrgent,
+
VisitTaskNum = reReadingVisitTask.VisitTaskNum,
ReadingCategory = reReadingVisitTask.ReadingCategory,
SourceSubjectVisitId = reReadingVisitTask.SourceSubjectVisitId,
@@ -1055,7 +1057,7 @@ namespace IRaCIS.Core.Application.Service
// AllocateTime = DateTime.Now,
//DoctorUserId = reReadingVisitTask.DoctorUserId,
- });
+ });;
generateTaskCommand.Action(newTask);
@@ -1253,7 +1255,7 @@ namespace IRaCIS.Core.Application.Service
{
TrialId = trialId,
SubjectId = item.SubjectId,
- IsUrgent = item.IsUrgent,
+ IsUrgent = originalTaskInfo.IsUrgent,
VisitTaskNum = item.VisitNum + ReadingCommon.TaskNumDic[ReadingCategory.Global],
TaskName = item.ReadingName,
ArmEnum = originalTaskInfo.ArmEnum,//特殊
@@ -1299,7 +1301,7 @@ namespace IRaCIS.Core.Application.Service
{
TrialId = trialId,
SubjectId = item.SubjectId,
- IsUrgent = item.IsUrgent,
+ IsUrgent = originalTaskInfo.IsUrgent,
TaskName = item.ReadingName,
// 原任务是全局任务 加0.03 就好
VisitTaskNum = originalTaskInfo.VisitTaskNum + 0.03m,
diff --git a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs
index fe2b293e..89044773 100644
--- a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs
+++ b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs
@@ -33,7 +33,7 @@ namespace IRaCIS.Application.Contracts
public List ReadingTypeIds => DictionaryList.Where(t => t.ParentCode == StaticData.ReadingType).OrderBy(t => t.ShowOrder).Select(t => t.Id).ToList();
-
+ public string AccountUserName { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs b/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs
index 4d96e07c..54928729 100644
--- a/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs
@@ -82,6 +82,7 @@ namespace IRaCIS.Core.Application.Service
#region 医生基本信息
CreateMap();
CreateMap().IncludeMembers(t => t.Hospital).Include()
+ .ForMember(d => d.AccountUserName, u => u.MapFrom(s => s.EnrollList.Where(t=>t.DoctorUserId!=null).Select(c=>c.DoctorUser.UserName).FirstOrDefault()))
.ForMember(d => d.Department, u => u.MapFrom(s => s.Department.Value))
.ForMember(d => d.DepartmentCN, u => u.MapFrom(s => s.Department.ValueCN))
.ForMember(d => d.Position, u => u.MapFrom(s => s.Position.Value))
diff --git a/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs b/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs
index 39d5e5f8..c158875a 100644
--- a/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs
+++ b/IRaCIS.Core.Application/Service/WorkLoad/EnrollService.cs
@@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Service.WorkLoad.DTO;
using Microsoft.AspNetCore.Authorization;
using IRaCIS.Core.Application.Auth;
+using System.Text.RegularExpressions;
namespace IRaCIS.Application.Services
{
@@ -376,38 +377,61 @@ namespace IRaCIS.Application.Services
//更新入组表
var intoGroupList = await _enrollRepository.Where(t => t.TrialId == trialId,true).ToListAsync();
+ //验证邮件
+ var emaiList = await _doctorRepository.Where(t => intoGroupList.Select(t => t.DoctorId).Contains(t.Id))
+ .Select(t => new { t.EMail, t.FirstName, t.LastName }).ToListAsync();
+
+
+ var errorList = emaiList.Where(t => !Regex.IsMatch(t.EMail, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"))
+ .ToList();
+
+ if (errorList.Count() > 0)
+ {
+ return ResponseOutput.NotOk(string.Join(',', errorList.Select(c => c.LastName+" / "+c.FirstName)) +"邮箱格式存在问题") ;
+ }
+
if (confirmReviewerCommand.ConfirmState == 1) //确认入组
{
foreach (var intoGroupItem in intoGroupList)
{
if (confirmReviewerCommand.DoctorIdArray.Contains(intoGroupItem.DoctorId))
{
- intoGroupItem.EnrollStatus = EnrollStatus.ConfirmIntoGroup;
- intoGroupItem.EnrollTime = DateTime.Now;
- var userId = await _mailVerificationService.DoctorJoinTrialEmail(trialId, intoGroupItem.DoctorId, confirmReviewerCommand.BaseUrl, confirmReviewerCommand.RouteUrl);
-
- if ( !await _trialUserRepository.AnyAsync(t=>t.TrialId==trialId && t.UserId== userId, true))
+ //当邮件发送没有问题的时候,才修改状态 如果有问题,就当前不做处理
+ try
{
- await _trialUserRepository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId ,JoinTime = DateTime.Now });
+ var userId = await _mailVerificationService.DoctorJoinTrialEmail(trialId, intoGroupItem.DoctorId, confirmReviewerCommand.BaseUrl, confirmReviewerCommand.RouteUrl);
+
+ if (!await _trialUserRepository.AnyAsync(t => t.TrialId == trialId && t.UserId == userId, true))
+ {
+ await _trialUserRepository.AddAsync(new TrialUser() { TrialId = trialId, UserId = userId, JoinTime = DateTime.Now });
+ }
+
+ await _enrollRepository.BatchUpdateNoTrackingAsync(t => t.Id == intoGroupItem.Id, u => new Enroll() { DoctorUserId = userId });
+
+ if (!await _taskAllocationRuleRepository.AnyAsync(t => t.TrialId == trialId && t.DoctorUserId == userId && t.EnrollId == intoGroupItem.Id, true))
+ {
+ await _taskAllocationRuleRepository.AddAsync(new TaskAllocationRule() { TrialId = trialId, DoctorUserId = userId, EnrollId = intoGroupItem.Id });
+
+ }
+
+ await _enrollDetailRepository.AddAsync(new EnrollDetail()
+ {
+ DoctorId = intoGroupItem.DoctorId,
+ TrialId = trialId,
+ EnrollStatus = EnrollStatus.ConfirmIntoGroup,
+ OptUserType = (int)SystemUserType.AdminUser, //后台用户
+ });
+
+ intoGroupItem.EnrollStatus = EnrollStatus.ConfirmIntoGroup;
+ intoGroupItem.EnrollTime = DateTime.Now;
}
-
- await _enrollRepository.BatchUpdateNoTrackingAsync(t => t.Id == intoGroupItem.Id, u => new Enroll() { DoctorUserId = userId });
-
- if (!await _taskAllocationRuleRepository.AnyAsync(t => t.TrialId == trialId && t.DoctorUserId == userId&& t.EnrollId == intoGroupItem.Id, true))
+ catch (Exception )
{
- await _taskAllocationRuleRepository.AddAsync(new TaskAllocationRule() { TrialId = trialId, DoctorUserId = userId, EnrollId = intoGroupItem.Id });
+ intoGroupItem.EnrollStatus = EnrollStatus.ConfirmIntoGroupFailed;
}
-
-
- await _enrollDetailRepository.AddAsync(new EnrollDetail()
- {
- DoctorId = intoGroupItem.DoctorId,
- TrialId = trialId,
- EnrollStatus = EnrollStatus.ConfirmIntoGroup,
- OptUserType = (int)SystemUserType.AdminUser, //后台用户
- });
+
}
}
diff --git a/IRaCIS.Core.Domain.Share/Trial/EnrollStatus.cs b/IRaCIS.Core.Domain.Share/Trial/EnrollStatus.cs
index c989ccda..a34feaa5 100644
--- a/IRaCIS.Core.Domain.Share/Trial/EnrollStatus.cs
+++ b/IRaCIS.Core.Domain.Share/Trial/EnrollStatus.cs
@@ -24,7 +24,7 @@
ConfirmIntoGroup = 10, // 确认入组
- //HasUploadAgreement = 11, // 已上传协议
+ ConfirmIntoGroupFailed = 11,
DoctorTrained = 12, // 参加培训