修改添加qc模板
parent
7103b62786
commit
839646e410
|
@ -814,11 +814,6 @@
|
||||||
<param name="noneDicomStudyId"></param>
|
<param name="noneDicomStudyId"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Contracts.NoneDicomStudyService.NewUploadNoneDicomFile(IRaCIS.Core.Application.Contracts.UploadNoneDicomFileDto)">
|
|
||||||
<summary>
|
|
||||||
上传非Dicom 文件 支持压缩包
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:IRaCIS.Core.Application.Contracts.NoneDicomStudyService.UploadNoneDicomFile(Microsoft.AspNetCore.Http.IFormCollection,System.Guid,System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Contracts.NoneDicomStudyService.UploadNoneDicomFile(Microsoft.AspNetCore.Http.IFormCollection,System.Guid,System.Guid)">
|
||||||
<summary>
|
<summary>
|
||||||
上传非Dicom 文件 支持压缩包
|
上传非Dicom 文件 支持压缩包
|
||||||
|
@ -828,6 +823,11 @@
|
||||||
<param name="noneDicomStudyId"></param>
|
<param name="noneDicomStudyId"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Contracts.NoneDicomStudyService.NewUploadNoneDicomFile(IRaCIS.Core.Application.Contracts.UploadNoneDicomFileDto)">
|
||||||
|
<summary>
|
||||||
|
上传非Dicom 文件 支持压缩包
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:IRaCIS.Core.Application.Contracts.QCQuestionConfigureService">
|
<member name="T:IRaCIS.Core.Application.Contracts.QCQuestionConfigureService">
|
||||||
<summary>
|
<summary>
|
||||||
系统QC 问题管理
|
系统QC 问题管理
|
||||||
|
@ -1320,13 +1320,6 @@
|
||||||
<member name="M:IRaCIS.Core.Application.Services.TrialMaintenanceService.DeleteTrialSite(System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Services.TrialMaintenanceService.DeleteTrialSite(System.Guid)">
|
||||||
<summary>删除 项目 下某一site </summary>
|
<summary>删除 项目 下某一site </summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.SetSVExecuted(System.Guid)">
|
|
||||||
<summary>
|
|
||||||
设置受试者访视已执行 也就是将studyUploaded状态置为true 为了那些没有影像 人工设置准备
|
|
||||||
</summary>
|
|
||||||
<param name="subjectVisitId"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetVisitStudyList(System.Guid,System.Guid,System.Int32)">
|
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.GetVisitStudyList(System.Guid,System.Guid,System.Int32)">
|
||||||
<summary>
|
<summary>
|
||||||
获取访视下的Dicom 检查信息 分所有的, 阅片的 不阅片 isReading : 0 查询所有 1 查询仅仅阅片的
|
获取访视下的Dicom 检查信息 分所有的, 阅片的 不阅片 isReading : 0 查询所有 1 查询仅仅阅片的
|
||||||
|
@ -1336,6 +1329,13 @@
|
||||||
<param name="isReading"></param>
|
<param name="isReading"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Services.SubjectVisitService.SetSVExecuted(System.Guid)">
|
||||||
|
<summary>
|
||||||
|
设置受试者访视已执行 也就是将studyUploaded状态置为true 为了那些没有影像 人工设置准备
|
||||||
|
</summary>
|
||||||
|
<param name="subjectVisitId"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetCRCVisitList(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO)">
|
<member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetCRCVisitList(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO)">
|
||||||
<summary>
|
<summary>
|
||||||
CRC 访视上传列表
|
CRC 访视上传列表
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public bool IsEnable { get; set; }
|
public bool IsEnable { get; set; }
|
||||||
public string Type { get; set; } = String.Empty;
|
public string Type { get; set; } = String.Empty;
|
||||||
|
|
||||||
public string ParentTriggerValue { get; set; }
|
public string ParentTriggerValue { get; set; } = String.Empty;
|
||||||
public Guid? ParentId { get; set; }
|
public Guid? ParentId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,19 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void VerifyIsCanQC(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
|
||||||
|
{
|
||||||
|
if (sujectVisitId != null)
|
||||||
|
{
|
||||||
|
subjectVisit = _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == sujectVisitId).Result.IfNullThrowException();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (subjectVisit!.CurrentActionUserId != _userInfo.Id)
|
||||||
|
{
|
||||||
|
throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("{subjectVisitId:guid}")]
|
[HttpGet("{subjectVisitId:guid}")]
|
||||||
public async Task<List<NoneDicomStudyView>> GetNoneDicomStudyList(Guid subjectVisitId)
|
public async Task<List<NoneDicomStudyView>> GetNoneDicomStudyList(Guid subjectVisitId)
|
||||||
{
|
{
|
||||||
|
@ -61,18 +74,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
return await noneDicomStudyQueryable.ToListAsync();
|
return await noneDicomStudyQueryable.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VerifyIsCanQC(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
|
|
||||||
{
|
|
||||||
if (sujectVisitId != null)
|
|
||||||
{
|
|
||||||
subjectVisit = _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == sujectVisitId).Result.IfNullThrowException();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (subjectVisit!.CurrentActionUserId != _userInfo.Id)
|
|
||||||
{
|
|
||||||
throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
[TypeFilter(typeof(TrialResourceFilter))]
|
[TypeFilter(typeof(TrialResourceFilter))]
|
||||||
|
@ -165,23 +166,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
return await _repository.Where<NoneDicomStudyFile>(t => t.NoneDicomStudy.SubjectVisitId == subjectVisitId).ProjectTo<NoneDicomStudyFileView>(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }).ToListAsync();
|
return await _repository.Where<NoneDicomStudyFile>(t => t.NoneDicomStudy.SubjectVisitId == subjectVisitId).ProjectTo<NoneDicomStudyFileView>(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传非Dicom 文件 支持压缩包
|
|
||||||
/// </summary>
|
|
||||||
[HttpPost]
|
|
||||||
public async Task<IResponseOutput> NewUploadNoneDicomFile([FromForm] UploadNoneDicomFileDto fileDto)
|
|
||||||
{
|
|
||||||
var file = this._httpContext.HttpContext?.Request.Form;
|
|
||||||
var result = await UploadNoneDicomFile(file, fileDto.subjectVisitId, fileDto.noneDicomStudyId);
|
|
||||||
if (result.IsSuccess)
|
|
||||||
{
|
|
||||||
var data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(fileDto.AuditInfo);
|
|
||||||
data.GeneralId = fileDto.noneDicomStudyId;
|
|
||||||
await _inspectionService.AddInspectionRecordAsync(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -301,5 +285,26 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
await _noneDicomStudyFileRepository.AddAsync(new NoneDicomStudyFile() { FileName = fileName, Path = relativePath, NoneDicomStudyId = noneDicomStudyId });
|
await _noneDicomStudyFileRepository.AddAsync(new NoneDicomStudyFile() { FileName = fileName, Path = relativePath, NoneDicomStudyId = noneDicomStudyId });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 上传非Dicom 文件 支持压缩包
|
||||||
|
/// </summary>
|
||||||
|
[HttpPost]
|
||||||
|
[Obsolete]
|
||||||
|
public async Task<IResponseOutput> NewUploadNoneDicomFile([FromForm] UploadNoneDicomFileDto fileDto)
|
||||||
|
{
|
||||||
|
var file = this._httpContext.HttpContext?.Request.Form;
|
||||||
|
var result = await UploadNoneDicomFile(file, fileDto.subjectVisitId, fileDto.noneDicomStudyId);
|
||||||
|
if (result.IsSuccess)
|
||||||
|
{
|
||||||
|
var data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(fileDto.AuditInfo);
|
||||||
|
data.GeneralId = fileDto.noneDicomStudyId;
|
||||||
|
await _inspectionService.AddInspectionRecordAsync(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -765,10 +765,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
await VerifyIsCanQCAsync(null, subjectVisitId);
|
await VerifyIsCanQCAsync(null, subjectVisitId);
|
||||||
|
|
||||||
|
|
||||||
var series = await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync();
|
var series = (await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
if (series == null) return Null404NotFound(series);
|
|
||||||
|
|
||||||
|
|
||||||
if (state == 1)
|
if (state == 1)
|
||||||
{
|
{
|
||||||
series.IsReading = false;
|
series.IsReading = false;
|
||||||
|
@ -781,8 +780,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
{
|
{
|
||||||
series.IsDeleted = true;
|
series.IsDeleted = true;
|
||||||
|
|
||||||
var study = await _repository.Where<DicomStudy>(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync();
|
var study = (await _repository.Where<DicomStudy>(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
if (study == null) return Null404NotFound(study);
|
|
||||||
|
|
||||||
var instanceIdList = await _repository.Where<DicomInstance>(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync();
|
var instanceIdList = await _repository.Where<DicomInstance>(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync();
|
||||||
|
|
||||||
|
@ -807,9 +805,8 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
{
|
{
|
||||||
series.IsDeleted = false;
|
series.IsDeleted = false;
|
||||||
|
|
||||||
var study = await _repository.Where<DicomStudy>(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync();
|
var study = (await _repository.Where<DicomStudy>(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
if (study == null) return Null404NotFound(study);
|
|
||||||
|
|
||||||
var instanceIdList = await _repository.Where<DicomInstance>(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync();
|
var instanceIdList = await _repository.Where<DicomInstance>(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync();
|
||||||
|
|
||||||
|
@ -985,7 +982,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
subjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == sujectVisitId)).IfNullThrowException();
|
subjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == sujectVisitId)).IfNullThrowException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (subjectVisit!.CurrentActionUserId != _userInfo.Id)
|
if (subjectVisit!.CurrentActionUserId != _userInfo.Id)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
|
throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
|
||||||
|
|
|
@ -141,18 +141,6 @@ namespace IRaCIS.Core.Application.Services
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 设置受试者访视已执行 也就是将studyUploaded状态置为true 为了那些没有影像 人工设置准备
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="subjectVisitId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPut("{trialId:guid}/{subjectVisitId:guid}")]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter))]
|
|
||||||
public async Task<IResponseOutput> SetSVExecuted(Guid subjectVisitId)
|
|
||||||
{
|
|
||||||
await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Executed }, true);
|
|
||||||
return ResponseOutput.Ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -205,6 +193,18 @@ namespace IRaCIS.Core.Application.Services
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置受试者访视已执行 也就是将studyUploaded状态置为true 为了那些没有影像 人工设置准备
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="subjectVisitId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPut("{trialId:guid}/{subjectVisitId:guid}")]
|
||||||
|
[TypeFilter(typeof(TrialResourceFilter))]
|
||||||
|
[Obsolete]
|
||||||
|
public async Task<IResponseOutput> SetSVExecuted(Guid subjectVisitId)
|
||||||
|
{
|
||||||
|
await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Executed }, true);
|
||||||
|
return ResponseOutput.Ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue