Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
c2f768bef8
|
@ -12201,7 +12201,7 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTask},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserLog},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo},IRaCIS.Core.Application.Service.IVisitTaskHelpeService,IRaCIS.Core.Application.Service.IVisitTaskService,IRaCIS.Core.Application.Contracts.IReadingClinicalDataService,IRaCIS.Core.Application.Service.IReadingCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserFeedBack},Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.ServiceVerifyConfigOption},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingCriterionPage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskRelation},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingJudgeInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadModule},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.OrganInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialDocument},IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingCustomTag},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Application.Service.IGeneralCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskStudy},IRaCIS.Core.Application.Service.ImageAndDoc.IDownloadAndUploadService,IRaCIS.Core.Application.Interfaces.ITrialEmailNoticeConfigService,AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer,ZiggyCreatures.Caching.Fusion.IFusionCache)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTask},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingNoneDicomMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserLog},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo},IRaCIS.Core.Application.Service.IVisitTaskHelpeService,IRaCIS.Core.Application.Service.IVisitTaskService,IRaCIS.Core.Application.Contracts.IReadingClinicalDataService,IRaCIS.Core.Application.Service.IReadingCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserFeedBack},Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Core.Domain.Share.ServiceVerifyConfigOption},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingCriterionPage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskRelation},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingJudgeInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadModule},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomInstance},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.OrganInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialDocument},IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingCustomTag},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionSystem},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudyFile},IRaCIS.Core.Application.Service.IGeneralCalculateService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionTrial},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TaskStudy},IRaCIS.Core.Application.Service.ImageAndDoc.IDownloadAndUploadService,IRaCIS.Core.Application.Interfaces.ITrialEmailNoticeConfigService,AutoMapper.IMapper,IRaCIS.Core.Domain.Share.IUserInfo,Microsoft.Extensions.Localization.IStringLocalizer,ZiggyCreatures.Caching.Fusion.IFusionCache)">
|
||||||
<summary>
|
<summary>
|
||||||
IR影像阅片
|
IR影像阅片
|
||||||
</summary>
|
</summary>
|
||||||
|
@ -12635,6 +12635,27 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.AddNoneDicomMark(IRaCIS.Core.Application.Service.Reading.Dto.AddNoneDicomMarkInDto)">
|
||||||
|
<summary>
|
||||||
|
添加非Dicom标记
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetNoneDicomMarkListOutDto(IRaCIS.Core.Application.Service.Reading.Dto.GetNoneDicomMarkListInDtoDto)">
|
||||||
|
<summary>
|
||||||
|
获取非Dicom标记
|
||||||
|
</summary>
|
||||||
|
<param name="inDto"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.DeleteTrialFileType(System.Guid)">
|
||||||
|
<summary>
|
||||||
|
删除非Dicom标记
|
||||||
|
</summary>
|
||||||
|
<param name="id"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.SaveVisitTaskQuestions(IRaCIS.Core.Application.Service.Reading.Dto.SubmitVisitTaskQuestionsInDto)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.SaveVisitTaskQuestions(IRaCIS.Core.Application.Service.Reading.Dto.SubmitVisitTaskQuestionsInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
保存任务问题
|
保存任务问题
|
||||||
|
@ -14183,14 +14204,9 @@
|
||||||
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit">
|
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit">
|
||||||
<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
|
<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialFileTypeDataInDto.IsAuthorizedView">
|
<member name="P:IRaCIS.Core.Application.ViewModel.GetTrialFileTypeDataInDto.IsEnable">
|
||||||
<summary>
|
<summary>
|
||||||
是否授权
|
是否启用
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialFileTypeAddOrEdit.IsAuthorizedView">
|
|
||||||
<summary>
|
|
||||||
是否授权
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:IRaCIS.Core.Application.ViewModel.TrialFileTypeAddOrEdit.ShowOrder">
|
<member name="P:IRaCIS.Core.Application.ViewModel.TrialFileTypeAddOrEdit.ShowOrder">
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class SetAuthorizedViewInDto
|
||||||
{
|
{
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
public bool IsAuthorizedView { get; set; }
|
public bool IsEnable { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetTrialFileTypeDataInDto
|
public class GetTrialFileTypeDataInDto
|
||||||
|
@ -44,9 +44,9 @@ public class GetTrialFileTypeDataInDto
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否授权
|
/// 是否启用
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsAuthorizedView { get; set; } = false;
|
public bool IsEnable { get; set; } = false;
|
||||||
}
|
}
|
||||||
public class CopySystemFileTypeToTrialInDto
|
public class CopySystemFileTypeToTrialInDto
|
||||||
{
|
{
|
||||||
|
@ -91,11 +91,6 @@ public class TrialFileTypeAddOrEdit
|
||||||
|
|
||||||
public Guid TrialId { get; set; }
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 是否授权
|
|
||||||
/// </summary>
|
|
||||||
public bool IsAuthorizedView { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 显示顺序
|
/// 显示顺序
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -11,6 +11,7 @@ using IRaCIS.Core.Application.ViewModel;
|
||||||
using IRaCIS.Core.Infrastructure.Extention;
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using IRaCIS.Core.Infra.EFCore;
|
using IRaCIS.Core.Infra.EFCore;
|
||||||
|
using MassTransit;
|
||||||
namespace IRaCIS.Core.Application.Service;
|
namespace IRaCIS.Core.Application.Service;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -117,7 +118,10 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
|
||||||
.ProjectTo<TrialFileType>(_mapper.ConfigurationProvider)
|
.ProjectTo<TrialFileType>(_mapper.ConfigurationProvider)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
trialFileTypeList.ForEach(x => x.TrialId = inDto.TrialId);
|
trialFileTypeList.ForEach(x => {
|
||||||
|
x.TrialId = inDto.TrialId;
|
||||||
|
x.Id = NewId.NextGuid();
|
||||||
|
});
|
||||||
|
|
||||||
await _trialFileTypeRepository.AddRangeAsync(trialFileTypeList, true);
|
await _trialFileTypeRepository.AddRangeAsync(trialFileTypeList, true);
|
||||||
}
|
}
|
||||||
|
@ -138,15 +142,20 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
|
||||||
TrialId = inDto.TrialId
|
TrialId = inDto.TrialId
|
||||||
});
|
});
|
||||||
var trialFileTypeList = await _trialFileTypeRepository.Where(x=>x.TrialId==inDto.TrialId)
|
var trialFileTypeList = await _trialFileTypeRepository.Where(x=>x.TrialId==inDto.TrialId)
|
||||||
.WhereIf(inDto.IsAuthorizedView, x => x.IsAuthorizedView)
|
.WhereIf(inDto.IsEnable, x => x.IsEnable)
|
||||||
.OrderBy(x=>x.ShowOrder)
|
.OrderBy(x=>x.ShowOrder)
|
||||||
.ProjectTo<TrialFileTypeView>(_mapper.ConfigurationProvider)
|
.ProjectTo<TrialFileTypeView>(_mapper.ConfigurationProvider)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
List<TrialFileTypeData> result= trialFileTypeList.GroupBy(x =>new { x.ArchiveTypeEnum},(key,list)=>new TrialFileTypeData() {
|
List<TrialFileTypeData> result = new List<TrialFileTypeData>();
|
||||||
ArchiveTypeEnum= key.ArchiveTypeEnum,
|
foreach (ArchiveType type in Enum.GetValues(typeof(ArchiveType)))
|
||||||
TrialFileTypeList=list.OrderBy(y=>y.ShowOrder).ToList(),
|
{
|
||||||
}).OrderBy(x=>x.ArchiveTypeEnum).ToList();
|
result.Add(new TrialFileTypeData()
|
||||||
|
{
|
||||||
|
ArchiveTypeEnum = type,
|
||||||
|
TrialFileTypeList = trialFileTypeList.Where(x => x.ArchiveTypeEnum == type).ToList()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return new GetTrialFileTypeDataOutDto() { TrialFileTypeDataList = result };
|
return new GetTrialFileTypeDataOutDto() { TrialFileTypeDataList = result };
|
||||||
|
|
||||||
|
@ -161,7 +170,7 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IResponseOutput> SetAuthorizedView(SetAuthorizedViewInDto inDto)
|
public async Task<IResponseOutput> SetAuthorizedView(SetAuthorizedViewInDto inDto)
|
||||||
{
|
{
|
||||||
await _trialFileTypeRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new TrialFileType() { IsAuthorizedView = inDto.IsAuthorizedView }, true);
|
await _trialFileTypeRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new TrialFileType() { IsEnable = inDto.IsEnable }, true);
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public int FileCount { get; set; }
|
public int FileCount { get; set; }
|
||||||
|
|
||||||
|
public bool IsCriticalSequence { get; set; } = false;
|
||||||
|
|
||||||
public List<NoneDicomStudyFileView> NoneDicomStudyFileList { get; set; } = new List<NoneDicomStudyFileView>();
|
public List<NoneDicomStudyFileView> NoneDicomStudyFileList { get; set; } = new List<NoneDicomStudyFileView>();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2365,6 +2365,32 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public Guid VisitTaskId { get; set; }
|
public Guid VisitTaskId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class GetNoneDicomMarkListOutDto
|
||||||
|
{
|
||||||
|
public List<AddNoneDicomMarkInDto> NoneDicomMarkList { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class GetNoneDicomMarkListInDtoDto
|
||||||
|
{
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddNoneDicomMarkInDto
|
||||||
|
{
|
||||||
|
public Guid? Id { get; set; }
|
||||||
|
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
||||||
|
public Guid? StudyId { get; set; }
|
||||||
|
public Guid? NoneDicomFileId { get; set; }
|
||||||
|
|
||||||
|
public string Path { get; set; }
|
||||||
|
|
||||||
|
public string MeasureData { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -32,6 +32,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
IRepository<NoneDicomStudy> _noneDicomStudyRepository,
|
IRepository<NoneDicomStudy> _noneDicomStudyRepository,
|
||||||
IRepository<VisitTask> _visitTaskRepository,
|
IRepository<VisitTask> _visitTaskRepository,
|
||||||
IRepository<Trial> _trialRepository,
|
IRepository<Trial> _trialRepository,
|
||||||
|
IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository,
|
||||||
|
IRepository<ReadingNoneDicomMark> _readingNoneDicomMarkRepository,
|
||||||
IRepository<UserLog> _userLogRepository,
|
IRepository<UserLog> _userLogRepository,
|
||||||
IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository,
|
IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository,
|
||||||
IRepository<ReadingOncologyTaskInfo> _readingOncologyTaskInfoRepository,
|
IRepository<ReadingOncologyTaskInfo> _readingOncologyTaskInfoRepository,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Filter;
|
using IRaCIS.Core.Application.Filter;
|
||||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
@ -31,6 +32,49 @@ namespace IRaCIS.Core.Application.Service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加非Dicom标记
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IResponseOutput> AddNoneDicomMark(AddNoneDicomMarkInDto inDto)
|
||||||
|
{
|
||||||
|
var entity = await _readingNoneDicomMarkRepository.InsertOrUpdateAsync(inDto, true);
|
||||||
|
return ResponseOutput.Ok(entity.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取非Dicom标记
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<GetNoneDicomMarkListOutDto> GetNoneDicomMarkListOutDto(GetNoneDicomMarkListInDtoDto inDto)
|
||||||
|
{
|
||||||
|
var result= await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId)
|
||||||
|
|
||||||
|
.ProjectTo<AddNoneDicomMarkInDto>(_mapper.ConfigurationProvider)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
return new GetNoneDicomMarkListOutDto()
|
||||||
|
{
|
||||||
|
NoneDicomMarkList = result
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除非Dicom标记
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("{id:guid}")]
|
||||||
|
public async Task<IResponseOutput> DeleteTrialFileType(Guid id)
|
||||||
|
{
|
||||||
|
var success = await _readingNoneDicomMarkRepository.DeleteFromQueryAsync(t => t.Id == id, true);
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存任务问题
|
/// 保存任务问题
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -84,7 +128,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
visitIds.AddRange(await _subjectVisitRepository.Where(x => x.VisitNum <= task.VisitNum && x.SubjectId == task.SubjectId).Select(x => x.Id).ToListAsync());
|
visitIds.AddRange(await _subjectVisitRepository.Where(x => x.VisitNum <= task.VisitNum && x.SubjectId == task.SubjectId).Select(x => x.Id).ToListAsync());
|
||||||
}
|
}
|
||||||
|
|
||||||
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisistTaskId).Select(t => new { t.BlindSubjectCode, t.TrialReadingCriterionId, t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();
|
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisistTaskId).Select(t => new { t.BlindSubjectCode, t.ReadingTaskState, t.TrialReadingCriterionId, t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -106,6 +150,20 @@ namespace IRaCIS.Core.Application.Service
|
||||||
List<NoneDicomStudyView> result = await noneDicomStudyQueryable.ToListAsync();
|
List<NoneDicomStudyView> result = await noneDicomStudyQueryable.ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
var nonoDicomStudyFileIds=await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == inDto.VisistTaskId).ToListAsync();
|
||||||
|
if (nonoDicomStudyFileIds.Count > 0&& taskinfo.ReadingTaskState== ReadingTaskState.HaveSigned)
|
||||||
|
{
|
||||||
|
var studyId = nonoDicomStudyFileIds.Select(x => x.StudyId).FirstOrDefault();
|
||||||
|
|
||||||
|
var noneDicomids= nonoDicomStudyFileIds.Select(x=>x.NoneDicomFileId).ToList();
|
||||||
|
var noneDicomStudyViewMark =new NoneDicomStudyView() { Id = Guid.NewGuid() };
|
||||||
|
noneDicomStudyViewMark.IsCriticalSequence = true;
|
||||||
|
noneDicomStudyViewMark.NoneDicomStudyFileList = await _noneDicomStudyFileRepository.Where(x => noneDicomids.Contains(x.Id)).ProjectTo<NoneDicomStudyFileView>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
result.Insert(0, noneDicomStudyViewMark);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var trialInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new
|
var trialInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new
|
||||||
{
|
{
|
||||||
x.ClinicalInformationTransmissionEnum,
|
x.ClinicalInformationTransmissionEnum,
|
||||||
|
|
|
@ -65,6 +65,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
CreateMap<TrialClinicalTableQuestion, ClinicalTablePreviewDto>();
|
CreateMap<TrialClinicalTableQuestion, ClinicalTablePreviewDto>();
|
||||||
#endregion
|
#endregion
|
||||||
CreateMap<TableMarkInfo, ReadingTaskQuestionMark>();
|
CreateMap<TableMarkInfo, ReadingTaskQuestionMark>();
|
||||||
|
CreateMap<AddNoneDicomMarkInDto, ReadingNoneDicomMark>();
|
||||||
|
CreateMap<ReadingNoneDicomMark, AddNoneDicomMarkInDto>();
|
||||||
CreateMap<ReadingTaskQuestionMark, TableMarkInfo>();
|
CreateMap<ReadingTaskQuestionMark, TableMarkInfo>();
|
||||||
CreateMap<VisitTask, VisitTaskDto>();
|
CreateMap<VisitTask, VisitTaskDto>();
|
||||||
CreateMap<SaveTableQuestionMarkInDto, ReadingTaskQuestionMark>();
|
CreateMap<SaveTableQuestionMarkInDto, ReadingTaskQuestionMark>();
|
||||||
|
|
|
@ -127,9 +127,6 @@ public class TrialFileType : BaseFullAuditEntity
|
||||||
[Comment("是否确认收入项")]
|
[Comment("是否确认收入项")]
|
||||||
public bool IsConfirmRecord { get; set; }
|
public bool IsConfirmRecord { get; set; }
|
||||||
|
|
||||||
[Comment("是否授权查看")]
|
|
||||||
public bool IsAuthorizedView { get; set; }
|
|
||||||
|
|
||||||
[Comment("首次定稿日期")]
|
[Comment("首次定稿日期")]
|
||||||
public DateOnly FirstFinalDate { get; set; }
|
public DateOnly FirstFinalDate { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
namespace IRaCIS.Core.Domain.Models;
|
||||||
|
|
||||||
|
[Comment("项目阅片 - 非Dicom标记")]
|
||||||
|
[Table("ReadingNoneDicomMark")]
|
||||||
|
public class ReadingNoneDicomMark : BaseAddAuditEntity
|
||||||
|
{
|
||||||
|
#region 导航属性
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("StudyId")]
|
||||||
|
public NoneDicomStudy NoneDicomStudy { get; set; }
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
||||||
|
public Guid? StudyId { get; set; }
|
||||||
|
public Guid? NoneDicomFileId { get; set; }
|
||||||
|
|
||||||
|
public string Path { get; set; }
|
||||||
|
|
||||||
|
[MaxLength]
|
||||||
|
public string MeasureData { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -350,6 +350,8 @@ public class IRaCISDBContext : DbContext
|
||||||
|
|
||||||
public virtual DbSet<ReadingJudgeInfo> ReadingJudgeInfo { get; set; }
|
public virtual DbSet<ReadingJudgeInfo> ReadingJudgeInfo { get; set; }
|
||||||
|
|
||||||
|
public virtual DbSet<ReadingNoneDicomMark> ReadingNoneDicomMark { get; set; }
|
||||||
|
|
||||||
public virtual DbSet<ReadModule> ReadModule { get; set; }
|
public virtual DbSet<ReadModule> ReadModule { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
19029
IRaCIS.Core.Infra.EFCore/Migrations/20250225060347_nonDicommark.Designer.cs
generated
Normal file
19029
IRaCIS.Core.Infra.EFCore/Migrations/20250225060347_nonDicommark.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,62 @@
|
||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class nonDicommark : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "ReadingNoneDicomMark",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
VisitTaskId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
StudyId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
NoneDicomFileId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
Path = table.Column<string>(type: "nvarchar(400)", maxLength: 400, nullable: false),
|
||||||
|
MeasureData = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
CreateUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
CreateTime = table.Column<DateTime>(type: "datetime2", nullable: false)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_ReadingNoneDicomMark", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_ReadingNoneDicomMark_NoneDicomStudy_StudyId",
|
||||||
|
column: x => x.StudyId,
|
||||||
|
principalTable: "NoneDicomStudy",
|
||||||
|
principalColumn: "Id");
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_ReadingNoneDicomMark_User_CreateUserId",
|
||||||
|
column: x => x.CreateUserId,
|
||||||
|
principalTable: "User",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
},
|
||||||
|
comment: "项目阅片 - 非Dicom标记");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_ReadingNoneDicomMark_CreateUserId",
|
||||||
|
table: "ReadingNoneDicomMark",
|
||||||
|
column: "CreateUserId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_ReadingNoneDicomMark_StudyId",
|
||||||
|
table: "ReadingNoneDicomMark",
|
||||||
|
column: "StudyId");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "ReadingNoneDicomMark");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -5204,6 +5204,47 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreateTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<Guid>("CreateUserId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<string>("MeasureData")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<Guid?>("NoneDicomFileId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<string>("Path")
|
||||||
|
.IsRequired()
|
||||||
|
.HasMaxLength(400)
|
||||||
|
.HasColumnType("nvarchar(400)");
|
||||||
|
|
||||||
|
b.Property<Guid?>("StudyId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid>("VisitTaskId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("CreateUserId");
|
||||||
|
|
||||||
|
b.HasIndex("StudyId");
|
||||||
|
|
||||||
|
b.ToTable("ReadingNoneDicomMark", t =>
|
||||||
|
{
|
||||||
|
t.HasComment("项目阅片 - 非Dicom标记");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
|
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
|
@ -15777,6 +15818,23 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
b.Navigation("ParentQuestion");
|
b.Navigation("ParentQuestion");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("CreateUserId")
|
||||||
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
|
.IsRequired();
|
||||||
|
|
||||||
|
b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("StudyId");
|
||||||
|
|
||||||
|
b.Navigation("CreateUserRole");
|
||||||
|
|
||||||
|
b.Navigation("NoneDicomStudy");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
|
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
|
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
|
||||||
|
|
Loading…
Reference in New Issue