非Dicom标记绑定

This commit is contained in:
he
2025-10-21 10:25:49 +08:00
parent e5e2a0394b
commit 58321c4c82
11 changed files with 20785 additions and 2 deletions
@@ -38,6 +38,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<TaskInstance> _taskInstanceRepository,
IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository,
IRepository<ReadingNoneDicomMark> _readingNoneDicomMarkRepository,
IRepository<ReadingNoneDicomMarkBinding> _readingNoneDicomMarkBindingRepository,
IRepository<UserLog> _userLogRepository,
IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository,
IRepository<ReadingOncologyTaskInfo> _readingOncologyTaskInfoRepository,
@@ -32,6 +32,72 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Ok(true);
}
/// <summary>
/// 添加非Dicom标记并绑定
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> AddNoneDicomMarkAndBinding(AddNoneDicomMarkAndBinding inDto)
{
ReadingNoneDicomMark? mark = await _readingNoneDicomMarkRepository.Where(x => x.MarkId == inDto.MarkInfo.MarkId).FirstOrDefaultAsync();
if (mark == null)
{
mark = await _readingNoneDicomMarkRepository.InsertOrUpdateAsync(new AddNoneDicomMarkInDto()
{
MarkId = inDto.MarkInfo.MarkId,
MeasureData = inDto.MarkInfo.MeasureData,
NoneDicomFileId = inDto.MarkInfo.NoneDicomFileId,
Path = inDto.MarkInfo.Path,
StudyId = inDto.MarkInfo.StudyId,
VisitTaskId = inDto.VisitTaskId
}, true);
}
List<ReadingNoneDicomMarkBinding> markBindings = inDto.BindingList.Select(x => new ReadingNoneDicomMarkBinding()
{
MarkId = mark.MarkId,
VisitTaskId = inDto.VisitTaskId,
QuestionId = x.QuestionId,
RowId = x.RowId,
TableQuestionId = x.TableQuestionId,
NoneDicomMarkId = mark.Id
}).ToList();
await _readingNoneDicomMarkBindingRepository.AddRangeAsync(markBindings);
await _readingNoneDicomMarkBindingRepository.SaveChangesAsync();
return ResponseOutput.Ok(mark.Id);
}
/// <summary>
/// 删除绑定关系
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> DeleteBinding(DeleteBindingInDto inDto)
{
await _readingNoneDicomMarkBindingRepository.DeleteFromQueryAsync(x =>x.Id==inDto.BindingIdId, true);
return ResponseOutput.Ok();
}
/// <summary>
/// 获取非Dicom标记和绑定关系
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<GetNoneDicomMarkAndBindingOutDto> GetNoneDicomMarkAndBinding(GetNoneDicomMarkAndBindingInDto inDto)
{
GetNoneDicomMarkAndBindingOutDto result=new GetNoneDicomMarkAndBindingOutDto ();
result.NoneDicomMarkList = await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId)
.ProjectTo<AddNoneDicomMarkInDto>(_mapper.ConfigurationProvider)
.ToListAsync();
result.BindingList = await _readingNoneDicomMarkBindingRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId)
.ProjectTo<BindingData>(_mapper.ConfigurationProvider)
.ToListAsync();
return result;
}
/// <summary>
/// 添加非Dicom标记