代码整理
This commit is contained in:
@@ -46,70 +46,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
this._criterionNidusRepository = criterionNidusRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取标准病灶类型
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
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();
|
||||
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();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取标准病灶器官关系信息
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 新增修改标准病灶器官关系信息
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateCriterionNidus(CriterionNidusAddOrEdit inDto)
|
||||
{
|
||||
|
||||
if (await _criterionNidusRepository.AnyAsync(x => x.OrganType == inDto.OrganType && x.LesionType == inDto.LesionType && x.CriterionId == inDto.CriterionId && x.Id != inDto.Id))
|
||||
{
|
||||
throw new BusinessValidationFailedException("存在相同的数据,操作失败");
|
||||
}
|
||||
var entity = await _criterionNidusRepository.InsertOrUpdateAsync(inDto, true);
|
||||
|
||||
return ResponseOutput.Ok(entity.Id.ToString());
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除病灶病灶器官关系信息
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{id:guid}")]
|
||||
public async Task<IResponseOutput> DeleteCriterionNidus(Guid id)
|
||||
{
|
||||
var success = await _criterionNidusRepository.DeleteFromQueryAsync(t => t.Id == id, true);
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
#region 系统器官
|
||||
|
||||
/// <summary>
|
||||
/// 获取系统器官信息
|
||||
@@ -122,11 +60,11 @@ namespace IRaCIS.Core.Application.Service
|
||||
List<OrganType> organs = new List<OrganType>();
|
||||
if (inQuery.LesionType != null)
|
||||
{
|
||||
organs =await _criterionNidusRepository.Where(x => x.CriterionId == inQuery.SystemCriterionId && x.LesionType == inQuery.LesionType)
|
||||
organs = await _criterionNidusRepository.Where(x => x.CriterionId == inQuery.SystemCriterionId && x.LesionType == inQuery.LesionType)
|
||||
.Select(x => x.OrganType).ToListAsync();
|
||||
}
|
||||
var organInfoQueryable = _organInfoRepository
|
||||
.Where(x=>x.SystemCriterionId==inQuery.SystemCriterionId)
|
||||
.Where(x => x.SystemCriterionId == inQuery.SystemCriterionId)
|
||||
.WhereIf(inQuery.LesionType != null, x => organs.Contains(x.OrganType))
|
||||
.WhereIf(inQuery.OrganType != null, x => x.OrganType == inQuery.OrganType)
|
||||
.ProjectTo<OrganInfoView>(_mapper.ConfigurationProvider);
|
||||
@@ -185,6 +123,64 @@ namespace IRaCIS.Core.Application.Service
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 项目器官
|
||||
|
||||
/// <summary>
|
||||
/// 获取项目器官信息
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<GetTrialOrganListOutDto>> GetTrialOrganList(GetTrialOrganListInDto inDto)
|
||||
{
|
||||
|
||||
List<OrganType> organs = new List<OrganType>();
|
||||
|
||||
if (inDto.TrialReadingCriterionId == null)
|
||||
{
|
||||
inDto.TrialReadingCriterionId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.TrialReadingCriterionId).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
|
||||
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)
|
||||
.Select(x => x.OrganType).ToListAsync();
|
||||
}
|
||||
|
||||
var organInfoQueryable = from data in _organInfoRepository
|
||||
.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType)
|
||||
.WhereIf(inDto.IsLymphNodes != null, x => x.IsLymphNodes == inDto.IsLymphNodes)
|
||||
.WhereIf(inDto.LesionType != null, x => organs.Contains(x.OrganType))
|
||||
join trialData in _organTrialInfoRepository.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
|
||||
|
||||
.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
|
||||
.Where(x => x.TrialCriterionId == inDto.TrialReadingCriterionId)
|
||||
on data.Id equals trialData.OrganInfoId
|
||||
select new GetTrialOrganListOutDto()
|
||||
{
|
||||
Id = trialData.Id,
|
||||
Part = data.Part,
|
||||
TULAT = data.TULAT,
|
||||
TULOC = data.TULOC,
|
||||
Remark = data.Remark,
|
||||
IsLymphNodes = data.IsLymphNodes,
|
||||
IsCanEditPosition = data.IsCanEditPosition,
|
||||
IsEnable = trialData.IsEnable,
|
||||
OrganType = data.OrganType,
|
||||
PartEN = data.PartEN,
|
||||
TULATEN = data.TULATEN,
|
||||
TULOCEN = data.TULOCEN,
|
||||
};
|
||||
|
||||
|
||||
return await organInfoQueryable.ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 批量添加项目器官
|
||||
@@ -197,9 +193,9 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
List<OrganTrialInfo> organTrialInfos = inDto.OrganIds.Select(x => new OrganTrialInfo()
|
||||
{
|
||||
OrganInfoId=x,
|
||||
TrialId=inDto.TrialId,
|
||||
TrialCriterionId=inDto.TrialReadingCriterionId,
|
||||
OrganInfoId = x,
|
||||
TrialId = inDto.TrialId,
|
||||
TrialCriterionId = inDto.TrialReadingCriterionId,
|
||||
//OrganType=inDto.OrganType,
|
||||
}).ToList();
|
||||
|
||||
@@ -224,94 +220,106 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取项目器官信息
|
||||
/// 设置项目器官是否生效
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<List<GetTrialOrganListOutDto>> GetTrialOrganList(GetTrialOrganListInDto inDto)
|
||||
public async Task<IResponseOutput> SetOrganIsEnable(SetOrganIsEnableInDto inDto)
|
||||
{
|
||||
|
||||
List<OrganType> organs = new List<OrganType>();
|
||||
|
||||
if (inDto.TrialReadingCriterionId == null)
|
||||
await _organTrialInfoRepository.UpdatePartialFromQueryAsync(x => inDto.Ids.Contains(x.Id), x => new OrganTrialInfo()
|
||||
{
|
||||
inDto.TrialReadingCriterionId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.TrialReadingCriterionId).FirstOrDefaultAsync();
|
||||
}
|
||||
IsEnable = inDto.IsEnable
|
||||
});
|
||||
|
||||
await _organTrialInfoRepository.SaveChangesAsync();
|
||||
|
||||
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)
|
||||
.Select(x => x.OrganType).ToListAsync();
|
||||
}
|
||||
|
||||
var organInfoQueryable = from data in _organInfoRepository
|
||||
.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType)
|
||||
.WhereIf(inDto.IsLymphNodes!=null,x=>x.IsLymphNodes==inDto.IsLymphNodes)
|
||||
.WhereIf(inDto.LesionType != null, x => organs.Contains(x.OrganType))
|
||||
join trialData in _organTrialInfoRepository.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
|
||||
|
||||
.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
|
||||
.Where(x => x.TrialCriterionId == inDto.TrialReadingCriterionId)
|
||||
on data.Id equals trialData.OrganInfoId
|
||||
select new GetTrialOrganListOutDto()
|
||||
{
|
||||
Id = trialData.Id,
|
||||
Part = data.Part,
|
||||
TULAT = data.TULAT,
|
||||
TULOC = data.TULOC,
|
||||
Remark= data.Remark,
|
||||
IsLymphNodes = data.IsLymphNodes,
|
||||
IsCanEditPosition=data.IsCanEditPosition,
|
||||
IsEnable = trialData.IsEnable,
|
||||
OrganType = data.OrganType,
|
||||
PartEN=data.PartEN,
|
||||
TULATEN=data.TULATEN,
|
||||
TULOCEN=data.TULOCEN,
|
||||
};
|
||||
|
||||
|
||||
return await organInfoQueryable.ToListAsync();
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
||||
#region 注释
|
||||
///// <summary>
|
||||
///// 获取项目勾选器官信息
|
||||
///// </summary>
|
||||
///// <param name="inDto"></param>
|
||||
///// <returns></returns>
|
||||
//[HttpPost]
|
||||
//public async Task<List<GetTrialCheckOrganList>> GetTrialCheckOrganList(GetTrialOrganListInDto inDto)
|
||||
//{
|
||||
// var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.CriterionNidusId != null, x => x.CriterionNidusId == inDto.CriterionNidusId)
|
||||
// join trialData in _organTrialInfoRepository.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
|
||||
// .Where(x => x.TrialId == inDto.TrialId)
|
||||
// on data.Id equals trialData.OrganInfoId into jtemp
|
||||
// from leftjoin in jtemp.DefaultIfEmpty()
|
||||
// select new GetTrialCheckOrganList()
|
||||
// {
|
||||
// Id = data.Id,
|
||||
// Part = data.Part,
|
||||
// TULAT = data.TULAT,
|
||||
// TULOC = data.TULOC,
|
||||
|
||||
// IsCheckd= leftjoin!=null,
|
||||
// Remark = data.Remark,
|
||||
// CriterionNidusId = data.CriterionNidusId,
|
||||
// IsEnable = leftjoin.IsEnable,
|
||||
|
||||
// };
|
||||
|
||||
|
||||
// return await organInfoQueryable.ToListAsync();
|
||||
//}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region 器官和病灶绑定表 (项目和系统 在同一张表)
|
||||
|
||||
/// <summary>
|
||||
/// 获取标准病灶类型
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
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();
|
||||
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();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取标准病灶器官关系信息
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 新增修改标准病灶器官关系信息
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> AddOrUpdateCriterionNidus(CriterionNidusAddOrEdit inDto)
|
||||
{
|
||||
|
||||
if (await _criterionNidusRepository.AnyAsync(x => x.OrganType == inDto.OrganType && x.LesionType == inDto.LesionType && x.CriterionId == inDto.CriterionId && x.Id != inDto.Id))
|
||||
{
|
||||
throw new BusinessValidationFailedException("存在相同的数据,操作失败");
|
||||
}
|
||||
var entity = await _criterionNidusRepository.InsertOrUpdateAsync(inDto, true);
|
||||
|
||||
return ResponseOutput.Ok(entity.Id.ToString());
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除病灶病灶器官关系信息
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{id:guid}")]
|
||||
public async Task<IResponseOutput> DeleteCriterionNidus(Guid id)
|
||||
{
|
||||
var success = await _criterionNidusRepository.DeleteFromQueryAsync(t => t.Id == id, true);
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 同步系统器官到项目
|
||||
/// </summary>
|
||||
@@ -373,25 +381,43 @@ namespace IRaCIS.Core.Application.Service
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设置项目器官是否生效
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IResponseOutput> SetOrganIsEnable(SetOrganIsEnableInDto inDto)
|
||||
{
|
||||
await _organTrialInfoRepository.UpdatePartialFromQueryAsync(x => inDto.Ids.Contains(x.Id), x => new OrganTrialInfo()
|
||||
{
|
||||
IsEnable=inDto.IsEnable
|
||||
});
|
||||
|
||||
await _organTrialInfoRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
||||
#region 注释
|
||||
///// <summary>
|
||||
///// 获取项目勾选器官信息
|
||||
///// </summary>
|
||||
///// <param name="inDto"></param>
|
||||
///// <returns></returns>
|
||||
//[HttpPost]
|
||||
//public async Task<List<GetTrialCheckOrganList>> GetTrialCheckOrganList(GetTrialOrganListInDto inDto)
|
||||
//{
|
||||
// var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.CriterionNidusId != null, x => x.CriterionNidusId == inDto.CriterionNidusId)
|
||||
// join trialData in _organTrialInfoRepository.WhereIf(inDto.IsEnable != null, x => x.IsEnable == inDto.IsEnable)
|
||||
// .Where(x => x.TrialId == inDto.TrialId)
|
||||
// on data.Id equals trialData.OrganInfoId into jtemp
|
||||
// from leftjoin in jtemp.DefaultIfEmpty()
|
||||
// select new GetTrialCheckOrganList()
|
||||
// {
|
||||
// Id = data.Id,
|
||||
// Part = data.Part,
|
||||
// TULAT = data.TULAT,
|
||||
// TULOC = data.TULOC,
|
||||
|
||||
// IsCheckd= leftjoin!=null,
|
||||
// Remark = data.Remark,
|
||||
// CriterionNidusId = data.CriterionNidusId,
|
||||
// IsEnable = leftjoin.IsEnable,
|
||||
|
||||
// };
|
||||
|
||||
|
||||
// return await organInfoQueryable.ToListAsync();
|
||||
//}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user