Merge branch 'Test.IRC' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test.IRC
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
951b4fde90
|
@ -14,7 +14,7 @@
|
|||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DocumentationFile>.\IRaCIS.Core.API.xml</DocumentationFile>
|
||||
<NoWarn>1701;1702;1591;</NoWarn>
|
||||
<NoWarn>1701;1702;1591;CS1570;</NoWarn>
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
|
@ -352,14 +352,15 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
ClinicalForm clinicalForm = new ClinicalForm() { };
|
||||
clinicalForm = new ClinicalForm()
|
||||
{
|
||||
ClinicalDataTrialSetId = inDto.ClinicalDataTrialSetId,
|
||||
SubjectId = inDto.SubjectId,
|
||||
TrialId= inDto.TrialId,
|
||||
Id = inDto.ClinicalFormId ?? NewId.NextGuid(),
|
||||
ReadingId = inDto.ReadingId,
|
||||
};
|
||||
clinicalForm = new ClinicalForm()
|
||||
{
|
||||
ClinicalDataTrialSetId = inDto.ClinicalDataTrialSetId,
|
||||
SubjectId = inDto.SubjectId,
|
||||
PicturePath = inDto.PicturePath,
|
||||
TrialId = inDto.TrialId,
|
||||
Id = inDto.ClinicalFormId ?? NewId.NextGuid(),
|
||||
ReadingId = inDto.ReadingId,
|
||||
};
|
||||
|
||||
if (inDto.ClinicalFormId!=null&&(await _readModuleCriterionFromRepository.AnyAsync(x => x.ClinicalFormId == inDto.ClinicalFormId.Value)))
|
||||
{
|
||||
|
@ -914,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);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -349,6 +349,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public Guid? ClinicalFormId { get; set; }
|
||||
|
||||
public string PicturePath { get; set; } = string.Empty;
|
||||
|
||||
public Guid SubjectId { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
|
|
@ -28,11 +28,16 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// 检查日期
|
||||
/// </summary>
|
||||
public DateTime? CheckDate { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 截图地址
|
||||
/// </summary>
|
||||
public string PicturePath { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建日期
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
|
|
|
@ -7,12 +7,14 @@ using MassTransit;
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
|
||||
using NetTopologySuite.Index.HPRtree;
|
||||
using Newtonsoft.Json;
|
||||
using SharpCompress.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
|
@ -2069,6 +2071,114 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
|
||||
|
||||
|
||||
|
||||
//临床数据上传PDF
|
||||
|
||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingClinicalDataPDF)))
|
||||
{
|
||||
var type = GetEntityAuditOpt(item);
|
||||
|
||||
var entity = item.Entity as ReadingClinicalDataPDF;
|
||||
|
||||
var clinicalData = await _dbContext.ReadingClinicalData.Where(t => t.Id == entity.ReadingClinicalDataId).FirstOrDefaultAsync();
|
||||
if (clinicalData != null)
|
||||
{
|
||||
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,
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ClinicalForm)))
|
||||
{
|
||||
var type = GetEntityAuditOpt(item);
|
||||
|
||||
var entity = item.Entity as ClinicalForm;
|
||||
|
||||
var clinicalDataTrialSet = await _dbContext.ClinicalDataTrialSet.Where(t => t.Id == entity.ClinicalDataTrialSetId).FirstOrDefaultAsync();
|
||||
|
||||
SubjectVisit? visit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.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 == entity.SubjectId).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
Guid? subjectVisitId = visit == null ? null : visit.Id;
|
||||
await InsertInspection<ClinicalForm>(entity, type, x => new InspectionConvertDTO()
|
||||
{
|
||||
TrialId = entity.TrialId,
|
||||
SubjectId = entity.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()),
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//系统临床数据配置
|
||||
|
||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ClinicalDataSystemSet)))
|
||||
|
@ -2264,15 +2374,148 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
|
||||
var entity = item.Entity as ReadModule;
|
||||
|
||||
string extraIndentification = string.Empty;
|
||||
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();
|
||||
Site? siteInfo = null;
|
||||
Subject? subject = null;
|
||||
//阅片标准
|
||||
|
||||
|
||||
var clinicalFormIds = await _dbContext.ReadModuleCriterionFrom.Where(x => x.ReadModuleId == entity.Id).Select(x => x.ClinicalFormId).ToListAsync();
|
||||
var clinicalDataTrialSetIds = await _dbContext.ClinicalForm.Where(x => clinicalFormIds.Contains(x.Id)).Select(x => x.ClinicalDataTrialSetId).Distinct().ToListAsync();
|
||||
|
||||
// 临床数据
|
||||
var clinicalDataTrialSetList = await _dbContext.ClinicalDataTrialSet.Where(x => clinicalDataTrialSetIds.Contains(x.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 = await _dbContext.Subject.Where(x => x.Id == entity.SubjectId).FirstOrDefaultAsync();
|
||||
siteInfo = await _dbContext.Site.Where(x => x.Id == subject.SiteId).FirstOrDefaultAsync();
|
||||
|
||||
var clinicalDataSetNameList = clinicalDataTrialSetList.Select(x => x.ClinicalDataSetName).ToList().Distinct();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
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 = clinicalFormIds.Count(),
|
||||
Status= status,
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
await InsertInspection<ReadModule>(item.Entity as ReadModule, type, x => new InspectionConvertDTO()
|
||||
{
|
||||
ObjectRelationParentId = entity.SubjectVisitId,
|
||||
|
||||
ObjectRelationParentId2 = entity.TrialReadingCriterionId,
|
||||
|
||||
ExtraIndentification= extraIndentification,
|
||||
//SubjectVisitId = x.SubjectVisitId,
|
||||
IsDistinctionInterface = false,
|
||||
});
|
||||
}, objData);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue