From 8e3dc734087cc2b74a9ce788f6642f8ebe46c36a Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 29 Feb 2024 16:08:39 +0800
Subject: [PATCH] =?UTF-8?q?[=E4=B8=80=E8=87=B4=E6=80=A7=E5=88=86=E6=9E=90?=
=?UTF-8?q?=E9=A2=84=E6=8F=90=E4=BA=A4]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DTO/TaskConsistentRuleViewModel.cs | 11 ++
.../Allocation/TaskConsistentRuleService.cs | 105 +++++++++++++-----
.../DTO/PersonalWorkstationViewModel.cs | 20 +---
.../TrialSiteUser/PersonalWorkstation.cs | 24 +---
.../WorkLoad/DTO/DoctorWorkLoadViewModel.cs | 2 +
.../Allocation/TrialVirtualSiteCodeUpdate.cs | 43 +++++++
.../Dcotor/EnrollReadingCriterion.cs | 59 ++++++++++
.../Trial/EnrollReadingCategory.cs | 2 +
IRaCIS.Core.Domain/Trial/Trial.cs | 2 +
.../Context/IRaCISDBContext.cs | 2 +
IRaCIS.Core.Test/DbHelper.ttinclude | 6 +-
11 files changed, 208 insertions(+), 68 deletions(-)
create mode 100644 IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs
create mode 100644 IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs
index a8b4f7aeb..7f478ad6e 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskConsistentRuleViewModel.cs
@@ -287,6 +287,17 @@ namespace IRaCIS.Core.Application.ViewModel
}
+ public class UpdateTrialSiteCodeCommand
+ {
+ public Guid TrialId { get; set; }
+
+ public string VirtualSiteCode { get; set; }
+ }
+
+ public class UpdateTrialSiteCodeCommandView: UpdateTrialSiteCodeCommand
+ {
+ public DateTime Creatime { get; set; }
+ }
/// TaskConsistentRuleAddOrEdit 列表查询参数模型
public class TaskConsistentRuleAddOrEdit
diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs
index 9d5e2b503..b05e5f36b 100644
--- a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs
@@ -32,9 +32,15 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository _subjectRepository;
private readonly IRepository _enrollRepository;
private readonly IDistributedLockProvider _distributedLockProvider;
+ private readonly IRepository _trialRepository;
+ private readonly IRepository _trialSiteRepository;
+
+ private readonly IRepository _trialVirtualSiteCodeUpdateRepository;
- public TaskConsistentRuleService(IRepository visitTaskRepository, IRepository enrollRepository, IRepository taskConsistentRuleRepository, IRepository subjectUserRepository, IRepository subjectRepository, IDistributedLockProvider distributedLockProvider)
+
+ public TaskConsistentRuleService(IRepository visitTaskRepository, IRepository enrollRepository, IRepository taskConsistentRuleRepository, IRepository subjectUserRepository, IRepository subjectRepository, IDistributedLockProvider distributedLockProvider,
+ IRepository trialRepository, IRepository trialSiteRepository, IRepository trialVirtualSiteCodeUpdateRepository)
{
_taskConsistentRuleRepository = taskConsistentRuleRepository;
_visitTaskRepository = visitTaskRepository;
@@ -42,6 +48,12 @@ namespace IRaCIS.Core.Application.Service
_subjectRepository = subjectRepository;
_enrollRepository = enrollRepository;
_distributedLockProvider = distributedLockProvider;
+
+ _trialRepository = trialRepository;
+
+ _trialSiteRepository = trialSiteRepository;
+
+ _trialVirtualSiteCodeUpdateRepository = trialVirtualSiteCodeUpdateRepository;
}
///
@@ -54,7 +66,7 @@ namespace IRaCIS.Core.Application.Service
{
- await _visitTaskRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.Id), u => new VisitTask() { TaskState = TaskState.NotEffect },true);
+ await _visitTaskRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.Id), u => new VisitTask() { TaskState = TaskState.NotEffect }, true);
await _visitTaskRepository.SaveChangesAsync();
@@ -69,7 +81,7 @@ namespace IRaCIS.Core.Application.Service
///
///
[HttpPost]
- public async Task> GetAnalysisTaskList(VisitTaskQuery queryVisitTask)
+ public async Task>> GetAnalysisTaskList(VisitTaskQuery queryVisitTask)
{
var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId)
.Where(t => t.IsAnalysisCreate)
@@ -97,8 +109,9 @@ namespace IRaCIS.Core.Application.Service
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
- //var trialTaskConfig = _repository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- return pageList;
+ var trialTaskConfig = _repository.Where(t => t.Id == queryVisitTask.TrialId).Select(t => new { t.ReviewMode, t.VitrualSiteCode }).FirstOrDefault();
+
+ return ResponseOutput.Ok(pageList, trialTaskConfig);
}
@@ -155,9 +168,9 @@ namespace IRaCIS.Core.Application.Service
var blindSubjectCode = string.Empty;
- var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId==trialReadingCriterionId && t.IsSelfAnalysis == true).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault();
+ var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis == true).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault();
- if (subjectTask!=null && subjectTask.BlindSubjectCode != String.Empty)
+ if (subjectTask != null && subjectTask.BlindSubjectCode != String.Empty)
{
blindSubjectCode = subjectTask.BlindSubjectCode;
}
@@ -165,11 +178,11 @@ namespace IRaCIS.Core.Application.Service
{
var maxCodeStr = _visitTaskRepository.Where(t => t.TrialId == subject.TrialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis == true).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault();
- if ( !string.IsNullOrEmpty(maxCodeStr))
+ if (!string.IsNullOrEmpty(maxCodeStr))
{
int.TryParse(maxCodeStr.Substring(maxCodeStr.Length - filterObj.BlindSubjectNumberOfPlaces), out maxCodeInt);
- }
+ }
blindSubjectCode = filterObj.BlindTrialSiteCode + (maxCodeInt + 1).ToString($"D{filterObj.BlindSubjectNumberOfPlaces}");
}
@@ -190,7 +203,7 @@ namespace IRaCIS.Core.Application.Service
{
var lastTask = (subject.VisitTaskList.Take(filterObj.PlanVisitCount).Last()).Clone();
- var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId &&t.TrialReadingCriterionId==trialReadingCriterionId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+ var existGlobal = _visitTaskRepository.Where(t => t.SubjectId == lastTask.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Global && t.VisitTaskNum == lastTask.VisitTaskNum + ReadingCommon.TaskNumDic[ReadingCategory.Global]).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
if (existGlobal == null)
@@ -203,7 +216,7 @@ namespace IRaCIS.Core.Application.Service
ReadingCategory = ReadingCategory.Global,
TaskName = lastTask.TaskName + "_Global",
TaskBlindName = lastTask.TaskBlindName + "_Global",
- TrialReadingCriterionId=trialReadingCriterionId,
+ TrialReadingCriterionId = trialReadingCriterionId,
};
}
@@ -249,7 +262,7 @@ namespace IRaCIS.Core.Application.Service
{
var trialId = inQuery.TrialId;
- var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId && t.IsSelfAnalysis == false);
+ var filterObj = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.IsSelfAnalysis == false);
if (filterObj == null)
@@ -290,7 +303,7 @@ namespace IRaCIS.Core.Application.Service
var subjectList = query.ToList();
- var doctorUserIdQuery = from enroll in _repository.Where(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Where(t=>t.TrialReadingCriterionId==trialReadingCriterionId).Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit))
+ var doctorUserIdQuery = from enroll in _repository.Where(t => t.TrialId == trialId).Where(t => t.EnrollReadingCategoryList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(c => c.ReadingCategory == ReadingCategory.Global || c.ReadingCategory == ReadingCategory.Visit))
join user in _repository.Where() on enroll.DoctorId equals user.DoctorId
select user.Id;
@@ -310,7 +323,7 @@ namespace IRaCIS.Core.Application.Service
var blindSubjectCode = string.Empty;
- var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis==false).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault();
+ var subjectTask = _visitTaskRepository.Where(t => t.SubjectId == subject.SubjectId && t.TrialReadingCriterionId == trialReadingCriterionId && t.IsSelfAnalysis == false).OrderByDescending(t => t.BlindSubjectCode).FirstOrDefault();
if (subjectTask != null && subjectTask.BlindSubjectCode != String.Empty)
{
blindSubjectCode = subjectTask.BlindSubjectCode;
@@ -371,10 +384,10 @@ namespace IRaCIS.Core.Application.Service
TrialReadingCriterionId = task.TrialReadingCriterionId,
- BlindSubjectCode=blindSubjectCode,
- BlindTrialSiteCode=filterObj.BlindTrialSiteCode
+ BlindSubjectCode = blindSubjectCode,
+ BlindTrialSiteCode = filterObj.BlindTrialSiteCode
+
-
});
}
@@ -460,7 +473,7 @@ namespace IRaCIS.Core.Application.Service
#region Subejct 维度
- Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId== trialReadingCriterionId &&
+ Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId &&
u.SignTime!.Value.AddDays(filterObj.IntervalWeeks * 7) < DateTime.Now && (u.ReReadingApplyState == ReReadingApplyState.Default || u.ReReadingApplyState == ReReadingApplyState.Reject) && u.DoctorUserId == doctorUserId;
@@ -499,11 +512,11 @@ namespace IRaCIS.Core.Application.Service
TrialSiteCode = t.TrialSite.TrialSiteCode,
SubjectId = t.Id,
- IsReReadingOrBackInfluenceAnalysis=t.IsReReadingOrBackInfluenceAnalysis,
+ IsReReadingOrBackInfluenceAnalysis = t.IsReReadingOrBackInfluenceAnalysis,
BlindSubjectCode = t.SubjectVisitTaskList.Where(t => t.IsAnalysisCreate && t.TrialReadingCriterionId == trialReadingCriterionId).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault(),
- IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.DoctorUserId == doctorUserId && c.IsSelfAnalysis == true && c.TrialReadingCriterionId==trialReadingCriterionId),
+ IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.DoctorUserId == doctorUserId && c.IsSelfAnalysis == true && c.TrialReadingCriterionId == trialReadingCriterionId),
ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).Count(),
@@ -526,7 +539,7 @@ namespace IRaCIS.Core.Application.Service
- TrialReadingCriterionId=c.TrialReadingCriterionId,
+ TrialReadingCriterionId = c.TrialReadingCriterionId,
IsClinicalDataSign = c.IsClinicalDataSign,
IsNeedClinicalDataSign = c.IsNeedClinicalDataSign,
@@ -575,7 +588,7 @@ namespace IRaCIS.Core.Application.Service
- Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId
+ Expression> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId
&& (u.ReReadingApplyState == ReReadingApplyState.Default || u.ReReadingApplyState == ReReadingApplyState.Reject);
@@ -622,7 +635,7 @@ namespace IRaCIS.Core.Application.Service
SubjectId = t.Id,
IsReReadingOrBackInfluenceAnalysis = t.IsReReadingOrBackInfluenceAnalysis,
- IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.IsSelfAnalysis == false && c.TrialReadingCriterionId==trialReadingCriterionId),
+ IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.IsSelfAnalysis == false && c.TrialReadingCriterionId == trialReadingCriterionId),
ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Count(),
@@ -663,7 +676,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task GetConsistentRule(TaskConsistentRuleQuery inQuery)
{
- return await _taskConsistentRuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsSelfAnalysis == inQuery.IsSelfAnalysis && t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
+ return await _taskConsistentRuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsSelfAnalysis == inQuery.IsSelfAnalysis && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
}
///
@@ -676,9 +689,9 @@ namespace IRaCIS.Core.Application.Service
{
var trialId = inQuery.TrialId;
- var taskConsistentRuleQueryable = from enroll in _repository.Where(t => t.TrialId == trialId && t.EnrollStatus==EnrollStatus.ConfirmIntoGroup)
+ var taskConsistentRuleQueryable = from enroll in _repository.Where(t => t.TrialId == trialId && t.EnrollStatus == EnrollStatus.ConfirmIntoGroup)
join user in _repository.Where() on enroll.DoctorId equals user.DoctorId
- join taskConsistentRule in _repository.Where(t => t.TrialId == trialId &&t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId && t.IsSelfAnalysis) on enroll.TrialId equals taskConsistentRule.TrialId
+ join taskConsistentRule in _repository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.IsSelfAnalysis) on enroll.TrialId equals taskConsistentRule.TrialId
select new TaskConsistentRuleView()
{
Id = taskConsistentRule.Id,
@@ -727,7 +740,27 @@ namespace IRaCIS.Core.Application.Service
return await taskConsistentRuleQueryable.ToListAsync();
}
+ [HttpPost]
+ [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
+ public async Task UpdateTrialVirtualSiteCode(UpdateTrialSiteCodeCommand inCommand)
+ {
+ var trial = await _trialRepository.FirstOrDefaultAsync(t => t.Id == inCommand.TrialId);
+
+ trial.VitrualSiteCode = inCommand.VirtualSiteCode;
+
+ await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = inCommand.VirtualSiteCode,TrialId=inCommand.TrialId });
+
+ await _trialRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok();
+ }
+
+ public async Task> GetUpdateVirtualSiteCodeList(Guid trialId)
+ {
+ var list = await _trialVirtualSiteCodeUpdateRepository.Where(t => t.TrialId == trialId).Select(t => new UpdateTrialSiteCodeCommandView() { TrialId = trialId, VirtualSiteCode = t.VirturalSiteCode, Creatime = t.CreateTime }).ToListAsync();
+ return list;
+ }
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
@@ -737,7 +770,7 @@ namespace IRaCIS.Core.Application.Service
var verifyExp1 = new EntityVerifyExp()
{
- VerifyExp = t => t.TrialId == addOrEditTaskConsistentRule.TrialId && t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialReadingCriterionId==addOrEditTaskConsistentRule.TrialReadingCriterionId,
+ VerifyExp = t => t.TrialId == addOrEditTaskConsistentRule.TrialId && t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialReadingCriterionId == addOrEditTaskConsistentRule.TrialReadingCriterionId,
//"已有该项目配置,不允许继续增加"
VerifyMsg = _localizer["TaskConsistent_TaskGenerated"]
};
@@ -748,6 +781,22 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.NotOk(_localizer["TaskConsistent_MedicalAuditTaskExists"]);
}
+
+ if (_trialSiteRepository.Where(t => t.TrialId == addOrEditTaskConsistentRule.TrialId, false, true).Any(t => t.TrialSiteCode == addOrEditTaskConsistentRule.BlindTrialSiteCode))
+ {
+ return ResponseOutput.NotOk(_localizer["TaskConsistent_SiteCodeExists"]);
+ }
+
+ var trial = await _trialRepository.FirstOrDefaultAsync(t => t.Id == addOrEditTaskConsistentRule.TrialId);
+
+ if (string.IsNullOrEmpty(trial.VitrualSiteCode))
+ {
+ await _trialVirtualSiteCodeUpdateRepository.AddAsync(new TrialVirtualSiteCodeUpdate() { VirturalSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode,TrialId=addOrEditTaskConsistentRule.TrialId });
+ }
+
+ trial.VitrualSiteCode = addOrEditTaskConsistentRule.BlindTrialSiteCode;
+
+
var entity = await _taskConsistentRuleRepository.InsertOrUpdateAsync(addOrEditTaskConsistentRule, true, verifyExp1);
return ResponseOutput.Ok(entity.Id.ToString());
@@ -762,7 +811,7 @@ namespace IRaCIS.Core.Application.Service
var config = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.Id == taskConsistentRuleId);
- if (await _visitTaskRepository.AnyAsync(t => t.IsAnalysisCreate && t.TrialId == config.TrialId && t.IsSelfAnalysis == config.IsSelfAnalysis && t.TrialReadingCriterionId==config.TrialReadingCriterionId))
+ if (await _visitTaskRepository.AnyAsync(t => t.IsAnalysisCreate && t.TrialId == config.TrialId && t.IsSelfAnalysis == config.IsSelfAnalysis && t.TrialReadingCriterionId == config.TrialReadingCriterionId))
{
//"该标准已产生一致性分析任务,不允许删除"
throw new BusinessValidationFailedException(_localizer["TaskConsistent_SignedTaskCannotBeInvalidated"]);
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs
index 2f3a3ca9e..4ff527885 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/PersonalWorkstationViewModel.cs
@@ -379,6 +379,9 @@ namespace IRaCIS.Core.Application.Contracts
public class UserToBeDoneRecord
{
+ public int? TrialWaitSignDocCount { get; set; }
+
+ public int? SysWaitSignDocCount { get; set; }
#region PM/APM
public int? PM_SiteSurveryCount { get; set; }
public int? PM_CheckCount { get; set; }
@@ -386,11 +389,9 @@ namespace IRaCIS.Core.Application.Contracts
public int? PM_ReReadingApprovalCount { get; set; }
- public int? PM_TrialWaitSignDocCount { get; set; }
-
- public int? PM_SysWaitSignDocCount { get; set; }
-
public int? PM_ClinicalDataCount { get; set; }
+
+ public int? ClinicalDataCount { get; set; }
#endregion
#region CRC
@@ -404,9 +405,7 @@ namespace IRaCIS.Core.Application.Contracts
public int? CRC_ClinicalDataTobeDoneCount { get; set; }
public int? CRC_ClinialDataTobeConfirmCount { get; set; }
- public int? CRC_TrialWaitSignDocCount { get; set; }
- public int? CRC_SysWaitSignDocCount { get; set; }
#endregion
@@ -417,9 +416,7 @@ namespace IRaCIS.Core.Application.Contracts
public int? SPM_ReReadingApprovalCount { get; set; }
- public int? SPM_TrialWaitSignDocCount { get; set; }
- public int? SPM_SysWaitSignDocCount { get; set; }
#endregion
@@ -428,9 +425,7 @@ namespace IRaCIS.Core.Application.Contracts
public int? IQC_IamgeQCCount { get; set; }
public int? IQC_QCQuestionCount { get; set; }
- public int? IQC_TrialWaitSignDocCount { get; set; }
- public int? IQC_SysWaitSignDocCount { get; set; }
#endregion
@@ -438,17 +433,12 @@ namespace IRaCIS.Core.Application.Contracts
public int? IR_IamgeWaitReadingCount { get; set; }
public int? IR_MedicalReviewCount { get; set; }
- public int? IR_TrialWaitSignDocCount { get; set; }
-
- public int? IR_SysWaitSignDocCount { get; set; }
#endregion
#region MIM
public int? MIM_MedicalReviewCount { get; set; }
- public int? MIM_TrialWaitSignDocCount { get; set; }
- public int? MIM_SysWaitSignDocCount { get; set; }
#endregion
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs
index 13d490b7c..ce8852269 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs
@@ -1241,32 +1241,12 @@ namespace IRaCIS.Core.Application
var record = new UserToBeDoneRecord()
{
- #region sign document
IsHaveSysDocNeedNeedSign = needSignSysDocCont > 0,
//TrialNeedSignList= trialNeedSignList,
- PM_SysWaitSignDocCount = isPM ? needSignSysDocCont : 0,
- PM_TrialWaitSignDocCount = isPM ? needSignTrialCount : 0,
-
- CRC_SysWaitSignDocCount = isCRC ? needSignSysDocCont : 0,
- CRC_TrialWaitSignDocCount = isCRC ? needSignTrialCount : 0,
-
- SPM_SysWaitSignDocCount = isSPMOrCPM ? needSignSysDocCont : 0,
- SPM_TrialWaitSignDocCount = isSPMOrCPM ? needSignTrialCount : 0,
-
- IQC_SysWaitSignDocCount = isIQC ? needSignSysDocCont : 0,
- IQC_TrialWaitSignDocCount = isIQC ? needSignTrialCount : 0,
-
-
- IR_SysWaitSignDocCount = isIR ? needSignSysDocCont : 0,
- IR_TrialWaitSignDocCount = isIR ? needSignTrialCount : 0,
-
- MIM_SysWaitSignDocCount = isMIM ? needSignSysDocCont : 0,
- MIM_TrialWaitSignDocCount = isMIM ? needSignTrialCount : 0,
-
- #endregion
-
+ SysWaitSignDocCount = isPM ? needSignSysDocCont : 0,
+ TrialWaitSignDocCount = isPM ? needSignTrialCount : 0,
#region PM
diff --git a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs
index 093c7a829..4a755f8b3 100644
--- a/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs
+++ b/IRaCIS.Core.Application/Service/WorkLoad/DTO/DoctorWorkLoadViewModel.cs
@@ -151,6 +151,8 @@ namespace IRaCIS.Application.Contracts
public Guid TrialReadingCriterionId { get; set; }
public List ReadingCategorys { get; set; }
+
+ public bool IsJoinAnalysis { get; set; } = true;
}
diff --git a/IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs b/IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs
new file mode 100644
index 000000000..e30eb605f
--- /dev/null
+++ b/IRaCIS.Core.Domain/Allocation/TrialVirtualSiteCodeUpdate.cs
@@ -0,0 +1,43 @@
+
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2024-02-29 15:48:36
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+using System;
+using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace IRaCIS.Core.Domain.Models
+{
+ ///
+ ///TrialVirtualSiteCodeUpdate
+ ///
+ [Table("TrialVirtualSiteCodeUpdate")]
+ public class TrialVirtualSiteCodeUpdate : Entity, IAuditAdd
+ {
+
+
+ public Guid TrialId { get; set; }
+
+ ///
+ /// CreateTime
+ ///
+ [Required]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
+ [Required]
+ public Guid CreateUserId { get; set; }
+
+ ///
+ /// VirturalSiteCode
+ ///
+ [Required]
+ public string VirturalSiteCode { get; set; }
+
+ }
+
+
+}
diff --git a/IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs b/IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs
new file mode 100644
index 000000000..1a7fff4fb
--- /dev/null
+++ b/IRaCIS.Core.Domain/Dcotor/EnrollReadingCriterion.cs
@@ -0,0 +1,59 @@
+
+//--------------------------------------------------------------------
+// 此代码由T4模板自动生成 byzhouhang 20210918
+// 生成时间 2024-02-29 15:51:46
+// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
+using System;
+using IRaCIS.Core.Domain.Share;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+namespace IRaCIS.Core.Domain.Models
+{
+ ///
+ ///EnrollReadingCriterion
+ ///
+ [Table("EnrollReadingCriterion")]
+ public class EnrollReadingCriterion : Entity, IAuditAdd
+ {
+
+ ///
+ /// Id
+ ///
+ [Key]
+ [Required]
+ public Guid Id { get; set; }
+
+ ///
+ /// EnrollId
+ ///
+ [Required]
+ public Guid EnrollId { get; set; }
+
+ ///
+ /// TrialReadingCriterionId
+ ///
+ [Required]
+ public Guid TrialReadingCriterionId { get; set; }
+
+ ///
+ /// IsJoinAnalysis
+ ///
+ [Required]
+ public bool IsJoinAnalysis { get; set; }
+
+ ///
+ /// CreateTime
+ ///
+ [Required]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// CreateUserId
+ ///
+ [Required]
+ public Guid CreateUserId { get; set; }
+
+ }
+
+
+}
diff --git a/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs b/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs
index 6cf112e7c..19dccceb8 100644
--- a/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs
+++ b/IRaCIS.Core.Domain/Trial/EnrollReadingCategory.cs
@@ -15,6 +15,8 @@ namespace IRaCIS.Core.Domain.Models
[Table("EnrollReadingCategory")]
public class EnrollReadingCategory : Entity, IAuditAdd
{
+
+ public bool IsJoinAnalysis { get; set; }=true;
///
/// EnrollId
///
diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs
index 9b4042481..2a3812f28 100644
--- a/IRaCIS.Core.Domain/Trial/Trial.cs
+++ b/IRaCIS.Core.Domain/Trial/Trial.cs
@@ -359,6 +359,8 @@ namespace IRaCIS.Core.Domain.Models
public int IndicationEnum { get; set; } = -1;
+ public string VitrualSiteCode { get; set; }
+
#region 邮件配置
///
/// 发件箱账号
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index 3bca4505f..931cf24b9 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -672,6 +672,8 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet Internationalization { get; set; }
+ public virtual DbSet TrialVirtualSiteCodeUpdate { get; set; }
+ public virtual DbSet EnrollReadingCriterion { get; set; }
}
diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude
index 5ce722349..f492fe319 100644
--- a/IRaCIS.Core.Test/DbHelper.ttinclude
+++ b/IRaCIS.Core.Test/DbHelper.ttinclude
@@ -1,10 +1,10 @@
<#+
public class config
{
- public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Test.IRC;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true";
- public static readonly string DbDatabase = "Test.IRC";
+ public static readonly string ConnectionString = "Server=123.56.94.154,1435;Database=Test_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true";
+ public static readonly string DbDatabase = "Test_IRC";
//表名称用字符串,拼接
- public static readonly string TableName = "ReadingTaskQuestionMark";
+ public static readonly string TableName = "EnrollReadingCriterion";
//具体文件里面 例如service 可以配置是否分页
}
#>