稽查5
continuous-integration/drone/push Build is passing Details

IRC_NewDev
he 2023-11-29 10:41:32 +08:00
parent 638fb12e16
commit 1274eaaec3
2 changed files with 115 additions and 101 deletions

View File

@ -915,10 +915,8 @@ namespace IRaCIS.Core.Application.Service
IsCRCConfirm = false,
IsCRCApplicationRevoke=false,
});
await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x=>x.ReadModuleId== inDto.ReadModuleId);
await _readModuleRepository.SaveChangesAsync();
await _readModuleCriterionFromRepository.BatchDeleteNoTrackingAsync(x => x.ReadModuleId == inDto.ReadModuleId);
}

View File

@ -2081,45 +2081,49 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var entity = item.Entity as ReadingClinicalDataPDF;
var clinicalData = await _dbContext.ReadingClinicalData.Where(t => t.Id == entity.ReadingClinicalDataId).FirstOrDefaultAsync();
var clinicalDataTrialSet = await _dbContext.ClinicalDataTrialSet.Where(t => t.Id == clinicalData.ClinicalDataTrialSetId).FirstOrDefaultAsync();
SubjectVisit? visit = await _dbContext.SubjectVisit.Where(x => x.Id == clinicalData.ReadingId).FirstOrDefaultAsync();
Site? siteInfo = null;
Subject? subject = null;
//阅片标准
var trialReadingCriterionIdList = await _dbContext.TrialClinicalDataSetCriterion.Where(t => t.TrialClinicalDataSetId == clinicalDataTrialSet.Id).Select(t => t.TrialReadingCriterionId).ToListAsync();
//阅片标准
var criterionNameList = await _dbContext.ReadingQuestionCriterionTrial.Where(t => trialReadingCriterionIdList.Contains(t.Id)).OrderBy(t => t.ShowOrder).Select(t => t.CriterionName).ToListAsync();
if (visit != null)
if (clinicalData != null)
{
siteInfo = await _dbContext.Site.Where(x => x.Id == visit.SiteId).FirstOrDefaultAsync();
subject= await _dbContext.Subject.Where(x => x.Id == clinicalData.SubjectId).FirstOrDefaultAsync();
var clinicalDataTrialSet = await _dbContext.ClinicalDataTrialSet.Where(t => t.Id == clinicalData.ClinicalDataTrialSetId).FirstOrDefaultAsync();
SubjectVisit? visit = await _dbContext.SubjectVisit.Where(x => x.Id == clinicalData.ReadingId).FirstOrDefaultAsync();
Site? siteInfo = null;
Subject? subject = null;
//阅片标准
var trialReadingCriterionIdList = await _dbContext.TrialClinicalDataSetCriterion.Where(t => t.TrialClinicalDataSetId == clinicalDataTrialSet.Id).Select(t => t.TrialReadingCriterionId).ToListAsync();
//阅片标准
var criterionNameList = await _dbContext.ReadingQuestionCriterionTrial.Where(t => trialReadingCriterionIdList.Contains(t.Id)).OrderBy(t => t.ShowOrder).Select(t => t.CriterionName).ToListAsync();
if (visit != null)
{
siteInfo = await _dbContext.Site.Where(x => x.Id == visit.SiteId).FirstOrDefaultAsync();
subject = await _dbContext.Subject.Where(x => x.Id == clinicalData.SubjectId).FirstOrDefaultAsync();
}
Guid? subjectVisitId = visit == null ? null : visit.Id;
await InsertInspection<ReadingClinicalDataPDF>(entity, type, x => new InspectionConvertDTO()
{
TrialId = clinicalData.TrialId,
SubjectId = clinicalData.SubjectId,
SubjectVisitId = subjectVisitId,
}, new
{
SiteCode = siteInfo == null ? "" : siteInfo.SiteCode,
SubjectCode = subject == null ? "" : subject.Code,
VisitName = visit == null ? "" : visit.VisitName,
clinicalDataTrialSet.ClinicalDataSetName,
clinicalDataTrialSet.ClinicalDataLevel,
clinicalDataTrialSet.ClinicalUploadType,
CriterionNames = string.Join(",", criterionNameList.Distinct()),
FileCount = 1,
});
}
Guid? subjectVisitId = visit==null?null: visit.Id;
await InsertInspection<ReadingClinicalDataPDF>(entity, type, x => new InspectionConvertDTO()
{
TrialId= clinicalData.TrialId,
SubjectId=clinicalData.SubjectId,
SubjectVisitId= subjectVisitId,
},new {
SiteCode = siteInfo == null ? "" : siteInfo.SiteCode,
SubjectCode = subject == null ? "" : subject.Code,
VisitName= visit==null?"": visit.VisitName,
clinicalDataTrialSet.ClinicalDataSetName,
clinicalDataTrialSet.ClinicalDataLevel,
clinicalDataTrialSet.ClinicalUploadType,
CriterionNames = string.Join(",", criterionNameList.Distinct()),
FileCount= 1,
});
}
@ -2172,67 +2176,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
//临床数据表单确认
var readModuleCriterionFromList = entitys.Where(x => x.Entity.GetType() == typeof(ReadModuleCriterionFrom)).ToList();
if (readModuleCriterionFromList.Count() > 0)
{
var item = readModuleCriterionFromList.FirstOrDefault();
var readModuleCriterionFrom = item.Entity as ReadModuleCriterionFrom;
var type = GetEntityAuditOpt(item);
var clinicalFormIds = new List<Guid>();
var criterionIds = new List<Guid>();
readModuleCriterionFromList.ForEach(x => {
var form = x.Entity as ReadModuleCriterionFrom;
clinicalFormIds.Add(form.ClinicalFormId);
});
var clinicalFormList = await _dbContext.ClinicalForm.Where(t =>clinicalFormIds.Contains(t.Id)).ToListAsync();
var clinicalDataTrialSetIds = clinicalFormList.Select(x => x.ClinicalDataTrialSetId).ToList().Distinct();
var readModule= await _dbContext.ReadModule.Where(t => t.Id == readModuleCriterionFrom.ReadModuleId).Include(x => x.SubjectVisit).FirstOrDefaultAsync();
var latestScanDate = readModule.SubjectVisit.LatestScanDate;
var clinicalDataTrialSetList = await _dbContext.ClinicalDataTrialSet.Where(t => clinicalDataTrialSetIds.Contains(t.Id)).ToListAsync();
var clinicalSetIds = clinicalDataTrialSetList.Select(x => x.Id).ToList();
// 项目临床数据和标准的关联
var trialReadingCriterionIdList = await _dbContext.TrialClinicalDataSetCriterion.Where(x => clinicalSetIds.Contains(x.TrialClinicalDataSetId)).Select(x => x.TrialReadingCriterionId).Distinct().ToListAsync();
// 标准
var criterionNameList = await _dbContext.ReadingQuestionCriterionTrial.Where(t => trialReadingCriterionIdList.Contains(t.Id)).OrderBy(t => t.ShowOrder).Select(t => t.CriterionName).ToListAsync();
Subject subject = await _dbContext.Subject.Where(x => x.Id == readModule.SubjectId).FirstOrDefaultAsync();
Site siteInfo = await _dbContext.Site.Where(x => x.Id == subject.SiteId).FirstOrDefaultAsync();
var clinicalDataSetNameList = clinicalDataTrialSetList.Select(x => x.ClinicalDataSetName).ToList();
await InsertInspection<ReadModuleCriterionFrom>(readModuleCriterionFrom, type, x => new InspectionConvertDTO()
{
ObjectRelationParentId= readModuleCriterionFrom.ReadModuleId,
GeneralId = readModuleCriterionFrom.ReadModuleId,
TrialId = subject.TrialId,
SubjectId = subject.Id,
}, new
{
SiteCode = siteInfo == null ? "" : siteInfo.SiteCode,
SubjectCode = subject == null ? "" : subject.Code,
LatestScanDate= latestScanDate,
ClinicalDataSetName = string.Join(",", clinicalDataSetNameList),
ClinicalDataLevel = clinicalDataTrialSetList.Select(x => x.ClinicalDataLevel).FirstOrDefault(),
ClinicalUploadType = clinicalDataTrialSetList.Select(x => x.ClinicalUploadType).FirstOrDefault(),
CriterionNames = string.Join(",", criterionNameList.Distinct()),
RecordNumber= readModuleCriterionFromList.Count(),
});
}
//系统临床数据配置
@ -2434,14 +2378,85 @@ namespace IRaCIS.Core.Infra.EFCore.Common
object objData = new { };
//临床数据表单确认
if(_userInfo.RequestUrl== "ClinicalAnswer/cRCConfirmClinical")
{
extraIndentification = "/" + _userInfo.RequestUrl;
var readModuleCriterionFromList = entitys.Where(x => x.Entity.GetType() == typeof(ReadModuleCriterionFrom)).ToList();
if (readModuleCriterionFromList.Count() > 0)
{
var readModuleCriterionFrom = readModuleCriterionFromList.FirstOrDefault().Entity as ReadModuleCriterionFrom;
var clinicalFormIds = new List<Guid>();
var criterionIds = new List<Guid>();
readModuleCriterionFromList.ForEach(x => {
var form = x.Entity as ReadModuleCriterionFrom;
clinicalFormIds.Add(form.ClinicalFormId);
});
var clinicalFormList = await _dbContext.ClinicalForm.Where(t => clinicalFormIds.Contains(t.Id)).ToListAsync();
var clinicalDataTrialSetIds = clinicalFormList.Select(x => x.ClinicalDataTrialSetId).ToList().Distinct();
var readModule = await _dbContext.ReadModule.Where(t => t.Id == readModuleCriterionFrom.ReadModuleId).Include(x => x.SubjectVisit).FirstOrDefaultAsync();
var latestScanDate = readModule.SubjectVisit.LatestScanDate;
var clinicalDataTrialSetList = await _dbContext.ClinicalDataTrialSet.Where(t => clinicalDataTrialSetIds.Contains(t.Id)).ToListAsync();
var clinicalSetIds = clinicalDataTrialSetList.Select(x => x.Id).ToList();
// 项目临床数据和标准的关联
var trialReadingCriterionIdList = await _dbContext.TrialClinicalDataSetCriterion.Where(x => clinicalSetIds.Contains(x.TrialClinicalDataSetId)).Select(x => x.TrialReadingCriterionId).Distinct().ToListAsync();
// 标准
var criterionNameList = await _dbContext.ReadingQuestionCriterionTrial.Where(t => trialReadingCriterionIdList.Contains(t.Id)).OrderBy(t => t.ShowOrder).Select(t => t.CriterionName).ToListAsync();
Subject subject = await _dbContext.Subject.Where(x => x.Id == readModule.SubjectId).FirstOrDefaultAsync();
Site siteInfo = await _dbContext.Site.Where(x => x.Id == subject.SiteId).FirstOrDefaultAsync();
var clinicalDataSetNameList = clinicalDataTrialSetList.Select(x => x.ClinicalDataSetName).ToList();
objData= new
{
SiteCode = siteInfo == null ? "" : siteInfo.SiteCode,
SubjectCode = subject == null ? "" : subject.Code,
LatestScanDate = latestScanDate,
ClinicalDataSetName = string.Join(",", clinicalDataSetNameList),
ClinicalDataLevel = clinicalDataTrialSetList.Select(x => x.ClinicalDataLevel).FirstOrDefault(),
ClinicalUploadType = clinicalDataTrialSetList.Select(x => x.ClinicalUploadType).FirstOrDefault(),
CriterionNames = string.Join(",", criterionNameList.Distinct()),
RecordNumber = readModuleCriterionFromList.Count(),
};
}
}
List<string> urlList = new List<string>() {
"ClinicalAnswer/cRCCancelConfirmClinical",
"ClinicalAnswer/PMConfirmClinical"
};
if (urlList.Contains(_userInfo.RequestUrl))
{
extraIndentification = "/" + _userInfo.RequestUrl;
string status = string.Empty;
if (!entity.IsCRCConfirm && _userInfo.RequestUrl == "ClinicalAnswer/PMConfirmClinical")
{
status = "已撤回";
extraIndentification += "/revocation";
} else if (entity.IsPMConfirm && _userInfo.RequestUrl == "ClinicalAnswer/PMConfirmClinical")
{
status = "已核对";
extraIndentification += "/Confirm";
}
var readModuleCriterionFrom = await _dbContext.ReadModuleCriterionFrom.Where(t => t.ReadModuleId == entity.Id).FirstOrDefaultAsync();
var latestScanDate = await _dbContext.ReadModule.Where(t => t.Id == entity.Id).Select(x => x.SubjectVisit.LatestScanDate).FirstOrDefaultAsync();
@ -2485,6 +2500,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
ClinicalUploadType = clinicalDataTrialSetList.Select(x => x.ClinicalUploadType).FirstOrDefault(),
CriterionNames = string.Join(",", criterionNameList.Distinct()),
RecordNumber = clinicalFormIds.Count(),
Status= status,
};
}