检查时间,审核状态回退
parent
0f9607674d
commit
bf9055c80f
|
@ -219,12 +219,14 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
isStudyNeedAdd = true;
|
isStudyNeedAdd = true;
|
||||||
|
|
||||||
|
//dataset.GetSingleValue<string>(DicomTag.StudyDate) + dataset.GetSingleValue<string>(DicomTag.StudyTime)
|
||||||
|
|
||||||
dicomStudy = new DicomStudy
|
dicomStudy = new DicomStudy
|
||||||
{
|
{
|
||||||
Id = studyId,
|
Id = studyId,
|
||||||
StudyInstanceUid = studyInstanceUid,
|
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.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),
|
Modalities = dataset.GetSingleValueOrDefault(DicomTag.Modality, string.Empty),
|
||||||
Description = dataset.GetSingleValueOrDefault(DicomTag.StudyDescription, string.Empty),
|
Description = dataset.GetSingleValueOrDefault(DicomTag.StudyDescription, string.Empty),
|
||||||
InstitutionName = dataset.GetSingleValueOrDefault(DicomTag.InstitutionName, string.Empty),
|
InstitutionName = dataset.GetSingleValueOrDefault(DicomTag.InstitutionName, string.Empty),
|
||||||
|
@ -358,7 +360,8 @@ namespace IRaCIS.Core.Application.Services
|
||||||
SeriesInstanceUid = seriesInstanceUid,
|
SeriesInstanceUid = seriesInstanceUid,
|
||||||
SeriesNumber = dataset.GetSingleValueOrDefault(DicomTag.SeriesNumber, 1),
|
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.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),
|
Modality = dataset.GetSingleValueOrDefault(DicomTag.Modality, string.Empty),
|
||||||
Description = dataset.GetSingleValueOrDefault(DicomTag.SeriesDescription, string.Empty),
|
Description = dataset.GetSingleValueOrDefault(DicomTag.SeriesDescription, string.Empty),
|
||||||
SliceThickness = dataset.GetSingleValueOrDefault(DicomTag.SliceThickness, string.Empty),
|
SliceThickness = dataset.GetSingleValueOrDefault(DicomTag.SliceThickness, string.Empty),
|
||||||
|
@ -413,7 +416,9 @@ namespace IRaCIS.Core.Application.Services
|
||||||
SeriesInstanceUid = dicomSeries.SeriesInstanceUid,
|
SeriesInstanceUid = dicomSeries.SeriesInstanceUid,
|
||||||
SopInstanceUid = sopInstanceUid,
|
SopInstanceUid = sopInstanceUid,
|
||||||
InstanceNumber = dataset.GetSingleValueOrDefault(DicomTag.InstanceNumber, 1),
|
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)
|
//dataset.GetSingleValueOrDefault(DicomTag.ContentDate,DateTime.Now);//, DicomTag.ContentTime)
|
||||||
CPIStatus = false,
|
CPIStatus = false,
|
||||||
ImageRows = dataset.GetSingleValueOrDefault(DicomTag.Rows, 0),
|
ImageRows = dataset.GetSingleValueOrDefault(DicomTag.Rows, 0),
|
||||||
|
|
|
@ -316,8 +316,11 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
await _repository.AddAsync(new StudyMonitor()
|
await _repository.AddAsync(new StudyMonitor()
|
||||||
{
|
{
|
||||||
FileCount = formCollection.Files.Count, FileSize = formCollection.Files.Sum(t => t.Length), IsDicom = false,
|
FileCount = formCollection.Files.Count,
|
||||||
IsDicomReUpload = false, StudyId = noneDicomStudyId,
|
FileSize = formCollection.Files.Sum(t => t.Length), IsDicom = false,
|
||||||
|
IsDicomReUpload = false,
|
||||||
|
StudyId = noneDicomStudyId,
|
||||||
|
|
||||||
UploadStartTime = startTime, UploadFinishedTime = DateTime.Now, IP = _userInfo.IP,
|
UploadStartTime = startTime, UploadFinishedTime = DateTime.Now, IP = _userInfo.IP,
|
||||||
//TotalMillisecondsInterval = (DateTime.Now - startTime).TotalMilliseconds,
|
//TotalMillisecondsInterval = (DateTime.Now - startTime).TotalMilliseconds,
|
||||||
TrialId = sv.TrialId,
|
TrialId = sv.TrialId,
|
||||||
|
|
|
@ -1115,6 +1115,11 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
if (dbSubjectVisit == null) return Null404NotFound(dbSubjectVisit);
|
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)
|
if (obtaionOrCancel)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1131,11 +1136,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
#region 处理验证
|
#region 处理验证
|
||||||
|
|
||||||
var trialConfig = await _trialRepository
|
|
||||||
.Select(t => new { TrialId = t.Id, t.QCProcessEnum, t.IsImageConsistencyVerification })
|
|
||||||
.FirstOrDefaultAsync(t => t.TrialId == trialId)
|
|
||||||
.IfNullThrowException();
|
|
||||||
|
|
||||||
if (dbSubjectVisit.IsTake)
|
if (dbSubjectVisit.IsTake)
|
||||||
{
|
{
|
||||||
return ResponseOutput.NotOk("当前已被领取,不允许领取");
|
return ResponseOutput.NotOk("当前已被领取,不允许领取");
|
||||||
|
@ -1143,7 +1143,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
|
if (trialConfig.QCProcessEnum == TrialQCProcess.NotAudit)
|
||||||
{
|
{
|
||||||
return ResponseOutput.NotOk("项目配置为不审,没有领取或者取消QC Task");
|
return ResponseOutput.NotOk("项目配置为不审,没有领取QC Task");
|
||||||
}
|
}
|
||||||
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
|
else if (trialConfig.QCProcessEnum == TrialQCProcess.SingleAudit)
|
||||||
{
|
{
|
||||||
|
@ -1198,7 +1198,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
dbSubjectVisit.CurrentActionUserId = _userInfo.Id;
|
dbSubjectVisit.CurrentActionUserId = _userInfo.Id;
|
||||||
|
|
||||||
|
|
||||||
dbSubjectVisit.CurrentActionUserExpireTime = DateTime.Now.AddHours(1);
|
dbSubjectVisit.CurrentActionUserExpireTime = DateTime.Now.AddHours(1);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1207,11 +1206,48 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
}
|
}
|
||||||
else
|
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:已提交 或者 AuditState:InPrimaryQC, 不允许释放");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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.IsTake = false;
|
||||||
|
|
||||||
dbSubjectVisit.CurrentActionUserId = null;
|
dbSubjectVisit.CurrentActionUserId = null;
|
||||||
|
|
||||||
|
|
||||||
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1433,10 +1469,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
|
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
|
||||||
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
|
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
|
||||||
|
|
||||||
dbSubjectVisit.IsTake = false;
|
|
||||||
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1460,8 +1492,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
|
dbSubjectVisit.PreliminaryAuditUserId = _userInfo.Id;
|
||||||
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
|
dbSubjectVisit.PreliminaryAuditTime = DateTime.Now;
|
||||||
|
|
||||||
dbSubjectVisit.IsTake = false;
|
|
||||||
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
|
||||||
}
|
}
|
||||||
else if (dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)
|
else if (dbSubjectVisit.AuditState == AuditStateEnum.InSecondaryQC)
|
||||||
{
|
{
|
||||||
|
@ -1481,8 +1512,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
|
|
||||||
dbSubjectVisit.ReviewAuditTime = DateTime.Now;
|
dbSubjectVisit.ReviewAuditTime = DateTime.Now;
|
||||||
|
|
||||||
dbSubjectVisit.IsTake = false;
|
|
||||||
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
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)
|
var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
|
||||||
|
|
Loading…
Reference in New Issue