患者数据验证
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
a1dc17c582
commit
34008ef6db
|
|
@ -415,6 +415,52 @@ namespace IRaCIS.Core.Application.Contracts.DTO
|
||||||
|
|
||||||
public string BodyPartForEditOther { get; set; }
|
public string BodyPartForEditOther { get; set; }
|
||||||
|
|
||||||
|
#region 核验
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 性别
|
||||||
|
/// </summary>
|
||||||
|
public string PatientSex { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 体重
|
||||||
|
/// </summary>
|
||||||
|
public string PatientWeight { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 总剂量
|
||||||
|
/// </summary>
|
||||||
|
public string RadionuclideTotalDose { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 半衰期
|
||||||
|
/// </summary>
|
||||||
|
public string RadionuclideHalfLife { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 注射时间
|
||||||
|
/// </summary>
|
||||||
|
public string RadiopharmaceuticalStartTime { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 成像 / 采集时间
|
||||||
|
/// </summary>
|
||||||
|
public string AcquisitionTime { get; set; } = null!;
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否存在空字符串字段(PatientSex、PatientWeight、RadionuclideTotalDose、RadionuclideHalfLife、RadiopharmaceuticalStartTime、AcquisitionTime 任意一个为空/空字符串)
|
||||||
|
/// </summary>
|
||||||
|
public bool IsHasEmptyPatientInfo =>
|
||||||
|
string.IsNullOrWhiteSpace(PatientSex) ||
|
||||||
|
string.IsNullOrWhiteSpace(PatientWeight) ||
|
||||||
|
string.IsNullOrWhiteSpace(RadionuclideTotalDose) ||
|
||||||
|
string.IsNullOrWhiteSpace(RadionuclideHalfLife) ||
|
||||||
|
string.IsNullOrWhiteSpace(RadiopharmaceuticalStartTime) ||
|
||||||
|
string.IsNullOrWhiteSpace(AcquisitionTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class QASeriesInfoDto
|
public class QASeriesInfoDto
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using DocumentFormat.OpenXml.InkML;
|
||||||
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Contracts.DTO;
|
using IRaCIS.Core.Application.Contracts.DTO;
|
||||||
using IRaCIS.Core.Application.Filter;
|
using IRaCIS.Core.Application.Filter;
|
||||||
using IRaCIS.Core.Application.Helper;
|
using IRaCIS.Core.Application.Helper;
|
||||||
|
|
@ -1108,6 +1109,23 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
{
|
{
|
||||||
await VerifyIsCanQCAsync(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
|
|
||||||
|
var visit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
||||||
|
|
||||||
|
var isExistStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(t => t.TrialId == visit.TrialId && t.ClinicalDataLevel == ClinicalLevel.Study&&t.IsConfirm&&t.IsApply);
|
||||||
|
if(isExistStudyClinicalData)
|
||||||
|
{
|
||||||
|
List<string> modalitieTypes = new List<string>() { "PT、CT", "CT、PT", "PET-CT" };
|
||||||
|
|
||||||
|
var studyList=await _dicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId&& modalitieTypes.Contains(t.Modalities)).ProjectTo<QAStudyInfoDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
if (studyList.Any(x => x.IsHasEmptyPatientInfo))
|
||||||
|
{
|
||||||
|
return ResponseOutput.NotOk(_localizer["QCOperation_IsHasEmptyPatientInfo"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (await _qcChallengeRepository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
if (await _qcChallengeRepository.AnyAsync(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
|
||||||
{
|
{
|
||||||
//---当前访视有质疑未关闭,不允许该操作
|
//---当前访视有质疑未关闭,不允许该操作
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue