196 lines
7.0 KiB
C#
196 lines
7.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using AutoMapper;
|
|
using Castle.Core.Internal;
|
|
using IRaCIS.Application.Interfaces;
|
|
using IRaCIS.Core.Application.Contracts;
|
|
using IRaCIS.Core.Application.Filter;
|
|
using IRaCIS.Core.Application.Image.QA;
|
|
using IRaCIS.Core.Application.Service.Inspection.DTO;
|
|
using IRaCIS.Core.Application.Service.Inspection.Interface;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using IRaCIS.Core.Domain.Share;
|
|
using IRaCIS.Core.Infra.EFCore;
|
|
using IRaCIS.Core.Infrastructure.Extention;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace IRaCIS.Core.API.Controllers
|
|
{
|
|
|
|
[ApiController, ApiExplorerSettings(GroupName = "Reviewer")]
|
|
public class InspectionController : ControllerBase
|
|
{
|
|
private readonly IRepository _repository;
|
|
private readonly IMapper _mapper;
|
|
private readonly IUserInfo _userInfo;
|
|
private readonly ITrialDocumentService _trialDocumentService;
|
|
private readonly IQCListService _qCListService;
|
|
private readonly ITrialConfigService _trialConfigService;
|
|
private readonly ISubjectService _subjectService;
|
|
private readonly IInspectionService _inspectionService;
|
|
private readonly IRepository<DataInspection> _dataInspectionRepository;
|
|
private delegate Task<IResponseOutput> executionFun(dynamic data);
|
|
|
|
public InspectionController(IRepository repository,
|
|
IRepository<DataInspection> _repositoryDataInspection,
|
|
IMapper mapper, IUserInfo userInfo,
|
|
ITrialDocumentService trialDocumentService,
|
|
IRepository<DataInspection> dataInspectionRepository,
|
|
IQCListService _qCListService,
|
|
IInspectionService sinspectionService,
|
|
ITrialConfigService _trialConfigService,
|
|
ISubjectService _subjectService)
|
|
{
|
|
_repository = repository;
|
|
_mapper = mapper;
|
|
_userInfo = userInfo;
|
|
this._inspectionService = sinspectionService;
|
|
this._trialDocumentService = trialDocumentService;
|
|
this._qCListService = _qCListService;
|
|
this._trialConfigService = _trialConfigService;
|
|
this._subjectService = _subjectService;
|
|
this._dataInspectionRepository = dataInspectionRepository;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取稽查数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("Inspection/GetInspectionData")]
|
|
public async Task<PageOutput<GetDataInspectionOutDto>> GetInspectionData(GetDataInspectionDto dto)
|
|
{
|
|
return await _inspectionService.GetInspectionData(dto);
|
|
}
|
|
|
|
///// <summary>
|
|
///// 用户 签名某个文档 签署文件
|
|
///// </summary>
|
|
///// <param name="opt"></param>
|
|
///// <returns></returns>
|
|
//[HttpPost, Route("Inspection/trialDocument/userConfirm")]
|
|
//[UnitOfWork]
|
|
//public async Task<IResponseOutput> UserConfirm(TrialDocumentConfirmDTO opt)
|
|
//{
|
|
// var fun = _trialDocumentService.UserConfirm;
|
|
// return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
|
|
//}
|
|
|
|
|
|
#region setting
|
|
///// <summary>
|
|
///// 配置 基础逻辑信息
|
|
///// </summary>
|
|
///// <param name="opt"></param>
|
|
///// <returns></returns>
|
|
//[HttpPut, Route("configTrialBasicInfo/configTrialBasicInfo")]
|
|
//[UnitOfWork]
|
|
//public async Task<IResponseOutput> ConfigTrialBasicInfo(InsBasicTrialConfig opt)
|
|
//{
|
|
// var fun = _trialConfigService.ConfigTrialBasicInfo;
|
|
// return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 配置流程
|
|
///// </summary>
|
|
///// <param name="opt"></param>
|
|
///// <returns></returns>
|
|
//[HttpPut, Route("configTrialBasicInfo/configTrialProcessInfo")]
|
|
//[UnitOfWork]
|
|
//public async Task<IResponseOutput> ConfigTrialProcessInfo(InsTrialProcessConfig opt)
|
|
//{
|
|
// var fun = _trialConfigService.ConfigTrialProcessInfo;
|
|
// return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 配置加急信息
|
|
///// </summary>
|
|
///// <param name="opt"></param>
|
|
///// <returns></returns>
|
|
//[HttpPut, Route("configTrialBasicInfo/ConfigTrialUrgentInfo")]
|
|
//[UnitOfWork]
|
|
//public async Task<IResponseOutput> ConfigTrialUrgentInfo(InsTrialUrgentConfig opt)
|
|
//{
|
|
// var fun = _trialConfigService.ConfigTrialUrgentInfo;
|
|
// return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
|
|
//}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 受试者
|
|
/// <summary>
|
|
/// 添加或更新受试者信息[New]
|
|
/// </summary>
|
|
/// <param name="opt"></param>
|
|
/// <returns></returns>
|
|
//[TypeFilter(typeof(TrialResourceFilter))]
|
|
[HttpPost, Route("Inspection/Subject/AddOrUpdateSubject")]
|
|
[UnitOfWork]
|
|
public async Task<IResponseOutput> AddOrUpdateSubject(InsSubjectCommand opt)
|
|
{
|
|
|
|
|
|
var fun = await _subjectService.AddOrUpdateSubject(opt.OptCommand);
|
|
opt.AuditInfo.SubjectId = Guid.Parse(fun.Data);
|
|
|
|
var statusdata = new {
|
|
Status = 1,
|
|
OutEnrollmentTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
VisitOverTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
Reason = string.Empty,
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, null, fun, statusdata);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改受试者状态
|
|
/// </summary>
|
|
/// <param name="opt"></param>
|
|
/// <returns></returns>
|
|
///
|
|
[HttpPut, Route("Inspection/Subject/UpdateSubjectStatus")]
|
|
[UnitOfWork]
|
|
public async Task<IResponseOutput> UpdateSubjectStatus(InsUpdateSubjectStatus opt)
|
|
{
|
|
var fun = _subjectService.UpdateSubjectStatus;
|
|
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 删除受试者
|
|
/// </summary>
|
|
/// <param name="opt"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete, Route("Inspection/Subject/DeleteSubject")]
|
|
[UnitOfWork]
|
|
public async Task<IResponseOutput> DeleteSubject(InsDeleteSubjectDto opt)
|
|
{
|
|
var fun = _subjectService.DeleteSubject;
|
|
var data = await _subjectService.DeleteSubject(opt.OptCommand.SubjectId);
|
|
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun, data);
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|