检查时间,审核状态回退

Test.EIImageViewer
hang 2022-04-20 17:23:28 +08:00
parent 0f9607674d
commit bf9055c80f
3 changed files with 61 additions and 21 deletions

View File

@ -219,12 +219,14 @@ namespace IRaCIS.Core.Application.Services
isStudyNeedAdd = true;
//dataset.GetSingleValue<string>(DicomTag.StudyDate) + dataset.GetSingleValue<string>(DicomTag.StudyTime)
dicomStudy = new DicomStudy
{
Id = studyId,
StudyInstanceUid = studyInstanceUid,
/* StudyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyDate, DateTime.Now).Add(dataset.GetSingleValueOrDefault(DicomTag.StudyTime, DateTime.Now).TimeOfDay),*///dataset.GetDateTime(DicomTag.StudyDate, DicomTag.StudyTime),
StudyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyDate,(DateTime?)null)?.Add(dataset.GetSingleValueOrDefault(DicomTag.StudyTime, TimeSpan.Zero)),
StudyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyDate,string.Empty)==string.Empty?null: dataset.GetSingleValue<DateTime>(DicomTag.StudyDate).Add(dataset.GetSingleValue<DateTime>(DicomTag.StudyTime).TimeOfDay) ,
Modalities = dataset.GetSingleValueOrDefault(DicomTag.Modality, string.Empty),
Description = dataset.GetSingleValueOrDefault(DicomTag.StudyDescription, string.Empty),
InstitutionName = dataset.GetSingleValueOrDefault(DicomTag.InstitutionName, string.Empty),
@ -358,7 +360,8 @@ namespace IRaCIS.Core.Application.Services
SeriesInstanceUid = seriesInstanceUid,
SeriesNumber = dataset.GetSingleValueOrDefault(DicomTag.SeriesNumber, 1),
//SeriesTime = dataset.GetSingleValueOrDefault(DicomTag.SeriesDate, DateTime.Now).Add(dataset.GetSingleValueOrDefault(DicomTag.SeriesTime, DateTime.Now).TimeOfDay),
SeriesTime = dataset.GetSingleValueOrDefault(DicomTag.SeriesDate, (DateTime?)null)?.Add(dataset.GetSingleValueOrDefault(DicomTag.SeriesTime, TimeSpan.Zero)),// dataset.GetDateTime(DicomTag.SeriesDate, DicomTag.SeriesTime),
//SeriesTime = DateTime.TryParse(dataset.GetSingleValue<string>(DicomTag.SeriesDate) + dataset.GetSingleValue<string>(DicomTag.SeriesTime), out DateTime dt) ? dt : null,
SeriesTime = dataset.GetSingleValueOrDefault(DicomTag.SeriesDate, string.Empty) == string.Empty ? null : dataset.GetSingleValue<DateTime>(DicomTag.SeriesDate).Add(dataset.GetSingleValue<DateTime>(DicomTag.SeriesTime).TimeOfDay),
Modality = dataset.GetSingleValueOrDefault(DicomTag.Modality, string.Empty),
Description = dataset.GetSingleValueOrDefault(DicomTag.SeriesDescription, string.Empty),
SliceThickness = dataset.GetSingleValueOrDefault(DicomTag.SliceThickness, string.Empty),
@ -413,7 +416,9 @@ namespace IRaCIS.Core.Application.Services
SeriesInstanceUid = dicomSeries.SeriesInstanceUid,
SopInstanceUid = sopInstanceUid,
InstanceNumber = dataset.GetSingleValueOrDefault(DicomTag.InstanceNumber, 1),
InstanceTime = dataset.GetSingleValueOrDefault(DicomTag.ContentDate,(DateTime?)null)?.Add(dataset.GetSingleValueOrDefault(DicomTag.ContentTime, TimeSpan.Zero)),
InstanceTime = dataset.GetSingleValueOrDefault(DicomTag.ContentDate, string.Empty) == string.Empty ? null : dataset.GetSingleValue<DateTime>(DicomTag.ContentDate).Add(dataset.GetSingleValue<DateTime>(DicomTag.ContentTime).TimeOfDay),
//InstanceTime = DateTime.TryParse(dataset.GetSingleValue<string>(DicomTag.ContentDate) + dataset.GetSingleValue<string>(DicomTag.ContentTime), out DateTime dt) ? dt : null,
//InstanceTime = dataset.GetSingleValueOrDefault(DicomTag.ContentDate,(DateTime?)null)?.Add(dataset.GetSingleValueOrDefault(DicomTag.ContentTime, TimeSpan.Zero)),
//dataset.GetSingleValueOrDefault(DicomTag.ContentDate,DateTime.Now);//, DicomTag.ContentTime)
CPIStatus = false,
ImageRows = dataset.GetSingleValueOrDefault(DicomTag.Rows, 0),

View File

@ -316,8 +316,11 @@ namespace IRaCIS.Core.Application.Contracts
await _repository.AddAsync(new StudyMonitor()
{
FileCount = formCollection.Files.Count, FileSize = formCollection.Files.Sum(t => t.Length), IsDicom = false,
IsDicomReUpload = false, StudyId = noneDicomStudyId,
FileCount = formCollection.Files.Count,
FileSize = formCollection.Files.Sum(t => t.Length), IsDicom = false,
IsDicomReUpload = false,
StudyId = noneDicomStudyId,
UploadStartTime = startTime, UploadFinishedTime = DateTime.Now, IP = _userInfo.IP,
//TotalMillisecondsInterval = (DateTime.Now - startTime).TotalMilliseconds,
TrialId = sv.TrialId,

View File

@ -1115,6 +1115,11 @@ namespace IRaCIS.Core.Application.Image.QA
if (dbSubjectVisit == null) return Null404NotFound(dbSubjectVisit);
var trialConfig = await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
.FirstOrDefaultAsync(t => t.TrialId == trialId)
.IfNullThrowException();
if (obtaionOrCancel)
{
@ -1131,11 +1136,6 @@ namespace IRaCIS.Core.Application.Image.QA
#region 处理验证
var trialConfig = await _trialRepository
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
.FirstOrDefaultAsync(t => t.TrialId == trialId)
.IfNullThrowException();
if (dbSubjectVisit.IsTake)
{
return ResponseOutput.NotOk("当前已被领取,不允许领取");
@ -1143,7 +1143,7 @@ namespace IRaCIS.Core.Application.Image.QA
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
{
return ResponseOutput.NotOk("项目配置为不审,没有领取或者取消QC Task");
return ResponseOutput.NotOk("项目配置为不审,没有领取QC Task");
}
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
{
@ -1198,7 +1198,6 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.CurrentActionUserId = _userInfo.Id;
dbSubjectVisit.CurrentActionUserExpireTime = DateTime.Now.AddHours(1);
@ -1207,11 +1206,48 @@ namespace IRaCIS.Core.Application.Image.QA
}
else
{
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
{
return ResponseOutput.NotOk("项目配置为不审没有取消QC Task");
}
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
{
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC)
{
dbSubjectVisit.AuditState = AuditStateEnum.ToAudit;
}
else
{
return ResponseOutput.NotOk("项目配置为单审,不满足SubmmitState已提交 或者 AuditStateInPrimaryQC, 不允许释放");
}
}
else if (trialConfig.QCProcessEnum == TrialQCProcess.DoubleAudit)
{
//提交 并且初审通过 那么领取后进入 复审中
if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)
{
dbSubjectVisit.AuditState = AuditStateEnum.PrimaryQCPassed;
}
else if (dbSubjectVisit.SubmitState == SubmitStateEnum.Submitted && dbSubjectVisit.AuditState == AuditStateEnum.InPrimaryQC)
{
dbSubjectVisit.AuditState = AuditStateEnum.ToAudit;
}
else
{
return ResponseOutput.NotOk("项目配置为复审,不满足提交状态:已提交 或者 审核状态InPrimaryQC/InSecondaryQC, 不允许领取");
}
}
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserId = null;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
@ -1433,10 +1469,6 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
else
{
@ -1460,8 +1492,7 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
else if (dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)
{
@ -1481,8 +1512,6 @@ namespace IRaCIS.Core.Application.Image.QA
dbSubjectVisit.ReviewAuditTime = DateTime.Now;
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
}
else
@ -1529,6 +1558,9 @@ namespace IRaCIS.Core.Application.Image.QA
}
}
dbSubjectVisit.IsTake = false;
dbSubjectVisit.CurrentActionUserExpireTime = null;
//删除 软删除的物理文件
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)