项目顶级术语修改
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Domain.Share.Reading;
|
||||
using Newtonsoft.Json;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace IRaCIS.Core.Application.Contracts
|
||||
{
|
||||
@@ -66,6 +68,10 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
public List<string> ModalityList { get; set; } = new List<string>();
|
||||
|
||||
public string TrialObjectNameConfigStr { get; set; }
|
||||
|
||||
public List<TrialObjectNameConfig> TrialObjectNameList { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -236,7 +236,48 @@ namespace IRaCIS.Application.Contracts
|
||||
}
|
||||
|
||||
|
||||
public class TrialExtraConfig
|
||||
{
|
||||
#region QC 影像下载
|
||||
|
||||
//QC质控
|
||||
public bool IsSupportQCDownloadImage { get; set; } = false;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region 中心调研
|
||||
|
||||
public List<string> NotShowFieldList { get; set; } = new List<string>();
|
||||
|
||||
public List<SiteSurveyModifyFiled> ModifyFiledList { get; set; } = new List<SiteSurveyModifyFiled>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 项目术语配置
|
||||
public List<TrialObjectNameConfig> TrialObjectNameList { get; set; }
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class TrialPacsInfo
|
||||
{
|
||||
public int Port { get; set; }
|
||||
|
||||
public string Ip { get; set; }
|
||||
|
||||
public string TrialCalledAE { get; set; }
|
||||
}
|
||||
|
||||
public class SiteSurveyModifyFiled
|
||||
{
|
||||
public string NeedModifyFiled { get; set; }
|
||||
|
||||
public string ReplaceContent { get; set; }
|
||||
|
||||
public string ReplaceContentCN { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using IRaCIS.Application.Interfaces;
|
||||
using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Application.Interfaces;
|
||||
using IRaCIS.Core.Application.Contracts;
|
||||
using IRaCIS.Core.Application.Filter;
|
||||
using IRaCIS.Core.Application.Helper;
|
||||
@@ -40,7 +41,7 @@ namespace IRaCIS.Core.Application
|
||||
IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
IRepository<Enroll> _enrollRepository,
|
||||
IRepository<TrialStateChange> _trialStateChangeRepository,
|
||||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||
IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository,
|
||||
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, ITrialConfigService
|
||||
{
|
||||
|
||||
@@ -319,7 +320,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> SetGlobalReadingInfo(SetGlobalReadingInfoInDto inDto)
|
||||
{
|
||||
|
||||
@@ -404,7 +405,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> SetOncologySet(SetOncologySetInDto inDto)
|
||||
{
|
||||
|
||||
@@ -548,7 +549,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> SetCriterionReadingInfo(SetCriterionReadingInfoInDto inDto)
|
||||
{
|
||||
ArbitrationRule arbitration = ArbitrationRule.NA;
|
||||
@@ -898,7 +899,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> ConfigTrialBasicInfo(BasicTrialConfig trialConfig)
|
||||
{
|
||||
await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId);
|
||||
@@ -906,6 +907,8 @@ namespace IRaCIS.Core.Application
|
||||
var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
|
||||
|
||||
trialConfig.Modalitys = $"{String.Join('|', trialConfig.ModalityList)}";
|
||||
|
||||
trialConfig.TrialObjectNameConfigStr=JsonConvert.SerializeObject(trialConfig.TrialObjectNameList);
|
||||
_mapper.Map(trialConfig, trialInfo);
|
||||
trialInfo.UpdateTime = DateTime.Now;
|
||||
|
||||
@@ -923,7 +926,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <returns></returns>
|
||||
/// <exception cref="BusinessValidationFailedException"></exception>
|
||||
[HttpPost]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
public async Task ConfigTrialProcessInfoVerification(ConfigTrialProcessInfoVerificationInDto trialConfig)
|
||||
{
|
||||
if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing))
|
||||
@@ -950,7 +953,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> ConfigTrialProcessInfo(TrialProcessConfig trialConfig)
|
||||
{
|
||||
if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing))
|
||||
@@ -1078,7 +1081,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig)
|
||||
{
|
||||
|
||||
@@ -1113,7 +1116,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> ConfigTrialPACSInfo(TrialPACSConfig trialConfig)
|
||||
{
|
||||
var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException();
|
||||
@@ -1146,7 +1149,7 @@ namespace IRaCIS.Core.Application
|
||||
[HttpPut("{trialId:guid}/{trialStatusStr}/{reason?}")]
|
||||
[UnitOfWork]
|
||||
//[Authorize(Policy = IRaCISPolicy.PM)]
|
||||
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, string? reason)
|
||||
{
|
||||
|
||||
@@ -1221,7 +1224,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <returns></returns>
|
||||
[HttpPut("{trialId:guid}/{isAbandon:bool}")]
|
||||
//[Authorize(Policy = IRaCISPolicy.PM)]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
public async Task<IResponseOutput> AbandonTrial(Guid trialId, /*Guid? signId,*/ bool isAbandon)
|
||||
{
|
||||
|
||||
@@ -1260,7 +1263,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
//[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
public async Task<IResponseOutput> ConfigTrialTaskInfo(TrialTaskConfig trialConfig)
|
||||
{
|
||||
@@ -1278,7 +1281,7 @@ namespace IRaCIS.Core.Application
|
||||
/// <param name="trialConfig"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[TrialGlobalLimit( "BeforeOngoingCantOpt", "AfterStopCannNotOpt" )]
|
||||
[TrialGlobalLimit("BeforeOngoingCantOpt", "AfterStopCannNotOpt")]
|
||||
//[TrialGlobalLimit( "AfterStopCannNotOpt" )]
|
||||
public async Task<IResponseOutput> ConfigTrialReadingTaskViewRule(TrialReadingTaskViewConfig trialConfig)
|
||||
{
|
||||
@@ -1290,14 +1293,22 @@ namespace IRaCIS.Core.Application
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取项目部位配置列表
|
||||
/// </summary>
|
||||
/// <param name="trialId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IResponseOutput<List<TrialBodyPartView>>> GetTrialBodyPartList(Guid trialId)
|
||||
{
|
||||
var list = await _trialRepository.Where(t => t.Id == trialId).SelectMany(t => t.TrialBodyPartList).Select(t => new TrialBodyPartView() { Code = t.Code, Name = _userInfo.IsEn_Us ? t.Name : t.NameCN, Id = t.Id, IsHandAdd = t.IsHandAdd }).ToListAsync();
|
||||
|
||||
return ResponseOutput.Ok(list);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加更新 项目部位配置
|
||||
/// </summary>
|
||||
/// <param name="incommand"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IResponseOutput> AddOrUpdateTrialBodyPart(AddOrUpdateTrialBodyPartCommand incommand)
|
||||
{
|
||||
|
||||
@@ -1333,13 +1344,27 @@ namespace IRaCIS.Core.Application
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取项目额外配置
|
||||
/// </summary>
|
||||
/// <param name="trialId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<TrialExtraConfig> GetTrialExtralConfig(Guid trialId)
|
||||
{
|
||||
var extralConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => t.TrialExtraConfigJsonStr).FirstOrDefault() ?? string.Empty;
|
||||
var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr, t.TrialObjectNameConfigStr }).FirstOrDefault();
|
||||
|
||||
return JsonConvert.DeserializeObject<TrialExtraConfig>(extralConfig) ?? new TrialExtraConfig();
|
||||
var extralConfig = JsonConvert.DeserializeObject<TrialExtraConfig>(extralObj?.TrialExtraConfigJsonStr) ?? new TrialExtraConfig();
|
||||
|
||||
extralConfig.TrialObjectNameList = JsonConvert.DeserializeObject<List<TrialObjectNameConfig>>(extralObj?.TrialObjectNameConfigStr) ?? new List<TrialObjectNameConfig>();
|
||||
|
||||
return extralConfig;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取项目Pacs 配置
|
||||
/// </summary>
|
||||
/// <param name="trialId"></param>
|
||||
/// <param name="optionsMonitor"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<TrialPacsInfo> GetTrialPacsConfigInfo(Guid trialId, [FromServices] IOptionsMonitor<SystemPacsConfig> optionsMonitor)
|
||||
{
|
||||
var trialCode = await _trialRepository.Where(t => t.Id == trialId).Select(t => t.TrialCode).FirstOrDefaultAsync();
|
||||
|
||||
Reference in New Issue
Block a user