Merge branch '中心影像_Test环境' of http://192.168.1.2:8033/IRaCIS_Core_Api into 中心影像_Test环境
commit
42e64d77cb
|
@ -276,7 +276,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public Guid? ClaimUserId { get; set; }
|
||||
|
||||
|
||||
public string? ClaimUserName { get; set; }
|
||||
public bool IsUrgent => UnReadTaskList.Any(t => t.IsUrgent);
|
||||
|
||||
public int UnReadTaskCount { get; set; }
|
||||
|
|
|
@ -618,13 +618,15 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
var visitQuery = _visitTaskRepository
|
||||
.Where(x => x.TrialId == inDto.TrialId && x.TaskState == TaskState.Effect)
|
||||
|
||||
//PI 读基线的时候,subject 如果基线没阅片完,SR就不能看
|
||||
//PI 读基线的时候,subject 如果PI基线没阅片完,SR就不能看
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline,
|
||||
t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned))
|
||||
t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect))
|
||||
|
||||
//PI 读随访的时候, subject 如果基线没阅片完,SR就不能看
|
||||
//PI 读随访的时候, subject 如果SR基线没阅片完,PI就不能看
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
|
||||
t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect))
|
||||
t => t.Subject.SubjectVisitTaskList.Any(c => c.SourceSubjectVisit.IsBaseLine == true && c.ReadingTaskState == ReadingTaskState.HaveSigned && c.TaskState == TaskState.Effect))
|
||||
|
||||
|
||||
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR, t => t.Subject.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id))
|
||||
// 仅仅SR阅片 PI 没有任务列表
|
||||
|
@ -651,21 +653,24 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == true)
|
||||
|
||||
//前序 不存在 未生成任务的访视
|
||||
.WhereIf(critrion.IsAutoCreate == false, t => !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum))
|
||||
|
||||
// 前序 不存在 未一致性核查未通过的
|
||||
// 前序 不存在 未一致性核查未通过的 并且前序不存在未完成阅片的有效任务
|
||||
.Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum ))
|
||||
|
||||
//.WhereIf(piReadingScopenEnum == PIReadingScopenEnum.AllVisit,t =>
|
||||
// !t.Subject.SubjectVisitTaskList.Any(tk => tk.ReadingTaskState != ReadingTaskState.HaveSigned && tk.TaskState == TaskState.Effect && tk.VisitTaskNum < t.VisitTaskNum))
|
||||
|
||||
.WhereIf(!string.IsNullOrEmpty(inDto.SubjectCode), t => (t.Subject.Code.Contains(inDto.SubjectCode) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(inDto.SubjectCode) && t.IsAnalysisCreate));
|
||||
|
||||
|
||||
var visitGroupQuery = visitQuery.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode, x.Subject.ClaimUserId });
|
||||
var visitGroupQuery = visitQuery.GroupBy(x => new { x.SubjectId, x.Subject.Code, x.BlindSubjectCode, x.Subject.ClaimUserId ,x.Subject.ClaimUser.UserName });
|
||||
|
||||
var visitTaskQuery = visitGroupQuery.Select(x => new IRUnReadSubjectView()
|
||||
{
|
||||
SubjectId = x.Key.SubjectId,
|
||||
SubjectCode = x.Key.BlindSubjectCode == string.Empty ? x.Key.Code : x.Key.BlindSubjectCode,
|
||||
ClaimUserId = x.Key.ClaimUserId,
|
||||
ClaimUserName=x.Key.UserName,
|
||||
|
||||
SuggesteFinishedTime = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Min(x => x.SuggesteFinishedTime),
|
||||
|
||||
|
|
|
@ -88,7 +88,6 @@ namespace IRaCIS.Core.Application.Service
|
|||
await _internationalizationRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
@ -106,7 +105,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
if (addOrEditInternationalization.InternationalizationType == 1)
|
||||
{
|
||||
await InternationalizationHelper.AddOrUpdateJsonKeyValueAsync(entity.Code, entity.Value, entity.ValueCN);
|
||||
await InternationalizationHelper.AddOrUpdateJsonKeyValueAsync(entity.Code, addOrEditInternationalization.Value, addOrEditInternationalization.ValueCN);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -235,7 +235,17 @@ namespace IRaCIS.Core.Application.Services
|
|||
var isAdditionalAssessment = _readingQuestionCriterionTrialRepository.Where(t => t.TrialId == trialId && t.IsSigned && t.IsAdditionalAssessment == true
|
||||
&&t.TrialCriterionAdditionalAssessmentTypeList.Any(c=>/*c.AdditionalAssessmentType==Domain.Share.Reading.AdditionalAssessmentType.BrainMetastasis &&*/ c.IsSelected==true)).Any();
|
||||
|
||||
return ResponseOutput.Ok<PageOutput<UnionDocumentWithConfirmInfoView>>( result, new { NeedSignCount = needSignTrialDocCount + needSignSystemDocCount, NeedSignTrialDocCount = needSignTrialDocCount, NeedSignSystemDocCount = needSignSystemDocCount, IsAdditionalAssessment = isAdditionalAssessment && isManualGenerateTask, TrialStatusStr = trialInfo.TrialStatusStr,TrialConfig= trialTaskConfig });
|
||||
|
||||
var isAllOnlySRReading = _readingQuestionCriterionTrialRepository.Where(t => t.TrialId == trialId && t.IsSigned).All(t => t.ReadingDivisionEnum == ReadingDivisionEnum.OnlySR);
|
||||
|
||||
return ResponseOutput.Ok<PageOutput<UnionDocumentWithConfirmInfoView>>( result, new {
|
||||
NeedSignCount = needSignTrialDocCount + needSignSystemDocCount,
|
||||
NeedSignTrialDocCount = needSignTrialDocCount,
|
||||
NeedSignSystemDocCount = needSignSystemDocCount,
|
||||
IsAllOnlySRReading= isAllOnlySRReading,
|
||||
IsAdditionalAssessment = isAdditionalAssessment && isManualGenerateTask,
|
||||
TrialStatusStr = trialInfo.TrialStatusStr,
|
||||
TrialConfig= trialTaskConfig });
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -35,9 +35,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
.ForMember(d => d.SiteName, u => u.MapFrom(s => s.Site.SiteName))
|
||||
.ForMember(d => d.UploaderFirstName, u => u.MapFrom(s => s.Uploader.FirstName))
|
||||
.ForMember(d => d.UploaderLastName, u => u.MapFrom(s => s.Uploader.LastName))
|
||||
.ForMember(d => d.UploadedTime, u => u.MapFrom(s => s.CreateTime))
|
||||
|
||||
.ForMember(d => d.DTFCount, u => u.MapFrom(s => s.StudyDTFList.Count()));
|
||||
.ForMember(d => d.UploadedTime, u => u.MapFrom(s => s.CreateTime));
|
||||
|
||||
CreateMap<Subject, StudyDTO>();
|
||||
|
||||
|
@ -61,7 +59,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
CreateMap<DicomStudy, QAStudyInfoDTO>()
|
||||
.ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
|
||||
.ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName))
|
||||
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id));
|
||||
.ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id))
|
||||
.ForMember(o => o.Modalities, t => t.MapFrom(u => string.Join('、', u.SeriesList.Select(t => t.Modality).Distinct()) ));
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -100,6 +100,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public string TaskBlindName { get; set; }
|
||||
|
||||
public string TaskName { get; set; }
|
||||
|
||||
public UserTypeEnum UserTypeEnum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 阅片类别
|
||||
/// </summary>
|
||||
|
@ -614,7 +618,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public Arm ArmEnum { get; set; }
|
||||
|
||||
|
||||
|
||||
public UserTypeEnum UserTypeEnum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评估结果
|
||||
|
|
|
@ -180,6 +180,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
//JudgeVisitTaskId = x.JudgeVisitTaskId,
|
||||
JudgeResultArm = x.JudgeResultTask.ArmEnum,
|
||||
SubjectId = x.SubjectId,
|
||||
|
||||
UserTypeEnum=x.DoctorUser.UserTypeEnum
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
|
@ -204,6 +206,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
TaskName = x.TaskName,
|
||||
SouceReadModuleId = x.SouceReadModuleId,
|
||||
SourceSubjectVisitId = x.SourceSubjectVisitId,
|
||||
|
||||
UserTypeEnum = x.DoctorUser.UserTypeEnum
|
||||
}).ToListAsync();
|
||||
|
||||
medicalReviewInfo.TaskList.ForEach(x =>
|
||||
|
@ -234,6 +238,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
SouceReadModuleId = x.SouceReadModuleId,
|
||||
SourceSubjectVisitId = x.SourceSubjectVisitId,
|
||||
SubjectId = x.SubjectId,
|
||||
|
||||
UserTypeEnum = x.DoctorUser.UserTypeEnum
|
||||
}).ToListAsync();
|
||||
|
||||
List<TaskInfo> otherTask = await _visitTaskRepository.Where(x =>
|
||||
|
@ -258,6 +264,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
TaskName = x.TaskName,
|
||||
SouceReadModuleId = x.SouceReadModuleId,
|
||||
SourceSubjectVisitId = x.SourceSubjectVisitId,
|
||||
|
||||
UserTypeEnum = x.DoctorUser.UserTypeEnum
|
||||
}).ToListAsync();
|
||||
|
||||
medicalReviewInfo.TaskList.ForEach(x =>
|
||||
|
@ -693,20 +701,20 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
var result = await _taskMedicalReviewRepository.SaveChangesAsync();
|
||||
|
||||
//自动发送邮件逻辑
|
||||
if (medicalReviewInfo.IsAutoGenerate)
|
||||
{
|
||||
////自动发送邮件逻辑
|
||||
//if (medicalReviewInfo.IsAutoGenerate)
|
||||
//{
|
||||
|
||||
var allMedicalAuditList= await _taskMedicalReviewRepository.Where(x => medicalReviewInfo.PDRelationTaskIdList.Contains(x.VisitTaskId) && x.IsAutoGenerate && x.IsInvalid==false).ToListAsync();
|
||||
// var allMedicalAuditList= await _taskMedicalReviewRepository.Where(x => medicalReviewInfo.PDRelationTaskIdList.Contains(x.VisitTaskId) && x.IsAutoGenerate && x.IsInvalid==false).ToListAsync();
|
||||
|
||||
if (allMedicalAuditList.All(t => t.IsApplyHeavyReading == false && t.AuditSignTime!=null && t.AuditState == MedicalReviewAuditState.HaveSigned))
|
||||
{
|
||||
//自动发送
|
||||
await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(medicalReviewInfo.VisitTaskId, false);
|
||||
}
|
||||
// if (allMedicalAuditList.All(t => t.IsApplyHeavyReading == false && t.AuditSignTime!=null && t.AuditState == MedicalReviewAuditState.HaveSigned))
|
||||
// {
|
||||
// //自动发送
|
||||
// await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(medicalReviewInfo.VisitTaskId, false);
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
@ -786,6 +794,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
AuditState = x.AuditState,
|
||||
SubjectCode = x.VisitTask.BlindSubjectCode == string.Empty ? x.VisitTask.Subject.Code : x.VisitTask.BlindSubjectCode,
|
||||
TaskBlindName = x.VisitTask.TaskBlindName,
|
||||
TaskName=x.VisitTask.TaskName,
|
||||
UserTypeEnum=x.VisitTask.DoctorUser.UserTypeEnum,
|
||||
ReadingCategory = x.VisitTask.ReadingCategory,
|
||||
FirstReplyTime = x.ReadingMedicalReviewDialogList.Min(x => x.CreateTime),
|
||||
LastReplyTime = x.ReadingMedicalReviewDialogList.Max(x => x.CreateTime),
|
||||
|
|
|
@ -2586,7 +2586,7 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
await _visitTaskRepository.SaveChangesAsync();
|
||||
|
||||
await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(visitTaskId);
|
||||
//await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(visitTaskId);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -453,7 +453,7 @@ namespace IRaCIS.Application.Services
|
|||
// 创建任务关联关系
|
||||
await this.CreateTaskRelated(inDto.VisitTaskId);
|
||||
|
||||
await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(inDto.VisitTaskId);
|
||||
//await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(inDto.VisitTaskId);
|
||||
return ResponseOutput.Ok(result);
|
||||
}
|
||||
|
||||
|
|
|
@ -559,40 +559,14 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
var messageToSend = new MimeMessage();
|
||||
|
||||
|
||||
|
||||
if (await _repository.AnyAsync<TrialSiteSurvey>(t => t.State == TrialSiteSurveyEnum.PMCreatedAndLock && t.Id == trialSiteSurveyId))
|
||||
{
|
||||
//---中心调研已锁定,不允许操作。
|
||||
return ResponseOutput.NotOk(_localizer["TrialSiteSurvey_Locked"]);
|
||||
}
|
||||
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM)
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager )
|
||||
{
|
||||
|
||||
//SPM 给填表人发
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, survey.Email));
|
||||
|
||||
survey.State = TrialSiteSurveyEnum.ToSubmit;
|
||||
}
|
||||
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM)
|
||||
{
|
||||
var hasSPMOrCPM = await _trialSiteSurveyRepository.AnyAsync(t => t.TrialId == trialSiteSubmitBackCommand.TrialId && t.Trial.TrialUserList.Any(u => u.User.UserTypeEnum == UserTypeEnum.SPM || u.User.UserTypeEnum == UserTypeEnum.CPM));
|
||||
|
||||
if (hasSPMOrCPM)
|
||||
{
|
||||
|
||||
//PM 给SPM发 (初审人)
|
||||
user = await _userRepository.FirstOrDefaultAsync(t => t.Id == survey.PreliminaryUserId);
|
||||
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, survey.PreliminaryUserId == null ? survey.Email : user.EMail));
|
||||
|
||||
survey.State = TrialSiteSurveyEnum.CRCSubmitted;
|
||||
|
||||
survey.ReviewerUserId = null;
|
||||
survey.ReviewerTime = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
//没有SPM 给填表人发
|
||||
messageToSend.To.Add(new MailboxAddress(String.Empty, survey.Email));
|
||||
|
||||
|
@ -605,7 +579,6 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var builder = new BodyBuilder();
|
||||
|
@ -649,9 +622,6 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
await _IMailVerificationService.SiteSurveyRejectEmail(messageToSend);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
await _trialSiteSurveyRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
@ -674,24 +644,9 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
return ResponseOutput.NotOk(_localizer["TrialSiteSurvey_Locked"]);
|
||||
}
|
||||
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM)
|
||||
{
|
||||
await _repository.BatchUpdateAsync<TrialSiteSurvey>(t => t.Id == trialSiteSurveyId, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.ToSubmit });
|
||||
}
|
||||
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM)
|
||||
{
|
||||
var hasSPMOrCPM = await _trialSiteSurveyRepository.AnyAsync(t => t.TrialId == trialId && t.Trial.TrialUserList.Any(u => u.User.UserTypeEnum == UserTypeEnum.SPM || u.User.UserTypeEnum == UserTypeEnum.CPM));
|
||||
|
||||
if (hasSPMOrCPM)
|
||||
{
|
||||
await _trialSiteSurveyRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialSiteSurveyId, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.CRCSubmitted });
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await _trialSiteSurveyRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialSiteSurveyId, u => new TrialSiteSurvey() { State = TrialSiteSurveyEnum.ToSubmit });
|
||||
}
|
||||
}
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
||||
}
|
||||
|
@ -737,8 +692,16 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
var trialSiteSurvey = (await _trialSiteSurveyRepository.Where(t => t.Id == trialSiteSurveyId).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
var siteUserList = await _trialSiteUserSurveyRepository.Where(t => t.TrialSiteSurvey.TrialId == trialId && t.TrialSiteSurvey.SiteId == trialSiteSurvey.SiteId && t.TrialSiteSurvey.IsDeleted == false).Select(t =>
|
||||
new { t.TrialSiteSurveyId, t.IsGenerateAccount, t.IsGenerateSuccess, t.UserTypeId,
|
||||
UserTypeEnum= (UserTypeEnum?) t.UserTypeRole.UserTypeEnum , t.TrialRoleName.Code,t.Email }).ToListAsync();
|
||||
new
|
||||
{
|
||||
t.TrialSiteSurveyId,
|
||||
t.IsGenerateAccount,
|
||||
t.IsGenerateSuccess,
|
||||
t.UserTypeId,
|
||||
UserTypeEnum = (UserTypeEnum?)t.UserTypeRole.UserTypeEnum,
|
||||
t.TrialRoleName.Code,
|
||||
t.Email
|
||||
}).ToListAsync();
|
||||
|
||||
|
||||
|
||||
|
@ -750,9 +713,9 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
{
|
||||
var currentUserList = siteUserList.Where(t => t.TrialSiteSurveyId == trialSiteSurveyId).ToList();
|
||||
|
||||
if(!currentUserList.Any(t=>t.Code=="1") || !currentUserList.Any(t => t.Code == "4"))
|
||||
if (!currentUserList.Any(t => t.Code == "1") || !currentUserList.Any(t => t.Code == "5"))
|
||||
{
|
||||
throw new BusinessValidationFailedException("本次提交,必须有CRC和影像负责人信息");
|
||||
throw new BusinessValidationFailedException("本次提交,必须有CRC和影像阅片人信息");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
if (addOrEditTrialSiteUserSurvey.UserTypeId != null && ( _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM))
|
||||
{
|
||||
var existSysUser = await _repository.FirstOrDefaultAsync<User>(t => t.EMail == addOrEditTrialSiteUserSurvey.Email && t.UserTypeId == addOrEditTrialSiteUserSurvey.UserTypeId);
|
||||
var existSysUser = await _repository.Where<User>(t => t.EMail == addOrEditTrialSiteUserSurvey.Email && t.UserTypeId == addOrEditTrialSiteUserSurvey.UserTypeId).Include(d=>d.UserTypeRole).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
if (existSysUser != null)
|
||||
|
@ -56,7 +56,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
if (existSysUser.LastName != addOrEditTrialSiteUserSurvey.LastName || existSysUser.FirstName != addOrEditTrialSiteUserSurvey.FirstName)
|
||||
{
|
||||
//$"该用户在系统中账户名为:{existSysUser.LastName + " / " + existSysUser.FirstName} ,与填写信息存在不一致项, 现将界面信息修改为与系统一致,可进行保存"
|
||||
return ResponseOutput.NotOk(_localizer["TrialSiteUser_InconsistentInfo", existSysUser.LastName + " / " + existSysUser.FirstName,existSysUser.Phone],
|
||||
return ResponseOutput.NotOk(_localizer["TrialSiteUser_InconsistentInfo", existSysUser.UserTypeRole.UserTypeShortName, existSysUser.EMail, existSysUser.LastName + " / " + existSysUser.FirstName,existSysUser.Phone],
|
||||
new { existSysUser.LastName, existSysUser.FirstName, existSysUser.Phone,existSysUser.IsTestUser,existSysUser.IsZhiZhun }, ApiResponseCodeEnum.NeedTips);
|
||||
}
|
||||
|
||||
|
|
|
@ -222,6 +222,8 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.DoubleAudit;
|
||||
|
||||
public bool IsImageConsistencyVerification { get; set; } = true;
|
||||
|
||||
public bool IsMedicalReview { get; set;}
|
||||
}
|
||||
|
||||
public class TrialTaskConfigView : TrialTaskConfig
|
||||
|
|
|
@ -132,8 +132,8 @@ namespace IRaCIS.Application.Services
|
|||
.WhereIf(_userInfo.UserTypeEnumInt==(int)UserTypeEnum.TA, t => t.UserTypeEnum== UserTypeEnum.ProjectManager)
|
||||
|
||||
//PM 不审 只能加IM IQC
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && qcProcessEnum == TrialQCProcess.NotAudit, t => t.UserTypeEnum == UserTypeEnum.IM)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && qcProcessEnum != TrialQCProcess.NotAudit, t =>( t.UserTypeEnum == UserTypeEnum.IM|| t.UserTypeEnum == UserTypeEnum.IQC))
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && qcProcessEnum == TrialQCProcess.NotAudit, t => (t.UserTypeEnum == UserTypeEnum.IM ||t.UserTypeEnum==UserTypeEnum.QA))
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && qcProcessEnum != TrialQCProcess.NotAudit, t =>( t.UserTypeEnum == UserTypeEnum.IM|| t.UserTypeEnum == UserTypeEnum.IQC || t.UserTypeEnum == UserTypeEnum.QA))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
try
|
||||
{
|
||||
return this.PIAuditImagePath?.Trim().Split('|').ToList();
|
||||
return this.PIAuditImagePath?.Trim().Split('|', StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
|
|
@ -437,7 +437,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
try
|
||||
{
|
||||
return this.PIAuditImagePath?.Trim().Split('|').ToList();
|
||||
return this.PIAuditImagePath?.Trim().Split('|',StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
|
|
@ -13,7 +13,8 @@ namespace IRaCIS.Core.Domain.Models
|
|||
[JsonIgnore]
|
||||
public List<StudyMonitor> DicomStudyMonitorList { get; set; } = new List<StudyMonitor>();
|
||||
[JsonIgnore]
|
||||
public List <StudyDTF> StudyDTFList { get; set;} = new List<StudyDTF>();
|
||||
public List<DicomSeries> SeriesList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public TrialSite TrialSite { get; set; }
|
||||
[JsonIgnore]
|
||||
|
|
|
@ -231,12 +231,12 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// <summary>
|
||||
/// QC流程 0 不审,1 单审,2双审
|
||||
/// </summary>
|
||||
public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.DoubleAudit;
|
||||
public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.NotAudit;
|
||||
|
||||
/// <summary>
|
||||
/// 影像一致性核查
|
||||
/// </summary>
|
||||
public bool IsImageConsistencyVerification { get; set; } = true;
|
||||
public bool IsImageConsistencyVerification { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 影像导出
|
||||
|
@ -359,7 +359,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public bool IsDeclaration { get; set; }
|
||||
|
||||
public bool IsMedicalReview { get; set; }
|
||||
public bool IsMedicalReview { get; set; } = false;
|
||||
|
||||
public UserTypeEnum? EnrollConfirmDefaultUserType { get; set; }
|
||||
|
||||
|
|
|
@ -125,6 +125,8 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public Guid? ClaimUserId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public User ClaimUser { get; set;}
|
||||
|
||||
//是否分配了读片医生
|
||||
//public bool IsAssignDoctorUser{get;set;}
|
||||
|
|
Loading…
Reference in New Issue