IRC_NewDev
he 2023-07-04 13:34:22 +08:00
parent 6813b42ae1
commit a7b8cc6307
4 changed files with 67 additions and 11 deletions

View File

@ -14,6 +14,7 @@ using MassTransit;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infrastructure.Extention;
using IRaCIS.Core.Application.Service.Reading.Interface;
namespace IRaCIS.Core.Application.Service
{
@ -21,8 +22,8 @@ namespace IRaCIS.Core.Application.Service
/// 临床答案
/// </summary>
[ApiExplorerSettings(GroupName = "Reading")]
public class ClinicalAnswerService : BaseService
{
public class ClinicalAnswerService : BaseService, IClinicalAnswerService
{
private readonly IRepository<TrialClinicalQuestion> _trialClinicalQuestionRepository;
@ -106,7 +107,9 @@ namespace IRaCIS.Core.Application.Service
x.IsBaseLine,
}).ToListAsync();
var clinicalDataList =await _readingClinicalDataRepository.Where(x =>x.TrialId==inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole== UploadRole.CRC).IgnoreAutoIncludes().ToListAsync();
var clinicalDataList =await _readingClinicalDataRepository
.WhereIf(inDto.SubjectId != null, x => x.SubjectId == inDto.SubjectId)
.Where(x =>x.TrialId==inDto.TrialId&&x.ClinicalDataTrialSet.UploadRole== UploadRole.CRC).IgnoreAutoIncludes().ToListAsync();
List<ReadingClinicalData> readingClinicalDatas = new List<ReadingClinicalData>();
@ -178,11 +181,11 @@ namespace IRaCIS.Core.Application.Service
public async Task<List<GetCRCSubjectClinicalOutDto>> GetCRCSubjectClinicalList(GetCRCSubjectClinicalInDto inDto)
{
await AutoAddCRCClinical(new AutoAddClinicalInDto()
{
//await AutoAddCRCClinical(new AutoAddClinicalInDto()
//{
TrialId = inDto.TrialId
}) ;
// TrialId = inDto.TrialId
//}) ;

View File

@ -179,10 +179,10 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task<List<GetCRCClinicalDataOutDto>> GetCRCClinicalData(GetCRCClinicalDataInDto inDto)
{
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator)
{
await this.AddCRCClinicalData(inDto);
}
//if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator)
//{
// await this.AddCRCClinicalData(inDto);
//}
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)

View File

@ -0,0 +1,14 @@
using IRaCIS.Core.Application.Service.Reading.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Interface
{
public interface IClinicalAnswerService
{
Task AutoAddCRCClinical(AutoAddClinicalInDto inDto);
}
}

View File

@ -0,0 +1,39 @@
using EntityFrameworkCore.Triggered;
using IRaCIS.Core.Application.Service.Reading.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Triggers
{
public class AddCRCCliniaclDataTrigger : IAfterSaveTrigger<SubjectVisit>
{
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly IRepository _repository;
private readonly IClinicalAnswerService _iClinicalAnswerService;
public AddCRCCliniaclDataTrigger(IRepository<SubjectVisit> subjectVisitRepository, IRepository repository, IClinicalAnswerService iClinicalAnswerService)
{
_subjectVisitRepository = subjectVisitRepository;
_repository = repository;
this._iClinicalAnswerService = iClinicalAnswerService;
}
//注意删除不能用扩展方法必须用EF跟踪的实体 否则不能取到 SubjectVisitId
public async Task AfterSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
{
var subjectVisit = context.Entity;
await _iClinicalAnswerService.AutoAddCRCClinical(new Service.Reading.Dto.AutoAddClinicalInDto()
{
TrialId = subjectVisit.TrialId,
SubjectId = subjectVisit.SubjectId,
});
}
}
}