Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is running
continuous-integration/drone/push Build is running
This commit is contained in:
@@ -15488,7 +15488,7 @@
|
||||
用户WL模板
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.UserWLTemplateService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserWLTemplate},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserRole},AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer)">
|
||||
<member name="M:IRaCIS.Core.Application.Service.UserWLTemplateService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserWLTemplate},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingUserConfig},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserRole},AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer)">
|
||||
<summary>
|
||||
用户WL模板
|
||||
</summary>
|
||||
@@ -15514,7 +15514,7 @@
|
||||
<param name="userWLTemplateId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.UserWLTemplateService.GetAutoCutNextTask">
|
||||
<member name="M:IRaCIS.Core.Application.Service.UserWLTemplateService.GetAutoCutNextTask(IRaCIS.Core.Application.ViewModel.GetAutoCutNextTaskInDto)">
|
||||
<summary>
|
||||
获取自动切换任务配置
|
||||
</summary>
|
||||
@@ -17269,17 +17269,17 @@
|
||||
</member>
|
||||
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
|
||||
<summary>
|
||||
质疑
|
||||
����
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
|
||||
<summary>
|
||||
一致性核查
|
||||
һ���Ժ˲�
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
|
||||
<summary>
|
||||
复制
|
||||
����
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView">
|
||||
@@ -18653,6 +18653,41 @@
|
||||
受试者ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.PatientSex">
|
||||
<summary>
|
||||
性别
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.PatientWeight">
|
||||
<summary>
|
||||
体重
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.RadionuclideTotalDose">
|
||||
<summary>
|
||||
总剂量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.RadionuclideHalfLife">
|
||||
<summary>
|
||||
半衰期
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.RadiopharmaceuticalStartTime">
|
||||
<summary>
|
||||
注射时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.AcquisitionTime">
|
||||
<summary>
|
||||
成像 / 采集时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Contracts.DTO.QAStudyInfoDTO.IsHasEmptyPatientInfo">
|
||||
<summary>
|
||||
是否存在空字符串字段(PatientSex、PatientWeight、RadionuclideTotalDose、RadionuclideHalfLife、RadiopharmaceuticalStartTime、AcquisitionTime 任意一个为空/空字符串)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Contracts.DTO.CloseCheckChallengeDto">
|
||||
<summary>
|
||||
关闭一致性质疑Dto
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
public class EditPatientInfoCommand
|
||||
{
|
||||
public Guid StudyId { get; set; }
|
||||
public Guid Id { get; set; }
|
||||
/// <summary>
|
||||
/// 性别
|
||||
/// </summary>
|
||||
@@ -236,7 +236,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
public class PatientInfoDto
|
||||
{
|
||||
|
||||
public Guid StudyId { get; set; }
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 性别
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> EditPatientInfo(EditPatientInfoCommand command)
|
||||
{
|
||||
await _dicomStudyRepository.UpdatePartialFromQueryAsync(command.StudyId, x => new DicomStudy
|
||||
await _dicomStudyRepository.UpdatePartialFromQueryAsync(command.Id, x => new DicomStudy
|
||||
{
|
||||
PatientSex = command.PatientSex,
|
||||
PatientWeight = command.PatientWeight,
|
||||
|
||||
@@ -415,6 +415,52 @@ namespace IRaCIS.Core.Application.Contracts.DTO
|
||||
|
||||
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
|
||||
|
||||
@@ -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.Filter;
|
||||
using IRaCIS.Core.Application.Helper;
|
||||
@@ -1108,6 +1109,23 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||
{
|
||||
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))
|
||||
{
|
||||
//---当前访视有质疑未关闭,不允许该操作
|
||||
|
||||
@@ -27,8 +27,16 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class GetAutoCutNextTaskInDto
|
||||
{
|
||||
public int ImageToolType { get; set; }
|
||||
}
|
||||
|
||||
public class SetAutoCutNextTaskInDto
|
||||
{
|
||||
public int ImageToolType { get; set; }
|
||||
|
||||
public bool AutoCutNextTask { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// </summary>
|
||||
[ApiExplorerSettings(GroupName = "Reading")]
|
||||
public class UserWLTemplateService(IRepository<UserWLTemplate> _userWLTemplateRepository,
|
||||
IRepository<ReadingUserConfig> _readingUserConfigRepository,
|
||||
IRepository<UserRole> _userRoleRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService
|
||||
{
|
||||
|
||||
@@ -82,15 +83,18 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<object> GetAutoCutNextTask()
|
||||
public async Task<object> GetAutoCutNextTask(GetAutoCutNextTaskInDto inDto)
|
||||
{
|
||||
|
||||
var result = await _userRoleRepository.Where(x => x.Id == _userInfo.UserRoleId).Select(x => new
|
||||
var result = await _readingUserConfigRepository.Where(x => x.UserRoleId == _userInfo.UserRoleId&&x.ImageToolType==inDto.ImageToolType).Select(x => new
|
||||
{
|
||||
AutoCutNextTask = x.AutoCutNextTask,
|
||||
IsDoubleScreen = x.IsDoubleScreen,
|
||||
}).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
return new
|
||||
@@ -112,14 +116,30 @@ namespace IRaCIS.Core.Application.Service
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> SetAutoCutNextTask(SetAutoCutNextTaskInDto inDto)
|
||||
{
|
||||
await _userRoleRepository.UpdatePartialFromQueryAsync(_userInfo.UserRoleId, x => new UserRole()
|
||||
|
||||
var userConfig = await _readingUserConfigRepository.FirstOrDefaultAsync(x => x.UserRoleId == _userInfo.UserRoleId && x.ImageToolType == inDto.ImageToolType);
|
||||
|
||||
if (userConfig == null)
|
||||
{
|
||||
await _readingUserConfigRepository.AddAsync(new ReadingUserConfig
|
||||
{
|
||||
UserRoleId = _userInfo.UserRoleId,
|
||||
ImageToolType = inDto.ImageToolType,
|
||||
AutoCutNextTask = inDto.AutoCutNextTask,
|
||||
IsDoubleScreen = inDto.IsDoubleScreen,
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
await _readingUserConfigRepository.UpdatePartialFromQueryAsync(x => x.Id == userConfig.Id, x => new ReadingUserConfig
|
||||
{
|
||||
AutoCutNextTask = inDto.AutoCutNextTask,
|
||||
IsDoubleScreen = inDto.IsDoubleScreen,
|
||||
});
|
||||
}
|
||||
|
||||
AutoCutNextTask = inDto.AutoCutNextTask,
|
||||
IsDoubleScreen = inDto.IsDoubleScreen
|
||||
});
|
||||
|
||||
await _userRoleRepository.SaveChangesAsync();
|
||||
await _userRoleRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user