using IRaCIS.Application.Interfaces;
using IRaCIS.Application.ViewModels;
using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using IRaCIS.Core.Application.Contracts.Trial;
namespace IRaCIS.Api.Controllers
{
///
/// 受试者访视
///
[Route("subjectVisit")]
[ApiController, Authorize, ApiExplorerSettings(GroupName = "Trial")]
public class SubjectVisitController : ControllerBase
{
private readonly ISubjectVisitService _subjectvisitService;
public SubjectVisitController(ISubjectVisitService subjectvisitService)
{
_subjectvisitService = subjectvisitService;
}
[HttpPost, Route("getVisitList")]
public IResponseOutput> GetVisitList(SubjectVisitSearchDTO subjectVisitSearch)
{
return ResponseOutput.Ok(_subjectvisitService.GetVisitList(subjectVisitSearch));
}
///
///
///
///
///
[HttpPost, Route("addOrUpdate")]
public IResponseOutput AddOrUpdateSV(SubjectVisitCommand model)
{
return ResponseOutput.Ok(_subjectvisitService.AddOrUpdateSV(model));
}
/// 删除受试者访视
[HttpDelete, Route("delete/{id:guid}")]
public IResponseOutput DeleteSV(Guid id)
{
return _subjectvisitService.DeleteSV(id);
}
///
/// 上传影像时 需要选择是属于 受试者访视那个阶段
///
///
///
///
///
[HttpGet, Route("getSubjectVisitSelectList/{trialId:guid}/{siteId:guid}/{subjectId:guid}")]
public IResponseOutput> GetSubjectVisitSelectList(Guid trialId, Guid siteId, Guid subjectId)
{
return ResponseOutput.Ok(_subjectvisitService.GetSubjectVisitSelectList(trialId, siteId,subjectId));
}
[HttpGet, Route("getSubjectVisitList/{trialId:guid}/{subjectId:guid}")]
public IResponseOutput> GetSubjectVisitList(Guid trialId, Guid subjectId)
{
return ResponseOutput.Ok(_subjectvisitService.GetSubjectVisitList(trialId, subjectId));
}
}
}