Merge branch '中心影像_Test环境' of http://192.168.1.2:8033/IRaCIS_Core_Api into 中心影像_Test环境

Uat_Study
he 2023-07-21 15:30:36 +08:00
commit 42e64d77cb
18 changed files with 92 additions and 97 deletions

View File

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

View File

@ -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 没有任务列表
@ -639,7 +641,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
t => true)
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
t => t.SourceSubjectVisit.IsBaseLine == false)
t => t.SourceSubjectVisit.IsBaseLine == false )
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline,
t => t.SourceSubjectVisit.IsBaseLine == false)
@ -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))
// 前序 不存在 未一致性核查未通过的 并且前序不存在未完成阅片的有效任务
.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),

View File

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

View File

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

View File

@ -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()) ));

View File

@ -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>
/// 评估结果

View File

@ -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),

View File

@ -2586,7 +2586,7 @@ namespace IRaCIS.Application.Services
await _visitTaskRepository.SaveChangesAsync();
await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(visitTaskId);
//await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(visitTaskId);
}

View File

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

View File

@ -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();
}
@ -736,9 +691,17 @@ 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();
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();
@ -746,13 +709,13 @@ namespace IRaCIS.Core.Application.Contracts
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.Undefined)
{
//是第一次
if(!siteUserList.Any(t=>t.IsGenerateSuccess))
if (!siteUserList.Any(t => t.IsGenerateSuccess))
{
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和影像阅片人信息");
}
}
@ -762,7 +725,7 @@ namespace IRaCIS.Core.Application.Contracts
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
{
foreach (var group in (siteUserList.Where(t=>t.IsGenerateAccount && t.TrialSiteSurveyId==trialSiteSurveyId)
foreach (var group in (siteUserList.Where(t => t.IsGenerateAccount && t.TrialSiteSurveyId == trialSiteSurveyId)
.GroupBy(t => new { t.Email, t.IsGenerateAccount, t.UserTypeId })))
{
if (group.Count() > 1)

View File

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

View File

@ -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

View File

@ -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))

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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]

View File

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

View File

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