生成任务 维护IsClinicalDataSign
parent
d7b1937495
commit
fafbf9fcea
|
@ -14,6 +14,7 @@ using IRaCIS.Core.Infrastructure;
|
||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using IRaCIS.Core.Infra.EFCore.Common;
|
using IRaCIS.Core.Infra.EFCore.Common;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service
|
namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
|
@ -40,15 +41,17 @@ namespace IRaCIS.Core.Application.Service
|
||||||
private readonly IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository;
|
private readonly IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository;
|
||||||
|
|
||||||
private readonly IRepository<ClinicalDataTrialSet> _trialClinicalDataSetRepository;
|
private readonly IRepository<ClinicalDataTrialSet> _trialClinicalDataSetRepository;
|
||||||
|
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
|
||||||
|
|
||||||
|
|
||||||
public VisitTaskHelpeService(IRepository<VisitTask> visitTaskRepository, IRepository<SubjectUser> subjectUserRepository, IRepository<Trial> trialRepository, IEasyCachingProvider provider,
|
public VisitTaskHelpeService(IRepository<VisitTask> visitTaskRepository, IRepository<SubjectUser> subjectUserRepository, IRepository<Trial> trialRepository, IEasyCachingProvider provider,
|
||||||
IRepository<SubjectVisit> subjectVisitRepository,
|
IRepository<SubjectVisit> subjectVisitRepository,
|
||||||
IRepository<ReadModule> readModuleRepository,
|
IRepository<ReadModule> readModuleRepository,
|
||||||
IRepository<ReadingJudgeInfo> readingJudgeInfoRepository,
|
IRepository<ReadingJudgeInfo> readingJudgeInfoRepository,
|
||||||
IRepository<TaskAllocationRule> taskAllocationRuleRepository, IMapper mapper, IUserInfo userInfo, IRepository<VisitTaskReReading> visitTaskReReadingRepository,
|
IRepository<TaskAllocationRule> taskAllocationRuleRepository, IMapper mapper, IUserInfo userInfo, IRepository<VisitTaskReReading> visitTaskReReadingRepository,
|
||||||
IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IRepository<ClinicalDataTrialSet> trialClinicalDataSetRepository)
|
IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IRepository<ClinicalDataTrialSet> trialClinicalDataSetRepository, IRepository<ReadingClinicalData> readingClinicalDataRepository)
|
||||||
{
|
{
|
||||||
|
_readingClinicalDataRepository = readingClinicalDataRepository;
|
||||||
_trialClinicalDataSetRepository = trialClinicalDataSetRepository;
|
_trialClinicalDataSetRepository = trialClinicalDataSetRepository;
|
||||||
|
|
||||||
_visitTaskRepository = visitTaskRepository;
|
_visitTaskRepository = visitTaskRepository;
|
||||||
|
@ -119,7 +122,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
var blindTaskName = string.Empty;
|
var blindTaskName = string.Empty;
|
||||||
|
|
||||||
|
var isNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList);
|
||||||
|
var isClinicalDataSign = IsClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList, subjectVisit.Id, trialId);
|
||||||
|
|
||||||
if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
|
if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
|
||||||
{
|
{
|
||||||
|
@ -157,7 +161,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
|
|
||||||
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = isNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = isClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
var task2 = await _visitTaskRepository.AddAsync(new VisitTask()
|
var task2 = await _visitTaskRepository.AddAsync(new VisitTask()
|
||||||
|
@ -176,7 +181,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
|
|
||||||
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = isNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = isClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
currentMaxCodeInt = currentMaxCodeInt + 2;
|
currentMaxCodeInt = currentMaxCodeInt + 2;
|
||||||
|
@ -226,7 +232,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = isNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = isClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -302,6 +309,65 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 有可能在任务生成之前 就签名完了临床数据
|
||||||
|
private bool IsClinicalDataSign(ReadingCategory readingCategory, bool isbaseLine, CriterionType criterionType, List<ClinicalDataTrialSet> trialClinicalDataSetList,Guid readingId, Guid trialId)
|
||||||
|
{
|
||||||
|
var isClinicalDataSign = false;
|
||||||
|
|
||||||
|
var needSignCount = 0;
|
||||||
|
|
||||||
|
//CRC 的自动签名 不用管 只用处理PM的就好
|
||||||
|
var haveSignedCount = _readingClinicalDataRepository
|
||||||
|
.Where(t => t.TrialId == trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count();
|
||||||
|
|
||||||
|
//访视
|
||||||
|
if (readingCategory == ReadingCategory.Visit)
|
||||||
|
{
|
||||||
|
if (isbaseLine)
|
||||||
|
{
|
||||||
|
//CRC 的自动签名 不用管 只用处理PM 的就好
|
||||||
|
needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && (t.ClinicalDataLevel == ClinicalLevel.Subject || t.ClinicalDataLevel == ClinicalLevel.SubjectVisit) && t.UploadRole == UploadRole.PM).Count();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.SubjectVisit && t.UploadRole == UploadRole.PM).Count();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (readingCategory == ReadingCategory.Judge)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
//阅片期
|
||||||
|
else if (readingCategory == ReadingCategory.Global)
|
||||||
|
{
|
||||||
|
needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.ImageRead && t.UploadRole == UploadRole.PM).Count();
|
||||||
|
|
||||||
|
}
|
||||||
|
// 肿瘤学
|
||||||
|
else if (readingCategory == ReadingCategory.Oncology)
|
||||||
|
{
|
||||||
|
return trialClinicalDataSetList.Any(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
needSignCount = trialClinicalDataSetList.Where(t => t.CriterionEnumList.Any(c => c == (int)criterionType) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead && t.UploadRole == UploadRole.PM).Count();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needSignCount == haveSignedCount && needSignCount != 0)
|
||||||
|
{
|
||||||
|
isClinicalDataSign = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return isClinicalDataSign;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task AddTaskAsync(GenerateTaskCommand generateTaskCommand)
|
public async Task AddTaskAsync(GenerateTaskCommand generateTaskCommand)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -346,6 +412,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
var blindTaskName = string.Empty;
|
var blindTaskName = string.Empty;
|
||||||
|
|
||||||
|
var isNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList);
|
||||||
|
var isClinicalDataSign = IsClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList, subjectVisit.Id, trialId);
|
||||||
|
|
||||||
|
|
||||||
if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
|
if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
|
||||||
{
|
{
|
||||||
|
@ -385,7 +454,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
|
|
||||||
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = isNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = isClinicalDataSign
|
||||||
}); ;
|
}); ;
|
||||||
|
|
||||||
var task2 = await _visitTaskRepository.AddAsync(new VisitTask()
|
var task2 = await _visitTaskRepository.AddAsync(new VisitTask()
|
||||||
|
@ -404,7 +474,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
|
|
||||||
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = isNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign=isClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
currentMaxCodeInt = currentMaxCodeInt + 2;
|
currentMaxCodeInt = currentMaxCodeInt + 2;
|
||||||
|
@ -536,6 +607,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
SuggesteFinishedTime = DateTime.Now.AddDays(7),
|
SuggesteFinishedTime = DateTime.Now.AddDays(7),
|
||||||
TrialReadingCriterionId = latestTask.TrialReadingCriterionId,
|
TrialReadingCriterionId = latestTask.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = latestTask.IsNeedClinicalDataSign,
|
IsNeedClinicalDataSign = latestTask.IsNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign=latestTask.IsClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
currentMaxCodeInt = currentMaxCodeInt + 1;
|
currentMaxCodeInt = currentMaxCodeInt + 1;
|
||||||
|
@ -592,6 +664,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
TrialReadingCriterionId = latestTask.TrialReadingCriterionId,
|
TrialReadingCriterionId = latestTask.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = latestTask.IsNeedClinicalDataSign,
|
IsNeedClinicalDataSign = latestTask.IsNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = latestTask.IsClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
currentMaxCodeInt = currentMaxCodeInt + 1;
|
currentMaxCodeInt = currentMaxCodeInt + 1;
|
||||||
|
@ -669,7 +742,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = ReadingCategory.Visit,
|
ReadingCategory = ReadingCategory.Visit,
|
||||||
|
|
||||||
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.CriterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = isNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = isClinicalDataSign
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -796,6 +870,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
TrialReadingCriterionId = latestTask.TrialReadingCriterionId,
|
TrialReadingCriterionId = latestTask.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = latestTask.IsNeedClinicalDataSign,
|
IsNeedClinicalDataSign = latestTask.IsNeedClinicalDataSign,
|
||||||
|
IsClinicalDataSign = latestTask.IsClinicalDataSign
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1133,7 +1208,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
ReadingCategory = item.ReadingCategory,
|
ReadingCategory = item.ReadingCategory,
|
||||||
|
|
||||||
TrialReadingCriterionId = originalTaskInfo.TrialReadingCriterionId,
|
TrialReadingCriterionId = originalTaskInfo.TrialReadingCriterionId,
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Global, false, criterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Global, false, criterionType, clinicalDataConfirmList),
|
||||||
|
IsClinicalDataSign=IsClinicalDataSign(ReadingCategory.Global, false, criterionType, clinicalDataConfirmList,item.ReadModuleId,trialId)
|
||||||
});
|
});
|
||||||
|
|
||||||
currentMaxCodeInt = currentMaxCodeInt + 1;
|
currentMaxCodeInt = currentMaxCodeInt + 1;
|
||||||
|
@ -1180,7 +1256,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
TrialReadingCriterionId = originalTaskInfo.TrialReadingCriterionId,
|
TrialReadingCriterionId = originalTaskInfo.TrialReadingCriterionId,
|
||||||
|
|
||||||
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Oncology, false, criterionType, clinicalDataConfirmList)
|
IsNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Oncology, false, criterionType, clinicalDataConfirmList),
|
||||||
|
IsClinicalDataSign = IsClinicalDataSign(ReadingCategory.Oncology, false, criterionType, clinicalDataConfirmList, item.ReadModuleId, trialId)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1103,6 +1103,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
[Authorize(Policy = IRaCISPolicy.CRC)]
|
[Authorize(Policy = IRaCISPolicy.CRC)]
|
||||||
public async Task<IResponseOutput> CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand)
|
public async Task<IResponseOutput> CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var trialId = cRCRequestToQCCommand.TrialId;
|
||||||
|
|
||||||
var trialConfig = (await _trialRepository
|
var trialConfig = (await _trialRepository
|
||||||
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification, t.IsUrgent, t.IsHaveFirstGiveMedicineDate, t.ClinicalInformationTransmissionEnum })
|
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification, t.IsUrgent, t.IsHaveFirstGiveMedicineDate, t.ClinicalInformationTransmissionEnum })
|
||||||
.FirstOrDefaultAsync(t => t.TrialId == cRCRequestToQCCommand.TrialId)).IfNullThrowException();
|
.FirstOrDefaultAsync(t => t.TrialId == cRCRequestToQCCommand.TrialId)).IfNullThrowException();
|
||||||
|
@ -1131,7 +1134,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
return ResponseOutput.NotOk("当前批量提交访视的影像数据,其中部分已由其他CRC提交。", 3, ApiResponseCodeEnum.NeedTips);
|
return ResponseOutput.NotOk("当前批量提交访视的影像数据,其中部分已由其他CRC提交。", 3, ApiResponseCodeEnum.NeedTips);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取确认的临床数据配置
|
||||||
|
var clinicalDataConfirmList = _repository.Where<ClinicalDataTrialSet>(t => t.TrialId == trialId && t.IsConfirm).ToList();
|
||||||
|
|
||||||
// 别人未提交的
|
// 别人未提交的
|
||||||
foreach (var dbSubjectVisit in dbSubjectVisitList)
|
foreach (var dbSubjectVisit in dbSubjectVisitList)
|
||||||
|
@ -1144,8 +1148,37 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
}
|
}
|
||||||
|
|
||||||
//基线 且配置了临床数据
|
//基线 且配置了临床数据
|
||||||
if (trialConfig.ClinicalInformationTransmissionEnum != 0 && dbSubjectVisit.IsBaseLine/*&&dbSubjectVisit.ClinicalDataSignUserId==null*/)
|
if (trialConfig.ClinicalInformationTransmissionEnum != 0 /*&& dbSubjectVisit.IsBaseLine*//*&&dbSubjectVisit.ClinicalDataSignUserId==null*/)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
////找到需要确认的PDF 临床数据 如果没有CRC 没有上传 那么就添加一条没有文件的记录
|
||||||
|
|
||||||
|
//var crcNeedConfirmClinicalDataSetList = clinicalDataConfirmList.Where(t => t.UploadRole == UploadRole.CRC && t.ClinicalUploadType == ClinicalUploadType.PDF).ToList();
|
||||||
|
|
||||||
|
//// 找到CRC 已经自己添加的临床PDF数据文件
|
||||||
|
|
||||||
|
//var crcAddClinicalDataIdList = _readingClinicalDataRepository.Where(t => t.ReadingId == dbSubjectVisit.Id && t.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && t.ClinicalDataTrialSet.ClinicalUploadType == ClinicalUploadType.PDF)
|
||||||
|
// .Select(t => new { t.ClinicalDataTrialSetId }).ToList();
|
||||||
|
|
||||||
|
//foreach (var crcNeedConfirmClinicalDataSet in crcNeedConfirmClinicalDataSetList)
|
||||||
|
//{
|
||||||
|
// if (!crcAddClinicalDataIdList.Any(t => t.ClinicalDataTrialSetId == crcNeedConfirmClinicalDataSet.Id))
|
||||||
|
// {
|
||||||
|
// await _repository.AddAsync(new ReadingClinicalData()
|
||||||
|
// {
|
||||||
|
// TrialId = dbSubjectVisit.TrialId,
|
||||||
|
// SubjectId = dbSubjectVisit.SubjectId,
|
||||||
|
// ReadingId = dbSubjectVisit.Id,
|
||||||
|
// ClinicalDataTrialSetId = crcNeedConfirmClinicalDataSet.Id,
|
||||||
|
// IsVisit = true,
|
||||||
|
// IsSign = true,
|
||||||
|
// ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned
|
||||||
|
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
//已确认临床数据完整性
|
//已确认临床数据完整性
|
||||||
dbSubjectVisit.IsConfirmedClinicalData = true;
|
dbSubjectVisit.IsConfirmedClinicalData = true;
|
||||||
|
|
||||||
|
@ -1158,6 +1191,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned
|
ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//var signSuccess = await _repository.UpdateFromQueryAsync<TrialSign>(t => t.Id == cRCRequestToQCCommand.SignId, u => new TrialSign() { IsCompleted = true });
|
//var signSuccess = await _repository.UpdateFromQueryAsync<TrialSign>(t => t.Id == cRCRequestToQCCommand.SignId, u => new TrialSign() { IsCompleted = true });
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue