维护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 class GetCriterionLesionTypeInDto
{ {
public Guid CriterionId { get; set; } public Guid? SystemCriterionId { get; set; }
}
public Guid? TrialCriterionId { get; set; }
}
///<summary>CriterionNidusQuery 列表查询参数模型</summary> ///<summary>CriterionNidusQuery 列表查询参数模型</summary>
public class CriterionNidusQuery public class CriterionNidusQuery

View File

@ -28,14 +28,18 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<OrganTrialInfo> _organTrialInfoRepository; private readonly IRepository<OrganTrialInfo> _organTrialInfoRepository;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial; private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrial;
private readonly IRepository<CriterionNidus> _criterionNidusRepository; private readonly IRepository<CriterionNidus> _criterionNidusRepository;
private readonly IRepository<CriterionNidusTrial> _criterionNidusTrialRepository;
private readonly IRepository<ReadingQuestionCriterionSystem> _readingQuestionCriterionSystemRepository;
public OrganInfoService( public OrganInfoService(
IRepository<OrganInfo> organInfoRepository, IRepository<OrganInfo> organInfoRepository,
IRepository<Dictionary> dictionaryRepository, IRepository<Dictionary> dictionaryRepository,
IRepository<VisitTask> visitTaskRepository, IRepository<VisitTask> visitTaskRepository,
IRepository<OrganTrialInfo> organTrialInfoRepository, IRepository<OrganTrialInfo> organTrialInfoRepository,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial, IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrial,
IRepository<CriterionNidus> criterionNidusRepository IRepository<CriterionNidusTrial> criterionNidusTrialRepository,
IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystemRepository,
IRepository<CriterionNidus> criterionNidusRepository
) )
{ {
_organInfoRepository = organInfoRepository; _organInfoRepository = organInfoRepository;
@ -44,7 +48,9 @@ namespace IRaCIS.Core.Application.Service
this._organTrialInfoRepository = organTrialInfoRepository; this._organTrialInfoRepository = organTrialInfoRepository;
this._readingQuestionCriterionTrial = readingQuestionCriterionTrial; this._readingQuestionCriterionTrial = readingQuestionCriterionTrial;
this._criterionNidusRepository = criterionNidusRepository; this._criterionNidusRepository = criterionNidusRepository;
} this._criterionNidusTrialRepository = criterionNidusTrialRepository;
this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
}
#region 系统器官 #region 系统器官
@ -146,7 +152,7 @@ namespace IRaCIS.Core.Application.Service
join trialData in _organTrialInfoRepository.AsQueryable().Where( x => x.IsEnable&&x.TrialCriterionId== trialReadingCriterionId) join trialData in _organTrialInfoRepository.AsQueryable().Where( x => x.IsEnable&&x.TrialCriterionId== trialReadingCriterionId)
on data.Id equals trialData.OrganInfoId 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 on data.OrganType equals criterionNidus.OrganType
select new ReadingOrganDto() select new ReadingOrganDto()
{ {
@ -203,7 +209,7 @@ namespace IRaCIS.Core.Application.Service
if (inDto.LesionType != null) if (inDto.LesionType != null)
{ {
var criterion = await _readingQuestionCriterionTrial.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync(); 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(); .Select(x => x.OrganType).ToListAsync();
} }
@ -315,7 +321,15 @@ namespace IRaCIS.Core.Application.Service
public async Task<List<OrganDictionary>> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto) public async Task<List<OrganDictionary>> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto)
{ {
var dicNums = new List<string>(); 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 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(); 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) public async Task<List<CriterionNidusView>> GetCriterionNidusList(CriterionNidusQuery inQuery)
{ {
var criterionNidusQueryable = _criterionNidusRepository if (await _readingQuestionCriterionSystemRepository.AnyAsync(x => x.Id == inQuery.CriterionId))
.Where(x => x.CriterionId == inQuery.CriterionId) {
.ProjectTo<CriterionNidusView>(_mapper.ConfigurationProvider); return await _criterionNidusRepository
.Where(x => x.CriterionId == inQuery.CriterionId)
return await criterionNidusQueryable.ToListAsync(); .ProjectTo<CriterionNidusView>(_mapper.ConfigurationProvider).ToListAsync();
}
else
{
return await _criterionNidusTrialRepository
.Where(x => x.CriterionId == inQuery.CriterionId)
.ProjectTo<CriterionNidusView>(_mapper.ConfigurationProvider).ToListAsync();
}
} }
/// <summary> /// <summary>
@ -418,20 +440,22 @@ namespace IRaCIS.Core.Application.Service
{ {
inDto.SystemCriterionId = readingQuestionCriterionTrial.ReadingQuestionCriterionSystemId; inDto.SystemCriterionId = readingQuestionCriterionTrial.ReadingQuestionCriterionSystemId;
} }
await _criterionNidusRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterionId); await _criterionNidusTrialRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterionId);
List<CriterionNidusData> criterionNidusList = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => new CriterionNidusData()
List<CriterionNidusTrial> criterionNidusList = await _criterionNidusRepository.Where(x => x.CriterionId == inDto.SystemCriterionId).Select(x => new CriterionNidusTrial()
{ {
Id = x.Id, Id = x.Id,
CriterionId = trialCriterionId, CriterionId = trialCriterionId,
LesionType = x.LesionType, LesionType = x.LesionType,
OriginalId = x.Id,
OrganType=x.OrganType, OrganType=x.OrganType,
IsSystemCriterion=false,
}).ToListAsync(); }).ToListAsync();
criterionNidusList.ForEach(x => x.Id = NewId.NextGuid()); criterionNidusList.ForEach(x => x.Id = NewId.NextGuid());
await _criterionNidusRepository.AddRangeAsync(criterionNidusList); await _criterionNidusTrialRepository.AddRangeAsync(criterionNidusList);
await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == readingQuestionCriterionTrial.Id); await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(x => x.TrialCriterionId == readingQuestionCriterionTrial.Id);
List<OrganTrialInfo> organTrialInfoList = await _organInfoRepository.Where(x =>x.SystemCriterionId== inDto.SystemCriterionId).Select(x => new OrganTrialInfo() 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.FileList, y => y.MapFrom(n => n.FileList))
.ForMember(x => x.CreateUserName, y => y.MapFrom(n => n.CreateUser.UserName)); .ForMember(x => x.CreateUserName, y => y.MapFrom(n => n.CreateUser.UserName));
#endregion #endregion
#region 阅片部位
#region 阅片部位
CreateMap<CriterionNidus, CriterionNidusView>(); CreateMap<CriterionNidusTrial, CriterionNidusView>();
CreateMap<CriterionNidus, CriterionNidusView>();
CreateMap<CriterionNidus, CriterionNidusAddOrEdit>().ReverseMap(); CreateMap<CriterionNidus, CriterionNidusAddOrEdit>().ReverseMap();
CreateMap<OrganInfoAddOrEdit, OrganInfo>(); CreateMap<OrganInfoAddOrEdit, OrganInfo>();

View File

@ -9,16 +9,16 @@ using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Domain.Models namespace IRaCIS.Core.Domain.Models
{ {
/// <summary> /// <summary>
/// 标准病灶中间表 /// 标准病灶中间表
/// </summary> /// </summary>
[Table("CriterionNidus")] [Table("CriterionNidus")]
public class CriterionNidus : Entity, IAuditAdd public class CriterionNidus : Entity, IAuditAdd
{ {
/// <summary> /// <summary>
/// 标准ID /// 标准ID
/// </summary> /// </summary>
public Guid CriterionId { get; set; } public Guid CriterionId { get; set; }
@ -33,14 +33,14 @@ namespace IRaCIS.Core.Domain.Models
/// </summary> /// </summary>
public LesionType LesionType { get; set; } public LesionType LesionType { get; set; }
/// <summary>
/// CreateTime
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary> /// <summary>
/// CreateUserId /// CreateTime
/// </summary> /// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
public Guid CreateUserId { get; set; } public Guid CreateUserId { get; set; }
/// <summary> /// <summary>
@ -49,12 +49,12 @@ namespace IRaCIS.Core.Domain.Models
public bool IsSystemCriterion { get; set; } public bool IsSystemCriterion { get; set; }
[ForeignKey("CriterionId")] [ForeignKey("CriterionId")]
[JsonIgnore] [JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; } 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) 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 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<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; } 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 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 DbDatabase = "IRaCIS_New_Tet";
//表名称用字符串,拼接 //表名称用字符串,拼接
public static readonly string TableName = "SubjectCriteriaEvaluation"; public static readonly string TableName = "ReadingTrialCriterionDictionary";
//具体文件里面 例如service 可以配置是否分页 //具体文件里面 例如service 可以配置是否分页
} }
#> #>