diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 1f798a5de..08411c292 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -7644,6 +7644,13 @@
+
+
+ 删除
+
+
+
+
获取CRC上传的文件
@@ -7657,12 +7664,10 @@
-
+
- 删除
+ 影像阅片临床数据签名
-
-
@@ -7671,11 +7676,6 @@
-
-
- 影像阅片临床数据签名
-
-
获取访视 阅片或任务临床数据
@@ -8058,17 +8058,18 @@
-
+
- 获取影像阅片的预览 // 需要清除之前已经选中的 (增加标准搜索,已修改)
+ 删除
+
-
+
- 添加对应的阅片 (增加标准不影响 因为阅片期设置关联了标准)
+ 设置阅片期配置是否生效 (增加标准搜索,已修改)
-
+
@@ -8078,6 +8079,13 @@
+
+
+ 添加对应的阅片计划 (后续生效将计划变为模块) (增加标准不影响 因为阅片期设置关联了标准)
+
+
+
+
分页获取 (增加标准搜索,已修改)
@@ -8099,18 +8107,48 @@
-
+
- 设置阅片期配置是否生效 (增加标准搜索,已修改)
+ 获取影像阅片的预览 // 需要清除之前已经选中的 (增加标准搜索,已修改)
-
-
+
+
+ 生成的阅片模块(在大列表上展示的) 阅片期
+
+
+
+
+ 获取读片模块 //加了标准参数
+
+
+
+
+ 获取单条详情信息
+
+
+
+
+
+
+ 添加阅片的时候 获取访视 //标准参数必传
+
+
+
+
+
+
+ 添加阅片期
+
+
+
+
+
删除
-
+
@@ -8423,44 +8461,6 @@
-
-
- 生成的阅片模块(在大列表上展示的) 阅片期
-
-
-
-
- 获取读片模块 //加了标准参数
-
-
-
-
- 获取单条详情信息
-
-
-
-
-
-
- 添加阅片的时候 获取访视 //标准参数必传
-
-
-
-
-
-
- 添加阅片期
-
-
-
-
-
-
- 删除
-
-
-
-
Dashboard统计、全局工作量统计、入组两个维度统计(按照项目、按照人)
diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs
index 64246141d..d4de2eaef 100644
--- a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs
@@ -153,9 +153,12 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> GetDoctorSelectList(DoctorSelectQuery selectQuery, [FromServices] IRepository _enrollRepository)
{
+
var query = from allocationRule in _taskAllocationRuleRepository.Where(t => t.TrialId == selectQuery.TrialId && t.IsEnable)
- .WhereIf(selectQuery.ReadingCategory != null, t => t.Enroll.EnrollReadingCategoryList.Any(t => t.ReadingCategory == selectQuery.ReadingCategory))
- .WhereIf(selectQuery.TrialReadingCriterionId != null, t => t.Enroll.EnrollReadingCategoryList.Any(t => t.TrialReadingCriterionId == selectQuery.TrialReadingCriterionId))
+ .WhereIf(selectQuery.ReadingCategory != null && selectQuery.TrialReadingCriterionId == null, t => t.Enroll.EnrollReadingCategoryList.Any(t => t.ReadingCategory == selectQuery.ReadingCategory))
+ .WhereIf(selectQuery.TrialReadingCriterionId != null && selectQuery.ReadingCategory == null, t => t.Enroll.EnrollReadingCategoryList.Any(t => t.TrialReadingCriterionId == selectQuery.TrialReadingCriterionId))
+ .WhereIf(selectQuery.TrialReadingCriterionId != null && selectQuery.ReadingCategory !=null,
+ t => t.Enroll.EnrollReadingCategoryList.Any(t => t.TrialReadingCriterionId == selectQuery.TrialReadingCriterionId && t.ReadingCategory==selectQuery.ReadingCategory))
join user in _userRepository.AsQueryable() on allocationRule.DoctorUserId equals user.Id
select new TrialDoctorUserSelectView()
{
@@ -167,20 +170,19 @@ namespace IRaCIS.Core.Application.Service
UserTypeEnum = user.UserTypeRole.UserTypeEnum,
ReadingCategoryList = selectQuery.TrialReadingCriterionId == null ?
- allocationRule.Enroll.EnrollReadingCategoryList
- .Select(t => t.ReadingCategory).OrderBy(t => t).ToList():
-
- allocationRule.Enroll.EnrollReadingCategoryList
- .Where( t => t.TrialReadingCriterionId == selectQuery.TrialReadingCriterionId)
- .Select(t => t.ReadingCategory).OrderBy(t=>t).ToList()
+
+ allocationRule.Enroll.EnrollReadingCategoryList.Where(t=> (selectQuery.ReadingCategory == null ?true: t.ReadingCategory == selectQuery.ReadingCategory) ).Select(t => t.ReadingCategory).OrderBy(t => t).ToList() :
+
+ allocationRule.Enroll.EnrollReadingCategoryList
+ .Where(t => t.TrialReadingCriterionId == selectQuery.TrialReadingCriterionId && (selectQuery.ReadingCategory == null?true : t.ReadingCategory == selectQuery.ReadingCategory) )
+ .Select(t => t.ReadingCategory).OrderBy(t => t).ToList()
};
return await query.ToListAsync();
}
-
-
+ #region 废弃
///
/// 获取访视任务 应用Subject后 医生比率情况
///
@@ -210,5 +212,8 @@ namespace IRaCIS.Core.Application.Service
return await taskAllocationRuleQueryable.ToListAsync();
}
+ #endregion
+
+
}
}
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
index 9e3d6eaa0..4ce83a361 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs
@@ -46,70 +46,8 @@ namespace IRaCIS.Core.Application.Service
this._criterionNidusRepository = criterionNidusRepository;
}
- ///
- /// 获取标准病灶类型
- ///
- ///
- ///
- [HttpPost]
- public async Task> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto)
- {
- var dicNums = new List();
- 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(_mapper.ConfigurationProvider).ToListAsync();
-
- return result;
- }
-
- ///
- /// 获取标准病灶器官关系信息
- ///
- ///
- ///
- [HttpPost]
- public async Task> GetCriterionNidusList(CriterionNidusQuery inQuery)
- {
-
- var criterionNidusQueryable = _criterionNidusRepository
- .Where(x=>x.CriterionId== inQuery.CriterionId)
- .ProjectTo(_mapper.ConfigurationProvider);
-
- return await criterionNidusQueryable.ToListAsync();
- }
-
- ///
- /// 新增修改标准病灶器官关系信息
- ///
- ///
- ///
- [HttpPost]
- public async Task 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());
-
- }
-
- ///
- /// 删除病灶病灶器官关系信息
- ///
- ///
- ///
- [HttpDelete("{id:guid}")]
- public async Task DeleteCriterionNidus(Guid id)
- {
- var success = await _criterionNidusRepository.DeleteFromQueryAsync(t => t.Id == id, true);
- return ResponseOutput.Ok();
- }
+ #region 系统器官
///
/// 获取系统器官信息
@@ -122,11 +60,11 @@ namespace IRaCIS.Core.Application.Service
List organs = new List();
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(_mapper.ConfigurationProvider);
@@ -185,6 +123,64 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Ok();
}
+ #endregion
+
+
+ #region 项目器官
+
+ ///
+ /// 获取项目器官信息
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetTrialOrganList(GetTrialOrganListInDto inDto)
+ {
+
+ List organs = new List();
+
+ 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();
+ }
+
///
/// 批量添加项目器官
@@ -197,9 +193,9 @@ namespace IRaCIS.Core.Application.Service
List 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
}
+
///
- /// 获取项目器官信息
+ /// 设置项目器官是否生效
///
///
///
[HttpPost]
- public async Task> GetTrialOrganList(GetTrialOrganListInDto inDto)
+ public async Task SetOrganIsEnable(SetOrganIsEnableInDto inDto)
{
-
- List organs = new List();
-
- 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 注释
- /////
- ///// 获取项目勾选器官信息
- /////
- /////
- /////
- //[HttpPost]
- //public async Task> 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 器官和病灶绑定表 (项目和系统 在同一张表)
+
+ ///
+ /// 获取标准病灶类型
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetCriterionLesionType(GetCriterionLesionTypeInDto inDto)
+ {
+ var dicNums = new List();
+ 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(_mapper.ConfigurationProvider).ToListAsync();
+
+ return result;
+ }
+
+ ///
+ /// 获取标准病灶器官关系信息
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetCriterionNidusList(CriterionNidusQuery inQuery)
+ {
+
+ var criterionNidusQueryable = _criterionNidusRepository
+ .Where(x => x.CriterionId == inQuery.CriterionId)
+ .ProjectTo(_mapper.ConfigurationProvider);
+
+ return await criterionNidusQueryable.ToListAsync();
+ }
+
+ ///
+ /// 新增修改标准病灶器官关系信息
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task 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());
+
+ }
+
+ ///
+ /// 删除病灶病灶器官关系信息
+ ///
+ ///
+ ///
+ [HttpDelete("{id:guid}")]
+ public async Task DeleteCriterionNidus(Guid id)
+ {
+ var success = await _criterionNidusRepository.DeleteFromQueryAsync(t => t.Id == id, true);
+ return ResponseOutput.Ok();
+ }
+
+ #endregion
+
+
+
+
+
+
+
+
+
+
///
/// 同步系统器官到项目
///
@@ -373,25 +381,43 @@ namespace IRaCIS.Core.Application.Service
}
-
- ///
- /// 设置项目器官是否生效
- ///
- ///
- ///
- [HttpPost]
- public async Task 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 注释
+ /////
+ ///// 获取项目勾选器官信息
+ /////
+ /////
+ /////
+ //[HttpPost]
+ //public async Task> 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
}
}