维护CriterionNidusTrial

Uat_Study
he 2023-04-24 10:19:00 +08:00
parent 421bee68dc
commit bd6a11b77a
9 changed files with 210 additions and 45 deletions

View File

@ -67,8 +67,10 @@ namespace IRaCIS.Core.Application.ViewModel
public class GetCriterionLesionTypeInDto
{
public Guid CriterionId { get; set; }
}
public Guid? SystemCriterionId { get; set; }
public Guid? TrialCriterionId { get; set; }
}
///<summary>CriterionNidusQuery 列表查询参数模型</summary>
public class CriterionNidusQuery

View File

@ -28,14 +28,18 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<OrganTrialInfo> _organTrialInfoRepository;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial;
private readonly IRepository<CriterionNidus> _criterionNidusRepository;
private readonly IRepository<CriterionNidusTrial> _criterionNidusTrialRepository;
private readonly IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystemRepository;
public OrganInfoService(
public OrganInfoService(
IRepository<OrganInfo> organInfoRepository,
IRepository<Dictionary> dictionaryRepository,
IRepository<VisitTask> visitTaskRepository,
IRepository<OrganTrialInfo> organTrialInfoRepository,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
IRepository<CriterionNidus> criterionNidusRepository
IRepository<CriterionNidusTrial> criterionNidusTrialRepository,
IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystemRepository,
IRepository<CriterionNidus> criterionNidusRepository
)
{
_organInfoRepository = organInfoRepository;
@ -44,7 +48,9 @@ namespace IRaCIS.Core.Application.Service
this._organTrialInfoRepository = organTrialInfoRepository;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
this._criterionNidusRepository = criterionNidusRepository;
}
this._criterionNidusTrialRepository = criterionNidusTrialRepository;
this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
}
#region 系统器官
@ -146,7 +152,7 @@ namespace IRaCIS.Core.Application.Service
join trialData in _organTrialInfoRepository.AsQueryable().Where( x => x.IsEnable&&x.TrialCriterionId== trialReadingCriterionId)
on data.Id equals trialData.OrganInfoId
join criterionNidus in _criterionNidusRepository.AsQueryable().Where(x=>x.CriterionId== trialReadingCriterionId)
join criterionNidus in _criterionNidusTrialRepository.AsQueryable().Where(x=>x.CriterionId== trialReadingCriterionId)
on data.OrganType equals criterionNidus.OrganType
select new ReadingOrganDto()
{
@ -203,7 +209,7 @@ namespace IRaCIS.Core.Application.Service
if (inDto.LesionType != null)
{
var criterion = await _readingQuestionCriterionTrial.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
organs = await _criterionNidusRepository.Where(x => x.CriterionId == (criterion == null ? default(Guid) : criterion.Id) && x.LesionType == inDto.LesionType)
organs = await _criterionNidusTrialRepository.Where(x => x.CriterionId == (criterion == null ? default(Guid) : criterion.Id) && x.LesionType == inDto.LesionType)
.Select(x => x.OrganType).ToListAsync();
}
@ -315,7 +321,15 @@ namespace IRaCIS.Core.Application.Service
public async Task<List<OrganDictionary>> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto)
{
var dicNums = new List<string>();
dicNums = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.CriterionId).Select(x => ((int)x.LesionType).ToString()).Distinct().ToListAsync();
if (inDto.TrialCriterionId != null)
{
dicNums = await _criterionNidusTrialRepository.Where(x => x.CriterionId == inDto.TrialCriterionId).Select(x => ((int)x.LesionType).ToString()).Distinct().ToListAsync();
}
else
{
dicNums = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => ((int)x.LesionType).ToString()).Distinct().ToListAsync();
}
var dictionaryId = await _dictionaryRepository.Where(x => x.Code == "LesionType").Select(x => x.Id).FirstOrDefaultAsync();
var result = await _dictionaryRepository.Where(x => x.ParentId == dictionaryId && dicNums.Contains(x.Code)).ProjectTo<OrganDictionary>(_mapper.ConfigurationProvider).ToListAsync();
@ -332,11 +346,19 @@ namespace IRaCIS.Core.Application.Service
public async Task<List<CriterionNidusView>> GetCriterionNidusList(CriterionNidusQuery inQuery)
{
var criterionNidusQueryable = _criterionNidusRepository
.Where(x => x.CriterionId == inQuery.CriterionId)
.ProjectTo<CriterionNidusView>(_mapper.ConfigurationProvider);
return await criterionNidusQueryable.ToListAsync();
if (await _readingQuestionCriterionSystemRepository.AnyAsync(x => x.Id == inQuery.CriterionId))
{
return await _criterionNidusRepository
.Where(x => x.CriterionId == inQuery.CriterionId)
.ProjectTo<CriterionNidusView>(_mapper.ConfigurationProvider).ToListAsync();
}
else
{
return await _criterionNidusTrialRepository
.Where(x => x.CriterionId == inQuery.CriterionId)
.ProjectTo<CriterionNidusView>(_mapper.ConfigurationProvider).ToListAsync();
}
}
/// <summary>
@ -418,20 +440,22 @@ namespace IRaCIS.Core.Application.Service
{
inDto.SystemCriterionId = readingQuestionCriterionTrial.ReadingQuestionCriterionSystemId;
}
await _criterionNidusRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterionId);
List<CriterionNidusData> criterionNidusList = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => new CriterionNidusData()
await _criterionNidusTrialRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterionId);
List<CriterionNidusTrial> criterionNidusList = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => new CriterionNidusTrial()
{
Id = x.Id,
CriterionId = trialCriterionId,
LesionType = x.LesionType,
OriginalId = x.Id,
OrganType=x.OrganType,
IsSystemCriterion=false,
}).ToListAsync();
criterionNidusList.ForEach(x => x.Id = NewId.NextGuid());
await _criterionNidusRepository.AddRangeAsync(criterionNidusList);
await _criterionNidusTrialRepository.AddRangeAsync(criterionNidusList);
await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == readingQuestionCriterionTrial.Id);
List<OrganTrialInfo> organTrialInfoList = await _organInfoRepository.Where(x =>x.SystemCriterionId== inDto.SystemCriterionId).Select(x => new OrganTrialInfo()
{

View File

@ -238,12 +238,12 @@ namespace IRaCIS.Core.Application.Service
//.ForMember(x => x.FileList, y => y.MapFrom(n => n.FileList))
.ForMember(x => x.CreateUserName, y => y.MapFrom(n => n.CreateUser.UserName));
#endregion
#region 阅片部位
#endregion
#region 阅片部位
CreateMap<CriterionNidus, CriterionNidusView>();
CreateMap<CriterionNidusTrial, CriterionNidusView>();
CreateMap<CriterionNidus, CriterionNidusView>();
CreateMap<CriterionNidus, CriterionNidusAddOrEdit>().ReverseMap();
CreateMap<OrganInfoAddOrEdit, OrganInfo>();

View File

@ -9,16 +9,16 @@ using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models
{
/// <summary>
/// 标准病灶中间表
/// </summary>
[Table("CriterionNidus")]
public class CriterionNidus : Entity, IAuditAdd
{
/// <summary>
/// 标准病灶中间表
/// </summary>
[Table("CriterionNidus")]
public class CriterionNidus : Entity, IAuditAdd
{
/// <summary>
/// 标准ID
/// </summary>
/// 标准ID
/// </summary>
public Guid CriterionId { get; set; }
@ -33,14 +33,14 @@ namespace IRaCIS.Core.Domain.Models
/// </summary>
public LesionType LesionType { get; set; }
/// <summary>
/// CreateTime
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
/// CreateTime
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
public Guid CreateUserId { get; set; }
/// <summary>
@ -49,12 +49,12 @@ namespace IRaCIS.Core.Domain.Models
public bool IsSystemCriterion { get; set; }
[ForeignKey("CriterionId")]
[JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
[ForeignKey("CriterionId")]
[JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
}
}
}

View File

@ -0,0 +1,51 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2023-04-24 09:29:54
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models
{
///<summary>
///CriterionNidusTrial
///</summary>
[Table("CriterionNidusTrial")]
public class CriterionNidusTrial : Entity, IAuditAdd
{
/// <summary>
/// CriterionId
/// </summary>
[Required]
public Guid CriterionId { get; set; }
/// <summary>
/// CreateTime
/// </summary>
[Required]
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
[Required]
public Guid CreateUserId { get; set; }
/// <summary>
/// 病灶类型
/// </summary>
public LesionType LesionType { get; set; }
/// <summary>
/// 器官类型
/// </summary>
public OrganType OrganType { get; set; }
}
}

View File

@ -0,0 +1,77 @@
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2023-04-24 09:32:01
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models
{
///<summary>
///ReadingTrialCriterionDictionary
///</summary>
[Table("ReadingTrialCriterionDictionary")]
public class ReadingTrialCriterionDictionary : Entity, IAuditAdd
{
/// <summary>
/// Id
/// </summary>
[Key]
[Required]
public Guid Id { get; set; }
/// <summary>
/// CriterionId
/// </summary>
[Required]
public Guid CriterionId { get; set; }
/// <summary>
/// DictionaryId
/// </summary>
[Required]
public Guid DictionaryId { get; set; }
/// <summary>
/// CreateTime
/// </summary>
[Required]
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
[Required]
public Guid CreateUserId { get; set; }
/// <summary>
/// ParentCode
/// </summary>
[Required]
public string ParentCode { get; set; } = string.Empty;
/// <summary>
/// IsBaseLineUse
/// </summary>
[Required]
public bool IsBaseLineUse { get; set; }
/// <summary>
/// IsFollowVisitUse
/// </summary>
[Required]
public bool IsFollowVisitUse { get; set; }
/// <summary>
/// CrterionDictionaryGroup
/// </summary>
[Required]
public int CrterionDictionaryGroup { get; set; }
}
}

View File

@ -1013,3 +1013,10 @@ delete ReadingTaskRelation where RelevanceType=2
INSERT INTO ReadingTaskRelation(Id, TaskId, RelevanceTaskId, RelevanceType, CreateTime,CreateUserId)
SELECT NEWID(), TaskId, RelevanceTaskId, 2,ReadingTaskRelation.CreateTime ,ReadingTaskRelation.CreateUserId FROM ReadingTaskRelation inner join VisitTask on VisitTask.Id=ReadingTaskRelation.TaskId WHERE RelevanceType = 1 and ReadingCategory=1
-----------------------------------------2023-04-24-----------------------------------
--CriterionNidusTrial
INSERT INTO CriterionNidusTrial (Id, CriterionId, CreateTime, CreateUserId, LesionType, OrganType)
SELECT NEWID(), CriterionId, GETDATE(), '00000000-0000-0000-0000-000000000000', LesionType, OrganType
FROM CriterionNidus
WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM CriterionNidusTrial ) and IsSystemCriterion=0

View File

@ -261,7 +261,11 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<CriterionNidus> CriterionNidus { get; set; }
public virtual DbSet<ReadingTableQuestionTrial> ReadingTableQuestionTrial { get; set; }
public virtual DbSet<CriterionNidusTrial> CriterionNidusTrial { get; set; }
public virtual DbSet<ReadingTrialCriterionDictionary> ReadingTrialCriterionDictionary { get; set; }
public virtual DbSet<ReadingTableQuestionTrial> ReadingTableQuestionTrial { get; set; }
public virtual DbSet<TumorAssessment_RECIST1Point1BM> TumorAssessment_RECIST1Point1BM { get; set; }

View File

@ -4,7 +4,7 @@
public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true";
public static readonly string DbDatabase = "IRaCIS_New_Tet";
//表名称用字符串,拼接
public static readonly string TableName = "SubjectCriteriaEvaluation";
public static readonly string TableName = "ReadingTrialCriterionDictionary";
//具体文件里面 例如service 可以配置是否分页
}
#>