代码修改

Uat_Study
he 2022-05-10 17:55:05 +08:00
parent fa72980130
commit 6ab8d575f2
3 changed files with 138 additions and 83 deletions

View File

@ -79,14 +79,12 @@ namespace IRaCIS.Core.Application.Service.Inspection
from lefttrialSign in trialSigntemp.DefaultIfEmpty() from lefttrialSign in trialSigntemp.DefaultIfEmpty()
join leftfrontAuditConfig in _repository.GetQueryable<FrontAuditConfig>().Where(x=>x.ConfigType=="M"&&x.Identification!=null) on new join leftfrontAuditConfig in _repository.GetQueryable<FrontAuditConfig>().Where(x=>x.ConfigType=="M"&&x.Identification!=null) on
{ data.Identification.ToLower()
data.Identification equals
} equals new leftfrontAuditConfig.Identification.ToLower()
{
leftfrontAuditConfig.Identification,
}

View File

@ -7,7 +7,7 @@ namespace IRaCIS.Core.Application.Triggers
/// <summary> /// <summary>
/// 处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期 /// 处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
/// </summary> /// </summary>
public class SubjectVisitTrigger : IAfterSaveTrigger<NoneDicomStudy>, IAfterSaveTrigger<DicomStudy> public class SubjectVisitTrigger : IAfterSaveTrigger<NoneDicomStudy>, IAfterSaveTrigger<DicomStudy>, IAfterSaveTrigger<NoneDicomStudyFile>
{ {
private readonly IRepository<SubjectVisit> _subjectVisitRepository; private readonly IRepository<SubjectVisit> _subjectVisitRepository;
@ -60,6 +60,19 @@ namespace IRaCIS.Core.Application.Triggers
} }
public async Task AfterSave(ITriggerContext<NoneDicomStudyFile> context, CancellationToken cancellationToken)
{
var subjectVisitId =await _subjectVisitRepository._dbContext.NoneDicomStudy.Where(x=>x.Id== context.Entity.NoneDicomStudyId).Select(x=>x.SubjectVisitId).FirstOrDefaultAsync();
if (context.ChangeType == ChangeType.Deleted)
{
await UpdateSubjectVisitSubmitStateAsync(subjectVisitId);
}
}
/// <summary>处理提交状态</summary> /// <summary>处理提交状态</summary>
public async Task UpdateSubjectVisitSubmitStateAsync(Guid subjectVisitId) public async Task UpdateSubjectVisitSubmitStateAsync(Guid subjectVisitId)

View File

@ -128,6 +128,96 @@ namespace IRaCIS.Core.Infra.EFCore.Common
FinalSubjectVisitName = FinalSubjectVisitName, FinalSubjectVisitName = FinalSubjectVisitName,
}); });
} }
// 检查
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(DicomStudy)))
{
await InsertInspection<DicomStudy>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
});
}
// 序列
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(DicomSeries)))
{
var entity = item.Entity as DicomSeries;
if (entity.DicomStudy == null)
{
entity.DicomStudy = await _dbContext.DicomStudys.AsNoTracking().FirstOrDefaultAsync(x => x.Id == entity.StudyId);
}
await InsertInspection<DicomSeries>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
}, new
{
StudyCode = entity.DicomStudy?.StudyCode,
Modalities = entity.DicomStudy?.Modalities,
});
}
// 非Dicom
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(NoneDicomStudy)))
{
var entity = item.Entity as NoneDicomStudy;
var filecount = await _dbContext.NoneDicomStudyFile.Where(x => x.NoneDicomStudyId == entity.Id).CountAsync();
switch (GetRequestUrl().ToLower())
{
case "nonedicomstudy/addorupdatenonedicomstudy":
type = _userInfo.UserTypeShortName + "/" + type;
break;
}
await InsertInspection<NoneDicomStudy>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
}, new
{
FileCount = filecount,
});
}
// 非Dicom文件
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(NoneDicomStudyFile)))
{
var entity = item.Entity as NoneDicomStudyFile;
var noneDicomStudy = entity.NoneDicomStudy;
if (noneDicomStudy == null)
{
noneDicomStudy = await _dbContext.NoneDicomStudy.FirstOrDefaultAsync(x => x.Id == entity.NoneDicomStudyId);
}
noneDicomStudy = noneDicomStudy ?? new NoneDicomStudy();
var fileCount = 0;
if (type == "Add")
{
fileCount = _dbContext.NoneDicomStudyFile.Where(x => x.NoneDicomStudyId == entity.NoneDicomStudyId).Count() + 1;
} else if (type == "Deleted")
{
fileCount = _dbContext.NoneDicomStudyFile.Where(x => x.NoneDicomStudyId == entity.NoneDicomStudyId).Count() - 1;
}
await InsertInspection<NoneDicomStudyFile>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
TrialId = noneDicomStudy.TrialId,
SubjectId = noneDicomStudy.SubjectId,
SiteId= noneDicomStudy.SiteId,
SubjectVisitId = noneDicomStudy.SubjectVisitId,
},new {
StudyCode = noneDicomStudy.StudyCode,
Modality= noneDicomStudy.Modality,
BodyPart= noneDicomStudy.BodyPart,
FileCount= fileCount,
ImageDate= noneDicomStudy.ImageDate,
UpNum= 1,// 每次上传或下载一个
});
}
// 访视 // 访视
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SubjectVisit))) foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SubjectVisit)))
{ {
@ -151,15 +241,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
break; break;
} }
var subjectCode = entity.Subject?.Code; var subjectCode = entity.Subject?.Code;
await InsertInspection<SubjectVisit>(item, type, x => new DataInspection() await InsertInspection<SubjectVisit>(item, type, x => new DataInspection()
{ {
SubjectCode= subjectCode, SubjectCode= subjectCode,
SubjectId=x.SubjectId, SubjectId=x.SubjectId,
SubjectVisitId = x.Id, SubjectVisitId = x.Id,
SubjectVisitName=x.VisitName, SubjectVisitName=x.VisitName,
BlindName=x.BlindName, BlindName=x.BlindName,
@ -170,9 +256,20 @@ namespace IRaCIS.Core.Infra.EFCore.Common
// 既往手术史 // 既往手术史
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PreviousSurgery))) foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PreviousSurgery)))
{ {
var entity = item.Entity as PreviousSurgery;
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
subjectvisit = subjectvisit ?? new SubjectVisit();
await InsertInspection<PreviousSurgery>(item, type, x => new DataInspection() await InsertInspection<PreviousSurgery>(item, type, x => new DataInspection()
{ {
GeneralId = x.Id, GeneralId = x.Id,
SiteId = subjectvisit.SiteId,
SubjectVisitName = subjectvisit.VisitName,
TrialId = subjectvisit.TrialId,
SubjectId = subjectvisit.SubjectId,
}, new
{
Type = "既往手术史"
}); });
} }
@ -180,94 +277,41 @@ namespace IRaCIS.Core.Infra.EFCore.Common
// 既往放疗史 // 既往放疗史
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PreviousHistory))) foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PreviousHistory)))
{ {
var entity = item.Entity as PreviousHistory;
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
subjectvisit = subjectvisit ?? new SubjectVisit();
await InsertInspection<PreviousHistory>(item, type, x => new DataInspection() await InsertInspection<PreviousHistory>(item, type, x => new DataInspection()
{ {
GeneralId = x.Id, GeneralId = x.Id,
SiteId = subjectvisit.SiteId,
SubjectVisitName = subjectvisit.VisitName,
TrialId = subjectvisit.TrialId,
SubjectId = subjectvisit.SubjectId,
}, new
{
Type = "既往放疗史"
}); });
} }
// 其他治疗史 // 其他治疗史
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PreviousOther))) foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PreviousOther)))
{ {
var entity = item.Entity as PreviousOther;
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
subjectvisit = subjectvisit ?? new SubjectVisit();
await InsertInspection<PreviousOther>(item, type, x => new DataInspection() await InsertInspection<PreviousOther>(item, type, x => new DataInspection()
{ {
GeneralId = x.Id, GeneralId = x.Id,
}); SiteId = subjectvisit.SiteId,
} SubjectVisitName = subjectvisit.VisitName,
TrialId = subjectvisit.TrialId,
// 检查 SubjectId = subjectvisit.SubjectId,
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(DicomStudy)))
{
await InsertInspection<DicomStudy>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
});
}
// 序列
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(DicomSeries)))
{
var entity = item.Entity as DicomSeries;
if (entity.DicomStudy == null)
{
entity.DicomStudy =await _dbContext.DicomStudys.AsNoTracking().FirstOrDefaultAsync(x=>x.Id== entity.StudyId);
}
await InsertInspection<DicomSeries>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
}, new }, new
{ {
StudyCode = entity.DicomStudy?.StudyCode, Type = "其他治疗史"
Modalities = entity.DicomStudy?.Modalities,
}); });
} }
// 非Dicom
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(NoneDicomStudy)))
{
var entity = item.Entity as NoneDicomStudy;
var filecount =await _dbContext.NoneDicomStudyFile.Where(x => x.NoneDicomStudyId == entity.Id).CountAsync();
switch (GetRequestUrl().ToLower())
{
case "nonedicomstudy/addorupdatenonedicomstudy":
type = _userInfo.UserTypeShortName + "/" + type;
break;
}
await InsertInspection<NoneDicomStudy>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
},new {
FileCount= filecount,
});
}
// 非Dicom文件
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(NoneDicomStudyFile)))
{
var entity = item.Entity as NoneDicomStudyFile;
var noneDicomStudy = entity.NoneDicomStudy;
if (noneDicomStudy == null)
{
noneDicomStudy = await _dbContext.NoneDicomStudy.FirstOrDefaultAsync(x => x.Id == entity.NoneDicomStudyId);
}
noneDicomStudy = noneDicomStudy ?? new NoneDicomStudy();
await InsertInspection<NoneDicomStudyFile>(item, type, x => new DataInspection()
{
GeneralId = x.Id,
TrialId= noneDicomStudy.TrialId,
SubjectId=noneDicomStudy.SubjectId,
SubjectVisitId=noneDicomStudy.SubjectVisitId,
});
}
//质疑 //质疑
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(QCChallenge))) foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(QCChallenge)))
{ {